Commit bf772ce0 authored by Kirill Smelkov's avatar Kirill Smelkov

test/*: Start testing zodbtools behaviour on ZODB databases of multiple kinds

Since 0b6f99da (test/gen_testdata: Fix for ZODB5 > 5.5.1 + preserve
database compatibility with ZODB3/py2) we are generating our test
database with using pickle protocol=2. This was done in order to make
sure the zodbtools works ok with data generated by e.g. ZODB4. However
we still have lots of databases that are generated with pickle
protocol=1, and we also have newer databases that are generated with
pickle protocol=3. Note that it is not only data records who are
affected by specified pickle protocol. For example for FileStorage the
index is also saved via pickling and so used pickle protocol affects
index format. For example ZODB/go currently cannot load FileStorage
index if it was saved via protocol=3.

Since zodbtools should work ok with any data it creates a need to test
it against all kinds of ZODB databases: generated by either py2 or py3,
and saved via pickle protocol 1,2 and 3.

In this patch we add infrastructure for such testing and extend testdata
coverage to cover not only py2_pickle2, but also py2_pickle1. We will
add support for py2_pickle3 and py3_pickle3 in the follow-up patches.

Testdata files are now located inside dedicated subdirectories - one for
one ZODB kind. py2_pickle2/* is exactly the same compared to testdata
files we had before. py2_pickle1/* is bit different. It is handy to see
the difference via e.g.

    $ diff -u py2_pickle2/zdump.zpickledis.ok py2_pickle1/zdump.zpickledis.ok

In tests particular kind of testdata is now accessed via ztestdata
fixture. Please see changes in zodbtools/test/conftest.py and
zodbtools/test/gen_testdata.py for details.
parent e66451c0
# Copyright (C) 2019 Nexedi SA and Contributors. # Copyright (C) 2019-2024 Nexedi SA and Contributors.
# Kirill Smelkov <kirr@nexedi.com> # Kirill Smelkov <kirr@nexedi.com>
# #
# This program is free software: you can Use, Study, Modify and Redistribute # This program is free software: you can Use, Study, Modify and Redistribute
# it under the terms of the GNU General Public License version 3, or (at your # it under the terms of the GNU General Public License version 3, or (at your
...@@ -19,6 +19,51 @@ ...@@ -19,6 +19,51 @@
import pytest import pytest
from zodbtools.test.testutil import zext_supported from zodbtools.test.testutil import zext_supported
import os
from os.path import basename, dirname, relpath
from tempfile import mkdtemp
from shutil import rmtree
import pkg_resources
testdir = dirname(__file__)
# ztestdata is test fixture to run a test wrt particular ZODB testdata case.
#
# It yields all testdata cases generated by gen_testdata.py for
# all covered ZODB pickle kinds.
#
# ztestdata.prefix is where test database and other generated files live.
# ztestdata.prefix + '/data.fs' , in particular, is the path to test database.
@pytest.fixture(params=[
(name, zext, zkind)
# NOTE keep in sync with run_with_all_zodb_pickle_kinds
for name in ('1',)
for zext in (False, True)
for zkind in ('py2_pickle1', 'py2_pickle2')
],
ids = lambda _: '%s%s/%s' % (_[0], '' if _[1] else '_!zext', _[2]),
)
def ztestdata(request): # -> ZTestData
name, zext, zkind = request.param
_ = ZTestData()
_.name = name
_.zext = zext
_.zkind = zkind
return _
class ZTestData(object):
__slots__ = (
'name',
'zext',
'zkind',
)
@property
def prefix(self):
_ = '%s/testdata/%s%s/%s' % (testdir, self.name, '' if self.zext else '_!zext', self.zkind)
return relpath(_)
# zext is a test fixture function object that allows to exercise 2 cases: # zext is a test fixture function object that allows to exercise 2 cases:
# #
......
...@@ -18,9 +18,21 @@ ...@@ -18,9 +18,21 @@
# #
# See COPYING file for full licensing terms. # See COPYING file for full licensing terms.
# See https://www.nexedi.com/licensing for rationale and options. # See https://www.nexedi.com/licensing for rationale and options.
"""generate reference database and index for tests """generate reference FileStorage databases and indices for tests
Golden zodbdump & zodbanalyze outputs are also generated besides database itself. We generate test database with all, potentially tricky, cases of transaction,
data and index records. This database is generated multiple times with
different ZODB settings that try to mimic what notable ZODB versions would
produce. The following combinations are covered:
py2: ZODB 4 and ZODB5 < 5.3 (pickle protocol 1)
py2: ZODB 5.3 (pickle protocol 2)
Each such combination is referred to by "zkind" which indicates major Python
and pickle protocol versions used, for example "py2_pickle3". See
run_with_all_zodb_pickle_kinds function for details.
Golden zodbdump & zodbanalyze outputs are also generated besides databases themselves.
""" """
# NOTE result of this script must be saved in version control and should not be # NOTE result of this script must be saved in version control and should not be
...@@ -50,8 +62,9 @@ from persistent import Persistent ...@@ -50,8 +62,9 @@ from persistent import Persistent
import transaction import transaction
import os import os
import glob import os.path
import sys import sys
import shutil
import struct import struct
import time import time
import random2 import random2
...@@ -151,13 +164,43 @@ def ext4subj(subj): ...@@ -151,13 +164,43 @@ def ext4subj(subj):
return ext return ext
# run_with_zodb4py2_compat(f) runs f preserving database compatibility with
# run_with_all_zodb_pickle_kinds runs f for all ZODB pickle kinds we care about.
#
# For each kind f is run separately under corresponding environment.
# We currently support the following kinds:
#
# py2: ZODB with pickle protocol = 1 generated by ZODB4 and ZODB5 < 5.3
# py2: ZODB with pickle protocol = 2 generated by ZODB5 5.3
#
# For convenience f can detect under which environment it is being executed via current_zkind.
#
# NOTE only the kinds supported under current python are executed.
def run_with_all_zodb_pickle_kinds(f):
# NOTE keep in sync with ztestdata fixture.
def _(expect_protocol=None):
from ZODB import serialize as zserialize
if expect_protocol is not None:
assert zserialize._protocol == expect_protocol, (current_zkind(), expect_protocol)
f()
_run_with_zodb4py2_compat(_, 1)
_run_with_zodb4py2_compat(_, 2)
# current_zkind returns string indicating currently activated ZODB environment,
# for example "py2_pickle3".
def current_zkind():
from ZODB import serialize as zserialize
zkind = "py%d_pickle%d" % (sys.version_info.major, zserialize._protocol)
return zkind
# _run_with_zodb4py2_compat runs f preserving database compatibility with
# ZODB4/py2, which generates pickles encoded with protocol < 3. # ZODB4/py2, which generates pickles encoded with protocol < 3.
# #
# ZODB5 started to use protocol 3 and binary for oids starting from ZODB 5.4.0: # ZODB5 started to use protocol 3 and binary for oids starting from ZODB 5.4.0:
# https://github.com/zopefoundation/ZODB/commit/12ee41c4 # https://github.com/zopefoundation/ZODB/commit/12ee41c4
# Undo it, while we generate test database. # Undo it, while we generate test database as if produced by older ZODB.
def run_with_zodb4py2_compat(f): def _run_with_zodb4py2_compat(f, protocol):
assert protocol < 3
import ZODB.ConflictResolution import ZODB.ConflictResolution
import ZODB.Connection import ZODB.Connection
import ZODB.ExportImport import ZODB.ExportImport
...@@ -168,21 +211,20 @@ def run_with_zodb4py2_compat(f): ...@@ -168,21 +211,20 @@ def run_with_zodb4py2_compat(f):
import ZODB.serialize import ZODB.serialize
binary = getattr(ZODB.serialize, 'binary', None) binary = getattr(ZODB.serialize, 'binary', None)
_protocol = getattr(ZODB.serialize, '_protocol', None) _protocol = getattr(ZODB.serialize, '_protocol', None)
Pz4 = 2
try: try:
ZODB.serialize.binary = bytes ZODB.serialize.binary = bytes
# XXX cannot change just ZODB._compat._protocol, because many modules # XXX cannot change just ZODB._compat._protocol, because many modules
# do `from ZODB._compat import _protocol` and just `import ZODB` # do `from ZODB._compat import _protocol` and just `import ZODB`
# imports many ZODB.X modules. In other words we cannot change # imports many ZODB.X modules. In other words we cannot change
# _protocol just in one place. # _protocol just in one place.
ZODB.ConflictResolution._protocol = Pz4 ZODB.ConflictResolution._protocol = protocol
ZODB.Connection._protocol = Pz4 ZODB.Connection._protocol = protocol
ZODB.ExportImport._protocol = Pz4 ZODB.ExportImport._protocol = protocol
ZODB.FileStorage.FileStorage._protocol = Pz4 ZODB.FileStorage.FileStorage._protocol = protocol
ZODB._compat._protocol = Pz4 ZODB._compat._protocol = protocol
ZODB.broken._protocol = Pz4 ZODB.broken._protocol = protocol
ZODB.fsIndex._protocol = Pz4 ZODB.fsIndex._protocol = protocol
ZODB.serialize._protocol = Pz4 ZODB.serialize._protocol = protocol
f() f()
finally: finally:
...@@ -196,15 +238,11 @@ def run_with_zodb4py2_compat(f): ...@@ -196,15 +238,11 @@ def run_with_zodb4py2_compat(f):
ZODB.fsIndex._protocol = _protocol ZODB.fsIndex._protocol = _protocol
ZODB.serialize._protocol = _protocol ZODB.serialize._protocol = _protocol
# gen_testdb generates test FileStorage database @ outfs_path. # gen_testdb generates test FileStorage database @ outfs_path.
# #
# zext indicates whether or not to include non-empty extension into transactions. # zext indicates whether or not to include non-empty extension into transactions.
def gen_testdb(outfs_path, zext=True): def gen_testdb(outfs_path, zext=True):
def _():
_gen_testdb(outfs_path, zext)
run_with_zodb4py2_compat(_)
def _gen_testdb(outfs_path, zext):
xtime_reset() xtime_reset()
def ext(subj): def ext(subj):
...@@ -317,30 +355,34 @@ def main(): ...@@ -317,30 +355,34 @@ def main():
if not zext_supported(): if not zext_supported():
raise RuntimeError("gen_testdata must be used with ZODB that supports txn.extension_bytes") raise RuntimeError("gen_testdata must be used with ZODB that supports txn.extension_bytes")
out = "testdata/1" top = "testdata/1"
for zext in [True, False]: def _():
dbname = out for zext in [True, False]:
if not zext: prefix = "%s%s/%s" % (top, "" if zext else "_!zext", current_zkind())
dbname += "_!zext" if os.path.exists(prefix):
for f in glob.glob(dbname + '.*'): shutil.rmtree(prefix)
os.remove(f) os.makedirs(prefix)
gen_testdb("%s.fs" % dbname, zext=zext)
outfs = "%s/data.fs" % prefix
# prepare zdump.ok for generated database gen_testdb(outfs, zext=zext)
stor = FileStorage("%s.fs" % dbname, read_only=True)
for pretty in ('raw', 'zpickledis'): # prepare zdump.ok for generated database
with open("%s.zdump.%s.ok" % (dbname, pretty), "wb") as f: stor = FileStorage(outfs, read_only=True)
zodbdump(stor, None, None, pretty=pretty, out=f) for pretty in ('raw', 'zpickledis'):
with open("%s/zdump.%s.ok" % (prefix, pretty), "wb") as f:
# prepare zanalyze.csv.ok zodbdump(stor, None, None, pretty=pretty, out=f)
sys_stdout = sys.stdout
sys.stdout = open("%s.zanalyze.csv.ok" % dbname, "w") # prepare zanalyze.csv.ok
zodbanalyze.report( sys_stdout = sys.stdout
zodbanalyze.analyze("%s.fs" % dbname, use_dbm=False, delta_fs=False, tidmin=None, tidmax=None), sys.stdout = open("%s/zanalyze.csv.ok" % prefix, "w")
csv=True, zodbanalyze.report(
) zodbanalyze.analyze(outfs, use_dbm=False, delta_fs=False, tidmin=None, tidmax=None),
sys.stdout.close() csv=True,
sys.stdout = sys_stdout )
sys.stdout.close()
sys.stdout = sys_stdout
run_with_all_zodb_pickle_kinds(_)
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -24,10 +24,9 @@ import os.path ...@@ -24,10 +24,9 @@ import os.path
from golang import b from golang import b
def test_zodbanalyze(tmpdir, capsys): def test_zodbanalyze(tmpdir, ztestdata, capsys):
testdata = os.path.join(os.path.dirname(__file__), "testdata")
tfs1 = fs1_testdata_py23(tmpdir, tfs1 = fs1_testdata_py23(tmpdir,
os.path.join(testdata, "1.fs")) os.path.join(ztestdata.prefix, "data.fs"))
for use_dbm in (False, True): for use_dbm in (False, True):
report( report(
...@@ -57,7 +56,7 @@ def test_zodbanalyze(tmpdir, capsys): ...@@ -57,7 +56,7 @@ def test_zodbanalyze(tmpdir, capsys):
) )
captured = capsys.readouterr() captured = capsys.readouterr()
with open('%s/1.zanalyze.csv.ok' % testdata, 'r') as f: with open('%s/zanalyze.csv.ok' % ztestdata.prefix, 'r') as f:
zanalyze_csv_ok = f.read() zanalyze_csv_ok = f.read()
assert captured.out == zanalyze_csv_ok assert captured.out == zanalyze_csv_ok
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2017-2022 Nexedi SA and Contributors. # Copyright (C) 2017-2024 Nexedi SA and Contributors.
# Kirill Smelkov <kirr@nexedi.com> # Kirill Smelkov <kirr@nexedi.com>
# Jérome Perrin <jerome@nexedi.com> # Jérome Perrin <jerome@nexedi.com>
# #
...@@ -28,20 +28,17 @@ from ZODB.FileStorage import FileStorage ...@@ -28,20 +28,17 @@ from ZODB.FileStorage import FileStorage
from ZODB.utils import p64 from ZODB.utils import p64
from io import BytesIO from io import BytesIO
from os.path import dirname from zodbtools.test.testutil import fs1_testdata_py23
from zodbtools.test.testutil import zext_supported, fs1_testdata_py23
from pytest import mark, raises, xfail from pytest import mark, raises, xfail
# verify zodbdump output against golden # verify zodbdump output against golden
@mark.parametrize('pretty', ('raw', 'zpickledis')) @mark.parametrize('pretty', ('raw', 'zpickledis'))
def test_zodbdump(tmpdir, zext, pretty): def test_zodbdump(tmpdir, ztestdata, pretty):
tdir = dirname(__file__) tfs1 = fs1_testdata_py23(tmpdir, '%s/data.fs' % ztestdata.prefix)
zkind = '_!zext' if zext.disabled else ''
tfs1 = fs1_testdata_py23(tmpdir, '%s/testdata/1%s.fs' % (tdir, zkind))
stor = FileStorage(tfs1, read_only=True) stor = FileStorage(tfs1, read_only=True)
with open('%s/testdata/1%s.zdump.%s.ok' % (tdir, zkind, pretty), 'rb') as f: with open('%s/zdump.%s.ok' % (ztestdata.prefix, pretty), 'rb') as f:
dumpok = f.read() dumpok = f.read()
out = BytesIO() out = BytesIO()
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2021-2022 Nexedi SA and Contributors. # Copyright (C) 2021-2024 Nexedi SA and Contributors.
# Kirill Smelkov <kirr@nexedi.com> # Kirill Smelkov <kirr@nexedi.com>
# #
# This program is free software: you can Use, Study, Modify and Redistribute # This program is free software: you can Use, Study, Modify and Redistribute
...@@ -24,22 +24,16 @@ from zodbtools.zodbrestore import zodbrestore ...@@ -24,22 +24,16 @@ from zodbtools.zodbrestore import zodbrestore
from zodbtools.util import storageFromURL, readfile from zodbtools.util import storageFromURL, readfile
from zodbtools.test.testutil import fs1_testdata_py23 from zodbtools.test.testutil import fs1_testdata_py23
from os.path import dirname
from tempfile import mkdtemp
from shutil import rmtree
from golang import func, defer from golang import func, defer
# verify zodbrestore. # verify zodbrestore.
@func @func
def test_zodbrestore(tmpdir, zext): def test_zodbrestore(tmpdir, ztestdata):
zkind = '_!zext' if zext.disabled else '' # restore from zdump.ok and verify it gives result that is
# bit-to-bit identical to data.fs
# restore from testdata/1.zdump.ok and verify it gives result that is
# bit-to-bit identical to testdata/1.fs
tdata = dirname(__file__) + "/testdata"
@func @func
def _(): def _():
zdump = open("%s/1%s.zdump.raw.ok" % (tdata, zkind), 'rb') zdump = open("%s/zdump.raw.ok" % ztestdata.prefix, 'rb')
defer(zdump.close) defer(zdump.close)
stor = storageFromURL('%s/2.fs' % tmpdir) stor = storageFromURL('%s/2.fs' % tmpdir)
...@@ -48,6 +42,6 @@ def test_zodbrestore(tmpdir, zext): ...@@ -48,6 +42,6 @@ def test_zodbrestore(tmpdir, zext):
zodbrestore(stor, zdump) zodbrestore(stor, zdump)
_() _()
zfs1 = readfile(fs1_testdata_py23(tmpdir, "%s/1%s.fs" % (tdata, zkind))) zfs1 = readfile(fs1_testdata_py23(tmpdir, "%s/data.fs" % ztestdata.prefix))
zfs2 = readfile("%s/2.fs" % tmpdir) zfs2 = readfile("%s/2.fs" % tmpdir)
assert zfs1 == zfs2 assert zfs1 == zfs2
/*.lock *.lock
/*.tmp *.tmp
/*.old *.old
Class Name,T.Count,T.Bytes,Pct,AvgSize,C.Count,C.Bytes,O.Count,O.Bytes
persistent.mapping.PersistentMapping,3,648,25.038640%,216.000000,1,216,2,432
__main__.Object,65,1940,74.961360%,29.846154,9,283,56,1657
txn 0285cbac70a3d733 "p"
user "user0.12"
description "step 0.12"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie8'
15: U SHORT_BINSTRING '2MHMU'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (f)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000001 30 sha1:c87b1285835babda2831d313d179182c61287a3d
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f0.12'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbac7eb85219 "p"
user "user0.15"
description "step 0.15"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieY'
15: U SHORT_BINSTRING 'EDZ10'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000006 30 sha1:74e173cf15c85769bfffccb80608769cb4cc5467
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e0.15'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbac917e4b4c "p"
user "user0.19"
description "step 0.19"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieF'
15: U SHORT_BINSTRING 'OUC9L'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (a)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000005 30 sha1:f5520fbf9f730d097d5995cdb3cb15b65e6ec432
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a0.19'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbac9ae147e6 "p"
user "user0.21"
description "step 0.21"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie8'
15: U SHORT_BINSTRING '0QC1A'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (d)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 30 sha1:5ea62c5da4fb836e7f2604599a885b0bb3e869ae
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd0.21'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbacada74119 "p"
user "root0.0\nYour\nMagesty "
description "undo 0.0\nmore detailed description\n\nzzz ..."
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieK'
15: U SHORT_BINSTRING 'G95IH'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (undo AoXLrKRERIA=)'
67: u SETITEMS (MARK at 3)
68: . STOP
highest protocol among opcodes = 1
obj 0000000000000007 30 sha1:b7f99b2ce2065b4f72e8fc26a74df15646bdb2ec
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c0.22'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbacb258bf66 "p"
user "root0.1\nYour\nMagesty "
description "undo 0.1\nmore detailed description\n\nzzz ...\t"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieV'
15: U SHORT_BINSTRING 'VHBGT'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (undo AoXLrKj1wsw=)'
67: u SETITEMS (MARK at 3)
68: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 30 sha1:a22db34b9606f4b252368aaff5bbe1c63d9662e0
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g0.11'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbacbbbbbc00 "p"
user ""
description "predelete 4"
extension ""
obj 0000000000000000 216 sha1:0e3381cabaabb6bc0e4d1a6a5832eccebb304d48
0: c GLOBAL 'persistent.mapping PersistentMapping'
38: q BINPUT 1
40: . STOP
highest protocol among opcodes = 1
41: } EMPTY_DICT
42: q BINPUT 2
44: U SHORT_BINSTRING 'data'
50: q BINPUT 3
52: } EMPTY_DICT
53: q BINPUT 4
55: ( MARK
56: U SHORT_BINSTRING 'a'
59: ( MARK
60: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x05'
70: q BINPUT 5
72: c GLOBAL '__main__ Object'
89: q BINPUT 6
91: t TUPLE (MARK at 59)
92: Q BINPERSID
93: U SHORT_BINSTRING 'c'
96: ( MARK
97: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x07'
107: q BINPUT 7
109: h BINGET 6
111: t TUPLE (MARK at 96)
112: Q BINPERSID
113: U SHORT_BINSTRING 'b'
116: ( MARK
117: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x08'
127: q BINPUT 8
129: h BINGET 6
131: t TUPLE (MARK at 116)
132: Q BINPERSID
133: U SHORT_BINSTRING 'e'
136: ( MARK
137: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x06'
147: q BINPUT 9
149: h BINGET 6
151: t TUPLE (MARK at 136)
152: Q BINPERSID
153: U SHORT_BINSTRING 'd'
156: ( MARK
157: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x02'
167: q BINPUT 10
169: h BINGET 6
171: t TUPLE (MARK at 156)
172: Q BINPERSID
173: U SHORT_BINSTRING 'g'
176: ( MARK
177: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x03'
187: q BINPUT 11
189: h BINGET 6
191: t TUPLE (MARK at 176)
192: Q BINPERSID
193: U SHORT_BINSTRING 'f'
196: ( MARK
197: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x01'
207: q BINPUT 12
209: h BINGET 6
211: t TUPLE (MARK at 196)
212: Q BINPERSID
213: u SETITEMS (MARK at 55)
214: s SETITEM
215: . STOP
highest protocol among opcodes = 1
obj 0000000000000008 28 sha1:0114e2c7254347656a74264daca4002aab0b92bd
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'b0*'
25: q BINPUT 2
27: . STOP
highest protocol among opcodes = 1
txn 0285cbad02222280 " "
user "user1.0"
description "step 1.0"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieE'
15: U SHORT_BINSTRING 'VAZ3U'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000006 29 sha1:3adac282ece77f4253eba514d593504ee09acd01
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e1.0'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad06d3a0cc " "
user "user1.1"
description "step 1.1"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieN'
15: U SHORT_BINSTRING 'GSV4I'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (b)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000008 29 sha1:2e161ce16352db93ec424c036f51835cb53f3f46
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'b1.1'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad0b851f19 " "
user "user1.2"
description "step 1.2"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieY'
15: U SHORT_BINSTRING 'A01OK'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (g)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 29 sha1:194903d579389ed7d12a59cd069a799715396192
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.2'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad10369d66 " "
user "user1.3"
description "step 1.3"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-generator'
17: q BINPUT 2
19: U SHORT_BINSTRING 'zodb/py2 (g)'
33: U SHORT_BINSTRING 'x-cookieW'
44: U SHORT_BINSTRING '1QPNP'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 29 sha1:bf720c5bc471031660183705d44cec2eae25b2f9
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.3'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad14e81bb3 " "
user "user1.4"
description "step 1.4"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieC'
15: U SHORT_BINSTRING 'J7L05'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (c)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000007 29 sha1:f966fbbc1d20f7d5b43756469e41c949bce1dc53
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c1.4'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad19999a00 " "
user "user1.5"
description "step 1.5"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieA'
15: U SHORT_BINSTRING 'CM15Z'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (f)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000001 29 sha1:cc22d7c945743d37c42ec631377918910c10874e
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f1.5'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad1e4b184c " "
user "user1.6"
description "step 1.6"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieI'
15: U SHORT_BINSTRING 'AH816'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (d)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 29 sha1:1c099e79efc9eab8a0109a0d800573127528f51f
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd1.6'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad22fc9699 " "
user "user1.7"
description "step 1.7"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieU'
15: U SHORT_BINSTRING 'BE3WH'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (c)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000007 29 sha1:97152848062c255b7ddaac0daaa568f25e51dfa5
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c1.7'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad27ae14e6 " "
user "user1.8"
description "step 1.8"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-generator'
17: q BINPUT 2
19: U SHORT_BINSTRING 'zodb/py2 (c)'
33: U SHORT_BINSTRING 'x-cookieW'
44: U SHORT_BINSTRING 'HPFAQ'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000007 29 sha1:a89d5deb109c139999e0ad2e651d4e96bbfe521d
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c1.8'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad2c5f9333 " "
user "user1.9"
description "step 1.9"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieQ'
15: U SHORT_BINSTRING 'DZM23'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000006 29 sha1:09130f38a02a237adda4a6538234fb50079af452
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e1.9'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad31111180 " "
user "user1.10"
description "step 1.10"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieO'
15: U SHORT_BINSTRING 'EIGHL'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (a)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000005 30 sha1:879db74eb8b155ce3f992d0ee87eddc0065f9be1
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a1.10'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad35c28fcc " "
user "user1.11"
description "step 1.11"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie2'
15: U SHORT_BINSTRING 'Z9RFC'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (c)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000007 30 sha1:103efb8fc416d13786d3bcb840e5c5f20059540d
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c1.11'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad3a740e19 " "
user "user1.12"
description "step 1.12"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie7'
15: U SHORT_BINSTRING 'WGO4E'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000006 30 sha1:2b480902c747e39d00399c0220dc8d084dec5e16
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e1.12'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad3f258c66 " "
user "user1.13"
description "step 1.13"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie5'
15: U SHORT_BINSTRING '757DJ'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (g)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 30 sha1:868b8048c34e9c2b2f59173abf2cd6754cf3e218
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.13'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad43d70ab3 " "
user "user1.14"
description "step 1.14"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieX'
15: U SHORT_BINSTRING '5EOVH'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (g)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 30 sha1:7c94da64991b085157f6494997ffefa172e32aa5
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.14'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad48888900 " "
user "user1.15"
description "step 1.15"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieC'
15: U SHORT_BINSTRING 'HO7L7'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (d)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 30 sha1:b49a0449d5c42818aceb01240fb47eead7e66586
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd1.15'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad4d3a074c " "
user "user1.16"
description "step 1.16"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieU'
15: U SHORT_BINSTRING 'T159S'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (g)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 30 sha1:7d6329e01a2ebd36646eceb2002374b0fd0425e2
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.16'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad51eb8599 " "
user "user1.17"
description "step 1.17"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie8'
15: U SHORT_BINSTRING 'T23V1'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (f)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000001 30 sha1:861912bc7fb63014314236718557d197f24449c0
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f1.17'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad569d03e6 " "
user "user1.18"
description "step 1.18"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieY'
15: U SHORT_BINSTRING 'UB55N'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (a)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000005 30 sha1:36c6d2c9c573999c5366d0628aea1e99e970f3b2
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a1.18'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad5b4e8233 " "
user "user1.19"
description "step 1.19"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieZ'
15: U SHORT_BINSTRING 'IKOSR'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (g)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 30 sha1:1df4e6e3506ec88e14feda48cfc74cfbc5917e7a
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.19'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad60000080 " "
user "user1.20"
description "step 1.20"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieS'
15: U SHORT_BINSTRING '7JLTH'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (g)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 30 sha1:5f165a8058fcb2dc2f831ef9e27800f73e0f0339
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.20'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad64b17ecc " "
user "user1.21"
description "step 1.21"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieI'
15: U SHORT_BINSTRING 'USN06'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000006 30 sha1:b0d027cb95e1a8ffd403cd6e8615a2c37cecb0f8
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e1.21'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad6962fd19 " "
user "user1.22"
description "step 1.22"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie2'
15: U SHORT_BINSTRING 'UXAET'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (a)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000005 30 sha1:5fe26f63145e7ad5ac7c2a6bc813e706c5548278
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a1.22'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad6e147b66 " "
user "user1.23"
description "step 1.23"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieH'
15: U SHORT_BINSTRING 'AT11F'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (a)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000005 30 sha1:68add208a3926fb6070b9edb3eb71c13ae9b46e6
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a1.23'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad72c5f9b3 " "
user "user1.24"
description "step 1.24"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieD'
15: U SHORT_BINSTRING 'O5ZEM'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (f)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000001 30 sha1:ff7f59ca92f892b3d1ca820e316fe08c52e3e6fb
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f1.24'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad77777800 " "
user "root1.0\nYour\nMagesty "
description "undo 1.0\nmore detailed description\n\nzzz ...\t"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie3'
15: U SHORT_BINSTRING 'G51MM'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (undo AoXLrW4Ue2Y=)'
67: u SETITEMS (MARK at 3)
68: . STOP
highest protocol among opcodes = 1
obj 0000000000000005 from 0285cbad6962fd19
txn 0285cbad7c28f64c " "
user "root1.1\nYour\nMagesty "
description "undo 1.1\nmore detailed description\n\nzzz ...\t\t"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieL'
15: U SHORT_BINSTRING 'CDRHV'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (undo AoXLrXLF+bM=)'
67: u SETITEMS (MARK at 3)
68: . STOP
highest protocol among opcodes = 1
obj 0000000000000001 from 0285cbad51eb8599
txn 0285cbad80da7499 " "
user "user"
description "cyclic reference"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie4'
15: U SHORT_BINSTRING 'C4OMS'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (cycle)'
55: u SETITEMS (MARK at 3)
56: . STOP
highest protocol among opcodes = 1
obj 0000000000000006 38 sha1:1020365e03971d321dac6e96d93197dbd4ea5ef5
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: ( MARK
21: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x06'
31: q BINPUT 2
33: h BINGET 1
35: t TUPLE (MARK at 20)
36: Q BINPERSID
37: . STOP
highest protocol among opcodes = 1
txn 0285cbad858bf2e6 " "
user ""
description "predelete 6"
extension ""
obj 0000000000000000 216 sha1:e52df57a1a7e7a410b55e334435c01a3df24a383
0: c GLOBAL 'persistent.mapping PersistentMapping'
38: q BINPUT 1
40: . STOP
highest protocol among opcodes = 1
41: } EMPTY_DICT
42: q BINPUT 2
44: U SHORT_BINSTRING 'data'
50: q BINPUT 3
52: } EMPTY_DICT
53: q BINPUT 4
55: ( MARK
56: U SHORT_BINSTRING 'a'
59: ( MARK
60: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x05'
70: q BINPUT 5
72: c GLOBAL '__main__ Object'
89: q BINPUT 6
91: t TUPLE (MARK at 59)
92: Q BINPERSID
93: U SHORT_BINSTRING 'c'
96: ( MARK
97: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x07'
107: q BINPUT 7
109: h BINGET 6
111: t TUPLE (MARK at 96)
112: Q BINPERSID
113: U SHORT_BINSTRING 'b'
116: ( MARK
117: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x08'
127: q BINPUT 8
129: h BINGET 6
131: t TUPLE (MARK at 116)
132: Q BINPERSID
133: U SHORT_BINSTRING 'e'
136: ( MARK
137: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\t'
147: q BINPUT 9
149: h BINGET 6
151: t TUPLE (MARK at 136)
152: Q BINPERSID
153: U SHORT_BINSTRING 'd'
156: ( MARK
157: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x02'
167: q BINPUT 10
169: h BINGET 6
171: t TUPLE (MARK at 156)
172: Q BINPERSID
173: U SHORT_BINSTRING 'g'
176: ( MARK
177: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x03'
187: q BINPUT 11
189: h BINGET 6
191: t TUPLE (MARK at 176)
192: Q BINPERSID
193: U SHORT_BINSTRING 'f'
196: ( MARK
197: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x01'
207: q BINPUT 12
209: h BINGET 6
211: t TUPLE (MARK at 196)
212: Q BINPERSID
213: u SETITEMS (MARK at 55)
214: s SETITEM
215: . STOP
highest protocol among opcodes = 1
obj 0000000000000009 28 sha1:3b252e9ea95eeadc26a6b5c770a23d05bd112dda
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e1*'
25: q BINPUT 2
27: . STOP
highest protocol among opcodes = 1
txn 0285cbad8a3d7133 " "
user "root1\nYour\nRoyal\nMagesty' \x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
description "delete 1\nalpha beta gamma'delta\"lambda\n\nqqq ..."
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieS'
15: U SHORT_BINSTRING 'XVOTI'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (delete 6)'
58: u SETITEMS (MARK at 3)
59: . STOP
highest protocol among opcodes = 1
obj 0000000000000006 delete
txn 0285cbadc740db19 " "
user "user2.0"
description "step 2.0"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie1'
15: U SHORT_BINSTRING 'GRGS2'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (f)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000001 29 sha1:612faa86436474f93c14f86d116a57517747c476
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f2.0'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadcbf25966 " "
user "user2.1"
description "step 2.1"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie3'
15: U SHORT_BINSTRING 'WYNK7'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (d)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 29 sha1:96562d858363b84c82def2a8fc04a4cb42d3413a
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.1'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadd0a3d7b3 " "
user "user2.2"
description "step 2.2"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieF'
15: U SHORT_BINSTRING 'SPFA4'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (g)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 29 sha1:3b869ef5e4e735ea1ff891d82b9bf06c74615548
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g2.2'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadd5555600 " "
user "user2.3"
description "step 2.3"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie1'
15: U SHORT_BINSTRING 'XE3RQ'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (g)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 29 sha1:4d24090b4af1df4928c48003e240fcce479b8c3e
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g2.3'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadda06d44c " "
user "user2.4"
description "step 2.4"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie2'
15: U SHORT_BINSTRING '1XYQ2'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000009 29 sha1:b2e207d32f670dc6e2947ccdb74f082ee3ede3e6
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.4'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbaddeb85299 " "
user "user2.5"
description "step 2.5"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieW'
15: U SHORT_BINSTRING 'C0ZT2'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (a)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000005 29 sha1:b8b6e7b20e5d14fa68393799e996c1015b02f7b1
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a2.5'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbade369d0e6 " "
user "user2.6"
description "step 2.6"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie0'
15: U SHORT_BINSTRING 'OX40D'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (b)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000008 29 sha1:fcb2bab868d6c0d33f9e263707dda8122fbab570
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'b2.6'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbade81b4f33 " "
user "user2.7"
description "step 2.7"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieY'
15: U SHORT_BINSTRING '64CY4'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (g)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 29 sha1:a0e7d235b6aca61b3cca5bfbf936488f0184bc2d
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g2.7'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadeccccd80 " "
user "user2.8"
description "step 2.8"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieZ'
15: U SHORT_BINSTRING 'AXYM6'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (d)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 29 sha1:61abc18235c7ae2758e68c0237058a8d4751b068
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.8'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadf17e4bcc " "
user "user2.9"
description "step 2.9"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie8'
15: U SHORT_BINSTRING '5WYSB'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000009 29 sha1:628b79ea2e15519f3f08f90aa7219abd8b294bec
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.9'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadf62fca19 " "
user "user2.10"
description "step 2.10"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie2'
15: U SHORT_BINSTRING 'F1402'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (c)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000007 30 sha1:e629c49eff07cb76cb8ab3845ff3e04d73855365
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c2.10'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbadfae14866 " "
user "user2.11"
description "step 2.11"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieG'
15: U SHORT_BINSTRING 'Q5FM3'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (d)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 30 sha1:daa50ef371185466d24a8fa012419005f317ecc2
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.11'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbadff92c6b3 " "
user "user2.12"
description "step 2.12"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie7'
15: U SHORT_BINSTRING '2EFQB'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (g)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000003 30 sha1:dc1e914e59a1105c9e9693ed188b4c341aa4ba62
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g2.12'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae04444500 " "
user "user2.13"
description "step 2.13"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieS'
15: U SHORT_BINSTRING 'YS9KO'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (d)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 30 sha1:cd81478defef89902c26c0dddc5788f1908a74c0
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.13'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae08f5c34c " "
user "user2.14"
description "step 2.14"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie5'
15: U SHORT_BINSTRING 'RF8GX'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (c)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000007 30 sha1:db76da01252a943596fa005ec9cd63f69173e004
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c2.14'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae0da74199 " "
user "user2.15"
description "step 2.15"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie0'
15: U SHORT_BINSTRING 'H70PM'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000009 30 sha1:a0bc38c9749dcd169315a40f29e040d6e0bb7a49
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.15'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae1258bfe6 " "
user "user2.16"
description "step 2.16"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-generator'
17: q BINPUT 2
19: U SHORT_BINSTRING 'zodb/py2 (f)'
33: U SHORT_BINSTRING 'x-cookieO'
44: U SHORT_BINSTRING 'MJ5PG'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000001 30 sha1:f1647d273249802c00eeeaba8441a60317e8d11a
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f2.16'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae170a3e33 " "
user "user2.17"
description "step 2.17"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie1'
15: U SHORT_BINSTRING 'RAZ4V'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (b)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000008 30 sha1:0896ced5230f94697eb75bdf6a4f2f724c05a277
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'b2.17'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae1bbbbc80 " "
user "user2.18"
description "step 2.18"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieR'
15: U SHORT_BINSTRING 'KE39A'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (d)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 30 sha1:5aa92a9c507dea204ecfd29bae0fd5116f6b6e29
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.18'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae206d3acc " "
user "user2.19"
description "step 2.19"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie8'
15: U SHORT_BINSTRING '1SBCJ'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000009 30 sha1:05c7d6f6c8db2d8f56fe206de3b58ee34882a385
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.19'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae251eb919 " "
user "user2.20"
description "step 2.20"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieJ'
15: U SHORT_BINSTRING 'EAIKM'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (b)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000008 30 sha1:463fd62a0f1d5eddb8dd33b90548d1edcaea4f1f
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'b2.20'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae29d03766 " "
user "user2.21"
description "step 2.21"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieM'
15: U SHORT_BINSTRING 'ESSAD'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000009 30 sha1:1667ebb222991128bb3b2fae4031d0b738ffaf07
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.21'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae2e81b5b3 " "
user "user2.22"
description "step 2.22"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieH'
15: U SHORT_BINSTRING 'DL5OC'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000009 30 sha1:4f3849aaba432a871263490c9d85827e11ca6616
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.22'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae33333400 " "
user "user2.23"
description "step 2.23"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieQ'
15: U SHORT_BINSTRING 'PBN2A'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (d)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 30 sha1:5a172383e2630caa2825d42d12c716e0758f147b
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.23'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae37e4b24c " "
user "user2.24"
description "step 2.24"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookie2'
15: U SHORT_BINSTRING '0GV0I'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (e)'
51: u SETITEMS (MARK at 3)
52: . STOP
highest protocol among opcodes = 1
obj 0000000000000009 30 sha1:843d2e27c77af902e52bcd28a1aca6781f5a76f7
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.24'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae3c963099 " "
user "root2.0\nYour\nMagesty "
description "undo 2.0\nmore detailed description\n\nzzz ...\t\t"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieM'
15: U SHORT_BINSTRING 'OQO01'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (undo AoXLrjMzNAA=)'
67: u SETITEMS (MARK at 3)
68: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 from 0285cbae1bbbbc80
txn 0285cbae4147aee6 " "
user "root2.1\nYour\nMagesty "
description "undo 2.1\nmore detailed description\n\nzzz ...\t\t\t"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieA'
15: U SHORT_BINSTRING 'VPQ8R'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (undo AoXLrjfkskw=)'
67: u SETITEMS (MARK at 3)
68: . STOP
highest protocol among opcodes = 1
obj 0000000000000009 from 0285cbae2e81b5b3
txn 0285cbae45f92d33 " "
user "user"
description "cyclic reference"
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-generator'
17: q BINPUT 2
19: U SHORT_BINSTRING 'zodb/py2 (cycle)'
37: U SHORT_BINSTRING 'x-cookieG'
48: U SHORT_BINSTRING 'B6FWF'
55: u SETITEMS (MARK at 3)
56: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 38 sha1:904fae1e4c96609a691b898ad74ef08e7fb5aaa7
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: ( MARK
21: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x02'
31: q BINPUT 2
33: h BINGET 1
35: t TUPLE (MARK at 20)
36: Q BINPERSID
37: . STOP
highest protocol among opcodes = 1
txn 0285cbae4aaaab80 " "
user ""
description "predelete 2"
extension ""
obj 0000000000000000 216 sha1:7882dd635a1acef70f13022812b160b9578baf85
0: c GLOBAL 'persistent.mapping PersistentMapping'
38: q BINPUT 1
40: . STOP
highest protocol among opcodes = 1
41: } EMPTY_DICT
42: q BINPUT 2
44: U SHORT_BINSTRING 'data'
50: q BINPUT 3
52: } EMPTY_DICT
53: q BINPUT 4
55: ( MARK
56: U SHORT_BINSTRING 'a'
59: ( MARK
60: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x05'
70: q BINPUT 5
72: c GLOBAL '__main__ Object'
89: q BINPUT 6
91: t TUPLE (MARK at 59)
92: Q BINPERSID
93: U SHORT_BINSTRING 'c'
96: ( MARK
97: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x07'
107: q BINPUT 7
109: h BINGET 6
111: t TUPLE (MARK at 96)
112: Q BINPERSID
113: U SHORT_BINSTRING 'b'
116: ( MARK
117: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x08'
127: q BINPUT 8
129: h BINGET 6
131: t TUPLE (MARK at 116)
132: Q BINPERSID
133: U SHORT_BINSTRING 'e'
136: ( MARK
137: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\t'
147: q BINPUT 9
149: h BINGET 6
151: t TUPLE (MARK at 136)
152: Q BINPERSID
153: U SHORT_BINSTRING 'd'
156: ( MARK
157: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\n'
167: q BINPUT 10
169: h BINGET 6
171: t TUPLE (MARK at 156)
172: Q BINPERSID
173: U SHORT_BINSTRING 'g'
176: ( MARK
177: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x03'
187: q BINPUT 11
189: h BINGET 6
191: t TUPLE (MARK at 176)
192: Q BINPERSID
193: U SHORT_BINSTRING 'f'
196: ( MARK
197: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x01'
207: q BINPUT 12
209: h BINGET 6
211: t TUPLE (MARK at 196)
212: Q BINPERSID
213: u SETITEMS (MARK at 55)
214: s SETITEM
215: . STOP
highest protocol among opcodes = 1
obj 000000000000000a 28 sha1:478ad7253b50ce7b4c5349efb704442d05acce45
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2*'
25: q BINPUT 2
27: . STOP
highest protocol among opcodes = 1
txn 0285cbae4f5c29cc " "
user "root2\nYour\nRoyal\nMagesty' \x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
description "delete 2\nalpha beta gamma'delta\"lambda\n\nqqq ..."
extension
0: } EMPTY_DICT
1: q BINPUT 1
3: ( MARK
4: U SHORT_BINSTRING 'x-cookieT'
15: U SHORT_BINSTRING '4WFSD'
22: U SHORT_BINSTRING 'x-generator'
35: q BINPUT 2
37: U SHORT_BINSTRING 'zodb/py2 (delete 2)'
58: u SETITEMS (MARK at 3)
59: . STOP
highest protocol among opcodes = 1
obj 0000000000000002 delete
Class Name,T.Count,T.Bytes,Pct,AvgSize,C.Count,C.Bytes,O.Count,O.Bytes
persistent.mapping.PersistentMapping,3,648,25.038640%,216.000000,1,216,2,432
__main__.Object,65,1940,74.961360%,29.846154,9,283,56,1657
txn 0285cbac70a3d733 "p"
user "user0.12"
description "step 0.12"
extension ""
obj 0000000000000001 30 sha1:c87b1285835babda2831d313d179182c61287a3d
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f0.12'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbac7eb85219 "p"
user "user0.15"
description "step 0.15"
extension ""
obj 0000000000000006 30 sha1:74e173cf15c85769bfffccb80608769cb4cc5467
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e0.15'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbac917e4b4c "p"
user "user0.19"
description "step 0.19"
extension ""
obj 0000000000000005 30 sha1:f5520fbf9f730d097d5995cdb3cb15b65e6ec432
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a0.19'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbac9ae147e6 "p"
user "user0.21"
description "step 0.21"
extension ""
obj 0000000000000002 30 sha1:5ea62c5da4fb836e7f2604599a885b0bb3e869ae
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd0.21'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbacada74119 "p"
user "root0.0\nYour\nMagesty "
description "undo 0.0\nmore detailed description\n\nzzz ..."
extension ""
obj 0000000000000007 30 sha1:b7f99b2ce2065b4f72e8fc26a74df15646bdb2ec
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c0.22'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbacb258bf66 "p"
user "root0.1\nYour\nMagesty "
description "undo 0.1\nmore detailed description\n\nzzz ...\t"
extension ""
obj 0000000000000003 30 sha1:a22db34b9606f4b252368aaff5bbe1c63d9662e0
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g0.11'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbacbbbbbc00 "p"
user ""
description "predelete 4"
extension ""
obj 0000000000000000 216 sha1:0e3381cabaabb6bc0e4d1a6a5832eccebb304d48
0: c GLOBAL 'persistent.mapping PersistentMapping'
38: q BINPUT 1
40: . STOP
highest protocol among opcodes = 1
41: } EMPTY_DICT
42: q BINPUT 2
44: U SHORT_BINSTRING 'data'
50: q BINPUT 3
52: } EMPTY_DICT
53: q BINPUT 4
55: ( MARK
56: U SHORT_BINSTRING 'a'
59: ( MARK
60: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x05'
70: q BINPUT 5
72: c GLOBAL '__main__ Object'
89: q BINPUT 6
91: t TUPLE (MARK at 59)
92: Q BINPERSID
93: U SHORT_BINSTRING 'c'
96: ( MARK
97: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x07'
107: q BINPUT 7
109: h BINGET 6
111: t TUPLE (MARK at 96)
112: Q BINPERSID
113: U SHORT_BINSTRING 'b'
116: ( MARK
117: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x08'
127: q BINPUT 8
129: h BINGET 6
131: t TUPLE (MARK at 116)
132: Q BINPERSID
133: U SHORT_BINSTRING 'e'
136: ( MARK
137: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x06'
147: q BINPUT 9
149: h BINGET 6
151: t TUPLE (MARK at 136)
152: Q BINPERSID
153: U SHORT_BINSTRING 'd'
156: ( MARK
157: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x02'
167: q BINPUT 10
169: h BINGET 6
171: t TUPLE (MARK at 156)
172: Q BINPERSID
173: U SHORT_BINSTRING 'g'
176: ( MARK
177: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x03'
187: q BINPUT 11
189: h BINGET 6
191: t TUPLE (MARK at 176)
192: Q BINPERSID
193: U SHORT_BINSTRING 'f'
196: ( MARK
197: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x01'
207: q BINPUT 12
209: h BINGET 6
211: t TUPLE (MARK at 196)
212: Q BINPERSID
213: u SETITEMS (MARK at 55)
214: s SETITEM
215: . STOP
highest protocol among opcodes = 1
obj 0000000000000008 28 sha1:0114e2c7254347656a74264daca4002aab0b92bd
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'b0*'
25: q BINPUT 2
27: . STOP
highest protocol among opcodes = 1
txn 0285cbad02222280 " "
user "user1.0"
description "step 1.0"
extension ""
obj 0000000000000006 29 sha1:3adac282ece77f4253eba514d593504ee09acd01
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e1.0'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad06d3a0cc " "
user "user1.1"
description "step 1.1"
extension ""
obj 0000000000000008 29 sha1:2e161ce16352db93ec424c036f51835cb53f3f46
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'b1.1'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad0b851f19 " "
user "user1.2"
description "step 1.2"
extension ""
obj 0000000000000003 29 sha1:194903d579389ed7d12a59cd069a799715396192
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.2'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad10369d66 " "
user "user1.3"
description "step 1.3"
extension ""
obj 0000000000000003 29 sha1:bf720c5bc471031660183705d44cec2eae25b2f9
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.3'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad14e81bb3 " "
user "user1.4"
description "step 1.4"
extension ""
obj 0000000000000007 29 sha1:f966fbbc1d20f7d5b43756469e41c949bce1dc53
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c1.4'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad19999a00 " "
user "user1.5"
description "step 1.5"
extension ""
obj 0000000000000001 29 sha1:cc22d7c945743d37c42ec631377918910c10874e
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f1.5'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad1e4b184c " "
user "user1.6"
description "step 1.6"
extension ""
obj 0000000000000002 29 sha1:1c099e79efc9eab8a0109a0d800573127528f51f
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd1.6'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad22fc9699 " "
user "user1.7"
description "step 1.7"
extension ""
obj 0000000000000007 29 sha1:97152848062c255b7ddaac0daaa568f25e51dfa5
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c1.7'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad27ae14e6 " "
user "user1.8"
description "step 1.8"
extension ""
obj 0000000000000007 29 sha1:a89d5deb109c139999e0ad2e651d4e96bbfe521d
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c1.8'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad2c5f9333 " "
user "user1.9"
description "step 1.9"
extension ""
obj 0000000000000006 29 sha1:09130f38a02a237adda4a6538234fb50079af452
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e1.9'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbad31111180 " "
user "user1.10"
description "step 1.10"
extension ""
obj 0000000000000005 30 sha1:879db74eb8b155ce3f992d0ee87eddc0065f9be1
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a1.10'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad35c28fcc " "
user "user1.11"
description "step 1.11"
extension ""
obj 0000000000000007 30 sha1:103efb8fc416d13786d3bcb840e5c5f20059540d
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c1.11'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad3a740e19 " "
user "user1.12"
description "step 1.12"
extension ""
obj 0000000000000006 30 sha1:2b480902c747e39d00399c0220dc8d084dec5e16
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e1.12'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad3f258c66 " "
user "user1.13"
description "step 1.13"
extension ""
obj 0000000000000003 30 sha1:868b8048c34e9c2b2f59173abf2cd6754cf3e218
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.13'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad43d70ab3 " "
user "user1.14"
description "step 1.14"
extension ""
obj 0000000000000003 30 sha1:7c94da64991b085157f6494997ffefa172e32aa5
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.14'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad48888900 " "
user "user1.15"
description "step 1.15"
extension ""
obj 0000000000000002 30 sha1:b49a0449d5c42818aceb01240fb47eead7e66586
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd1.15'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad4d3a074c " "
user "user1.16"
description "step 1.16"
extension ""
obj 0000000000000003 30 sha1:7d6329e01a2ebd36646eceb2002374b0fd0425e2
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.16'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad51eb8599 " "
user "user1.17"
description "step 1.17"
extension ""
obj 0000000000000001 30 sha1:861912bc7fb63014314236718557d197f24449c0
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f1.17'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad569d03e6 " "
user "user1.18"
description "step 1.18"
extension ""
obj 0000000000000005 30 sha1:36c6d2c9c573999c5366d0628aea1e99e970f3b2
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a1.18'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad5b4e8233 " "
user "user1.19"
description "step 1.19"
extension ""
obj 0000000000000003 30 sha1:1df4e6e3506ec88e14feda48cfc74cfbc5917e7a
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.19'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad60000080 " "
user "user1.20"
description "step 1.20"
extension ""
obj 0000000000000003 30 sha1:5f165a8058fcb2dc2f831ef9e27800f73e0f0339
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g1.20'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad64b17ecc " "
user "user1.21"
description "step 1.21"
extension ""
obj 0000000000000006 30 sha1:b0d027cb95e1a8ffd403cd6e8615a2c37cecb0f8
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e1.21'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad6962fd19 " "
user "user1.22"
description "step 1.22"
extension ""
obj 0000000000000005 30 sha1:5fe26f63145e7ad5ac7c2a6bc813e706c5548278
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a1.22'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad6e147b66 " "
user "user1.23"
description "step 1.23"
extension ""
obj 0000000000000005 30 sha1:68add208a3926fb6070b9edb3eb71c13ae9b46e6
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a1.23'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad72c5f9b3 " "
user "user1.24"
description "step 1.24"
extension ""
obj 0000000000000001 30 sha1:ff7f59ca92f892b3d1ca820e316fe08c52e3e6fb
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f1.24'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbad77777800 " "
user "root1.0\nYour\nMagesty "
description "undo 1.0\nmore detailed description\n\nzzz ...\t"
extension ""
obj 0000000000000005 from 0285cbad6962fd19
txn 0285cbad7c28f64c " "
user "root1.1\nYour\nMagesty "
description "undo 1.1\nmore detailed description\n\nzzz ...\t\t"
extension ""
obj 0000000000000001 from 0285cbad51eb8599
txn 0285cbad80da7499 " "
user "user"
description "cyclic reference"
extension ""
obj 0000000000000006 38 sha1:1020365e03971d321dac6e96d93197dbd4ea5ef5
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: ( MARK
21: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x06'
31: q BINPUT 2
33: h BINGET 1
35: t TUPLE (MARK at 20)
36: Q BINPERSID
37: . STOP
highest protocol among opcodes = 1
txn 0285cbad858bf2e6 " "
user ""
description "predelete 6"
extension ""
obj 0000000000000000 216 sha1:e52df57a1a7e7a410b55e334435c01a3df24a383
0: c GLOBAL 'persistent.mapping PersistentMapping'
38: q BINPUT 1
40: . STOP
highest protocol among opcodes = 1
41: } EMPTY_DICT
42: q BINPUT 2
44: U SHORT_BINSTRING 'data'
50: q BINPUT 3
52: } EMPTY_DICT
53: q BINPUT 4
55: ( MARK
56: U SHORT_BINSTRING 'a'
59: ( MARK
60: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x05'
70: q BINPUT 5
72: c GLOBAL '__main__ Object'
89: q BINPUT 6
91: t TUPLE (MARK at 59)
92: Q BINPERSID
93: U SHORT_BINSTRING 'c'
96: ( MARK
97: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x07'
107: q BINPUT 7
109: h BINGET 6
111: t TUPLE (MARK at 96)
112: Q BINPERSID
113: U SHORT_BINSTRING 'b'
116: ( MARK
117: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x08'
127: q BINPUT 8
129: h BINGET 6
131: t TUPLE (MARK at 116)
132: Q BINPERSID
133: U SHORT_BINSTRING 'e'
136: ( MARK
137: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\t'
147: q BINPUT 9
149: h BINGET 6
151: t TUPLE (MARK at 136)
152: Q BINPERSID
153: U SHORT_BINSTRING 'd'
156: ( MARK
157: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x02'
167: q BINPUT 10
169: h BINGET 6
171: t TUPLE (MARK at 156)
172: Q BINPERSID
173: U SHORT_BINSTRING 'g'
176: ( MARK
177: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x03'
187: q BINPUT 11
189: h BINGET 6
191: t TUPLE (MARK at 176)
192: Q BINPERSID
193: U SHORT_BINSTRING 'f'
196: ( MARK
197: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x01'
207: q BINPUT 12
209: h BINGET 6
211: t TUPLE (MARK at 196)
212: Q BINPERSID
213: u SETITEMS (MARK at 55)
214: s SETITEM
215: . STOP
highest protocol among opcodes = 1
obj 0000000000000009 28 sha1:3b252e9ea95eeadc26a6b5c770a23d05bd112dda
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e1*'
25: q BINPUT 2
27: . STOP
highest protocol among opcodes = 1
txn 0285cbad8a3d7133 " "
user "root1\nYour\nRoyal\nMagesty' \x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
description "delete 1\nalpha beta gamma'delta\"lambda\n\nqqq ..."
extension ""
obj 0000000000000006 delete
txn 0285cbadc740db19 " "
user "user2.0"
description "step 2.0"
extension ""
obj 0000000000000001 29 sha1:612faa86436474f93c14f86d116a57517747c476
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f2.0'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadcbf25966 " "
user "user2.1"
description "step 2.1"
extension ""
obj 0000000000000002 29 sha1:96562d858363b84c82def2a8fc04a4cb42d3413a
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.1'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadd0a3d7b3 " "
user "user2.2"
description "step 2.2"
extension ""
obj 0000000000000003 29 sha1:3b869ef5e4e735ea1ff891d82b9bf06c74615548
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g2.2'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadd5555600 " "
user "user2.3"
description "step 2.3"
extension ""
obj 0000000000000003 29 sha1:4d24090b4af1df4928c48003e240fcce479b8c3e
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g2.3'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadda06d44c " "
user "user2.4"
description "step 2.4"
extension ""
obj 0000000000000009 29 sha1:b2e207d32f670dc6e2947ccdb74f082ee3ede3e6
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.4'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbaddeb85299 " "
user "user2.5"
description "step 2.5"
extension ""
obj 0000000000000005 29 sha1:b8b6e7b20e5d14fa68393799e996c1015b02f7b1
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'a2.5'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbade369d0e6 " "
user "user2.6"
description "step 2.6"
extension ""
obj 0000000000000008 29 sha1:fcb2bab868d6c0d33f9e263707dda8122fbab570
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'b2.6'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbade81b4f33 " "
user "user2.7"
description "step 2.7"
extension ""
obj 0000000000000003 29 sha1:a0e7d235b6aca61b3cca5bfbf936488f0184bc2d
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g2.7'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadeccccd80 " "
user "user2.8"
description "step 2.8"
extension ""
obj 0000000000000002 29 sha1:61abc18235c7ae2758e68c0237058a8d4751b068
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.8'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadf17e4bcc " "
user "user2.9"
description "step 2.9"
extension ""
obj 0000000000000009 29 sha1:628b79ea2e15519f3f08f90aa7219abd8b294bec
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.9'
26: q BINPUT 2
28: . STOP
highest protocol among opcodes = 1
txn 0285cbadf62fca19 " "
user "user2.10"
description "step 2.10"
extension ""
obj 0000000000000007 30 sha1:e629c49eff07cb76cb8ab3845ff3e04d73855365
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c2.10'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbadfae14866 " "
user "user2.11"
description "step 2.11"
extension ""
obj 0000000000000002 30 sha1:daa50ef371185466d24a8fa012419005f317ecc2
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.11'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbadff92c6b3 " "
user "user2.12"
description "step 2.12"
extension ""
obj 0000000000000003 30 sha1:dc1e914e59a1105c9e9693ed188b4c341aa4ba62
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'g2.12'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae04444500 " "
user "user2.13"
description "step 2.13"
extension ""
obj 0000000000000002 30 sha1:cd81478defef89902c26c0dddc5788f1908a74c0
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.13'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae08f5c34c " "
user "user2.14"
description "step 2.14"
extension ""
obj 0000000000000007 30 sha1:db76da01252a943596fa005ec9cd63f69173e004
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'c2.14'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae0da74199 " "
user "user2.15"
description "step 2.15"
extension ""
obj 0000000000000009 30 sha1:a0bc38c9749dcd169315a40f29e040d6e0bb7a49
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.15'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae1258bfe6 " "
user "user2.16"
description "step 2.16"
extension ""
obj 0000000000000001 30 sha1:f1647d273249802c00eeeaba8441a60317e8d11a
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'f2.16'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae170a3e33 " "
user "user2.17"
description "step 2.17"
extension ""
obj 0000000000000008 30 sha1:0896ced5230f94697eb75bdf6a4f2f724c05a277
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'b2.17'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae1bbbbc80 " "
user "user2.18"
description "step 2.18"
extension ""
obj 0000000000000002 30 sha1:5aa92a9c507dea204ecfd29bae0fd5116f6b6e29
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.18'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae206d3acc " "
user "user2.19"
description "step 2.19"
extension ""
obj 0000000000000009 30 sha1:05c7d6f6c8db2d8f56fe206de3b58ee34882a385
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.19'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae251eb919 " "
user "user2.20"
description "step 2.20"
extension ""
obj 0000000000000008 30 sha1:463fd62a0f1d5eddb8dd33b90548d1edcaea4f1f
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'b2.20'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae29d03766 " "
user "user2.21"
description "step 2.21"
extension ""
obj 0000000000000009 30 sha1:1667ebb222991128bb3b2fae4031d0b738ffaf07
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.21'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae2e81b5b3 " "
user "user2.22"
description "step 2.22"
extension ""
obj 0000000000000009 30 sha1:4f3849aaba432a871263490c9d85827e11ca6616
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.22'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae33333400 " "
user "user2.23"
description "step 2.23"
extension ""
obj 0000000000000002 30 sha1:5a172383e2630caa2825d42d12c716e0758f147b
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2.23'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae37e4b24c " "
user "user2.24"
description "step 2.24"
extension ""
obj 0000000000000009 30 sha1:843d2e27c77af902e52bcd28a1aca6781f5a76f7
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'e2.24'
27: q BINPUT 2
29: . STOP
highest protocol among opcodes = 1
txn 0285cbae3c963099 " "
user "root2.0\nYour\nMagesty "
description "undo 2.0\nmore detailed description\n\nzzz ...\t\t"
extension ""
obj 0000000000000002 from 0285cbae1bbbbc80
txn 0285cbae4147aee6 " "
user "root2.1\nYour\nMagesty "
description "undo 2.1\nmore detailed description\n\nzzz ...\t\t\t"
extension ""
obj 0000000000000009 from 0285cbae2e81b5b3
txn 0285cbae45f92d33 " "
user "user"
description "cyclic reference"
extension ""
obj 0000000000000002 38 sha1:904fae1e4c96609a691b898ad74ef08e7fb5aaa7
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: ( MARK
21: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x02'
31: q BINPUT 2
33: h BINGET 1
35: t TUPLE (MARK at 20)
36: Q BINPERSID
37: . STOP
highest protocol among opcodes = 1
txn 0285cbae4aaaab80 " "
user ""
description "predelete 2"
extension ""
obj 0000000000000000 216 sha1:7882dd635a1acef70f13022812b160b9578baf85
0: c GLOBAL 'persistent.mapping PersistentMapping'
38: q BINPUT 1
40: . STOP
highest protocol among opcodes = 1
41: } EMPTY_DICT
42: q BINPUT 2
44: U SHORT_BINSTRING 'data'
50: q BINPUT 3
52: } EMPTY_DICT
53: q BINPUT 4
55: ( MARK
56: U SHORT_BINSTRING 'a'
59: ( MARK
60: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x05'
70: q BINPUT 5
72: c GLOBAL '__main__ Object'
89: q BINPUT 6
91: t TUPLE (MARK at 59)
92: Q BINPERSID
93: U SHORT_BINSTRING 'c'
96: ( MARK
97: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x07'
107: q BINPUT 7
109: h BINGET 6
111: t TUPLE (MARK at 96)
112: Q BINPERSID
113: U SHORT_BINSTRING 'b'
116: ( MARK
117: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x08'
127: q BINPUT 8
129: h BINGET 6
131: t TUPLE (MARK at 116)
132: Q BINPERSID
133: U SHORT_BINSTRING 'e'
136: ( MARK
137: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\t'
147: q BINPUT 9
149: h BINGET 6
151: t TUPLE (MARK at 136)
152: Q BINPERSID
153: U SHORT_BINSTRING 'd'
156: ( MARK
157: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\n'
167: q BINPUT 10
169: h BINGET 6
171: t TUPLE (MARK at 156)
172: Q BINPERSID
173: U SHORT_BINSTRING 'g'
176: ( MARK
177: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x03'
187: q BINPUT 11
189: h BINGET 6
191: t TUPLE (MARK at 176)
192: Q BINPERSID
193: U SHORT_BINSTRING 'f'
196: ( MARK
197: U SHORT_BINSTRING '\x00\x00\x00\x00\x00\x00\x00\x01'
207: q BINPUT 12
209: h BINGET 6
211: t TUPLE (MARK at 196)
212: Q BINPERSID
213: u SETITEMS (MARK at 55)
214: s SETITEM
215: . STOP
highest protocol among opcodes = 1
obj 000000000000000a 28 sha1:478ad7253b50ce7b4c5349efb704442d05acce45
0: c GLOBAL '__main__ Object'
17: q BINPUT 1
19: . STOP
highest protocol among opcodes = 1
20: U SHORT_BINSTRING 'd2*'
25: q BINPUT 2
27: . STOP
highest protocol among opcodes = 1
txn 0285cbae4f5c29cc " "
user "root2\nYour\nRoyal\nMagesty' \x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
description "delete 2\nalpha beta gamma'delta\"lambda\n\nqqq ..."
extension ""
obj 0000000000000002 delete
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment