[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [sbws/master] Update diagrams generated automatically



commit 3d20e3bc8c11b03e6398e18b6f168ecc084d406d
Author: juga0 <juga@xxxxxxxxxx>
Date:   Mon Oct 29 10:17:34 2018 +0000

    Update diagrams generated automatically
---
 docs/source/images/classes_sbws.svg  | 517 +++++++++++++----------------------
 docs/source/images/packages_sbws.svg | 330 +++++-----------------
 2 files changed, 262 insertions(+), 585 deletions(-)

diff --git a/docs/source/images/classes_sbws.svg b/docs/source/images/classes_sbws.svg
index 81aee3c..e9258e8 100644
--- a/docs/source/images/classes_sbws.svg
+++ b/docs/source/images/classes_sbws.svg
@@ -4,376 +4,243 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: classes_sbws Pages: 1 -->
-<svg width="2582pt" height="846pt"
- viewBox="0.00 0.00 2582.00 846.00" xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 842)">
+<svg width="1965pt" height="619pt"
+ viewBox="0.00 0.00 1965.00 619.00" xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 615)">
 <title>classes_sbws</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-842 2578,-842 2578,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-615 1961,-615 1961,4 -4,4"/>
 <!-- 0 -->
 <g id="node1" class="node"><title>0</title>
-<polygon fill="none" stroke="black" points="0,-362.5 0,-551.5 173,-551.5 173,-362.5 0,-362.5"/>
-<text text-anchor="middle" x="86.5" y="-536.3" font-family="Times,serif" font-size="14.00">CircuitBuilder</text>
-<polyline fill="none" stroke="black" points="0,-528.5 173,-528.5 "/>
-<text text-anchor="start" x="8" y="-513.3" font-family="Times,serif" font-size="14.00">built_circuits : set</text>
-<text text-anchor="start" x="8" y="-498.3" font-family="Times,serif" font-size="14.00">circuit_timeout</text>
-<text text-anchor="start" x="8" y="-483.3" font-family="Times,serif" font-size="14.00">close_circuits_on_exit : bool</text>
-<text text-anchor="start" x="8" y="-468.3" font-family="Times,serif" font-size="14.00">controller</text>
-<text text-anchor="start" x="8" y="-453.3" font-family="Times,serif" font-size="14.00">relay_list</text>
-<text text-anchor="start" x="8" y="-438.3" font-family="Times,serif" font-size="14.00">relays</text>
-<text text-anchor="start" x="8" y="-423.3" font-family="Times,serif" font-size="14.00">rng : SystemRandom</text>
-<polyline fill="none" stroke="black" points="0,-415.5 173,-415.5 "/>
-<text text-anchor="start" x="8" y="-400.3" font-family="Times,serif" font-size="14.00">build_circuit()</text>
-<text text-anchor="start" x="8" y="-385.3" font-family="Times,serif" font-size="14.00">close_circuit()</text>
-<text text-anchor="start" x="8" y="-370.3" font-family="Times,serif" font-size="14.00">get_circuit_path()</text>
+<polygon fill="none" stroke="black" points="0,-436.5 0,-610.5 173,-610.5 173,-436.5 0,-436.5"/>
+<text text-anchor="middle" x="86.5" y="-595.3" font-family="Times,serif" font-size="14.00">CircuitBuilder</text>
+<polyline fill="none" stroke="black" points="0,-587.5 173,-587.5 "/>
+<text text-anchor="start" x="8" y="-572.3" font-family="Times,serif" font-size="14.00">built_circuits : set</text>
+<text text-anchor="start" x="8" y="-557.3" font-family="Times,serif" font-size="14.00">circuit_timeout</text>
+<text text-anchor="start" x="8" y="-542.3" font-family="Times,serif" font-size="14.00">close_circuits_on_exit : bool</text>
+<text text-anchor="start" x="8" y="-527.3" font-family="Times,serif" font-size="14.00">controller</text>
+<text text-anchor="start" x="8" y="-512.3" font-family="Times,serif" font-size="14.00">relay_list</text>
+<text text-anchor="start" x="8" y="-497.3" font-family="Times,serif" font-size="14.00">relays</text>
+<text text-anchor="start" x="8" y="-482.3" font-family="Times,serif" font-size="14.00">rng : SystemRandom</text>
+<polyline fill="none" stroke="black" points="0,-474.5 173,-474.5 "/>
+<text text-anchor="start" x="8" y="-459.3" font-family="Times,serif" font-size="14.00">build_circuit()</text>
+<text text-anchor="start" x="8" y="-444.3" font-family="Times,serif" font-size="14.00">close_circuit()</text>
 </g>
 <!-- 1 -->
 <g id="node2" class="node"><title>1</title>
-<polygon fill="none" stroke="black" points="165.5,-98 165.5,-227 259.5,-227 259.5,-98 165.5,-98"/>
-<text text-anchor="middle" x="212.5" y="-211.8" font-family="Times,serif" font-size="14.00">Destination</text>
-<polyline fill="none" stroke="black" points="165.5,-204 259.5,-204 "/>
-<text text-anchor="start" x="173.5" y="-188.8" font-family="Times,serif" font-size="14.00">hostname</text>
-<text text-anchor="start" x="173.5" y="-173.8" font-family="Times,serif" font-size="14.00">port</text>
-<text text-anchor="start" x="173.5" y="-158.8" font-family="Times,serif" font-size="14.00">url</text>
-<text text-anchor="start" x="173.5" y="-143.8" font-family="Times,serif" font-size="14.00">verify</text>
-<polyline fill="none" stroke="black" points="165.5,-136 259.5,-136 "/>
-<text text-anchor="start" x="173.5" y="-120.8" font-family="Times,serif" font-size="14.00">from_config()</text>
-<text text-anchor="start" x="173.5" y="-105.8" font-family="Times,serif" font-size="14.00">is_usable()</text>
+<polygon fill="none" stroke="black" points="165.5,-135.5 165.5,-264.5 259.5,-264.5 259.5,-135.5 165.5,-135.5"/>
+<text text-anchor="middle" x="212.5" y="-249.3" font-family="Times,serif" font-size="14.00">Destination</text>
+<polyline fill="none" stroke="black" points="165.5,-241.5 259.5,-241.5 "/>
+<text text-anchor="start" x="173.5" y="-226.3" font-family="Times,serif" font-size="14.00">hostname</text>
+<text text-anchor="start" x="173.5" y="-211.3" font-family="Times,serif" font-size="14.00">port</text>
+<text text-anchor="start" x="173.5" y="-196.3" font-family="Times,serif" font-size="14.00">url</text>
+<text text-anchor="start" x="173.5" y="-181.3" font-family="Times,serif" font-size="14.00">verify</text>
+<polyline fill="none" stroke="black" points="165.5,-173.5 259.5,-173.5 "/>
+<text text-anchor="start" x="173.5" y="-158.3" font-family="Times,serif" font-size="14.00">from_config()</text>
+<text text-anchor="start" x="173.5" y="-143.3" font-family="Times,serif" font-size="14.00">is_usable()</text>
 </g>
 <!-- 2 -->
 <g id="node3" class="node"><title>2</title>
-<polygon fill="none" stroke="black" points="277.5,-120 277.5,-205 377.5,-205 377.5,-120 277.5,-120"/>
-<text text-anchor="middle" x="327.5" y="-189.8" font-family="Times,serif" font-size="14.00">DestinationList</text>
-<polyline fill="none" stroke="black" points="277.5,-182 377.5,-182 "/>
-<polyline fill="none" stroke="black" points="277.5,-158 377.5,-158 "/>
-<text text-anchor="start" x="285.5" y="-142.8" font-family="Times,serif" font-size="14.00">from_config()</text>
-<text text-anchor="start" x="285.5" y="-127.8" font-family="Times,serif" font-size="14.00">next()</text>
+<polygon fill="none" stroke="black" points="277.5,-157.5 277.5,-242.5 377.5,-242.5 377.5,-157.5 277.5,-157.5"/>
+<text text-anchor="middle" x="327.5" y="-227.3" font-family="Times,serif" font-size="14.00">DestinationList</text>
+<polyline fill="none" stroke="black" points="277.5,-219.5 377.5,-219.5 "/>
+<polyline fill="none" stroke="black" points="277.5,-195.5 377.5,-195.5 "/>
+<text text-anchor="start" x="285.5" y="-180.3" font-family="Times,serif" font-size="14.00">from_config()</text>
+<text text-anchor="start" x="285.5" y="-165.3" font-family="Times,serif" font-size="14.00">next()</text>
 </g>
 <!-- 3 -->
 <g id="node4" class="node"><title>3</title>
-<polygon fill="none" stroke="black" points="395.5,-127.5 395.5,-197.5 491.5,-197.5 491.5,-127.5 395.5,-127.5"/>
-<text text-anchor="middle" x="443.5" y="-182.3" font-family="Times,serif" font-size="14.00">DirectoryLock</text>
-<polyline fill="none" stroke="black" points="395.5,-174.5 491.5,-174.5 "/>
-<polyline fill="none" stroke="black" points="395.5,-150.5 491.5,-150.5 "/>
-<text text-anchor="middle" x="443.5" y="-135.3" font-family="Times,serif" font-size="14.00"> </text>
+<polygon fill="none" stroke="black" points="395.5,-165 395.5,-235 491.5,-235 491.5,-165 395.5,-165"/>
+<text text-anchor="middle" x="443.5" y="-219.8" font-family="Times,serif" font-size="14.00">DirectoryLock</text>
+<polyline fill="none" stroke="black" points="395.5,-212 491.5,-212 "/>
+<polyline fill="none" stroke="black" points="395.5,-188 491.5,-188 "/>
+<text text-anchor="middle" x="443.5" y="-172.8" font-family="Times,serif" font-size="14.00"> </text>
 </g>
-<!-- 21 -->
-<g id="node22" class="node"><title>21</title>
-<polygon fill="none" stroke="black" points="463,-422 463,-492 522,-492 522,-422 463,-422"/>
-<text text-anchor="middle" x="492.5" y="-476.8" font-family="Times,serif" font-size="14.00">_FLock</text>
-<polyline fill="none" stroke="black" points="463,-469 522,-469 "/>
-<polyline fill="none" stroke="black" points="463,-445 522,-445 "/>
-<text text-anchor="middle" x="492.5" y="-429.8" font-family="Times,serif" font-size="14.00"> </text>
+<!-- 14 -->
+<g id="node15" class="node"><title>14</title>
+<polygon fill="none" stroke="black" points="463,-488.5 463,-558.5 522,-558.5 522,-488.5 463,-488.5"/>
+<text text-anchor="middle" x="492.5" y="-543.3" font-family="Times,serif" font-size="14.00">_FLock</text>
+<polyline fill="none" stroke="black" points="463,-535.5 522,-535.5 "/>
+<polyline fill="none" stroke="black" points="463,-511.5 522,-511.5 "/>
+<text text-anchor="middle" x="492.5" y="-496.3" font-family="Times,serif" font-size="14.00"> </text>
 </g>
-<!-- 3&#45;&gt;21 -->
-<g id="edge1" class="edge"><title>3&#45;&gt;21</title>
-<path fill="none" stroke="black" d="M449.217,-197.626C458.1,-250.653 475.217,-352.828 485.054,-411.552"/>
-<polygon fill="none" stroke="black" points="481.64,-412.355 486.744,-421.639 488.543,-411.198 481.64,-412.355"/>
+<!-- 3&#45;&gt;14 -->
+<g id="edge1" class="edge"><title>3&#45;&gt;14</title>
+<path fill="none" stroke="black" d="M448.697,-235.102C457.628,-293.7 475.879,-413.445 485.769,-478.338"/>
+<polygon fill="none" stroke="black" points="482.315,-478.906 487.282,-488.264 489.235,-477.851 482.315,-478.906"/>
 </g>
 <!-- 4 -->
 <g id="node5" class="node"><title>4</title>
-<polygon fill="none" stroke="black" points="510,-127.5 510,-197.5 575,-197.5 575,-127.5 510,-127.5"/>
-<text text-anchor="middle" x="542.5" y="-182.3" font-family="Times,serif" font-size="14.00">FileLock</text>
-<polyline fill="none" stroke="black" points="510,-174.5 575,-174.5 "/>
-<polyline fill="none" stroke="black" points="510,-150.5 575,-150.5 "/>
-<text text-anchor="middle" x="542.5" y="-135.3" font-family="Times,serif" font-size="14.00"> </text>
+<polygon fill="none" stroke="black" points="510,-165 510,-235 575,-235 575,-165 510,-165"/>
+<text text-anchor="middle" x="542.5" y="-219.8" font-family="Times,serif" font-size="14.00">FileLock</text>
+<polyline fill="none" stroke="black" points="510,-212 575,-212 "/>
+<polyline fill="none" stroke="black" points="510,-188 575,-188 "/>
+<text text-anchor="middle" x="542.5" y="-172.8" font-family="Times,serif" font-size="14.00"> </text>
 </g>
-<!-- 4&#45;&gt;21 -->
-<g id="edge2" class="edge"><title>4&#45;&gt;21</title>
-<path fill="none" stroke="black" d="M536.667,-197.626C527.602,-250.653 510.136,-352.828 500.098,-411.552"/>
-<polygon fill="none" stroke="black" points="496.609,-411.193 498.374,-421.639 503.509,-412.372 496.609,-411.193"/>
+<!-- 4&#45;&gt;14 -->
+<g id="edge2" class="edge"><title>4&#45;&gt;14</title>
+<path fill="none" stroke="black" d="M537.196,-235.102C528.083,-293.7 509.46,-413.445 499.368,-478.338"/>
+<polygon fill="none" stroke="black" points="495.903,-477.845 497.824,-488.264 502.82,-478.921 495.903,-477.845"/>
 </g>
 <!-- 5 -->
 <g id="node6" class="node"><title>5</title>
-<polygon fill="none" stroke="black" points="25.5,-127.5 25.5,-197.5 147.5,-197.5 147.5,-127.5 25.5,-127.5"/>
-<text text-anchor="middle" x="86.5" y="-182.3" font-family="Times,serif" font-size="14.00">GapsCircuitBuilder</text>
-<polyline fill="none" stroke="black" points="25.5,-174.5 147.5,-174.5 "/>
-<polyline fill="none" stroke="black" points="25.5,-150.5 147.5,-150.5 "/>
-<text text-anchor="start" x="33.5" y="-135.3" font-family="Times,serif" font-size="14.00">build_circuit()</text>
+<polygon fill="none" stroke="black" points="25.5,-165 25.5,-235 147.5,-235 147.5,-165 25.5,-165"/>
+<text text-anchor="middle" x="86.5" y="-219.8" font-family="Times,serif" font-size="14.00">GapsCircuitBuilder</text>
+<polyline fill="none" stroke="black" points="25.5,-212 147.5,-212 "/>
+<polyline fill="none" stroke="black" points="25.5,-188 147.5,-188 "/>
+<text text-anchor="start" x="33.5" y="-172.8" font-family="Times,serif" font-size="14.00">build_circuit()</text>
 </g>
 <!-- 5&#45;&gt;0 -->
 <g id="edge3" class="edge"><title>5&#45;&gt;0</title>
-<path fill="none" stroke="black" d="M86.5,-197.626C86.5,-235.434 86.5,-298.228 86.5,-352.442"/>
-<polygon fill="none" stroke="black" points="83.0001,-352.457 86.5,-362.457 90.0001,-352.457 83.0001,-352.457"/>
+<path fill="none" stroke="black" d="M86.5,-235.102C86.5,-280.201 86.5,-361.52 86.5,-426.176"/>
+<polygon fill="none" stroke="black" points="83.0001,-426.402 86.5,-436.402 90.0001,-426.402 83.0001,-426.402"/>
 </g>
 <!-- 6 -->
 <g id="node7" class="node"><title>6</title>
-<polygon fill="none" stroke="black" points="593.5,-128 593.5,-197 727.5,-197 727.5,-128 593.5,-128"/>
-<text text-anchor="middle" x="660.5" y="-181.8" font-family="Times,serif" font-size="14.00" fill="red">PathLengthException</text>
-<polyline fill="none" stroke="black" points="593.5,-174 727.5,-174 "/>
-<text text-anchor="start" x="601.5" y="-158.8" font-family="Times,serif" font-size="14.00" fill="red">errors : NoneType</text>
-<polyline fill="none" stroke="black" points="593.5,-151 727.5,-151 "/>
-<text text-anchor="middle" x="660.5" y="-135.8" font-family="Times,serif" font-size="14.00" fill="red"> </text>
+<polygon fill="none" stroke="black" points="593.5,-165.5 593.5,-234.5 727.5,-234.5 727.5,-165.5 593.5,-165.5"/>
+<text text-anchor="middle" x="660.5" y="-219.3" font-family="Times,serif" font-size="14.00" fill="red">PathLengthException</text>
+<polyline fill="none" stroke="black" points="593.5,-211.5 727.5,-211.5 "/>
+<text text-anchor="start" x="601.5" y="-196.3" font-family="Times,serif" font-size="14.00" fill="red">errors : NoneType</text>
+<polyline fill="none" stroke="black" points="593.5,-188.5 727.5,-188.5 "/>
+<text text-anchor="middle" x="660.5" y="-173.3" font-family="Times,serif" font-size="14.00" fill="red"> </text>
 </g>
 <!-- 7 -->
 <g id="node8" class="node"><title>7</title>
-<polygon fill="none" stroke="black" points="718,-392.5 718,-521.5 909,-521.5 909,-392.5 718,-392.5"/>
-<text text-anchor="middle" x="813.5" y="-506.3" font-family="Times,serif" font-size="14.00">Relay</text>
-<polyline fill="none" stroke="black" points="718,-498.5 909,-498.5 "/>
-<text text-anchor="start" x="726" y="-483.3" font-family="Times,serif" font-size="14.00">address</text>
-<text text-anchor="start" x="726" y="-468.3" font-family="Times,serif" font-size="14.00">average_bandwidth : NoneType</text>
-<text text-anchor="start" x="726" y="-453.3" font-family="Times,serif" font-size="14.00">fingerprint</text>
-<text text-anchor="start" x="726" y="-438.3" font-family="Times,serif" font-size="14.00">master_key_ed25519</text>
-<text text-anchor="start" x="726" y="-423.3" font-family="Times,serif" font-size="14.00">nickname</text>
-<polyline fill="none" stroke="black" points="718,-415.5 909,-415.5 "/>
-<text text-anchor="middle" x="813.5" y="-400.3" font-family="Times,serif" font-size="14.00"> </text>
-</g>
-<!-- 11 -->
-<g id="node12" class="node"><title>11</title>
-<polygon fill="none" stroke="black" points="930.5,-603.5 930.5,-837.5 1086.5,-837.5 1086.5,-603.5 930.5,-603.5"/>
-<text text-anchor="middle" x="1008.5" y="-822.3" font-family="Times,serif" font-size="14.00">Result</text>
-<polyline fill="none" stroke="black" points="930.5,-814.5 1086.5,-814.5 "/>
-<text text-anchor="start" x="938.5" y="-799.3" font-family="Times,serif" font-size="14.00">address</text>
-<text text-anchor="start" x="938.5" y="-784.3" font-family="Times,serif" font-size="14.00">circ</text>
-<text text-anchor="start" x="938.5" y="-769.3" font-family="Times,serif" font-size="14.00">dest_url</text>
-<text text-anchor="start" x="938.5" y="-754.3" font-family="Times,serif" font-size="14.00">fingerprint</text>
-<text text-anchor="start" x="938.5" y="-739.3" font-family="Times,serif" font-size="14.00">master_key_ed25519</text>
-<text text-anchor="start" x="938.5" y="-724.3" font-family="Times,serif" font-size="14.00">nickname</text>
-<text text-anchor="start" x="938.5" y="-709.3" font-family="Times,serif" font-size="14.00">relay_average_bandwidth</text>
-<text text-anchor="start" x="938.5" y="-694.3" font-family="Times,serif" font-size="14.00">scanner</text>
-<text text-anchor="start" x="938.5" y="-679.3" font-family="Times,serif" font-size="14.00">time</text>
-<text text-anchor="start" x="938.5" y="-664.3" font-family="Times,serif" font-size="14.00">type</text>
-<text text-anchor="start" x="938.5" y="-649.3" font-family="Times,serif" font-size="14.00">version</text>
-<polyline fill="none" stroke="black" points="930.5,-641.5 1086.5,-641.5 "/>
-<text text-anchor="start" x="938.5" y="-626.3" font-family="Times,serif" font-size="14.00">from_dict()</text>
-<text text-anchor="start" x="938.5" y="-611.3" font-family="Times,serif" font-size="14.00">to_dict()</text>
-</g>
-<!-- 7&#45;&gt;11 -->
-<g id="edge10" class="edge"><title>7&#45;&gt;11</title>
-<path fill="none" stroke="black" d="M860.953,-521.636C879.691,-546.764 901.812,-576.429 923.146,-605.038"/>
-<polygon fill="black" stroke="black" points="923.171,-605.071 929.964,-607.49 930.344,-614.691 923.551,-612.272 923.171,-605.071"/>
-<text text-anchor="middle" x="922.5" y="-573.8" font-family="Times,serif" font-size="14.00" fill="green">_relay</text>
+<polygon fill="none" stroke="black" points="746,-105.5 746,-294.5 879,-294.5 879,-105.5 746,-105.5"/>
+<text text-anchor="middle" x="812.5" y="-279.3" font-family="Times,serif" font-size="14.00">Relay</text>
+<polyline fill="none" stroke="black" points="746,-271.5 879,-271.5 "/>
+<text text-anchor="start" x="754" y="-256.3" font-family="Times,serif" font-size="14.00">address</text>
+<text text-anchor="start" x="754" y="-241.3" font-family="Times,serif" font-size="14.00">average_bandwidth</text>
+<text text-anchor="start" x="754" y="-226.3" font-family="Times,serif" font-size="14.00">bandwidth</text>
+<text text-anchor="start" x="754" y="-211.3" font-family="Times,serif" font-size="14.00">exit_policy</text>
+<text text-anchor="start" x="754" y="-196.3" font-family="Times,serif" font-size="14.00">fingerprint</text>
+<text text-anchor="start" x="754" y="-181.3" font-family="Times,serif" font-size="14.00">flags</text>
+<text text-anchor="start" x="754" y="-166.3" font-family="Times,serif" font-size="14.00">master_key_ed25519</text>
+<text text-anchor="start" x="754" y="-151.3" font-family="Times,serif" font-size="14.00">nickname</text>
+<text text-anchor="start" x="754" y="-136.3" font-family="Times,serif" font-size="14.00">observed_bandwidth</text>
+<polyline fill="none" stroke="black" points="746,-128.5 879,-128.5 "/>
+<text text-anchor="start" x="754" y="-113.3" font-family="Times,serif" font-size="14.00">can_exit_to()</text>
 </g>
 <!-- 8 -->
 <g id="node9" class="node"><title>8</title>
-<polygon fill="none" stroke="black" points="1245,-75.5 1245,-249.5 1378,-249.5 1378,-75.5 1245,-75.5"/>
-<text text-anchor="middle" x="1311.5" y="-234.3" font-family="Times,serif" font-size="14.00">Relay</text>
-<polyline fill="none" stroke="black" points="1245,-226.5 1378,-226.5 "/>
-<text text-anchor="start" x="1253" y="-211.3" font-family="Times,serif" font-size="14.00">address</text>
-<text text-anchor="start" x="1253" y="-196.3" font-family="Times,serif" font-size="14.00">average_bandwidth</text>
-<text text-anchor="start" x="1253" y="-181.3" font-family="Times,serif" font-size="14.00">bandwidth</text>
-<text text-anchor="start" x="1253" y="-166.3" font-family="Times,serif" font-size="14.00">exit_policy</text>
-<text text-anchor="start" x="1253" y="-151.3" font-family="Times,serif" font-size="14.00">fingerprint</text>
-<text text-anchor="start" x="1253" y="-136.3" font-family="Times,serif" font-size="14.00">flags</text>
-<text text-anchor="start" x="1253" y="-121.3" font-family="Times,serif" font-size="14.00">master_key_ed25519</text>
-<text text-anchor="start" x="1253" y="-106.3" font-family="Times,serif" font-size="14.00">nickname</text>
-<polyline fill="none" stroke="black" points="1245,-98.5 1378,-98.5 "/>
-<text text-anchor="start" x="1253" y="-83.3" font-family="Times,serif" font-size="14.00">can_exit_to()</text>
+<polygon fill="none" stroke="black" points="897.5,-105.5 897.5,-294.5 1073.5,-294.5 1073.5,-105.5 897.5,-105.5"/>
+<text text-anchor="middle" x="985.5" y="-279.3" font-family="Times,serif" font-size="14.00">RelayList</text>
+<polyline fill="none" stroke="black" points="897.5,-271.5 1073.5,-271.5 "/>
+<text text-anchor="start" x="905.5" y="-256.3" font-family="Times,serif" font-size="14.00">REFRESH_INTERVAL : int</text>
+<text text-anchor="start" x="905.5" y="-241.3" font-family="Times,serif" font-size="14.00">authorities</text>
+<text text-anchor="start" x="905.5" y="-226.3" font-family="Times,serif" font-size="14.00">bad_exits</text>
+<text text-anchor="start" x="905.5" y="-211.3" font-family="Times,serif" font-size="14.00">exits</text>
+<text text-anchor="start" x="905.5" y="-196.3" font-family="Times,serif" font-size="14.00">fast</text>
+<text text-anchor="start" x="905.5" y="-181.3" font-family="Times,serif" font-size="14.00">guards</text>
+<text text-anchor="start" x="905.5" y="-166.3" font-family="Times,serif" font-size="14.00">non_exits</text>
+<text text-anchor="start" x="905.5" y="-151.3" font-family="Times,serif" font-size="14.00">relays</text>
+<text text-anchor="start" x="905.5" y="-136.3" font-family="Times,serif" font-size="14.00">rng : SystemRandom</text>
+<polyline fill="none" stroke="black" points="897.5,-128.5 1073.5,-128.5 "/>
+<text text-anchor="start" x="905.5" y="-113.3" font-family="Times,serif" font-size="14.00">random_relay()</text>
 </g>
 <!-- 9 -->
 <g id="node10" class="node"><title>9</title>
-<polygon fill="none" stroke="black" points="1396.5,-68 1396.5,-257 1572.5,-257 1572.5,-68 1396.5,-68"/>
-<text text-anchor="middle" x="1484.5" y="-241.8" font-family="Times,serif" font-size="14.00">RelayList</text>
-<polyline fill="none" stroke="black" points="1396.5,-234 1572.5,-234 "/>
-<text text-anchor="start" x="1404.5" y="-218.8" font-family="Times,serif" font-size="14.00">REFRESH_INTERVAL : int</text>
-<text text-anchor="start" x="1404.5" y="-203.8" font-family="Times,serif" font-size="14.00">authorities</text>
-<text text-anchor="start" x="1404.5" y="-188.8" font-family="Times,serif" font-size="14.00">bad_exits</text>
-<text text-anchor="start" x="1404.5" y="-173.8" font-family="Times,serif" font-size="14.00">exits</text>
-<text text-anchor="start" x="1404.5" y="-158.8" font-family="Times,serif" font-size="14.00">fast</text>
-<text text-anchor="start" x="1404.5" y="-143.8" font-family="Times,serif" font-size="14.00">guards</text>
-<text text-anchor="start" x="1404.5" y="-128.8" font-family="Times,serif" font-size="14.00">non_exits</text>
-<text text-anchor="start" x="1404.5" y="-113.8" font-family="Times,serif" font-size="14.00">relays</text>
-<text text-anchor="start" x="1404.5" y="-98.8" font-family="Times,serif" font-size="14.00">rng : SystemRandom</text>
-<polyline fill="none" stroke="black" points="1396.5,-91 1572.5,-91 "/>
-<text text-anchor="start" x="1404.5" y="-75.8" font-family="Times,serif" font-size="14.00">random_relay()</text>
+<polygon fill="none" stroke="black" points="1091.5,-128 1091.5,-272 1217.5,-272 1217.5,-128 1091.5,-128"/>
+<text text-anchor="middle" x="1154.5" y="-256.8" font-family="Times,serif" font-size="14.00">RelayPrioritizer</text>
+<polyline fill="none" stroke="black" points="1091.5,-249 1217.5,-249 "/>
+<text text-anchor="start" x="1099.5" y="-233.8" font-family="Times,serif" font-size="14.00">fraction_to_return</text>
+<text text-anchor="start" x="1099.5" y="-218.8" font-family="Times,serif" font-size="14.00">fresh_seconds</text>
+<text text-anchor="start" x="1099.5" y="-203.8" font-family="Times,serif" font-size="14.00">measure_authorities</text>
+<text text-anchor="start" x="1099.5" y="-188.8" font-family="Times,serif" font-size="14.00">min_to_return</text>
+<text text-anchor="start" x="1099.5" y="-173.8" font-family="Times,serif" font-size="14.00">relay_list</text>
+<text text-anchor="start" x="1099.5" y="-158.8" font-family="Times,serif" font-size="14.00">result_dump</text>
+<polyline fill="none" stroke="black" points="1091.5,-151 1217.5,-151 "/>
+<text text-anchor="start" x="1099.5" y="-135.8" font-family="Times,serif" font-size="14.00">best_priority()</text>
 </g>
 <!-- 10 -->
 <g id="node11" class="node"><title>10</title>
-<polygon fill="none" stroke="black" points="1590.5,-90.5 1590.5,-234.5 1716.5,-234.5 1716.5,-90.5 1590.5,-90.5"/>
-<text text-anchor="middle" x="1653.5" y="-219.3" font-family="Times,serif" font-size="14.00">RelayPrioritizer</text>
-<polyline fill="none" stroke="black" points="1590.5,-211.5 1716.5,-211.5 "/>
-<text text-anchor="start" x="1598.5" y="-196.3" font-family="Times,serif" font-size="14.00">fraction_to_return</text>
-<text text-anchor="start" x="1598.5" y="-181.3" font-family="Times,serif" font-size="14.00">fresh_seconds</text>
-<text text-anchor="start" x="1598.5" y="-166.3" font-family="Times,serif" font-size="14.00">measure_authorities</text>
-<text text-anchor="start" x="1598.5" y="-151.3" font-family="Times,serif" font-size="14.00">min_to_return</text>
-<text text-anchor="start" x="1598.5" y="-136.3" font-family="Times,serif" font-size="14.00">relay_list</text>
-<text text-anchor="start" x="1598.5" y="-121.3" font-family="Times,serif" font-size="14.00">result_dump</text>
-<polyline fill="none" stroke="black" points="1590.5,-113.5 1716.5,-113.5 "/>
-<text text-anchor="start" x="1598.5" y="-98.3" font-family="Times,serif" font-size="14.00">best_priority()</text>
+<polygon fill="none" stroke="black" points="1235.5,-165 1235.5,-235 1289.5,-235 1289.5,-165 1235.5,-165"/>
+<text text-anchor="middle" x="1262.5" y="-219.8" font-family="Times,serif" font-size="14.00">State</text>
+<polyline fill="none" stroke="black" points="1235.5,-212 1289.5,-212 "/>
+<polyline fill="none" stroke="black" points="1235.5,-188 1289.5,-188 "/>
+<text text-anchor="start" x="1243.5" y="-172.8" font-family="Times,serif" font-size="14.00">get()</text>
+</g>
+<!-- 11 -->
+<g id="node12" class="node"><title>11</title>
+<polygon fill="none" stroke="black" points="1307.5,-0.5 1307.5,-399.5 1505.5,-399.5 1505.5,-0.5 1307.5,-0.5"/>
+<text text-anchor="middle" x="1406.5" y="-384.3" font-family="Times,serif" font-size="14.00">V3BWFile</text>
+<polyline fill="none" stroke="black" points="1307.5,-376.5 1505.5,-376.5 "/>
+<text text-anchor="start" x="1315.5" y="-361.3" font-family="Times,serif" font-size="14.00">bw_lines</text>
+<text text-anchor="start" x="1315.5" y="-346.3" font-family="Times,serif" font-size="14.00">header</text>
+<text text-anchor="start" x="1315.5" y="-331.3" font-family="Times,serif" font-size="14.00">info_stats</text>
+<text text-anchor="start" x="1315.5" y="-316.3" font-family="Times,serif" font-size="14.00">is_min_perc</text>
+<text text-anchor="start" x="1315.5" y="-301.3" font-family="Times,serif" font-size="14.00">max_bw</text>
+<text text-anchor="start" x="1315.5" y="-286.3" font-family="Times,serif" font-size="14.00">mean_bw</text>
+<text text-anchor="start" x="1315.5" y="-271.3" font-family="Times,serif" font-size="14.00">median_bw</text>
+<text text-anchor="start" x="1315.5" y="-256.3" font-family="Times,serif" font-size="14.00">min_bw</text>
+<text text-anchor="start" x="1315.5" y="-241.3" font-family="Times,serif" font-size="14.00">num</text>
+<text text-anchor="start" x="1315.5" y="-226.3" font-family="Times,serif" font-size="14.00">sum_bw</text>
+<polyline fill="none" stroke="black" points="1307.5,-218.5 1505.5,-218.5 "/>
+<text text-anchor="start" x="1315.5" y="-203.3" font-family="Times,serif" font-size="14.00">bw_kb()</text>
+<text text-anchor="start" x="1315.5" y="-188.3" font-family="Times,serif" font-size="14.00">bw_line_for_node_id()</text>
+<text text-anchor="start" x="1315.5" y="-173.3" font-family="Times,serif" font-size="14.00">bw_sbws_scale()</text>
+<text text-anchor="start" x="1315.5" y="-158.3" font-family="Times,serif" font-size="14.00">bw_torflow_scale()</text>
+<text text-anchor="start" x="1315.5" y="-143.3" font-family="Times,serif" font-size="14.00">from_results()</text>
+<text text-anchor="start" x="1315.5" y="-128.3" font-family="Times,serif" font-size="14.00">from_v100_fpath()</text>
+<text text-anchor="start" x="1315.5" y="-113.3" font-family="Times,serif" font-size="14.00">from_v110_fpath()</text>
+<text text-anchor="start" x="1315.5" y="-98.3" font-family="Times,serif" font-size="14.00">is_max_bw_diff_perc_reached()</text>
+<text text-anchor="start" x="1315.5" y="-83.3" font-family="Times,serif" font-size="14.00">measured_progress_stats()</text>
+<text text-anchor="start" x="1315.5" y="-68.3" font-family="Times,serif" font-size="14.00">read_number_consensus_relays()</text>
+<text text-anchor="start" x="1315.5" y="-53.3" font-family="Times,serif" font-size="14.00">to_plt()</text>
+<text text-anchor="start" x="1315.5" y="-38.3" font-family="Times,serif" font-size="14.00">update_progress()</text>
+<text text-anchor="start" x="1315.5" y="-23.3" font-family="Times,serif" font-size="14.00">warn_if_not_accurate_enough()</text>
+<text text-anchor="start" x="1315.5" y="-8.3" font-family="Times,serif" font-size="14.00">write()</text>
 </g>
 <!-- 12 -->
 <g id="node13" class="node"><title>12</title>
-<polygon fill="none" stroke="black" points="1734.5,-53 1734.5,-272 1902.5,-272 1902.5,-53 1734.5,-53"/>
-<text text-anchor="middle" x="1818.5" y="-256.8" font-family="Times,serif" font-size="14.00">ResultDump</text>
-<polyline fill="none" stroke="black" points="1734.5,-249 1902.5,-249 "/>
-<text text-anchor="start" x="1742.5" y="-233.8" font-family="Times,serif" font-size="14.00">conf</text>
-<text text-anchor="start" x="1742.5" y="-218.8" font-family="Times,serif" font-size="14.00">data : dict</text>
-<text text-anchor="start" x="1742.5" y="-203.8" font-family="Times,serif" font-size="14.00">data_lock : RLock, _RLock</text>
-<text text-anchor="start" x="1742.5" y="-188.8" font-family="Times,serif" font-size="14.00">datadir</text>
-<text text-anchor="start" x="1742.5" y="-173.8" font-family="Times,serif" font-size="14.00">end_event</text>
-<text text-anchor="start" x="1742.5" y="-158.8" font-family="Times,serif" font-size="14.00">fresh_days</text>
-<text text-anchor="start" x="1742.5" y="-143.8" font-family="Times,serif" font-size="14.00">queue : Queue</text>
-<text text-anchor="start" x="1742.5" y="-128.8" font-family="Times,serif" font-size="14.00">thread : Thread</text>
-<polyline fill="none" stroke="black" points="1734.5,-121 1902.5,-121 "/>
-<text text-anchor="start" x="1742.5" y="-105.8" font-family="Times,serif" font-size="14.00">enter()</text>
-<text text-anchor="start" x="1742.5" y="-90.8" font-family="Times,serif" font-size="14.00">handle_result()</text>
-<text text-anchor="start" x="1742.5" y="-75.8" font-family="Times,serif" font-size="14.00">results_for_relay()</text>
-<text text-anchor="start" x="1742.5" y="-60.8" font-family="Times,serif" font-size="14.00">store_result()</text>
+<polygon fill="none" stroke="black" points="1523.5,-23 1523.5,-377 1727.5,-377 1727.5,-23 1523.5,-23"/>
+<text text-anchor="middle" x="1625.5" y="-361.8" font-family="Times,serif" font-size="14.00">V3BWHeader</text>
+<polyline fill="none" stroke="black" points="1523.5,-354 1727.5,-354 "/>
+<text text-anchor="start" x="1531.5" y="-338.8" font-family="Times,serif" font-size="14.00">file_created</text>
+<text text-anchor="start" x="1531.5" y="-323.8" font-family="Times,serif" font-size="14.00">keyvalue_tuple_ls</text>
+<text text-anchor="start" x="1531.5" y="-308.8" font-family="Times,serif" font-size="14.00">keyvalue_unordered_tuple_ls</text>
+<text text-anchor="start" x="1531.5" y="-293.8" font-family="Times,serif" font-size="14.00">keyvalue_v110str_ls</text>
+<text text-anchor="start" x="1531.5" y="-278.8" font-family="Times,serif" font-size="14.00">keyvalue_v200_ls</text>
+<text text-anchor="start" x="1531.5" y="-263.8" font-family="Times,serif" font-size="14.00">latest_bandwidth</text>
+<text text-anchor="start" x="1531.5" y="-248.8" font-family="Times,serif" font-size="14.00">num_lines</text>
+<text text-anchor="start" x="1531.5" y="-233.8" font-family="Times,serif" font-size="14.00">software</text>
+<text text-anchor="start" x="1531.5" y="-218.8" font-family="Times,serif" font-size="14.00">software_version</text>
+<text text-anchor="start" x="1531.5" y="-203.8" font-family="Times,serif" font-size="14.00">strv110</text>
+<text text-anchor="start" x="1531.5" y="-188.8" font-family="Times,serif" font-size="14.00">strv200</text>
+<text text-anchor="start" x="1531.5" y="-173.8" font-family="Times,serif" font-size="14.00">timestamp</text>
+<text text-anchor="start" x="1531.5" y="-158.8" font-family="Times,serif" font-size="14.00">version</text>
+<polyline fill="none" stroke="black" points="1523.5,-151 1727.5,-151 "/>
+<text text-anchor="start" x="1531.5" y="-135.8" font-family="Times,serif" font-size="14.00">add_stats()</text>
+<text text-anchor="start" x="1531.5" y="-120.8" font-family="Times,serif" font-size="14.00">earliest_bandwidth_from_results()</text>
+<text text-anchor="start" x="1531.5" y="-105.8" font-family="Times,serif" font-size="14.00">from_lines_v100()</text>
+<text text-anchor="start" x="1531.5" y="-90.8" font-family="Times,serif" font-size="14.00">from_lines_v110()</text>
+<text text-anchor="start" x="1531.5" y="-75.8" font-family="Times,serif" font-size="14.00">from_results()</text>
+<text text-anchor="start" x="1531.5" y="-60.8" font-family="Times,serif" font-size="14.00">from_text_v110()</text>
+<text text-anchor="start" x="1531.5" y="-45.8" font-family="Times,serif" font-size="14.00">generator_started_from_file()</text>
+<text text-anchor="start" x="1531.5" y="-30.8" font-family="Times,serif" font-size="14.00">latest_bandwidth_from_results()</text>
 </g>
 <!-- 13 -->
 <g id="node14" class="node"><title>13</title>
-<polygon fill="none" stroke="black" points="927,-400 927,-514 1090,-514 1090,-400 927,-400"/>
-<text text-anchor="middle" x="1008.5" y="-498.8" font-family="Times,serif" font-size="14.00">ResultError</text>
-<polyline fill="none" stroke="black" points="927,-491 1090,-491 "/>
-<text text-anchor="start" x="935" y="-475.8" font-family="Times,serif" font-size="14.00">freshness_reduction_factor</text>
-<text text-anchor="start" x="935" y="-460.8" font-family="Times,serif" font-size="14.00">msg</text>
-<text text-anchor="start" x="935" y="-445.8" font-family="Times,serif" font-size="14.00">type</text>
-<polyline fill="none" stroke="black" points="927,-438 1090,-438 "/>
-<text text-anchor="start" x="935" y="-422.8" font-family="Times,serif" font-size="14.00">from_dict()</text>
-<text text-anchor="start" x="935" y="-407.8" font-family="Times,serif" font-size="14.00">to_dict()</text>
-</g>
-<!-- 13&#45;&gt;11 -->
-<g id="edge4" class="edge"><title>13&#45;&gt;11</title>
-<path fill="none" stroke="black" d="M1008.5,-514.098C1008.5,-537.355 1008.5,-565.35 1008.5,-593.085"/>
-<polygon fill="none" stroke="black" points="1005,-593.282 1008.5,-603.282 1012,-593.282 1005,-593.282"/>
-</g>
-<!-- 14 -->
-<g id="node15" class="node"><title>14</title>
-<polygon fill="none" stroke="black" points="746,-113 746,-212 909,-212 909,-113 746,-113"/>
-<text text-anchor="middle" x="827.5" y="-196.8" font-family="Times,serif" font-size="14.00">ResultErrorAuth</text>
-<polyline fill="none" stroke="black" points="746,-189 909,-189 "/>
-<text text-anchor="start" x="754" y="-173.8" font-family="Times,serif" font-size="14.00">freshness_reduction_factor</text>
-<text text-anchor="start" x="754" y="-158.8" font-family="Times,serif" font-size="14.00">type</text>
-<polyline fill="none" stroke="black" points="746,-151 909,-151 "/>
-<text text-anchor="start" x="754" y="-135.8" font-family="Times,serif" font-size="14.00">from_dict()</text>
-<text text-anchor="start" x="754" y="-120.8" font-family="Times,serif" font-size="14.00">to_dict()</text>
-</g>
-<!-- 14&#45;&gt;13 -->
-<g id="edge5" class="edge"><title>14&#45;&gt;13</title>
-<path fill="none" stroke="black" d="M853.056,-212.275C870.438,-244.698 894.394,-287.963 917.5,-325 931.281,-347.09 947.213,-370.624 961.859,-391.561"/>
-<polygon fill="none" stroke="black" points="959.002,-393.583 967.615,-399.753 964.729,-389.558 959.002,-393.583"/>
-</g>
-<!-- 15 -->
-<g id="node16" class="node"><title>15</title>
-<polygon fill="none" stroke="black" points="927,-113 927,-212 1090,-212 1090,-113 927,-113"/>
-<text text-anchor="middle" x="1008.5" y="-196.8" font-family="Times,serif" font-size="14.00">ResultErrorCircuit</text>
-<polyline fill="none" stroke="black" points="927,-189 1090,-189 "/>
-<text text-anchor="start" x="935" y="-173.8" font-family="Times,serif" font-size="14.00">freshness_reduction_factor</text>
-<text text-anchor="start" x="935" y="-158.8" font-family="Times,serif" font-size="14.00">type</text>
-<polyline fill="none" stroke="black" points="927,-151 1090,-151 "/>
-<text text-anchor="start" x="935" y="-135.8" font-family="Times,serif" font-size="14.00">from_dict()</text>
-<text text-anchor="start" x="935" y="-120.8" font-family="Times,serif" font-size="14.00">to_dict()</text>
-</g>
-<!-- 15&#45;&gt;13 -->
-<g id="edge6" class="edge"><title>15&#45;&gt;13</title>
-<path fill="none" stroke="black" d="M1008.5,-212.129C1008.5,-260.66 1008.5,-335.584 1008.5,-389.579"/>
-<polygon fill="none" stroke="black" points="1005,-389.745 1008.5,-399.745 1012,-389.745 1005,-389.745"/>
-</g>
-<!-- 16 -->
-<g id="node17" class="node"><title>16</title>
-<polygon fill="none" stroke="black" points="1108,-120.5 1108,-204.5 1227,-204.5 1227,-120.5 1108,-120.5"/>
-<text text-anchor="middle" x="1167.5" y="-189.3" font-family="Times,serif" font-size="14.00">ResultErrorStream</text>
-<polyline fill="none" stroke="black" points="1108,-181.5 1227,-181.5 "/>
-<text text-anchor="start" x="1116" y="-166.3" font-family="Times,serif" font-size="14.00">type</text>
-<polyline fill="none" stroke="black" points="1108,-158.5 1227,-158.5 "/>
-<text text-anchor="start" x="1116" y="-143.3" font-family="Times,serif" font-size="14.00">from_dict()</text>
-<text text-anchor="start" x="1116" y="-128.3" font-family="Times,serif" font-size="14.00">to_dict()</text>
-</g>
-<!-- 16&#45;&gt;13 -->
-<g id="edge7" class="edge"><title>16&#45;&gt;13</title>
-<path fill="none" stroke="black" d="M1152.5,-204.705C1139.78,-237.984 1120.17,-285.595 1098.5,-325 1086.17,-347.418 1070.96,-370.783 1056.58,-391.467"/>
-<polygon fill="none" stroke="black" points="1053.58,-389.658 1050.7,-399.854 1059.31,-393.68 1053.58,-389.658"/>
-</g>
-<!-- 17 -->
-<g id="node18" class="node"><title>17</title>
-<polygon fill="none" stroke="black" points="1108.5,-400 1108.5,-514 1202.5,-514 1202.5,-400 1108.5,-400"/>
-<text text-anchor="middle" x="1155.5" y="-498.8" font-family="Times,serif" font-size="14.00">ResultSuccess</text>
-<polyline fill="none" stroke="black" points="1108.5,-491 1202.5,-491 "/>
-<text text-anchor="start" x="1116.5" y="-475.8" font-family="Times,serif" font-size="14.00">downloads</text>
-<text text-anchor="start" x="1116.5" y="-460.8" font-family="Times,serif" font-size="14.00">rtts</text>
-<text text-anchor="start" x="1116.5" y="-445.8" font-family="Times,serif" font-size="14.00">type</text>
-<polyline fill="none" stroke="black" points="1108.5,-438 1202.5,-438 "/>
-<text text-anchor="start" x="1116.5" y="-422.8" font-family="Times,serif" font-size="14.00">from_dict()</text>
-<text text-anchor="start" x="1116.5" y="-407.8" font-family="Times,serif" font-size="14.00">to_dict()</text>
-</g>
-<!-- 17&#45;&gt;11 -->
-<g id="edge8" class="edge"><title>17&#45;&gt;11</title>
-<path fill="none" stroke="black" d="M1123.96,-514.098C1110.66,-537.763 1094.6,-566.334 1078.74,-594.545"/>
-<polygon fill="none" stroke="black" points="1075.68,-592.85 1073.83,-603.282 1081.78,-596.28 1075.68,-592.85"/>
-</g>
-<!-- 18 -->
-<g id="node19" class="node"><title>18</title>
-<polygon fill="none" stroke="black" points="1921,-90.5 1921,-234.5 2040,-234.5 2040,-90.5 1921,-90.5"/>
-<text text-anchor="middle" x="1980.5" y="-219.3" font-family="Times,serif" font-size="14.00">V3BWFile</text>
-<polyline fill="none" stroke="black" points="1921,-211.5 2040,-211.5 "/>
-<text text-anchor="start" x="1929" y="-196.3" font-family="Times,serif" font-size="14.00">avg_bw</text>
-<text text-anchor="start" x="1929" y="-181.3" font-family="Times,serif" font-size="14.00">bw_lines</text>
-<text text-anchor="start" x="1929" y="-166.3" font-family="Times,serif" font-size="14.00">header</text>
-<text text-anchor="start" x="1929" y="-151.3" font-family="Times,serif" font-size="14.00">num_lines</text>
-<text text-anchor="start" x="1929" y="-136.3" font-family="Times,serif" font-size="14.00">total_bw</text>
-<polyline fill="none" stroke="black" points="1921,-128.5 2040,-128.5 "/>
-<text text-anchor="start" x="1929" y="-113.3" font-family="Times,serif" font-size="14.00">from_arg_results()</text>
-<text text-anchor="start" x="1929" y="-98.3" font-family="Times,serif" font-size="14.00">write()</text>
-</g>
-<!-- 19 -->
-<g id="node20" class="node"><title>19</title>
-<polygon fill="none" stroke="black" points="2058.5,-0.5 2058.5,-324.5 2262.5,-324.5 2262.5,-0.5 2058.5,-0.5"/>
-<text text-anchor="middle" x="2160.5" y="-309.3" font-family="Times,serif" font-size="14.00">V3BWHeader</text>
-<polyline fill="none" stroke="black" points="2058.5,-301.5 2262.5,-301.5 "/>
-<text text-anchor="start" x="2066.5" y="-286.3" font-family="Times,serif" font-size="14.00">file_created</text>
-<text text-anchor="start" x="2066.5" y="-271.3" font-family="Times,serif" font-size="14.00">keyvalue_tuple_ls</text>
-<text text-anchor="start" x="2066.5" y="-256.3" font-family="Times,serif" font-size="14.00">keyvalue_unordered_tuple_ls</text>
-<text text-anchor="start" x="2066.5" y="-241.3" font-family="Times,serif" font-size="14.00">keyvalue_v110str_ls</text>
-<text text-anchor="start" x="2066.5" y="-226.3" font-family="Times,serif" font-size="14.00">keyvalue_v200_ls</text>
-<text text-anchor="start" x="2066.5" y="-211.3" font-family="Times,serif" font-size="14.00">latest_bandwidth</text>
-<text text-anchor="start" x="2066.5" y="-196.3" font-family="Times,serif" font-size="14.00">num_lines</text>
-<text text-anchor="start" x="2066.5" y="-181.3" font-family="Times,serif" font-size="14.00">software</text>
-<text text-anchor="start" x="2066.5" y="-166.3" font-family="Times,serif" font-size="14.00">software_version</text>
-<text text-anchor="start" x="2066.5" y="-151.3" font-family="Times,serif" font-size="14.00">strv110</text>
-<text text-anchor="start" x="2066.5" y="-136.3" font-family="Times,serif" font-size="14.00">strv200</text>
-<text text-anchor="start" x="2066.5" y="-121.3" font-family="Times,serif" font-size="14.00">timestamp</text>
-<text text-anchor="start" x="2066.5" y="-106.3" font-family="Times,serif" font-size="14.00">version</text>
-<polyline fill="none" stroke="black" points="2058.5,-98.5 2262.5,-98.5 "/>
-<text text-anchor="start" x="2066.5" y="-83.3" font-family="Times,serif" font-size="14.00">earliest_bandwidth_from_results()</text>
-<text text-anchor="start" x="2066.5" y="-68.3" font-family="Times,serif" font-size="14.00">from_lines_v110()</text>
-<text text-anchor="start" x="2066.5" y="-53.3" font-family="Times,serif" font-size="14.00">from_results()</text>
-<text text-anchor="start" x="2066.5" y="-38.3" font-family="Times,serif" font-size="14.00">from_text_v110()</text>
-<text text-anchor="start" x="2066.5" y="-23.3" font-family="Times,serif" font-size="14.00">generator_started_from_file()</text>
-<text text-anchor="start" x="2066.5" y="-8.3" font-family="Times,serif" font-size="14.00">latest_bandwidth_from_results()</text>
-</g>
-<!-- 20 -->
-<g id="node21" class="node"><title>20</title>
-<polygon fill="none" stroke="black" points="2280,-53 2280,-272 2447,-272 2447,-53 2280,-53"/>
-<text text-anchor="middle" x="2363.5" y="-256.8" font-family="Times,serif" font-size="14.00">V3BWLine</text>
-<polyline fill="none" stroke="black" points="2280,-249 2447,-249 "/>
-<text text-anchor="start" x="2288" y="-233.8" font-family="Times,serif" font-size="14.00">bw</text>
-<text text-anchor="start" x="2288" y="-218.8" font-family="Times,serif" font-size="14.00">bw_keyvalue_tuple_ls</text>
-<text text-anchor="start" x="2288" y="-203.8" font-family="Times,serif" font-size="14.00">bw_keyvalue_v110str_ls</text>
-<text text-anchor="start" x="2288" y="-188.8" font-family="Times,serif" font-size="14.00">bw_strv110</text>
-<text text-anchor="start" x="2288" y="-173.8" font-family="Times,serif" font-size="14.00">node_id</text>
-<polyline fill="none" stroke="black" points="2280,-166 2447,-166 "/>
-<text text-anchor="start" x="2288" y="-150.8" font-family="Times,serif" font-size="14.00">bw_from_results()</text>
-<text text-anchor="start" x="2288" y="-135.8" font-family="Times,serif" font-size="14.00">from_bw_line_v110()</text>
-<text text-anchor="start" x="2288" y="-120.8" font-family="Times,serif" font-size="14.00">from_data()</text>
-<text text-anchor="start" x="2288" y="-105.8" font-family="Times,serif" font-size="14.00">from_results()</text>
-<text text-anchor="start" x="2288" y="-90.8" font-family="Times,serif" font-size="14.00">last_time_from_results()</text>
-<text text-anchor="start" x="2288" y="-75.8" font-family="Times,serif" font-size="14.00">result_types_from_results()</text>
-<text text-anchor="start" x="2288" y="-60.8" font-family="Times,serif" font-size="14.00">rtt_from_results()</text>
-</g>
-<!-- 22 -->
-<g id="node23" class="node"><title>22</title>
-<polygon fill="none" stroke="black" points="2465,-98 2465,-227 2574,-227 2574,-98 2465,-98"/>
-<text text-anchor="middle" x="2519.5" y="-211.8" font-family="Times,serif" font-size="14.00">_ResultType</text>
-<polyline fill="none" stroke="black" points="2465,-204 2574,-204 "/>
-<text text-anchor="start" x="2473" y="-188.8" font-family="Times,serif" font-size="14.00">Error : str</text>
-<text text-anchor="start" x="2473" y="-173.8" font-family="Times,serif" font-size="14.00">ErrorAuth : str</text>
-<text text-anchor="start" x="2473" y="-158.8" font-family="Times,serif" font-size="14.00">ErrorCircuit : str</text>
-<text text-anchor="start" x="2473" y="-143.8" font-family="Times,serif" font-size="14.00">ErrorStream : str</text>
-<text text-anchor="start" x="2473" y="-128.8" font-family="Times,serif" font-size="14.00">Success : str</text>
-<polyline fill="none" stroke="black" points="2465,-121 2574,-121 "/>
-<text text-anchor="middle" x="2519.5" y="-105.8" font-family="Times,serif" font-size="14.00"> </text>
-</g>
-<!-- 23 -->
-<g id="node24" class="node"><title>23</title>
-<polygon fill="none" stroke="black" points="2483.5,-422 2483.5,-492 2555.5,-492 2555.5,-422 2483.5,-422"/>
-<text text-anchor="middle" x="2519.5" y="-476.8" font-family="Times,serif" font-size="14.00">_StrEnum</text>
-<polyline fill="none" stroke="black" points="2483.5,-469 2555.5,-469 "/>
-<polyline fill="none" stroke="black" points="2483.5,-445 2555.5,-445 "/>
-<text text-anchor="middle" x="2519.5" y="-429.8" font-family="Times,serif" font-size="14.00"> </text>
-</g>
-<!-- 22&#45;&gt;23 -->
-<g id="edge9" class="edge"><title>22&#45;&gt;23</title>
-<path fill="none" stroke="black" d="M2519.5,-227.329C2519.5,-283.08 2519.5,-362.557 2519.5,-411.628"/>
-<polygon fill="none" stroke="black" points="2516,-411.917 2519.5,-421.917 2523,-411.917 2516,-411.917"/>
+<polygon fill="none" stroke="black" points="1746,-53 1746,-347 1957,-347 1957,-53 1746,-53"/>
+<text text-anchor="middle" x="1851.5" y="-331.8" font-family="Times,serif" font-size="14.00">V3BWLine</text>
+<polyline fill="none" stroke="black" points="1746,-324 1957,-324 "/>
+<text text-anchor="start" x="1754" y="-308.8" font-family="Times,serif" font-size="14.00">bw</text>
+<text text-anchor="start" x="1754" y="-293.8" font-family="Times,serif" font-size="14.00">bw_keyvalue_tuple_ls</text>
+<text text-anchor="start" x="1754" y="-278.8" font-family="Times,serif" font-size="14.00">bw_keyvalue_v110str_ls</text>
+<text text-anchor="start" x="1754" y="-263.8" font-family="Times,serif" font-size="14.00">bw_strv110</text>
+<text text-anchor="start" x="1754" y="-248.8" font-family="Times,serif" font-size="14.00">node_id</text>
+<polyline fill="none" stroke="black" points="1746,-241 1957,-241 "/>
+<text text-anchor="start" x="1754" y="-225.8" font-family="Times,serif" font-size="14.00">bw_mean_from_results()</text>
+<text text-anchor="start" x="1754" y="-210.8" font-family="Times,serif" font-size="14.00">bw_median_from_results()</text>
+<text text-anchor="start" x="1754" y="-195.8" font-family="Times,serif" font-size="14.00">desc_bw_obs_last_from_results()</text>
+<text text-anchor="start" x="1754" y="-180.8" font-family="Times,serif" font-size="14.00">desc_bw_obs_mean_from_results()</text>
+<text text-anchor="start" x="1754" y="-165.8" font-family="Times,serif" font-size="14.00">from_bw_line_v110()</text>
+<text text-anchor="start" x="1754" y="-150.8" font-family="Times,serif" font-size="14.00">from_data()</text>
+<text text-anchor="start" x="1754" y="-135.8" font-family="Times,serif" font-size="14.00">from_results()</text>
+<text text-anchor="start" x="1754" y="-120.8" font-family="Times,serif" font-size="14.00">last_time_from_results()</text>
+<text text-anchor="start" x="1754" y="-105.8" font-family="Times,serif" font-size="14.00">result_types_from_results()</text>
+<text text-anchor="start" x="1754" y="-90.8" font-family="Times,serif" font-size="14.00">results_away_each_other()</text>
+<text text-anchor="start" x="1754" y="-75.8" font-family="Times,serif" font-size="14.00">results_recent_than()</text>
+<text text-anchor="start" x="1754" y="-60.8" font-family="Times,serif" font-size="14.00">rtt_from_results()</text>
 </g>
 </g>
 </svg>
diff --git a/docs/source/images/packages_sbws.svg b/docs/source/images/packages_sbws.svg
index 526f4c8..7b8236e 100644
--- a/docs/source/images/packages_sbws.svg
+++ b/docs/source/images/packages_sbws.svg
@@ -4,315 +4,125 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: packages_sbws Pages: 1 -->
-<svg width="1263pt" height="404pt"
- viewBox="0.00 0.00 1263.00 404.00" xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 400)">
+<svg width="8800pt" height="44pt"
+ viewBox="0.00 0.00 8800.00 44.00" xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
 <title>packages_sbws</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-400 1259,-400 1259,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-40 8796,-40 8796,4 -4,4"/>
 <!-- 0 -->
 <g id="node1" class="node"><title>0</title>
-<polygon fill="none" stroke="black" points="931,-252 877,-252 877,-216 931,-216 931,-252"/>
-<text text-anchor="middle" x="904" y="-230.3" font-family="Times,serif" font-size="14.00">sbws</text>
+<polygon fill="none" stroke="black" points="347,-36 0,-36 0,-0 347,-0 347,-36"/>
+<text text-anchor="middle" x="173.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/__init__.py</text>
 </g>
 <!-- 1 -->
 <g id="node2" class="node"><title>1</title>
-<polygon fill="none" stroke="black" points="827.5,-36 756.5,-36 756.5,-0 827.5,-0 827.5,-36"/>
-<text text-anchor="middle" x="792" y="-14.3" font-family="Times,serif" font-size="14.00">sbws.core</text>
+<polygon fill="none" stroke="black" points="738.5,-36 364.5,-36 364.5,-0 738.5,-0 738.5,-36"/>
+<text text-anchor="middle" x="551.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/core/__init__.py</text>
 </g>
 <!-- 2 -->
 <g id="node3" class="node"><title>2</title>
-<polygon fill="none" stroke="black" points="1065,-252 949,-252 949,-216 1065,-216 1065,-252"/>
-<text text-anchor="middle" x="1007" y="-230.3" font-family="Times,serif" font-size="14.00">sbws.core.cleanup</text>
-</g>
-<!-- 7 -->
-<g id="node8" class="node"><title>7</title>
-<polygon fill="none" stroke="black" points="617,-396 531,-396 531,-360 617,-360 617,-396"/>
-<text text-anchor="middle" x="574" y="-374.3" font-family="Times,serif" font-size="14.00">sbws.globals</text>
-</g>
-<!-- 2&#45;&gt;7 -->
-<g id="edge1" class="edge"><title>2&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M993.59,-252.311C975.153,-275.63 942.398,-315.234 926,-324 875.33,-351.088 712.565,-366.787 627.274,-373.351"/>
-<polygon fill="black" stroke="black" points="617.269,-374.106 626.902,-368.866 622.255,-373.729 627.241,-373.353 627.241,-373.353 627.241,-373.353 622.255,-373.729 627.58,-377.84 617.269,-374.106 617.269,-374.106"/>
-</g>
-<!-- 18 -->
-<g id="node19" class="node"><title>18</title>
-<polygon fill="none" stroke="black" points="917,-324 807,-324 807,-288 917,-288 917,-324"/>
-<text text-anchor="middle" x="862" y="-302.3" font-family="Times,serif" font-size="14.00">sbws.util.filelock</text>
-</g>
-<!-- 2&#45;&gt;18 -->
-<g id="edge2" class="edge"><title>2&#45;&gt;18</title>
-<path fill="none" stroke="black" d="M971.529,-252.124C951.883,-261.608 927.278,-273.487 906.368,-283.581"/>
-<polygon fill="black" stroke="black" points="897.356,-287.932 904.405,-279.532 901.859,-285.758 906.361,-283.584 906.361,-283.584 906.361,-283.584 901.859,-285.758 908.318,-287.637 897.356,-287.932 897.356,-287.932"/>
+<polygon fill="none" stroke="black" points="1128,-36 757,-36 757,-0 1128,-0 1128,-36"/>
+<text text-anchor="middle" x="942.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/core/cleanup.py</text>
 </g>
 <!-- 3 -->
 <g id="node4" class="node"><title>3</title>
-<polygon fill="none" stroke="black" points="738,-36 618,-36 618,-0 738,-0 738,-36"/>
-<text text-anchor="middle" x="678" y="-14.3" font-family="Times,serif" font-size="14.00">sbws.core.generate</text>
-</g>
-<!-- 3&#45;&gt;7 -->
-<g id="edge3" class="edge"><title>3&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M617.707,-23.3661C577.412,-29.0683 525.329,-42.1364 489,-72 454.76,-100.147 444,-116.676 444,-161 444,-161 444,-161 444,-235 444,-288.377 494.589,-330.418 532.651,-354.495"/>
-<polygon fill="black" stroke="black" points="541.531,-359.935 530.653,-358.548 537.267,-357.323 533.004,-354.711 533.004,-354.711 533.004,-354.711 537.267,-357.323 535.355,-350.874 541.531,-359.935 541.531,-359.935"/>
-</g>
-<!-- 13 -->
-<g id="node14" class="node"><title>13</title>
-<polygon fill="none" stroke="black" points="637.5,-180 510.5,-180 510.5,-144 637.5,-144 637.5,-180"/>
-<text text-anchor="middle" x="574" y="-158.3" font-family="Times,serif" font-size="14.00">sbws.lib.resultdump</text>
-</g>
-<!-- 3&#45;&gt;13 -->
-<g id="edge4" class="edge"><title>3&#45;&gt;13</title>
-<path fill="none" stroke="black" d="M665.455,-36.1285C647.34,-60.8628 613.727,-106.758 592.685,-135.488"/>
-<polygon fill="black" stroke="black" points="586.589,-143.811 588.868,-133.084 589.544,-139.777 592.498,-135.743 592.498,-135.743 592.498,-135.743 589.544,-139.777 596.129,-138.402 586.589,-143.811 586.589,-143.811"/>
-</g>
-<!-- 14 -->
-<g id="node15" class="node"><title>14</title>
-<polygon fill="none" stroke="black" points="857.5,-108 744.5,-108 744.5,-72 857.5,-72 857.5,-108"/>
-<text text-anchor="middle" x="801" y="-86.3" font-family="Times,serif" font-size="14.00">sbws.lib.v3bwfile</text>
-</g>
-<!-- 3&#45;&gt;14 -->
-<g id="edge5" class="edge"><title>3&#45;&gt;14</title>
-<path fill="none" stroke="black" d="M708.089,-36.1239C724.32,-45.3612 744.542,-56.8692 761.971,-66.7884"/>
-<polygon fill="black" stroke="black" points="770.795,-71.8102 759.878,-70.775 766.45,-69.3371 762.104,-66.864 762.104,-66.864 762.104,-66.864 766.45,-69.3371 764.33,-62.953 770.795,-71.8102 770.795,-71.8102"/>
-</g>
-<!-- 22 -->
-<g id="node23" class="node"><title>22</title>
-<polygon fill="none" stroke="black" points="782.5,-180 655.5,-180 655.5,-144 782.5,-144 782.5,-180"/>
-<text text-anchor="middle" x="719" y="-158.3" font-family="Times,serif" font-size="14.00">sbws.util.timestamp</text>
-</g>
-<!-- 3&#45;&gt;22 -->
-<g id="edge6" class="edge"><title>3&#45;&gt;22</title>
-<path fill="none" stroke="black" d="M682.946,-36.1285C689.964,-60.4364 702.883,-105.181 711.2,-133.987"/>
-<polygon fill="black" stroke="black" points="714.037,-143.811 706.939,-135.452 712.65,-139.007 711.263,-134.203 711.263,-134.203 711.263,-134.203 712.65,-139.007 715.586,-132.955 714.037,-143.811 714.037,-143.811"/>
+<polygon fill="none" stroke="black" points="1521,-36 1146,-36 1146,-0 1521,-0 1521,-36"/>
+<text text-anchor="middle" x="1333.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/core/generate.py</text>
 </g>
 <!-- 4 -->
 <g id="node5" class="node"><title>4</title>
-<polygon fill="none" stroke="black" points="1175,-252 1083,-252 1083,-216 1175,-216 1175,-252"/>
-<text text-anchor="middle" x="1129" y="-230.3" font-family="Times,serif" font-size="14.00">sbws.core.init</text>
-</g>
-<!-- 4&#45;&gt;7 -->
-<g id="edge7" class="edge"><title>4&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M1082.72,-250.468C1057.9,-259.696 1027.32,-272.612 1002,-288 980.702,-300.947 981.79,-313.907 959,-324 900.712,-349.814 718.7,-366.397 627.378,-373.311"/>
-<polygon fill="black" stroke="black" points="617.236,-374.068 626.873,-368.836 622.222,-373.696 627.208,-373.324 627.208,-373.324 627.208,-373.324 622.222,-373.696 627.543,-377.811 617.236,-374.068 617.236,-374.068"/>
-</g>
-<!-- 17 -->
-<g id="node18" class="node"><title>17</title>
-<polygon fill="none" stroke="black" points="1255,-324 1151,-324 1151,-288 1255,-288 1255,-324"/>
-<text text-anchor="middle" x="1203" y="-302.3" font-family="Times,serif" font-size="14.00">sbws.util.config</text>
-</g>
-<!-- 4&#45;&gt;17 -->
-<g id="edge8" class="edge"><title>4&#45;&gt;17</title>
-<path fill="none" stroke="black" d="M1147.29,-252.303C1156.43,-260.95 1167.64,-271.551 1177.6,-280.973"/>
-<polygon fill="black" stroke="black" points="1184.92,-287.896 1174.56,-284.293 1181.29,-284.46 1177.65,-281.024 1177.65,-281.024 1177.65,-281.024 1181.29,-284.46 1180.75,-277.755 1184.92,-287.896 1184.92,-287.896"/>
-</g>
-<!-- 23 -->
-<g id="node24" class="node"><title>23</title>
-<polygon fill="none" stroke="black" points="1133,-324 1011,-324 1011,-288 1133,-288 1133,-324"/>
-<text text-anchor="middle" x="1072" y="-302.3" font-family="Times,serif" font-size="14.00">sbws.util.userquery</text>
-</g>
-<!-- 4&#45;&gt;23 -->
-<g id="edge9" class="edge"><title>4&#45;&gt;23</title>
-<path fill="none" stroke="black" d="M1114.91,-252.303C1108.08,-260.695 1099.74,-270.93 1092.24,-280.139"/>
-<polygon fill="black" stroke="black" points="1085.93,-287.896 1088.75,-277.3 1089.08,-284.018 1092.24,-280.141 1092.24,-280.141 1092.24,-280.141 1089.08,-284.018 1095.73,-282.983 1085.93,-287.896 1085.93,-287.896"/>
+<polygon fill="none" stroke="black" points="1910,-36 1539,-36 1539,-0 1910,-0 1910,-36"/>
+<text text-anchor="middle" x="1724.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/core/scanner.py</text>
 </g>
 <!-- 5 -->
 <g id="node6" class="node"><title>5</title>
-<polygon fill="none" stroke="black" points="116,-180 7.10543e-15,-180 7.10543e-15,-144 116,-144 116,-180"/>
-<text text-anchor="middle" x="58" y="-158.3" font-family="Times,serif" font-size="14.00">sbws.core.scanner</text>
-</g>
-<!-- 5&#45;&gt;7 -->
-<g id="edge10" class="edge"><title>5&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M54.6795,-180.339C51.9918,-199.546 50.6854,-230.621 65,-252 104.369,-310.797 139.534,-302.66 207,-324 315.082,-358.187 448.118,-370.419 520.64,-374.725"/>
-<polygon fill="black" stroke="black" points="530.891,-375.304 520.653,-379.232 525.899,-375.022 520.907,-374.74 520.907,-374.74 520.907,-374.74 525.899,-375.022 521.161,-370.247 530.891,-375.304 530.891,-375.304"/>
-</g>
-<!-- 20 -->
-<g id="node21" class="node"><title>20</title>
-<polygon fill="none" stroke="black" points="211.5,-252 98.5,-252 98.5,-216 211.5,-216 211.5,-252"/>
-<text text-anchor="middle" x="155" y="-230.3" font-family="Times,serif" font-size="14.00">sbws.util.requests</text>
-</g>
-<!-- 5&#45;&gt;20 -->
-<g id="edge11" class="edge"><title>5&#45;&gt;20</title>
-<path fill="none" stroke="black" d="M81.9775,-180.303C94.3113,-189.204 109.516,-200.177 122.853,-209.801"/>
-<polygon fill="black" stroke="black" points="131.298,-215.896 120.556,-213.693 127.244,-212.97 123.189,-210.044 123.189,-210.044 123.189,-210.044 127.244,-212.97 125.823,-206.395 131.298,-215.896 131.298,-215.896"/>
-</g>
-<!-- 21 -->
-<g id="node22" class="node"><title>21</title>
-<polygon fill="none" stroke="black" points="311.5,-324 216.5,-324 216.5,-288 311.5,-288 311.5,-324"/>
-<text text-anchor="middle" x="264" y="-302.3" font-family="Times,serif" font-size="14.00">sbws.util.stem</text>
-</g>
-<!-- 5&#45;&gt;21 -->
-<g id="edge12" class="edge"><title>5&#45;&gt;21</title>
-<path fill="none" stroke="black" d="M59.3951,-180.216C61.9301,-200.199 69.0498,-232.853 89,-252 120.298,-282.038 168.047,-295.109 205.766,-300.768"/>
-<polygon fill="black" stroke="black" points="216.117,-302.176 205.601,-305.287 211.162,-301.502 206.208,-300.828 206.208,-300.828 206.208,-300.828 211.162,-301.502 206.814,-296.369 216.117,-302.176 216.117,-302.176"/>
+<polygon fill="none" stroke="black" points="2281,-36 1928,-36 1928,-0 2281,-0 2281,-36"/>
+<text text-anchor="middle" x="2104.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/core/stats.py</text>
 </g>
 <!-- 6 -->
 <g id="node7" class="node"><title>6</title>
-<polygon fill="none" stroke="black" points="596,-108 498,-108 498,-72 596,-72 596,-108"/>
-<text text-anchor="middle" x="547" y="-86.3" font-family="Times,serif" font-size="14.00">sbws.core.stats</text>
+<polygon fill="none" stroke="black" points="2640,-36 2299,-36 2299,-0 2640,-0 2640,-36"/>
+<text text-anchor="middle" x="2469.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/globals.py</text>
 </g>
-<!-- 6&#45;&gt;7 -->
-<g id="edge13" class="edge"><title>6&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M526.177,-108.385C516.542,-117.802 506.115,-130.303 501,-144 495.403,-158.989 498.176,-164.251 501,-180 512.435,-243.771 543.147,-313.889 560.879,-350.845"/>
-<polygon fill="black" stroke="black" points="565.299,-359.929 556.877,-352.906 563.111,-355.433 560.924,-350.937 560.924,-350.937 560.924,-350.937 563.111,-355.433 564.97,-348.968 565.299,-359.929 565.299,-359.929"/>
-</g>
-<!-- 6&#45;&gt;13 -->
-<g id="edge14" class="edge"><title>6&#45;&gt;13</title>
-<path fill="none" stroke="black" d="M553.674,-108.303C556.715,-116.187 560.383,-125.696 563.761,-134.454"/>
-<polygon fill="black" stroke="black" points="567.403,-143.896 559.605,-136.185 565.603,-139.231 563.804,-134.566 563.804,-134.566 563.804,-134.566 565.603,-139.231 568.002,-132.946 567.403,-143.896 567.403,-143.896"/>
+<!-- 7 -->
+<g id="node8" class="node"><title>7</title>
+<polygon fill="none" stroke="black" points="3023,-36 2658,-36 2658,-0 3023,-0 3023,-36"/>
+<text text-anchor="middle" x="2840.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/lib/__init__.py</text>
 </g>
 <!-- 8 -->
 <g id="node9" class="node"><title>8</title>
-<polygon fill="none" stroke="black" points="908,-36 846,-36 846,-0 908,-0 908,-36"/>
-<text text-anchor="middle" x="877" y="-14.3" font-family="Times,serif" font-size="14.00">sbws.lib</text>
+<polygon fill="none" stroke="black" points="3434,-36 3041,-36 3041,-0 3434,-0 3434,-36"/>
+<text text-anchor="middle" x="3237.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/lib/circuitbuilder.py</text>
 </g>
 <!-- 9 -->
 <g id="node10" class="node"><title>9</title>
-<polygon fill="none" stroke="black" points="416,-180 278,-180 278,-144 416,-144 416,-180"/>
-<text text-anchor="middle" x="347" y="-158.3" font-family="Times,serif" font-size="14.00">sbws.lib.circuitbuilder</text>
-</g>
-<!-- 11 -->
-<g id="node12" class="node"><title>11</title>
-<polygon fill="none" stroke="black" points="415.5,-252 306.5,-252 306.5,-216 415.5,-216 415.5,-252"/>
-<text text-anchor="middle" x="361" y="-230.3" font-family="Times,serif" font-size="14.00">sbws.lib.relaylist</text>
-</g>
-<!-- 9&#45;&gt;11 -->
-<g id="edge15" class="edge"><title>9&#45;&gt;11</title>
-<path fill="none" stroke="black" d="M350.461,-180.303C352.003,-188.017 353.858,-197.288 355.578,-205.888"/>
-<polygon fill="black" stroke="black" points="357.579,-215.896 351.205,-206.972 356.599,-210.993 355.618,-206.09 355.618,-206.09 355.618,-206.09 356.599,-210.993 360.031,-205.207 357.579,-215.896 357.579,-215.896"/>
-</g>
-<!-- 9&#45;&gt;21 -->
-<g id="edge16" class="edge"><title>9&#45;&gt;21</title>
-<path fill="none" stroke="black" d="M327.428,-180.113C317.264,-189.823 305.275,-202.674 297,-216 285.027,-235.283 276.385,-259.579 270.955,-277.913"/>
-<polygon fill="black" stroke="black" points="268.199,-287.674 266.586,-276.828 269.558,-282.862 270.916,-278.051 270.916,-278.051 270.916,-278.051 269.558,-282.862 275.247,-279.273 268.199,-287.674 268.199,-287.674"/>
+<polygon fill="none" stroke="black" points="3832.5,-36 3452.5,-36 3452.5,-0 3832.5,-0 3832.5,-36"/>
+<text text-anchor="middle" x="3642.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/lib/destination.py</text>
 </g>
 <!-- 10 -->
 <g id="node11" class="node"><title>10</title>
-<polygon fill="none" stroke="black" points="259.5,-180 134.5,-180 134.5,-144 259.5,-144 259.5,-180"/>
-<text text-anchor="middle" x="197" y="-158.3" font-family="Times,serif" font-size="14.00">sbws.lib.destination</text>
-</g>
-<!-- 10&#45;&gt;20 -->
-<g id="edge17" class="edge"><title>10&#45;&gt;20</title>
-<path fill="none" stroke="black" d="M186.618,-180.303C181.735,-188.441 175.813,-198.311 170.421,-207.299"/>
-<polygon fill="black" stroke="black" points="165.263,-215.896 166.549,-205.005 167.835,-211.608 170.408,-207.321 170.408,-207.321 170.408,-207.321 167.835,-211.608 174.266,-209.636 165.263,-215.896 165.263,-215.896"/>
-</g>
-<!-- 10&#45;&gt;21 -->
-<g id="edge18" class="edge"><title>10&#45;&gt;21</title>
-<path fill="none" stroke="black" d="M205.082,-180.129C216.652,-204.65 238.034,-249.968 251.61,-278.741"/>
-<polygon fill="black" stroke="black" points="255.89,-287.811 247.553,-280.687 253.756,-283.289 251.622,-278.767 251.622,-278.767 251.622,-278.767 253.756,-283.289 255.692,-276.847 255.89,-287.811 255.89,-287.811"/>
+<polygon fill="none" stroke="black" points="4214.5,-36 3850.5,-36 3850.5,-0 4214.5,-0 4214.5,-36"/>
+<text text-anchor="middle" x="4032.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/lib/relaylist.py</text>
 </g>
-<!-- 11&#45;&gt;7 -->
-<g id="edge19" class="edge"><title>11&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M370.254,-252.087C381.809,-271.946 403.34,-304.481 430,-324 457.014,-343.779 492.211,-356.912 521.045,-365.157"/>
-<polygon fill="black" stroke="black" points="530.955,-367.872 520.121,-369.569 526.133,-366.551 521.311,-365.229 521.311,-365.229 521.311,-365.229 526.133,-366.551 522.5,-360.889 530.955,-367.872 530.955,-367.872"/>
-</g>
-<!-- 11&#45;&gt;21 -->
-<g id="edge20" class="edge"><title>11&#45;&gt;21</title>
-<path fill="none" stroke="black" d="M337.022,-252.303C324.689,-261.204 309.484,-272.177 296.147,-281.801"/>
-<polygon fill="black" stroke="black" points="287.702,-287.896 293.177,-278.395 291.756,-284.97 295.811,-282.044 295.811,-282.044 295.811,-282.044 291.756,-284.97 298.444,-285.693 287.702,-287.896 287.702,-287.896"/>
+<!-- 11 -->
+<g id="node12" class="node"><title>11</title>
+<polygon fill="none" stroke="black" points="4634,-36 4233,-36 4233,-0 4634,-0 4634,-36"/>
+<text text-anchor="middle" x="4433.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/lib/relayprioritizer.py</text>
 </g>
 <!-- 12 -->
 <g id="node13" class="node"><title>12</title>
-<polygon fill="none" stroke="black" points="1072,-36 926,-36 926,-0 1072,-0 1072,-36"/>
-<text text-anchor="middle" x="999" y="-14.3" font-family="Times,serif" font-size="14.00">sbws.lib.relayprioritizer</text>
-</g>
-<!-- 13&#45;&gt;7 -->
-<g id="edge21" class="edge"><title>13&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M574,-180.151C574,-217.168 574,-304.819 574,-349.614"/>
-<polygon fill="black" stroke="black" points="574,-359.768 569.5,-349.768 574,-354.768 574,-349.768 574,-349.768 574,-349.768 574,-354.768 578.5,-349.768 574,-359.768 574,-359.768"/>
-</g>
-<!-- 13&#45;&gt;11 -->
-<g id="edge22" class="edge"><title>13&#45;&gt;11</title>
-<path fill="none" stroke="black" d="M522.167,-180.034C492.147,-189.9 454.177,-202.378 422.633,-212.745"/>
-<polygon fill="black" stroke="black" points="413.066,-215.889 421.161,-208.492 417.816,-214.328 422.566,-212.767 422.566,-212.767 422.566,-212.767 417.816,-214.328 423.971,-217.042 413.066,-215.889 413.066,-215.889"/>
-</g>
-<!-- 13&#45;&gt;18 -->
-<g id="edge23" class="edge"><title>13&#45;&gt;18</title>
-<path fill="none" stroke="black" d="M608.74,-180.129C661.175,-205.982 760.501,-254.955 817.948,-283.28"/>
-<polygon fill="black" stroke="black" points="827.137,-287.811 816.178,-287.425 822.653,-285.6 818.168,-283.388 818.168,-283.388 818.168,-283.388 822.653,-285.6 820.158,-279.352 827.137,-287.811 827.137,-287.811"/>
-</g>
-<!-- 14&#45;&gt;0 -->
-<g id="edge24" class="edge"><title>14&#45;&gt;0</title>
-<path fill="none" stroke="black" d="M825.611,-108.037C838.008,-117.539 852.578,-130.222 863,-144 877.288,-162.889 888.161,-187.555 895.108,-206.128"/>
-<polygon fill="black" stroke="black" points="898.56,-215.744 890.946,-207.852 896.871,-211.038 895.181,-206.332 895.181,-206.332 895.181,-206.332 896.871,-211.038 899.417,-204.811 898.56,-215.744 898.56,-215.744"/>
+<polygon fill="none" stroke="black" points="5020.5,-36 4652.5,-36 4652.5,-0 5020.5,-0 5020.5,-36"/>
+<text text-anchor="middle" x="4836.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/lib/v3bwfile.py</text>
 </g>
-<!-- 14&#45;&gt;7 -->
-<g id="edge25" class="edge"><title>14&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M802.536,-108.084C803.46,-126.789 802.682,-157.159 791,-180 750.345,-259.487 663.477,-322.56 612.845,-354.377"/>
-<polygon fill="black" stroke="black" points="604.134,-359.767 610.27,-350.678 608.386,-357.136 612.638,-354.505 612.638,-354.505 612.638,-354.505 608.386,-357.136 615.006,-358.332 604.134,-359.767 604.134,-359.767"/>
-</g>
-<!-- 14&#45;&gt;13 -->
-<g id="edge26" class="edge"><title>14&#45;&gt;13</title>
-<path fill="none" stroke="black" d="M745.76,-108.034C713.629,-117.943 672.952,-130.486 639.25,-140.879"/>
-<polygon fill="black" stroke="black" points="629.488,-143.889 637.718,-136.642 634.266,-142.416 639.044,-140.942 639.044,-140.942 639.044,-140.942 634.266,-142.416 640.37,-145.243 629.488,-143.889 629.488,-143.889"/>
-</g>
-<!-- 14&#45;&gt;18 -->
-<g id="edge27" class="edge"><title>14&#45;&gt;18</title>
-<path fill="none" stroke="black" d="M809.899,-108.313C814.865,-118.5 820.865,-131.75 825,-144 840.493,-189.898 851.649,-245.317 857.446,-277.713"/>
-<polygon fill="black" stroke="black" points="859.205,-287.769 853.049,-278.694 858.344,-282.844 857.482,-277.919 857.482,-277.919 857.482,-277.919 858.344,-282.844 861.915,-277.144 859.205,-287.769 859.205,-287.769"/>
+<!-- 13 -->
+<g id="node14" class="node"><title>13</title>
+<polygon fill="none" stroke="black" points="5368,-36 5039,-36 5039,-0 5368,-0 5368,-36"/>
+<text text-anchor="middle" x="5203.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/sbws.py</text>
 </g>
-<!-- 14&#45;&gt;22 -->
-<g id="edge28" class="edge"><title>14&#45;&gt;22</title>
-<path fill="none" stroke="black" d="M780.73,-108.303C770.502,-117.035 757.939,-127.76 746.822,-137.25"/>
-<polygon fill="black" stroke="black" points="739.037,-143.896 743.72,-133.98 742.839,-140.649 746.642,-137.403 746.642,-137.403 746.642,-137.403 742.839,-140.649 749.564,-140.826 739.037,-143.896 739.037,-143.896"/>
+<!-- 14 -->
+<g id="node15" class="node"><title>14</title>
+<polygon fill="none" stroke="black" points="5755,-36 5386,-36 5386,-0 5755,-0 5755,-36"/>
+<text text-anchor="middle" x="5570.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/util/__init__.py</text>
 </g>
 <!-- 15 -->
 <g id="node16" class="node"><title>15</title>
-<polygon fill="none" stroke="black" points="1142,-108 1068,-108 1068,-72 1142,-72 1142,-108"/>
-<text text-anchor="middle" x="1105" y="-86.3" font-family="Times,serif" font-size="14.00">sbws.sbws</text>
-</g>
-<!-- 15&#45;&gt;17 -->
-<g id="edge29" class="edge"><title>15&#45;&gt;17</title>
-<path fill="none" stroke="black" d="M1118.63,-108.128C1136.35,-131.26 1167.05,-174.396 1184,-216 1192.09,-235.843 1196.94,-259.64 1199.71,-277.632"/>
-<polygon fill="black" stroke="black" points="1201.15,-287.739 1195.29,-278.472 1200.44,-282.789 1199.74,-277.839 1199.74,-277.839 1199.74,-277.839 1200.44,-282.789 1204.2,-277.206 1201.15,-287.739 1201.15,-287.739"/>
-</g>
-<!-- 19 -->
-<g id="node20" class="node"><title>19</title>
-<polygon fill="none" stroke="black" points="1058,-180 956,-180 956,-144 1058,-144 1058,-180"/>
-<text text-anchor="middle" x="1007" y="-158.3" font-family="Times,serif" font-size="14.00">sbws.util.parser</text>
-</g>
-<!-- 15&#45;&gt;19 -->
-<g id="edge30" class="edge"><title>15&#45;&gt;19</title>
-<path fill="none" stroke="black" d="M1081.03,-108.124C1068.45,-117.107 1052.87,-128.237 1039.25,-137.966"/>
-<polygon fill="black" stroke="black" points="1031.07,-143.81 1036.59,-134.336 1035.13,-140.904 1039.2,-137.998 1039.2,-137.998 1039.2,-137.998 1035.13,-140.904 1041.82,-141.66 1031.07,-143.81 1031.07,-143.81"/>
+<polygon fill="none" stroke="black" points="6132,-36 5773,-36 5773,-0 6132,-0 6132,-36"/>
+<text text-anchor="middle" x="5952.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/util/config.py</text>
 </g>
 <!-- 16 -->
 <g id="node17" class="node"><title>16</title>
-<polygon fill="none" stroke="black" points="1155.5,-36 1090.5,-36 1090.5,-0 1155.5,-0 1155.5,-36"/>
-<text text-anchor="middle" x="1123" y="-14.3" font-family="Times,serif" font-size="14.00">sbws.util</text>
-</g>
-<!-- 17&#45;&gt;7 -->
-<g id="edge31" class="edge"><title>17&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M1150.9,-322.18C1147.9,-322.848 1144.92,-323.462 1142,-324 954.806,-358.531 728.533,-371.086 627.374,-375.199"/>
-<polygon fill="black" stroke="black" points="617.111,-375.605 626.926,-370.714 622.108,-375.407 627.104,-375.21 627.104,-375.21 627.104,-375.21 622.108,-375.407 627.281,-379.706 617.111,-375.605 617.111,-375.605"/>
+<polygon fill="none" stroke="black" points="6515,-36 6150,-36 6150,-0 6515,-0 6515,-36"/>
+<text text-anchor="middle" x="6332.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/util/filelock.py</text>
 </g>
-<!-- 18&#45;&gt;7 -->
-<g id="edge32" class="edge"><title>18&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M806.643,-320.66C802.029,-321.792 797.435,-322.917 793,-324 736.415,-337.818 671.564,-353.492 627.207,-364.188"/>
-<polygon fill="black" stroke="black" points="617.228,-366.594 625.895,-359.876 622.089,-365.422 626.95,-364.25 626.95,-364.25 626.95,-364.25 622.089,-365.422 628.004,-368.625 617.228,-366.594 617.228,-366.594"/>
+<!-- 17 -->
+<g id="node18" class="node"><title>17</title>
+<polygon fill="none" stroke="black" points="6866.5,-36 6532.5,-36 6532.5,-0 6866.5,-0 6866.5,-36"/>
+<text text-anchor="middle" x="6699.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/util/fs.py</text>
 </g>
-<!-- 19&#45;&gt;0 -->
-<g id="edge33" class="edge"><title>19&#45;&gt;0</title>
-<path fill="none" stroke="black" d="M981.803,-180.124C968.586,-189.107 952.208,-200.237 937.893,-209.966"/>
-<polygon fill="black" stroke="black" points="929.293,-215.81 935.035,-206.467 933.429,-213 937.564,-210.189 937.564,-210.189 937.564,-210.189 933.429,-213 940.094,-213.911 929.293,-215.81 929.293,-215.81"/>
+<!-- 18 -->
+<g id="node19" class="node"><title>18</title>
+<polygon fill="none" stroke="black" points="7242,-36 6885,-36 6885,-0 7242,-0 7242,-36"/>
+<text text-anchor="middle" x="7063.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/util/parser.py</text>
 </g>
-<!-- 19&#45;&gt;2 -->
-<g id="edge34" class="edge"><title>19&#45;&gt;2</title>
-<path fill="none" stroke="black" d="M1007,-180.303C1007,-188.017 1007,-197.288 1007,-205.888"/>
-<polygon fill="black" stroke="black" points="1007,-215.896 1002.5,-205.896 1007,-210.896 1007,-205.896 1007,-205.896 1007,-205.896 1007,-210.896 1011.5,-205.896 1007,-215.896 1007,-215.896"/>
+<!-- 19 -->
+<g id="node20" class="node"><title>19</title>
+<polygon fill="none" stroke="black" points="7628.5,-36 7260.5,-36 7260.5,-0 7628.5,-0 7628.5,-36"/>
+<text text-anchor="middle" x="7444.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/util/requests.py</text>
 </g>
-<!-- 20&#45;&gt;21 -->
-<g id="edge35" class="edge"><title>20&#45;&gt;21</title>
-<path fill="none" stroke="black" d="M181.664,-252.124C195.784,-261.192 213.311,-272.448 228.561,-282.241"/>
-<polygon fill="black" stroke="black" points="237.233,-287.81 226.387,-286.193 233.026,-285.108 228.819,-282.407 228.819,-282.407 228.819,-282.407 233.026,-285.108 231.25,-278.62 237.233,-287.81 237.233,-287.81"/>
+<!-- 20 -->
+<g id="node21" class="node"><title>20</title>
+<polygon fill="none" stroke="black" points="7996,-36 7647,-36 7647,-0 7996,-0 7996,-36"/>
+<text text-anchor="middle" x="7821.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/util/state.py</text>
 </g>
-<!-- 21&#45;&gt;7 -->
-<g id="edge36" class="edge"><title>21&#45;&gt;7</title>
-<path fill="none" stroke="black" d="M311.758,-317.784C368.272,-330.545 462.093,-351.731 520.859,-365"/>
-<polygon fill="black" stroke="black" points="530.692,-367.221 519.946,-369.408 525.815,-366.119 520.938,-365.018 520.938,-365.018 520.938,-365.018 525.815,-366.119 521.929,-360.629 530.692,-367.221 530.692,-367.221"/>
+<!-- 21 -->
+<g id="node22" class="node"><title>21</title>
+<polygon fill="none" stroke="black" points="8396.5,-36 8014.5,-36 8014.5,-0 8396.5,-0 8396.5,-36"/>
+<text text-anchor="middle" x="8205.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/util/timestamp.py</text>
 </g>
-<!-- 21&#45;&gt;21 -->
-<g id="edge37" class="edge"><title>21&#45;&gt;21</title>
-<path fill="none" stroke="black" d="M311.69,-292.899C322.013,-294.18 329.5,-298.547 329.5,-306 329.5,-310.775 326.428,-314.283 321.505,-316.524"/>
-<polygon fill="black" stroke="black" points="311.69,-319.101 320.22,-312.209 316.526,-317.831 321.362,-316.562 321.362,-316.562 321.362,-316.562 316.526,-317.831 322.505,-320.914 311.69,-319.101 311.69,-319.101"/>
+<!-- 22 -->
+<g id="node23" class="node"><title>22</title>
+<polygon fill="none" stroke="black" points="8792,-36 8415,-36 8415,-0 8792,-0 8792,-36"/>
+<text text-anchor="middle" x="8603.5" y="-14.3" font-family="Times,serif" font-size="14.00">/home/user/_my/code/bwauth&#45;related/sbws/sbws/util/userquery.py</text>
 </g>
 </g>
 </svg>



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits