Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge with master and fix conflicts
authoralebre <adrien.lebre@inria.fr>
Thu, 21 Feb 2013 12:02:15 +0000 (13:02 +0100)
committeralebre <adrien.lebre@inria.fr>
Thu, 21 Feb 2013 12:02:15 +0000 (13:02 +0100)
314 files changed:
.gitignore
ChangeLog
NEWS
README
buildtools/Cmake/AddTests.cmake
buildtools/Cmake/CompleteInFiles.cmake
buildtools/Cmake/DefinePackages.cmake
buildtools/Cmake/Distrib.cmake
buildtools/Cmake/Flags.cmake
buildtools/Cmake/GenerateDoc.cmake
buildtools/Cmake/MaintainerMode.cmake
buildtools/Cmake/MakeExe.cmake
buildtools/Cmake/MakeJava.cmake [new file with mode: 0644]
buildtools/Cmake/MakeLib.cmake
buildtools/Cmake/MakeLibWin.cmake
buildtools/Cmake/PrintArgs.cmake
buildtools/Cmake/Scripts/generate_memcheck_tests.pl
buildtools/Cmake/Scripts/my_valgrind.pl
buildtools/Cmake/Scripts/test_java.sh [deleted file]
buildtools/Cmake/src/internal_config.h.in
buildtools/Cmake/src/simgrid.nsi.in
buildtools/Cmake/test_prog/prog_getline.c [deleted file]
buildtools/pipol/Experimental_bindings.sh
buildtools/pipol/MemCheck.sh
buildtools/pipol/Nightly_simgrid.sh
buildtools/pipol/rc.debian
buildtools/pipol/rc.ubuntu
doc/Doxyfile.in
doc/doxygen/bindings.doc
doc/doxygen/inside_cmake.doc
doc/doxygen/inside_release.doc
doc/doxygen/install.doc
examples/java/async/CMakeLists.txt [new file with mode: 0644]
examples/java/async/async.tesh
examples/java/bittorrent/CMakeLists.txt
examples/java/bittorrent/bittorrent.tesh
examples/java/chord/CMakeLists.txt [new file with mode: 0644]
examples/java/chord/chord.tesh
examples/java/cloud/CMakeLists.txt [new file with mode: 0644]
examples/java/cloud/Slave.java
examples/java/cloud/cloud.tesh
examples/java/commTime/CMakeLists.txt [new file with mode: 0644]
examples/java/commTime/commtime.tesh
examples/java/io/CMakeLists.txt [new file with mode: 0644]
examples/java/kademlia/CMakeLists.txt [new file with mode: 0644]
examples/java/kademlia/kademlia.tesh
examples/java/master_slave_bypass/CMakeLists.txt [new file with mode: 0644]
examples/java/master_slave_bypass/bypass.tesh
examples/java/master_slave_kill/CMakeLists.txt [new file with mode: 0644]
examples/java/master_slave_kill/Slave.java
examples/java/master_slave_kill/kill.tesh
examples/java/masterslave/CMakeLists.txt [new file with mode: 0644]
examples/java/masterslave/masterslave.tesh
examples/java/migration/CMakeLists.txt [new file with mode: 0644]
examples/java/migration/migration.tesh
examples/java/mutualExclusion/CMakeLists.txt [new file with mode: 0644]
examples/java/mutualExclusion/Coordinator.java [moved from examples/java/mutualExclusion/centralized/Coordinator.java with 100% similarity]
examples/java/mutualExclusion/GrantTask.java [moved from examples/java/mutualExclusion/centralized/GrantTask.java with 100% similarity]
examples/java/mutualExclusion/MutexCentral.java [moved from examples/java/mutualExclusion/centralized/MutexCentral.java with 100% similarity]
examples/java/mutualExclusion/Node.java [moved from examples/java/mutualExclusion/centralized/Node.java with 100% similarity]
examples/java/mutualExclusion/ReleaseTask.java [moved from examples/java/mutualExclusion/centralized/ReleaseTask.java with 100% similarity]
examples/java/mutualExclusion/RequestTask.java [moved from examples/java/mutualExclusion/centralized/RequestTask.java with 100% similarity]
examples/java/mutualExclusion/mutex_centralized_deployment.xml [moved from examples/java/mutualExclusion/centralized/mutex_centralized_deployment.xml with 100% similarity]
examples/java/mutualExclusion/mutualexclusion.tesh
examples/java/pingPong/CMakeLists.txt [new file with mode: 0644]
examples/java/pingPong/pingpong.tesh
examples/java/priority/CMakeLists.txt [new file with mode: 0644]
examples/java/priority/priority.tesh
examples/java/startKillTime/CMakeLists.txt [new file with mode: 0644]
examples/java/startKillTime/Slave.java
examples/java/startKillTime/startKillTime.tesh
examples/java/suspend/CMakeLists.txt [new file with mode: 0644]
examples/java/suspend/suspend.tesh
examples/java/tracing/CMakeLists.txt [new file with mode: 0644]
examples/java/tracing/tracingPingPong.tesh
examples/msg/actions/CMakeLists.txt
examples/msg/actions/actions.c
examples/msg/bittorrent/bittorrent.c
examples/msg/bittorrent/bittorrent.h
examples/msg/bittorrent/bittorrent.tesh
examples/msg/bittorrent/bittorrent_platfgen.c
examples/msg/bittorrent/peer.c
examples/msg/bittorrent/tracker.c
examples/msg/chainsend/CMakeLists.txt
examples/msg/chainsend/broadcaster.c
examples/msg/chainsend/broadcaster.h
examples/msg/chainsend/chainsend.tesh
examples/msg/chainsend/common.c
examples/msg/chainsend/deployment_tesh.xml
examples/msg/chainsend/iterator.h
examples/msg/chainsend/messages.c
examples/msg/chainsend/messages.h
examples/msg/chainsend/peer.c
examples/msg/chainsend/peer.h
examples/msg/cloud/CMakeLists.txt
examples/msg/cloud/masterslave_virtual_machines.c
examples/msg/cloud/masterslave_virtual_machines.tesh
examples/msg/gpu/CMakeLists.txt
examples/msg/gtnets/CMakeLists.txt
examples/msg/io/CMakeLists.txt
examples/msg/io/file.c
examples/msg/io/file_unlink.c
examples/msg/io/io.tesh
examples/msg/kademlia/routing_table.c
examples/msg/masterslave/CMakeLists.txt
examples/msg/masterslave/masterslave_bypass.c
examples/msg/mc/CMakeLists.txt
examples/msg/mc/bugged1_liveness.c
examples/msg/mc/bugged1_liveness.tesh
examples/msg/mc/bugged2_liveness.c
examples/msg/mc/chord/chord_neverjoin.tesh
examples/msg/migration/CMakeLists.txt
examples/msg/migration/migration.c
examples/msg/ns3/CMakeLists.txt
examples/msg/parallel_task/CMakeLists.txt
examples/msg/pmm/CMakeLists.txt
examples/msg/pmm/pmm.tesh
examples/msg/priority/CMakeLists.txt
examples/msg/properties/CMakeLists.txt
examples/msg/sendrecv/CMakeLists.txt
examples/msg/start_kill_time/CMakeLists.txt
examples/msg/suspend/CMakeLists.txt
examples/msg/token_ring/CMakeLists.txt
examples/msg/tracing/CMakeLists.txt
examples/msg/tracing/trace_platform.tesh
examples/simdag/CMakeLists.txt
examples/simdag/dax/CMakeLists.txt
examples/simdag/dot/dag_with_bad_schedule.dot
examples/simdag/dot/dot_test.c
examples/simdag/dot/simulate_dot.c
examples/simdag/dot/test_simdag_dotload.tesh
examples/simdag/goal/CMakeLists.txt
examples/simdag/metaxml/CMakeLists.txt
examples/simdag/properties/CMakeLists.txt
examples/simdag/test_simdag_tracing.tesh
examples/smpi/CMakeLists.txt
examples/smpi/MM/2.5D_MM.c
examples/smpi/MM/CMakeLists.txt
examples/smpi/MM/Summa.c
examples/smpi/replay/actions_alltoall.txt [new file with mode: 0644]
examples/smpi/replay/actions_alltoallv.txt [new file with mode: 0644]
examples/smpi/replay/actions_bcast_reduce_datatypes.txt [new file with mode: 0644]
examples/smpi/replay/actions_waitall.txt [new file with mode: 0644]
examples/smpi/replay/smpi_replay.tesh
examples/smpi/tracing/smpi_traced.tesh
include/msg/datatypes.h
include/msg/msg.h
include/simgrid/simix.h
include/simgrid_config.h.in
include/smpi/smpi_main.h
include/surf/simgrid_dtd.h
include/xbt/dynar.h
include/xbt/ex.h
include/xbt/graphxml.h
include/xbt/mmalloc.h
include/xbt/str.h
include/xbt/synchro_core.h
include/xbt/virtu.h
simgrid-java/.gitignore [deleted file]
simgrid-java/CMakeLists.txt [deleted file]
src/bindings/java/jmsg.c
src/bindings/java/jmsg_comm.c
src/bindings/java/jmsg_file.c
src/bindings/java/jmsg_process.c
src/bindings/java/jmsg_rngstream.c
src/bindings/java/jmsg_synchro.c
src/bindings/java/jmsg_task.c
src/bindings/java/jmsg_task.h
src/bindings/java/jmsg_vm.c
src/bindings/java/jmsg_vm.h
src/bindings/java/jxbt_utilities.h
src/bindings/java/org/simgrid/msg/File.java
src/bindings/java/org/simgrid/msg/Host.java
src/bindings/java/org/simgrid/msg/Msg.java
src/bindings/java/org/simgrid/msg/Process.java
src/bindings/java/org/simgrid/msg/VM.java
src/bindings/java/org/simgrid/trace/Trace.java
src/bindings/java/smx_context_cojava.c
src/bindings/java/smx_context_cojava.h
src/bindings/java/smx_context_java.c
src/bindings/java/smx_context_java.h
src/bindings/lua/simgrid_lua.h
src/include/instr/instr_interface.h
src/include/mc/datatypes.h
src/include/mc/mc.h
src/include/smpi/smpi_interface.h
src/include/surf/surf.h
src/instr/instr_paje_containers.c
src/instr/instr_paje_values.c
src/instr/instr_private.h
src/mc/mc_checkpoint.c
src/mc/mc_compare.c
src/mc/mc_dpor.c
src/mc/mc_global.c
src/mc/mc_liveness.c
src/mc/mc_private.h
src/mc/memory_map.c
src/msg/msg_actions.c
src/msg/msg_gos.c
src/msg/msg_mailbox.c
src/msg/msg_private.h
src/msg/msg_vm.c
src/portable.h
src/simdag/dax_dtd.c
src/simdag/dax_dtd.h
src/simdag/instr_sd_task.c
src/simdag/sd_daxloader.c
src/simdag/sd_dotloader.c
src/simdag/sd_task.c
src/simgrid/sg_config.c
src/simix/smx_context_base.c
src/simix/smx_deployment.c
src/simix/smx_host.c
src/simix/smx_network.c
src/simix/smx_network_private.h
src/simix/smx_process.c
src/simix/smx_smurf_private.h
src/simix/smx_user.c
src/smpi/private.h
src/smpi/smpi_base.c
src/smpi/smpi_f77.c
src/smpi/smpi_global.c
src/smpi/smpi_group.c
src/smpi/smpi_pmpi.c
src/smpi/smpi_replay.c
src/smpi/smpicc.in
src/smpi/smpif90.in
src/smpi/smpirun.in
src/surf/instr_routing.c
src/surf/sg_platf.c
src/surf/simgrid_dtd.c
src/surf/storage.c
src/surf/surf.c
src/surf/surf_private.h
src/surf/surf_routing.c
src/surf/surf_routing_cluster.c
src/surf/surf_routing_dijkstra.c
src/surf/surf_routing_floyd.c
src/surf/surf_routing_full.c
src/surf/surf_routing_generic.c
src/surf/surf_routing_none.c
src/surf/surf_routing_private.h
src/surf/surf_routing_rulebased.c
src/surf/surf_routing_vivaldi.c
src/surf/surfxml_parse.c
src/surf/trace_mgr.c
src/surf/workstation.c
src/surf/workstation_ptask_L07.c
src/win32/config.h
src/xbt/automaton/automaton.c
src/xbt/config.c
src/xbt/dict.c
src/xbt/dynar.c
src/xbt/ex.c
src/xbt/graph.c
src/xbt/graphxml.c
src/xbt/log.c
src/xbt/mmalloc/mm_diff.c
src/xbt/mmalloc/mm_module.c
src/xbt/snprintf.c
src/xbt/xbt_log_layout_format.c
src/xbt/xbt_main.c
src/xbt/xbt_os_thread.c
src/xbt/xbt_queue.c
src/xbt/xbt_replay.c
src/xbt/xbt_sg_synchro.c
src/xbt/xbt_str.c
teshsuite/msg/trace/CMakeLists.txt
teshsuite/simdag/availability/CMakeLists.txt [new file with mode: 0644]
teshsuite/simdag/availability/availability_test.c [new file with mode: 0644]
teshsuite/simdag/availability/availability_test.tesh [new file with mode: 0644]
teshsuite/simdag/availability/linkBandwidth7.bw [new file with mode: 0644]
teshsuite/simdag/availability/simulacrum_7_hosts.xml [new file with mode: 0644]
teshsuite/simdag/basic0.tesh
teshsuite/simdag/basic1.tesh
teshsuite/simdag/basic2.tesh
teshsuite/simdag/basic3.tesh
teshsuite/simdag/basic4.tesh
teshsuite/simdag/basic5.tesh
teshsuite/simdag/basic6.tesh
teshsuite/simdag/incomplete.tesh
teshsuite/simdag/network/mxn/test_intra_all2all.tesh
teshsuite/simdag/network/mxn/test_intra_independent_comm.tesh
teshsuite/simdag/network/mxn/test_intra_scatter.tesh
teshsuite/simdag/network/p2p/test_latency1.tesh
teshsuite/simdag/network/p2p/test_latency2.tesh
teshsuite/simdag/network/p2p/test_latency3.tesh
teshsuite/simdag/network/p2p/test_latency_bound.tesh
teshsuite/simdag/network/test_reinit_costs.tesh
teshsuite/simdag/partask/test_comp_only_par.tesh
teshsuite/simdag/partask/test_comp_only_seq.tesh
teshsuite/simdag/platforms/basic_parsing_test.tesh
teshsuite/smpi/CMakeLists.txt
teshsuite/smpi/dsend.c
teshsuite/smpi/mpich-test/coll/CMakeLists.txt
teshsuite/smpi/mpich-test/context/CMakeLists.txt
teshsuite/smpi/mpich-test/env/CMakeLists.txt
teshsuite/smpi/mpich-test/env/runtests
teshsuite/smpi/mpich-test/profile/CMakeLists.txt
teshsuite/smpi/mpich-test/pt2pt/CMakeLists.txt
teshsuite/smpi/mpich-test/pt2pt/flood.c
teshsuite/smpi/mpich-test/pt2pt/flood2.c
teshsuite/smpi/mpich-test/pt2pt/issendtest.c
teshsuite/smpi/mpich-test/pt2pt/longmsgs.c
teshsuite/smpi/mpich-test/pt2pt/overtake.c
teshsuite/smpi/mpich-test/pt2pt/runtests
teshsuite/smpi/mpich-test/pt2pt/ssendtest.c
teshsuite/smpi/mpich-test/pt2pt/ssendtest2.std
teshsuite/smpi/mpich-test/pt2pt/waitall2.c
tools/check_dist_archive
tools/tesh/README
tools/tesh/run_context.h
tools/tesh/tesh.1
tools/tesh/tesh.c

index b60eef0..47a2888 100644 (file)
@@ -11,6 +11,7 @@
 *.patch
 *.plist
 *.trace
+*.class
 
 ################################################
 ### Maintainer mode
@@ -66,12 +67,13 @@ CMakeFiles
 CMakeCache.txt
 DartConfiguration.tcl
 simgrid.nsi
+TAGS
 Testing/
 Makefile
 bin/
 lib/
 manpages/
-build_dir/
+build_*/
 build/
 buildtools/Cmake/memcheck_tests.cmake
 buildtools/Cmake/test_prog/prog_va_copy.c
@@ -148,11 +150,11 @@ examples/msg/mc/bugged1_while_liveness
 examples/msg/mc/centralized_liveness_deadlock
 examples/msg/mc/test/test_heap_comparison
 examples/msg/mc/chord_liveness
-examples/msg/mc/test/snapshot_comparison_liveness1
-examples/msg/mc/test/snapshot_comparison_liveness2
-examples/msg/mc/test/snapshot_comparison_liveness3
-examples/msg/mc/test/snapshot_comparison_liveness4
-examples/msg/mc/test/snapshot_comparison_liveness5
+examples/msg/mc/test/snapshot_comparison1
+examples/msg/mc/test/snapshot_comparison2
+examples/msg/mc/test/snapshot_comparison3
+examples/msg/mc/test/snapshot_comparison4
+examples/msg/mc/test/snapshot_comparison5
 examples/msg/chainsend/chainsend
 examples/msg/chord/chord
 examples/msg/chord/chord_stateful
@@ -457,27 +459,22 @@ examples/smpi/smpi_traced.trace
 examples/simdag/dot/simulate_dot
 teshsuite/simdag/platforms/graphicator
 
-#########################################""
-## tutorial files
-doc/gtut-files/01-bones_client
-doc/gtut-files/01-bones_server
-doc/gtut-files/02-simple_client
-doc/gtut-files/02-simple_server
-doc/gtut-files/03-args_client
-doc/gtut-files/03-args_server
-doc/gtut-files/04-callback_client
-doc/gtut-files/04-callback_server
-doc/gtut-files/05-globals_client
-doc/gtut-files/05-globals_server
-doc/gtut-files/06-logs_client
-doc/gtut-files/06-logs_server
-doc/gtut-files/07-timers_client
-doc/gtut-files/07-timers_server
-doc/gtut-files/08-exceptions_client
-doc/gtut-files/08-exceptions_server
-doc/gtut-files/09-simpledata_client
-doc/gtut-files/09-simpledata_server
-doc/gtut-files/10-rpc_client
-doc/gtut-files/10-rpc_server
-doc/gtut-files/11-explicitwait_client
-doc/gtut-files/11-explicitwait_server
+#########################################
+## touched files to track the dependencies of java examples
+examples/java/async/java_async_compiled
+examples/java/bittorrent/java_bittorrent_compiled
+examples/java/chord/java_chord_compiled
+examples/java/cloud/java_cloud_compiled
+examples/java/commTime/java_commTime_compiled
+examples/java/io/java_io_compiled
+examples/java/kademlia/java_kademlia_compiled
+examples/java/master_slave_bypass/java_master_slave_bypass_compiled
+examples/java/master_slave_kill/java_master_slave_kill_compiled
+examples/java/masterslave/java_masterslave_compiled
+examples/java/migration/java_migration_compiled
+examples/java/mutualExclusion/java_mutualExclusion_compiled
+examples/java/pingPong/java_pingPong_compiled
+examples/java/priority/java_priority_compiled
+examples/java/startKillTime/java_startKillTime_compiled
+examples/java/suspend/java_suspend_compiled
+examples/java/tracing/java_tracing_compiled
index d7b768a..5176313 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,25 @@
 SimGrid (3.10) NOT RELEASED; urgency=low
 
- (to complete)
+ XBT:
+ * Our own implementation of getline is renamed xbt_getline, and gets
+   used even if the OS provide a getline(). This should reduce the
+   configuration complexity by using the same code on all platforms.
+
+ Java:
+ * Reintegrate Java to the main archive as desynchronizing these
+   package is not acceptable anymore (Java is now considered stable)
+ * Bugfix: Task.setDataSize() only changed the C world, not the value
+   cached in the Java world
+
+ SMPI:
+ * Improvements of the SMPI replay tool:
+   - Most of the collective communications are now rooted in the same process as
+     in the original application.
+   - Traces now rely on the same MPI datatype as the application (MPI_BYTE was 
+     used until now). Multiple datatypes can now be used in a trace.
+   - The replay tool now supports traces produce either by TAU or a modified 
+     version of MPE.
+   - Bug Fix: the compute part of the reduce action is now taken into account.
 
 -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
@@ -78,7 +97,7 @@ SimGrid (3.9) stable; urgency=low
  TRACING:
  * Transfer the tracing files into the corresponding modules.
 
- -- Tue Jan 29 19:38:56 CET 2013 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ -- Tue Feb 5 11:31:43 CET 2013 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.8.1) stable; urgency=low
 
diff --git a/NEWS b/NEWS
index 1f8b413..b4ddce2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ __   _____ _ __ ___(_) ___  _ __   |___ // _ \
 \ \ / / _ \ '__/ __| |/ _ \| '_ \    |_ \ (_) |
  \ V /  __/ |  \__ \ | (_) | | | |  ___) \__, |
   \_/ \___|_|  |___/_|\___/|_| |_| |____(_)/_/
-                Jan 29 2013
+                Feb 5 2013
 
 The "Grasgory" release. Major changes:
 
diff --git a/README b/README
index 4b05068..d1d40b9 100644 (file)
--- a/README
+++ b/README
@@ -1,12 +1,13 @@
 
-
 Welcome to the SimGrid project!
 
-Up-to-date documentation about installation and how to use SimGrid is available
-online at http://simgrid.gforge.inria.fr/ 
+SimGrid is a scientific instrument to study the behavior of 
+large-scale distributed systems such as Grids, Clouds, HPC or P2P
+systems. It can be used to evaluate heuristics, prototype applications 
+or even assess legacy MPI applications.
 
-The documentation is also included in the archive you downloaded: Check
-doc/html/index.html for more information.
+More documentation is included in this archive (doc/html/index.html)
+or online at http://simgrid.gforge.inria.fr/ 
 
 In any case, you may want to subscribe to the user mailing list 
 (http://lists.gforge.inria.fr/mailman/listinfo/simgrid-user). There,
@@ -14,7 +15,9 @@ you can find answers to your questions, or simply discuss with people
 doing the same kind of research than you do, in an active and friendly
 community.
 
-Thanks for downloading our software,
+Thanks for using our software. Please do great things with it and tell
+the world about it. Tell us, too, because we love to have positive
+feedback.
 
 Cheers,
 Da SimGrid Team.
index 13121b9..1b3dda1 100644 (file)
@@ -106,6 +106,7 @@ if(NOT enable_memcheck)
   ADD_TEST(tesh-simdag-mxn-3                    ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/network/mxn/test_intra_scatter.tesh)
   ADD_TEST(tesh-simdag-par-1                    ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/partask/test_comp_only_seq.tesh)
   ADD_TEST(tesh-simdag-par-2                    ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/partask/test_comp_only_par.tesh)
+  ADD_TEST(tesh-simdag-availability             ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/availability/availability_test.tesh)
 
   # MSG examples
   ADD_TEST(msg-file                             ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/ --setenv srcdir=${CMAKE_HOME_DIRECTORY}/ --cd ${CMAKE_HOME_DIRECTORY}/examples/ ${CMAKE_HOME_DIRECTORY}/examples/msg/io/io.tesh)
@@ -316,12 +317,6 @@ if(NOT enable_memcheck)
     ADD_TEST(graphicator                        ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} --setenv bindir=${CMAKE_BINARY_DIR}/bin --cd ${CMAKE_HOME_DIRECTORY}/tools/graphicator graphicator.tesh)
   ENDIF()
 
-  # Java examples
-  set(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/java/:${CMAKE_BINARY_DIR}/simgrid.jar")
-  if(enable_java)
-    ADD_TEST(java-bittorrent ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_HOME_DIRECTORY}/examples/java bittorrent/bittorrent.tesh)
-  endif()
-
   # Lua examples
   if(HAVE_LUA)
     ADD_TEST(lua-duplicated-globals             ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cd ${CMAKE_HOME_DIRECTORY}/examples/lua/state_cloner duplicated_globals.tesh)
@@ -389,6 +384,29 @@ if(NOT enable_memcheck)
     endif()
   endif()
 
+  # Java examples
+  if(enable_java)
+    set(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/java/:${SIMGRID_JAR}")
+    ADD_TEST(java-async                         ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/async/async.tesh)
+    ADD_TEST(java-bittorrent                    ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/bittorrent/bittorrent.tesh)
+    ADD_TEST(java-bypass                        ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/master_slave_bypass/bypass.tesh)
+    ADD_TEST(java-chord                         ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/chord/chord.tesh)
+    ADD_TEST(java-cloud                         ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/cloud/cloud.tesh)
+    ADD_TEST(java-commTime                      ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/commTime/commtime.tesh)
+    ADD_TEST(java-kademlia                      ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/kademlia/kademlia.tesh)
+    ADD_TEST(java-kill                          ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/master_slave_kill/kill.tesh)
+    ADD_TEST(java-masterslave                   ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/masterslave/masterslave.tesh)
+    ADD_TEST(java-migration                     ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/migration/migration.tesh)
+    ADD_TEST(java-mutualExclusion               ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/mutualExclusion/mutualexclusion.tesh)
+    ADD_TEST(java-pingPong                      ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/pingPong/pingpong.tesh)
+    ADD_TEST(java-priority                      ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/priority/priority.tesh)
+    ADD_TEST(java-startKillTime                 ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/startKillTime/startKillTime.tesh)
+    ADD_TEST(java-suspend                       ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/suspend/suspend.tesh)
+    if(HAVE_TRACING)
+      ADD_TEST(java-tracing                       ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/tracing/tracingPingPong.tesh)
+    endif()
+  endif()
+
   # examples/msg/mc
   if(HAVE_MC)
     ADD_TEST(mc-bugged1-thread                  ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged1.tesh)
@@ -428,14 +446,6 @@ if(NOT enable_memcheck)
         set_tests_properties(mc-centralized-raw PROPERTIES WILL_FAIL true)
       endif()
     endif()
-    set_tests_properties(msg-masterslave-virtual-machines PROPERTIES WILL_FAIL true)
-    set_tests_properties(msg-bittorrent-thread-parallel PROPERTIES ENVIRONMENT SG_TEST_EXENV=true WILL_FAIL true)
-    if(CONTEXT_UCONTEXT)
-      set_tests_properties(msg-bittorrent-ucontext-parallel PROPERTIES ENVIRONMENT SG_TEST_EXENV=true WILL_FAIL true)
-    endif()
-    if(HAVE_RAWCTX)
-      set_tests_properties(msg-bittorrent-raw-parallel PROPERTIES ENVIRONMENT SG_TEST_EXENV=true WILL_FAIL true)
-    endif()
   endif()
 
 endif()
index 00cf1ec..a5bec10 100644 (file)
@@ -85,7 +85,8 @@ endif()
 if(enable_java)
   find_package(Java REQUIRED COMPONENTS Runtime Development)
   find_package(JNI REQUIRED)
-  include(UseJava)
+  message("-- [Java] JNI found: ${JNI_FOUND}")
+  message("-- [Java] JNI include dirs: ${JNI_INCLUDE_DIRS}")
   set(HAVE_Java 1)
 endif()
 if(enable_lua)
@@ -691,20 +692,6 @@ foreach(fct ${diff_va})
 endforeach(fct ${diff_va})
 
 #--------------------------------------------------------------------------------------------------
-### check for getline
-try_compile(COMPILE_RESULT_VAR
-  ${CMAKE_BINARY_DIR}
-  ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_getline.c
-  )
-
-if(NOT COMPILE_RESULT_VAR)
-  SET(need_getline "#define SIMGRID_NEED_GETLINE 1")
-  SET(SIMGRID_NEED_GETLINE 1)
-else()
-  SET(need_getline "")
-  SET(SIMGRID_NEED_GETLINE 0)
-endif()
-
 ### check for a working snprintf
 if(HAVE_SNPRINTF AND HAVE_VSNPRINTF OR WIN32)
   if(WIN32)
@@ -865,6 +852,9 @@ else()
   configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions_barrier.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_barrier.txt COPYONLY)
   configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions_bcast.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_bcast.txt COPYONLY)
   configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions_with_isend.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_with_isend.txt COPYONLY)
+  configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions_alltoall.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_alltoall.txt COPYONLY)
+  configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions_alltoallv.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_alltoallv.txt COPYONLY)
+  configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/actions_waitall.txt ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_waitall.txt COPYONLY)
   configure_file(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/hostfile ${CMAKE_BINARY_DIR}/teshsuite/smpi/hostfile COPYONLY)
 
   set(generated_files_to_clean
@@ -879,6 +869,9 @@ else()
     ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_barrier.txt
     ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_bcast.txt
     ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_with_isend.txt
+    ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_alltoall.txt
+    ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_alltoallv.txt
+    ${CMAKE_BINARY_DIR}/examples/smpi/replay/actions_waitall.txt
     ${CMAKE_BINARY_DIR}/teshsuite/smpi/hostfile
     )
 endif()
index 9b0323b..3618099 100644 (file)
@@ -374,8 +374,10 @@ set(JTRACE_JAVA_SRC
 
 if(HAVE_TRACING)
   list(APPEND JMSG_C_SRC ${JTRACE_C_SRC})
+  list(APPEND JMSG_JAVA_SRC ${JTRACE_JAVA_SRC})
 else()
   list(APPEND EXTRA_DIST ${JTRACE_C_SRC})
+  list(APPEND EXTRA_DIST ${JTRACE_JAVA_SRC})
 endif()
 
 set(LUA_SRC
@@ -718,7 +720,9 @@ set(txt_files
   AUTHORS
   COPYING
   README
+  README.java
   ChangeLog
+  ChangeLog.SimGrid-java
   INSTALL
   LICENSE-LGPL-2.1
   NEWS
@@ -727,7 +731,24 @@ set(txt_files
   )
 
 set(EXAMPLES_CMAKEFILES_TXT
+  examples/java/CMakeLists.txt
+  examples/java/async/CMakeLists.txt
   examples/java/bittorrent/CMakeLists.txt
+  examples/java/chord/CMakeLists.txt
+  examples/java/cloud/CMakeLists.txt
+  examples/java/commTime/CMakeLists.txt
+  examples/java/io/CMakeLists.txt
+  examples/java/kademlia/CMakeLists.txt
+  examples/java/master_slave_bypass/CMakeLists.txt
+  examples/java/master_slave_kill/CMakeLists.txt
+  examples/java/masterslave/CMakeLists.txt
+  examples/java/migration/CMakeLists.txt
+  examples/java/mutualExclusion/CMakeLists.txt
+  examples/java/pingPong/CMakeLists.txt
+  examples/java/priority/CMakeLists.txt
+  examples/java/startKillTime/CMakeLists.txt
+  examples/java/suspend/CMakeLists.txt
+  examples/java/tracing/CMakeLists.txt
   examples/lua/CMakeLists.txt
   examples/msg/CMakeLists.txt
   examples/msg/actions/CMakeLists.txt
@@ -775,6 +796,7 @@ set(TESHSUITE_CMAKEFILES_TXT
   teshsuite/simdag/network/p2p/CMakeLists.txt
   teshsuite/simdag/partask/CMakeLists.txt
   teshsuite/simdag/platforms/CMakeLists.txt
+  teshsuite/simdag/availability/CMakeLists.txt
   teshsuite/xbt/CMakeLists.txt
   teshsuite/smpi/CMakeLists.txt
   teshsuite/smpi/mpich-test/CMakeLists.txt
@@ -809,6 +831,7 @@ set(CMAKE_SOURCE_FILES
   buildtools/Cmake/GenerateDocWin.cmake
   buildtools/Cmake/MaintainerMode.cmake
   buildtools/Cmake/MakeExe.cmake
+  buildtools/Cmake/MakeJava.cmake
   buildtools/Cmake/MakeLib.cmake
   buildtools/Cmake/MakeLibWin.cmake
   buildtools/Cmake/Modules/FindF2c.cmake
@@ -835,14 +858,12 @@ set(CMAKE_SOURCE_FILES
   buildtools/Cmake/Scripts/postinstall.sh
   buildtools/Cmake/Scripts/preinstall.sh
   buildtools/Cmake/Scripts/tesh.pl
-  buildtools/Cmake/Scripts/test_java.sh
   buildtools/Cmake/Scripts/update_tesh.pl
   buildtools/Cmake/Supernovae.cmake
   buildtools/Cmake/UnitTesting.cmake
   buildtools/Cmake/src/internal_config.h.in
   buildtools/Cmake/src/simgrid.nsi.in
   buildtools/Cmake/test_prog/prog_AC_CHECK_MCSC.c
-  buildtools/Cmake/test_prog/prog_getline.c
   buildtools/Cmake/test_prog/prog_gnu_dynlinker.c
   buildtools/Cmake/test_prog/prog_gtnets.cpp
   buildtools/Cmake/test_prog/prog_mutex_timedlock.c
index 6e4ccb2..4e314ba 100644 (file)
@@ -75,6 +75,13 @@ if(enable_lib_static AND NOT WIN32)
   endif()
 endif()
 
+if(enable_java)
+  install(TARGETS SG_java
+      DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
+  install(FILES ${SIMGRID_JAR}
+      DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/java/)
+endif()
+
 # include files
 set(HEADERS
   ${headers_to_install}
index 28a0cb4..2a2a96f 100644 (file)
@@ -79,5 +79,5 @@ if(NOT $ENV{LDFLAGS} STREQUAL "")
 endif()
 
 if(enable_model-checking AND enable_compile_optimizations)
-  message(WARNING "Sorry for now GCC optimizations does not work with model checking.\nPlease turn off optimizations with command:\ncmake -Denable_compile_optimizations=off")
+  message(WARNING "Sorry for now GCC optimizations does not work with model checking.\nPlease turn off optimizations with command:\ncmake -Denable_compile_optimizations=off .")
 endif()
index 52df9b0..9ccde43 100644 (file)
@@ -62,7 +62,7 @@ if(DOXYGEN_PATH)
     COMMAND ${DOXYGEN_PATH}/doxygen Doxyfile
     COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_HOME_DIRECTORY}/doc/simgrid_modules.map
     COMMAND ${CMAKE_COMMAND} -E echo "XX Javadoc pass"
-    COMMAND ${JAVADOC_PATH}/javadoc -d ${CMAKE_HOME_DIRECTORY}/doc/html/javadoc/ ${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/msg/*.java
+    COMMAND ${JAVADOC_PATH}/javadoc -quiet -d ${CMAKE_HOME_DIRECTORY}/doc/html/javadoc/ ${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/msg/*.java
     WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/doc
     )
 
index 48282b1..d5fdcad 100644 (file)
@@ -87,19 +87,11 @@ if(enable_maintainer_mode AND NOT WIN32)
       
     ENDIF()
 
-    set(string1  "'s/extern  *\\([^ ]*[ \\*]*\\)/XBT_PUBLIC_DATA(\\1) /'")
+    set(string1  "'s/extern *\\([^(]*\\)\\( \\|\\( \\*\\)\\)/XBT_PUBLIC_DATA(\\1\\3) /'")
     set(string2  "'s/XBT_PUBLIC_DATA(\\([^)]*\\)) *\\([^(]*\\)(/XBT_PUBLIC(\\1) \\2(/'")
-    set(string3  "'s/extern  *\\([^ ]*[ \\*]*\\)/XBT_PUBLIC_DATA(\\1) /'")
-    set(string4  "'s/XBT_PUBLIC_DATA(\\([^)]*\\)) *\\([^(]*\\)(/XBT_PUBLIC(\\1) \\2(/'")
     set(string5  "'s/SET(DOCTYPE)/SET(ROOT_dax__adag)/'")
-    set(string6  "'s/extern  *\\([^ ]*[ \\*]*\\)/XBT_PUBLIC_DATA(\\1) /'")
-    set(string7  "'s/XBT_PUBLIC_DATA(\\([^)]*\\)) *\\([^(]*\\)(/XBT_PUBLIC(\\1) \\2(/'")
     set(string8  "'s/#if defined(_WIN32)/#if defined(_XBT_WIN32)/g'")
     set(string9  "'s/#include <unistd.h>/#if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)\\n#  ifndef __STRICT_ANSI__\\n#    include <io.h>\\n#    include <process.h>\\n#  endif\\n#else\\n#  include <unistd.h>\\n#endif/g'")
-    set(string10 "'s/#if defined(_WIN32)/#if defined(_XBT_WIN32)/g'")
-    set(string11 "'s/#include <unistd.h>/#if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)\\n#  ifndef __STRICT_ANSI__\\n#    include <io.h>\\n#    include <process.h>\\n#  endif\\n#else\\n#  include <unistd.h>\\n#endif/g'")
-    set(string12 "'s/#if defined(_WIN32)/#if defined(_XBT_WIN32)/g'")
-    set(string13 "'s/#include <unistd.h>/#if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)\\n#  ifndef __STRICT_ANSI__\\n#    include <io.h>\\n#    include <process.h>\\n#  endif\\n#else\\n#  include <unistd.h>\\n#endif/g'")
     set(string14 "'\\!^ \\* Generated [0-9/]\\{10\\} [0-9:]\\{8\\}\\.$$!d'")
     set(string15 "'s/FAIL(\"Premature EOF/if(!ETag_surfxml_include_state()) FAIL(\"Premature EOF/'")
 
@@ -142,16 +134,16 @@ if(enable_maintainer_mode AND NOT WIN32)
       #${CMAKE_HOME_DIRECTORY}/include/xbt/graphxml.h: ${CMAKE_HOME_DIRECTORY}/src/xbt/graphxml.dtd
       COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/include/xbt/graphxml.h
       COMMAND ${FLEXML_EXE} -P graphxml --sysid=graphxml.dtd -H include/xbt/graphxml.h -L src/xbt/graphxml.dtd
-      COMMAND ${SED_EXE} -i ${string3} include/xbt/graphxml.h
-      COMMAND ${SED_EXE} -i ${string4} include/xbt/graphxml.h
+      COMMAND ${SED_EXE} -i ${string1} include/xbt/graphxml.h
+      COMMAND ${SED_EXE} -i ${string2} include/xbt/graphxml.h
       COMMAND ${SED_EXE} -i ${string14} include/xbt/graphxml.h
       COMMAND ${CMAKE_COMMAND} -E echo "include/xbt/graphxml.h"
 
       #${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h: ${CMAKE_HOME_DIRECTORY}/src/simdag/dax.dtd
       COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h
       COMMAND ${FLEXML_EXE} --root-tags adag -P dax_ --sysid=dax.dtd -H src/simdag/dax_dtd.h -L src/simdag/dax.dtd
-      COMMAND ${SED_EXE} -i ${string6} src/simdag/dax_dtd.h
-      COMMAND ${SED_EXE} -i ${string7} src/simdag/dax_dtd.h
+      COMMAND ${SED_EXE} -i ${string1} src/simdag/dax_dtd.h
+      COMMAND ${SED_EXE} -i ${string2} src/simdag/dax_dtd.h
       COMMAND ${SED_EXE} -i ${string14} src/simdag/dax_dtd.h
       COMMAND ${CMAKE_COMMAND} -E echo "src/simdag/dax_dtd.h"
 
@@ -166,18 +158,18 @@ if(enable_maintainer_mode AND NOT WIN32)
 
       #xbt/graphxml.c: xbt/graphxml.l
       COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/xbt/graphxml.c
-      COMMAND ${SED_EXE} -i ${string10} src/xbt/graphxml.l
+      COMMAND ${SED_EXE} -i ${string8} src/xbt/graphxml.l
       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/src/xbt
       COMMAND ${FLEX_EXE} -o src/xbt/graphxml.c -Pxbt_graph_parse_ --noline src/xbt/graphxml.l
-      COMMAND ${SED_EXE} -i ${string11} src/xbt/graphxml.c
+      COMMAND ${SED_EXE} -i ${string9} src/xbt/graphxml.c
       COMMAND ${CMAKE_COMMAND} -E echo "xbt/graphxml.c"
 
       #simdag/dax_dtd.c: simdag/dax_dtd.l
       COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.c
-      COMMAND ${SED_EXE} -i ${string12} src/simdag/dax_dtd.l
+      COMMAND ${SED_EXE} -i ${string8} src/simdag/dax_dtd.l
       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/src/simdag
       COMMAND ${FLEX_EXE} -o src/simdag/dax_dtd.c -Pdax_ --noline src/simdag/dax_dtd.l
-      COMMAND ${SED_EXE} -i ${string13} src/simdag/dax_dtd.c
+      COMMAND ${SED_EXE} -i ${string9} src/simdag/dax_dtd.c
       COMMAND ${CMAKE_COMMAND} -E echo "simdag/dax_dtd.c"
 
       WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
index bd69c83..9cf775f 100644 (file)
@@ -22,6 +22,7 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/network/p2p)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/network/mxn)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/partask)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/availability)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich-test)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich-test/env)
@@ -32,7 +33,24 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich-test/pt2pt)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/msg)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/msg/trace)
 
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/async)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/bittorrent)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/chord)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/cloud)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/commTime)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/io)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/kademlia)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/master_slave_bypass)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/master_slave_kill)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/masterslave)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/migration)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/mutualExclusion)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/pingPong)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/priority)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/startKillTime)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/suspend)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/java/tracing)
 
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/properties)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/actions)
diff --git a/buildtools/Cmake/MakeJava.cmake b/buildtools/Cmake/MakeJava.cmake
new file mode 100644 (file)
index 0000000..f9037de
--- /dev/null
@@ -0,0 +1,99 @@
+cmake_minimum_required(VERSION 2.8.6)
+
+include(UseJava)
+
+# Rules to build libSG_java
+#
+add_library(SG_java SHARED ${JMSG_C_SRC})
+set_target_properties(SG_java PROPERTIES VERSION ${libSG_java_version})
+get_target_property(COMMON_INCLUDES SG_java INCLUDE_DIRECTORIES)
+if (COMMON_INCLUDES)
+  set_target_properties(SG_java PROPERTIES
+    INCLUDE_DIRECTORIES "${COMMON_INCLUDES};${JNI_INCLUDE_DIRS}")
+else()
+  set_target_properties(SG_java PROPERTIES
+    INCLUDE_DIRECTORIES "${JNI_INCLUDE_DIRS}")
+endif()
+add_dependencies(SG_java simgrid)
+
+get_target_property(CHECK_INCLUDES SG_java INCLUDE_DIRECTORIES)
+message("-- [Java] SG_java includes: ${CHECK_INCLUDES}")
+
+if(WIN32)
+  get_target_property(SIMGRID_LIB_NAME_NAME SG_java LIBRARY_OUTPUT_NAME)
+  set_target_properties(SG_java PROPERTIES
+    LINK_FLAGS "-Wl,--subsystem,windows,--kill-at ${SIMGRID_LIB_NAME}"
+    PREFIX "")
+  find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
+  message(STATUS "pexports: ${PEXPORTS_PATH}")
+  if(PEXPORTS_PATH)
+    add_custom_command(TARGET SG_java POST_BUILD
+      COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/SG_java.dll > ${CMAKE_BINARY_DIR}/SG_java.def)
+  endif(PEXPORTS_PATH)
+else()
+  target_link_libraries(SG_java simgrid)
+endif()
+
+# Rules to build simgrid.jar
+#
+
+## Files to include in simgrid.jar
+##
+set(SIMGRID_JAR "${CMAKE_BINARY_DIR}/simgrid.jar")
+set(MANIFEST_FILE "${CMAKE_HOME_DIRECTORY}/src/bindings/java/MANIFEST.MF")
+set(LIBSIMGRID_SO
+  ${CMAKE_SHARED_LIBRARY_PREFIX}simgrid${CMAKE_SHARED_LIBRARY_SUFFIX})
+set(LIBSG_JAVA_SO
+  ${CMAKE_SHARED_LIBRARY_PREFIX}SG_java${CMAKE_SHARED_LIBRARY_SUFFIX})
+
+## Name of the "NATIVE" folder in simgrid.jar
+##
+if(CMAKE_SYSTEM_PROCESSOR MATCHES ".86")
+  if(${ARCH_32_BITS})
+    set(JSG_BUNDLE "NATIVE/${CMAKE_SYSTEM_NAME}/i386/")
+  else()
+    set(JSG_BUNDLE "NATIVE/${CMAKE_SYSTEM_NAME}/amd64/")
+  endif()
+else()
+  message(WARNING "Unknown system type. Processor: ${CMAKE_SYSTEM_PROCESSOR}; System: ${CMAKE_SYSTEM_NAME}")
+  set(JSG_BUNDLE "NATIVE/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR/")
+endif()
+message("-- [Java] Native libraries bundled into: ${JSG_BUNDLE}")
+
+## Don't strip libraries if not in release mode
+##
+if(release)
+  set(STRIP_COMMAND "${CMAKE_STRIP}")
+else()
+  set(STRIP_COMMAND "true")
+endif()
+
+## Here is how to build simgrid.jar
+##
+set(CMAKE_JAVA_TARGET_OUTPUT_NAME simgrid)
+add_jar(SG_java_pre_jar ${JMSG_JAVA_SRC})
+
+add_custom_command(
+  COMMENT "Finalize simgrid.jar..."
+  OUTPUT ${SIMGRID_JAR}_finalized
+  DEPENDS simgrid SG_java SG_java_pre_jar
+          ${SIMGRID_JAR} ${MANIFEST_FILE}
+          ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO}
+          ${CMAKE_BINARY_DIR}/lib/${LIBSG_JAVA_SO}
+          ${CMAKE_HOME_DIRECTORY}/COPYING
+          ${CMAKE_HOME_DIRECTORY}/ChangeLog
+          ${CMAKE_HOME_DIRECTORY}/ChangeLog.SimGrid-java
+  COMMAND ${CMAKE_COMMAND} -E remove_directory "NATIVE"
+  COMMAND ${CMAKE_COMMAND} -E make_directory "${JSG_BUNDLE}"
+  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO}" "${JSG_BUNDLE}"
+  COMMAND ${STRIP_COMMAND} -S "${JSG_BUNDLE}/${LIBSIMGRID_SO}"
+  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/lib/${LIBSG_JAVA_SO}" "${JSG_BUNDLE}"
+  COMMAND ${STRIP_COMMAND} -S "${JSG_BUNDLE}/${LIBSG_JAVA_SO}"
+  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/COPYING" "${JSG_BUNDLE}"
+  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/ChangeLog" "${JSG_BUNDLE}"
+  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/ChangeLog.SimGrid-java" "${JSG_BUNDLE}"
+  COMMAND ${JAVA_ARCHIVE} -uvmf ${MANIFEST_FILE} ${SIMGRID_JAR} "NATIVE"
+  COMMAND ${CMAKE_COMMAND} -E remove ${SIMGRID_JAR}_finalized
+  COMMAND ${CMAKE_COMMAND} -E touch ${SIMGRID_JAR}_finalized
+  )
+add_custom_target(SG_java_jar ALL DEPENDS ${SIMGRID_JAR}_finalized)
index b713183..f7adde3 100644 (file)
@@ -24,64 +24,7 @@ if(enable_smpi)
 endif()
 
 if(enable_java)
-  add_library(SG_java SHARED ${JMSG_C_SRC})
-  set_target_properties(SG_java PROPERTIES VERSION ${libSG_java_version})
-  get_target_property(COMMON_INCLUDES SG_java INCLUDE_DIRECTORIES)
-  set_target_properties(SG_java PROPERTIES
-    INCLUDE_DIRECTORIES "${COMMON_INCLUDES};${JNI_INCLUDE_DIRS}")
-  add_dependencies(SG_java simgrid)
-
-  if(WIN32)
-    get_target_property(SIMGRID_LIB_NAME_NAME SG_java LIBRARY_OUTPUT_NAME)
-    set_target_properties(SG_java PROPERTIES
-      LINK_FLAGS "-Wl,--subsystem,windows,--kill-at ${SIMGRID_LIB_NAME}"
-      PREFIX "")
-    find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
-    message(STATUS "pexports: ${PEXPORTS_PATH}")
-    if(PEXPORTS_PATH)
-      add_custom_command(TARGET SG_java POST_BUILD
-        COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/SG_java.dll > ${CMAKE_BINARY_DIR}/SG_java.def)
-    endif(PEXPORTS_PATH)
-  else()
-    target_link_libraries(SG_java simgrid)
-  endif()
-
-  set(CMAKE_JAVA_TARGET_OUTPUT_NAME simgrid)
-  set(MANIFEST_FILE ${CMAKE_HOME_DIRECTORY}/src/bindings/java/MANIFEST.MF)
-  add_jar(SG_java_jar ${JMSG_JAVA_SRC})
-  add_custom_command(TARGET SG_java_jar POST_BUILD
-    COMMENT "Update file MANIFEST.MF in simgrid.jar..."
-    DEPENDS ${MANIFEST_FILE}
-    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
-    COMMAND ${JAVA_ARCHIVE} -uvmf ${MANIFEST_FILE} simgrid.jar
-    )
-
-  if(CMAKE_SYSTEM_PROCESSOR MATCHES ".86")
-    if(${ARCH_32_BITS})
-      set(JSG_BUNDLE "NATIVE/${CMAKE_SYSTEM_NAME}/x86/")
-    else()
-      set(JSG_BUNDLE "NATIVE/${CMAKE_SYSTEM_NAME}/amd64/")
-    endif()
-  else()
-    error("Unknown system type. Processor: ${CMAKE_SYSTEM_PROCESSOR}; System: ${CMAKE_SYSTEM_NAME}")
-  endif()
-  message("Native libraries bundeled into: ${JSG_BUNDLE}")
-
-  add_custom_command(TARGET SG_java_jar POST_BUILD
-    COMMENT "Combine native libraries in simgrid.jar..."
-    DEPENDS simgrid SG_java
-    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
-    COMMAND ${CMAKE_COMMAND} -E remove_directory "NATIVE"
-    COMMAND ${CMAKE_COMMAND} -E make_directory "${JSG_BUNDLE}"
-    COMMAND ${CMAKE_COMMAND} -E copy ./lib/libsimgrid.so "${JSG_BUNDLE}"
-    COMMAND strip --strip-debug "${JSG_BUNDLE}/libsimgrid.so"
-    COMMAND ${CMAKE_COMMAND} -E copy ./lib/libSG_java.so "${JSG_BUNDLE}"
-    COMMAND strip --strip-debug "${JSG_BUNDLE}/libSG_java.so"
-    COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/ChangeLog" "${JSG_BUNDLE}"
-    COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/ChangeLog.SimGrid-java" "${JSG_BUNDLE}"
-    COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/COPYING" "${JSG_BUNDLE}"
-    COMMAND ${JAVA_ARCHIVE} -uvf simgrid.jar "NATIVE"
-    )
+  include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeJava.cmake)
 endif()
 
 add_dependencies(simgrid maintainer_files)
index a8794ba..168e85a 100644 (file)
@@ -1,13 +1,11 @@
 ### Make Libs
 #>gcc c:\simgrid-trunk\examples\msg\icomms\peer.c -static -Lc:\simgrid-trunk\lib -lsimgrid -Ic:\simgrid-trunk\include -lwsock32
+
+
 add_library(simgrid SHARED ${simgrid_sources})
 
-set_target_properties(simgrid  PROPERTIES COMPILE_FLAGS "-D_XBT_DLL_EXPORT -DDLL_EXPORT" VERSION ${libsimgrid_version} OUTPUT_NAME "simgrid")
+set_target_properties(simgrid  PROPERTIES COMPILE_FLAGS "-D_XBT_DLL_EXPORT -DDLL_EXPORT" LINK_FLAGS "-shared" VERSION ${libsimgrid_version} PREFIX "lib" SUFFIX ".dll" IMPORT_PREFIX "lib" IMPORT_SUFFIX ".dll")
 
-if(enable_smpi)
-  add_library(smpi SHARED ${SMPI_SRC})
-  set_target_properties(smpi PROPERTIES COMPILE_FLAGS "-D_XBT_DLL_EXPORT -DDLL_EXPORT" VERSION ${libsmpi_version} OUTPUT_NAME "smpi")
-endif()
 
 # libpthreadGC2.dll
 if(ARCH_32_BITS)
@@ -26,8 +24,7 @@ else()
     )
 endif()
 
-set(SIMGRID_DEP "ws2_32 ${PATH_PCRE_LIB} ${PATH_PTHREAD_LIB}")
-set(SMPI_DEP "${LIBRARY_OUTPUT_PATH}/libsimgrid.dll")
+set(SIMGRID_DEP "-lws2_32 -L${PATH_PCRE_LIB} -L${PATH_PTHREAD_LIB} -lm -lpcre -lpthreadGC2")
 
 if(ARCH_32_BITS)
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -march=i486")
@@ -37,10 +34,6 @@ else()
 endif()
 
 target_link_libraries(simgrid  ${SIMGRID_DEP})
-if(enable_smpi)
-add_dependencies(smpi simgrid)
-target_link_libraries(smpi     ${SMPI_DEP})
-endif()
 
 find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
 message(STATUS "pexports: ${PEXPORTS_PATH}")
@@ -50,9 +43,12 @@ if(PEXPORTS_PATH)
 endif()
 
 if(enable_smpi)
+  set(SMPI_DEP "${LIBRARY_OUTPUT_PATH}/libsimgrid.dll")
   add_library(smpi SHARED ${SMPI_SRC})
-  set_target_properties(smpi PROPERTIES VERSION ${libsmpi_version} OUTPUT_NAME "smpi")
-
-  set(SMPI_LDEP "")
-  target_link_libraries(smpi   simgrid ${SMPI_LDEP})
+  set_target_properties(smpi PROPERTIES COMPILE_FLAGS "-D_XBT_DLL_EXPORT -DDLL_EXPORT" LINK_FLAGS "-shared" VERSION ${libsmpi_version} PREFIX "lib" SUFFIX ".dll" IMPORT_PREFIX "lib" IMPORT_SUFFIX ".dll")
+  target_link_libraries(smpi ${SMPI_DEP})
+  if(PEXPORTS_PATH)
+    add_custom_command(TARGET smpi POST_BUILD
+     COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/lib/libsmpi.dll > ${CMAKE_BINARY_DIR}/lib/libsmpi.def)
+  endif()
 endif()
index de6683b..c1393b9 100644 (file)
@@ -6,7 +6,6 @@ if(enable_print_message)
   message("")
   message("SIZEOF_MAX ..................: ${SIZEOF_MAX}")
   message("PTH_STACKGROWTH .............: ${PTH_STACKGROWTH}")
-  message("need_getline ................: ${need_getline}")
   message("need_asprintf ...............: ${simgrid_need_asprintf}")
   message("need_vasprintf ..............: ${simgrid_need_vasprintf}")
   message("PREFER_PORTABLE_SNPRINTF ....: ${PREFER_PORTABLE_SNPRINTF}")
index fbbc74f..3f7652f 100755 (executable)
@@ -13,7 +13,7 @@ open MAKETEST, $ARGV[1] or die "Unable to open $ARGV[1]. $!\n";
 sub var_subst {
     my ($text, $name, $value) = @_;
     if ($value) {
-        $text =~ s/\${$name(?::=[^}]*)?}/$value/g;
+        $text =~ s/\${$name(?::[=-][^}]*)?}/$value/g;
         $text =~ s/\$$name(\W|$)/$value$1/g;
     }
     else {
@@ -29,8 +29,7 @@ my ($nb_test)   = 0;
 my ($line);
 my ($path);
 my ($dump) = 0;
-my ($srcdir);
-my ($bindir);
+my (%environ);
 my ($tesh_file);
 my ($config_var);
 my ($name_test);
@@ -49,8 +48,7 @@ while ( defined( $line = <MAKETEST> ) ) {
     if ($dump) {
         $line =~ s/^  //;
         if ( $line =~ /^\s*ADD_TEST\(\S+\s+\S*\/tesh\s/ ) {
-            $srcdir     = "";
-            $bindir     = "";
+            undef %environ;
             $config_var = "";
             $path       = "";
             $nb_test++;
@@ -71,12 +69,7 @@ while ( defined( $line = <MAKETEST> ) ) {
             }
             while ( $line =~ /--setenv\s+(\S+)\=(\S+)/g ) {
                 my ( $env_var, $value_var ) = ( $1, $2 );
-                if ( $env_var =~ /srcdir/ ) {
-                    $srcdir = $value_var;
-                }
-                elsif ( $env_var =~ /bindir/ ) {
-                    $bindir = $value_var;
-                }
+                $environ{$env_var} = $value_var;
             }
             if ( $line =~ /(\S+)\)$/ ) {
                 $tesh_file = $1;
@@ -91,10 +84,11 @@ while ( defined( $line = <MAKETEST> ) ) {
 
             if (0) {
                 print "test_name = $name_test\n";
-                print "$config_var\n";
+                print "config_var = $config_var\n";
                 print "path = $path\n";
-                print "srcdir=$srcdir\n";
-                print "bindir=$bindir\n";
+                foreach my $key (keys %environ) {
+                    print "$key = $environ{$key}\n";
+                }
                 print "tesh_file = $tesh_file\n";
                 print "\n\n";
             }
@@ -112,8 +106,12 @@ while ( defined( $line = <MAKETEST> ) ) {
                 }
                 if ( $l =~ /^\$ (.*)$/ ) {
                     my ($command) = $1;
-                    $command = var_subst($command, "srcdir", $srcdir);
-                    $command = var_subst($command, "bindir", $bindir);
+                    foreach my $key (keys %environ) {
+                        $command = var_subst($command, $key, $environ{$key});
+                    }
+                    # substitute remaining known variables, if any
+                    $command = var_subst($command, "srcdir", "");
+                    $command = var_subst($command, "bindir", "");
                     $command = var_subst($command, "EXEEXT", "");
                     $command = var_subst($command, "SG_TEST_EXENV", "");
                     $command = var_subst($command, "SG_TEST_ENV", "");
index 089629e..bbd72c5 100755 (executable)
@@ -3,7 +3,7 @@ use strict;
 my @argv = ("valgrind");
 my $count = 0;
 
-while (my $arg = shift) {
+while (defined(my $arg = shift)) {
     print "arg($count)$arg\n";
     if($arg eq "--cd"){
         $arg = shift;
diff --git a/buildtools/Cmake/Scripts/test_java.sh b/buildtools/Cmake/Scripts/test_java.sh
deleted file mode 100755 (executable)
index 47002ad..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /bin/sh
-export LD_LIBRARY_PATH=$3/lib:$LD_LIBRARY_PATH
-export JAVA_LIBRARY_PATH=:$3/lib:$JAVA_LIBRARY_PATH
-cd $1
-echo "LD_LIBRARY_PATH   = $LD_LIBRARY_PATH"
-echo "JAVA_LIBRARY_PATH = $JAVA_LIBRARY_PATH"
-pwd
-echo "java -cp .:$3/simgrid.jar $2 *platform.xml *deployment.xml"
-java -cp .:$3/simgrid.jar $2 *platform.xml *deployment.xml
index 6bb2129..1b1a714 100644 (file)
 /* define for stack growth */
 #cmakedefine PTH_STACKGROWTH @PTH_STACKGROWTH@
 
-/* enable the getline replacement */
-#cmakedefine SIMGRID_NEED_GETLINE @SIMGRID_NEED_GETLINE@
-
 /* The maximal size of any scalar on this arch */
 #cmakedefine SIZEOF_MAX @SIZEOF_MAX@
 
index ff66d55..da7aeb4 100644 (file)
@@ -84,16 +84,12 @@ Section "Libraries and Headers" LibSection
        file @CMAKE_HOME_DIRECTORY@\include\xbt\cunit.h\r
        file @CMAKE_HOME_DIRECTORY@\include\xbt\graphxml_parse.h\r
        file @CMAKE_HOME_DIRECTORY@\include\xbt\graphxml.h\r
-       file @CMAKE_HOME_DIRECTORY@\include\xbt\time.h\r
-       file @CMAKE_HOME_DIRECTORY@\include\xbt\synchro.h\r
        file @CMAKE_HOME_DIRECTORY@\include\xbt\synchro_core.h\r
        file @CMAKE_HOME_DIRECTORY@\include\xbt\queue.h\r
        file @CMAKE_HOME_DIRECTORY@\include\xbt\setset.h\r
        file @CMAKE_HOME_DIRECTORY@\include\xbt\mmalloc.h\r
        file @CMAKE_HOME_DIRECTORY@\include\xbt\parmap.h\r
        file @CMAKE_HOME_DIRECTORY@\include\xbt\automaton.h\r
-       file @CMAKE_HOME_DIRECTORY@\include\xbt\automatonparse_promela.h\r
-       file @CMAKE_HOME_DIRECTORY@\include\xbt\socket.h\r
        file @CMAKE_HOME_DIRECTORY@\include\xbt\file_stat.h\r
     file @CMAKE_HOME_DIRECTORY@\include\xbt\xbt_os_thread.h\r
     file @CMAKE_HOME_DIRECTORY@\include\xbt\RngStream.h\r
@@ -113,14 +109,7 @@ Section "Libraries and Headers" LibSection
        setOutPath $INSTDIR\include\simdag\r
        file @CMAKE_HOME_DIRECTORY@\include\simdag\simdag.h\r
        file @CMAKE_HOME_DIRECTORY@\include\simdag\datatypes.h\r
-       \r
-       CreateDirectory  $INSTDIR\include\smpi\r
-       setOutPath $INSTDIR\include\smpi\r
-       file @CMAKE_HOME_DIRECTORY@\include\smpi\smpi.h\r
-       file @CMAKE_HOME_DIRECTORY@\include\smpi\mpi.h\r
-       file @CMAKE_HOME_DIRECTORY@\include\smpi\mpif.h\r
-       file @CMAKE_HOME_DIRECTORY@\include\smpi\smpi_cocci.h\r
-       file include\smpi\smpif.h\r
+\r
        \r
        CreateDirectory  $INSTDIR\include\surf\r
        setOutPath $INSTDIR\include\surf\r
@@ -141,6 +130,7 @@ Section "Binaries" BinSection
        file bin\colorize\r
        file bin\graphicator@BIN_EXE@\r
        file bin\simgrid_update_xml\r
+\r
        \r
 SectionEnd\r
 Section "Documentation" DocSection     \r
@@ -174,7 +164,8 @@ Section "Examples" ExamplesSection
        file @CMAKE_HOME_DIRECTORY@\examples\msg\msg_platform.xml\r
        file @CMAKE_HOME_DIRECTORY@\doc\HelloWorld\CMakeLists.txt\r
        file @CMAKE_HOME_DIRECTORY@\doc\HelloWorld\FindPcreWin.cmake\r
-       \r
+\r
+\r
        # create shortcuts in the start menu programs directory\r
        CreateDirectory "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\Examples\"\r
        createShortCut  "$SMPROGRAMS\SimGrid @SIMGRID_VERSION_MAJOR@.@SIMGRID_VERSION_MINOR@.@SIMGRID_VERSION_PATCH@\Examples\HelloWorld project.lnk"   "$INSTDIR\examples\HelloWorld"\r
@@ -207,6 +198,41 @@ Section "Java Bindings" JavaSection
        messageBox MB_OK "WARNING! Please add to your environment variable CLASSPATH value '$INSTDIR\lib\simgrid.jar;.' before executing Simgrid classes."\r
 SectionEnd\r
 \r
+Section "SMPI Library" SMPISection\r
+       setOutPath $INSTDIR\bin\r
+       file bin\smpicc\r
+       file bin\smpif2c\r
+       file bin\smpiff\r
+       file bin\smpirun\r
+       file bin\smpif90\r
+       \r
+    setOutPath $INSTDIR\lib\r
+       file lib\libsmpi.dll\r
+       file lib\libsmpi.def\r
+       \r
+       CreateDirectory  $INSTDIR\include\smpi\r
+       setOutPath $INSTDIR\include\smpi\r
+       file @CMAKE_HOME_DIRECTORY@\include\smpi\smpi.h\r
+       file @CMAKE_HOME_DIRECTORY@\include\smpi\mpi.h\r
+       file @CMAKE_HOME_DIRECTORY@\include\smpi\mpif.h\r
+       file @CMAKE_HOME_DIRECTORY@\include\smpi\smpi_cocci.h\r
+       file @CMAKE_HOME_DIRECTORY@\include\smpi\smpi_main.h\r
+       file include\smpi\smpif.h\r
+       \r
+       CreateDirectory $INSTDIR\examples\smpi\r
+       file /r @CMAKE_HOME_DIRECTORY@\examples\smpi\tracing\r
+       file /r @CMAKE_HOME_DIRECTORY@\examples\smpi\replay\r
+       setOutPath $INSTDIR\examples\smpi\r
+       file @CMAKE_HOME_DIRECTORY@\examples\smpi\bcbench.c\r
+       file @CMAKE_HOME_DIRECTORY@\examples\smpi\mvmul.c\r
+       file @CMAKE_HOME_DIRECTORY@\examples\smpi\mc_bugged1.c\r
+       file @CMAKE_HOME_DIRECTORY@\examples\smpi\mc_bugged2.c\r
+       file @CMAKE_HOME_DIRECTORY@\examples\smpi\hostfile\r
+       file @CMAKE_HOME_DIRECTORY@\examples\msg\small_platform_with_routers.xml\r
+       file @CMAKE_HOME_DIRECTORY@\examples\smpi\CMakeLists.txt\r
+       file @CMAKE_HOME_DIRECTORY@\doc\HelloWorld\FindPcreWin.cmake\r
+SectionEnd\r
+\r
 # default section start\r
 section        \r
        # define uninstaller name\r
@@ -233,7 +259,7 @@ section
        # create a popup box, with an OK button"\r
        messageBox MB_OK "WARNING! Please add to your environment variable PATH value '$INSTDIR\lib;$INSTDIR\GnuWin32\bin' before executing Simgrid binaries."\r
        \r
-       SetRebootFlag true\r
+       SetRebootFlag false\r
 \r
 # default section end\r
 sectionEnd\r
@@ -244,13 +270,16 @@ LangString DESC_DocSection                ${LANG_ENGLISH} "Generated (doxygen) documentation.
 LangString DESC_ExamplesSection ${LANG_ENGLISH} "Simgrid's HelloWorld example and some classical platforms."\r
 LangString DESC_PCRESection    ${LANG_ENGLISH} "Install the PCRE and PCREPOSIX libraries for SimGrid."\r
 LangString DESC_JAVASection    ${LANG_ENGLISH} "Install the Java binding and examples."\r
+LangString DESC_SMPISection    ${LANG_ENGLISH} "Install the SMPI library, headers, and examples."\r
+\r
 \r
 LangString DESC_LibSection             ${LANG_FRENCH}  "Installer les librairies Simgrid et leurs Entêtes."\r
 LangString DESC_BinSection             ${LANG_FRENCH}  "Installer les outils optionnels."\r
 LangString DESC_DocSection             ${LANG_FRENCH}  "Installer la documentation."\r
 LangString DESC_ExamplesSection ${LANG_FRENCH}         "Installer un exemple 'HelloWorld' et des fichiers de plate-formes types."\r
 LangString DESC_PCRESection    ${LANG_FRENCH}  "Installer les librairies PCRE et PCREPOSIX for SimGrid."\r
-LangString DESC_JAVASection    ${LANG_FRENCH}  "Installer la librairie Simgrid-java and les examples."\r
+LangString DESC_JAVASection    ${LANG_FRENCH}  "Installer la librairie Simgrid-java et les exemples."\r
+LangString DESC_SMPISection    ${LANG_FRENCH}  "Installer la librairie SMPI, ses en-têtes, et ses exemples."\r
 \r
 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
   !insertmacro MUI_DESCRIPTION_TEXT ${LibSection}              $(DESC_LibSection)\r
@@ -259,6 +288,7 @@ LangString DESC_JAVASection         ${LANG_FRENCH}  "Installer la librairie Simgrid-jav
   !insertmacro MUI_DESCRIPTION_TEXT ${ExamplesSection}         $(DESC_ExamplesSection)\r
   !insertmacro MUI_DESCRIPTION_TEXT ${PCRESection}             $(DESC_PCRESection)\r
   !insertmacro MUI_DESCRIPTION_TEXT ${JAVASection}             $(DESC_JAVASection)\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${SMPISection}             $(DESC_SMPISection)\r
 !insertmacro MUI_FUNCTION_DESCRIPTION_END\r
 \r
 # create a section to define what the uninstaller does.\r
@@ -334,6 +364,7 @@ section "Uninstall"
        delete $INSTDIR\include\smpi\mpi.h\r
        delete $INSTDIR\include\smpi\mpif.h\r
        delete $INSTDIR\include\smpi\smpi_cocci.h\r
+       delete $INSTDIR\include\smpi\smpi_main.h\r
        delete $INSTDIR\include\smpi\smpif.h\r
        delete $INSTDIR\include\surf\surfxml_parse.h\r
        delete $INSTDIR\include\surf\simgrid_dtd.h\r
diff --git a/buildtools/Cmake/test_prog/prog_getline.c b/buildtools/Cmake/test_prog/prog_getline.c
deleted file mode 100644 (file)
index 0c4780c..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (c) 2010. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#define _GNU_SOURCE
-#include <stdio.h>
-int main(void)
-{
-  FILE *fp;
-  char *line = NULL;
-  size_t len = 0;
-  getline(&line, &len, fp);
-}
index 7aaae2b..c88899f 100755 (executable)
@@ -60,19 +60,6 @@ export SIMGRID_ROOT=`pwd`
 export LD_LIBRARY_PATH=`pwd`/lib
 export DYLD_LIBRARY_PATH=`pwd`/lib #for mac
 
-cd ../
-git clone git://scm.gforge.inria.fr/simgrid/simgrid-java.git simgrid-java --quiet
-cd simgrid-java
-export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:`pwd`/lib
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/lib #for mac
-
-cmake .
-ctest -D ExperimentalStart
-ctest -D ExperimentalConfigure
-ctest -D ExperimentalBuild
-ctest -D ExperimentalTest
-ctest -D ExperimentalSubmit
-
 cd ../
 git clone git://scm.gforge.inria.fr/simgrid/simgrid-ruby.git simgrid-ruby --quiet
 cd simgrid-ruby
@@ -82,4 +69,4 @@ ctest -D ExperimentalStart
 ctest -D ExperimentalConfigure
 ctest -D ExperimentalBuild
 ctest -D ExperimentalTest
-ctest -D ExperimentalSubmit
\ No newline at end of file
+ctest -D ExperimentalSubmit
index d065819..3247bbc 100755 (executable)
@@ -11,7 +11,7 @@ fi
 cd ./pipol/$PIPOL_HOST
 
 export GIT_SSL_NO_VERIFY=1
-git clone https://gforge.inria.fr/git/simgrid/simgrid.git
+git clone git://scm.gforge.inria.fr/simgrid/simgrid.git
 cd simgrid
 
 perl ./buildtools/pipol/cmake.pl
@@ -28,6 +28,8 @@ fi
 #mem-check
 cmake \
 -Denable_lua=off \
+-Denable_tracing=on \
+-Denable_smpi=on \
 -Denable_compile_optimizations=off \
 -Denable_compile_warnings=on \
 -Denable_lib_static=off \
@@ -35,7 +37,7 @@ cmake \
 -Denable_latency_bound_tracking=off \
 -Denable_gtnets=off \
 -Denable_jedule=off \
--Drelease=on \
+-Denable_mallocators=off \
 -Denable_memcheck=on ./
 ctest -D ExperimentalStart
 ctest -D ExperimentalConfigure
index 92aaccd..e99c3e3 100755 (executable)
@@ -89,6 +89,7 @@ git clean -dfx
 cmake \
 -Denable_coverage=on \
 -Denable_model-checking=on \
+-Denable_java=on \
 -Denable_lua=on \
 -Denable_compile_optimizations=off .
 ctest -D NightlyStart
@@ -101,19 +102,6 @@ ctest -D NightlySubmit
 export SIMGRID_ROOT=`pwd`
 export LD_LIBRARY_PATH=`pwd`/lib
 export DYLD_LIBRARY_PATH=`pwd`/lib #for mac
-cd ..
-
-git clone git://scm.gforge.inria.fr/simgrid/simgrid-java.git simgrid-java --quiet
-cd simgrid-java
-export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:`pwd`/lib
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/lib #for mac
-
-cmake .
-ctest -D NightlyStart
-ctest -D NightlyConfigure
-ctest -D NightlyBuild
-ctest -D NightlyTest
-ctest -D NightlySubmit
 
 cd ../
 git clone git://scm.gforge.inria.fr/simgrid/simgrid-ruby.git simgrid-ruby --quiet
index 3285d37..7cdb9c5 100644 (file)
@@ -1,19 +1,20 @@
 #!/bin/bash
 
 sudo aptitude update
-sudo aptitude -y install make
+
+sudo aptitude -y install cmake
+sudo aptitude -y install default-jdk
+sudo aptitude -y install f2c
+sudo aptitude -y install g++
+sudo aptitude -y install gcc
 sudo aptitude -y install git
 sudo aptitude -y install git-core
-sudo aptitude -y install openjdk-6-jdk
-sudo aptitude -y install valgrind
-sudo aptitude -y install f2c
-sudo aptitude -y install gcc-4.6
-sudo aptitude -y install g++-4.6
 sudo aptitude -y install graphviz-dev graphviz
 sudo aptitude -y install liblua5.1-dev lua5.1
 sudo aptitude -y install libpcre3-dev
-sudo aptitude -y install cmake
 sudo aptitude -y install libunwind7-dev
+sudo aptitude -y install make
+sudo aptitude -y install valgrind
 
 which_svn=`which svn`          #svn necessary
 which_gcc=`which gcc`          #gcc gcc necessary
index 8462e76..534e321 100644 (file)
@@ -2,21 +2,21 @@
 
 sudo apt-get update
 
-sudo apt-get -y -qq install gcc
-sudo apt-get -y -qq install g++
-sudo apt-get -y -qq install make
-sudo apt-get -y -qq install openjdk-6-jdk
-sudo apt-get -y -qq install liblua5.1-dev lua5.1
-sudo apt-get -y -qq install unzip
 sudo apt-get -y -qq install cmake
-sudo apt-get -y -qq install wget
-sudo apt-get -y -qq install perl
-sudo apt-get -y -qq install graphviz-dev graphviz
-sudo apt-get -y -qq install libpcre3-dev
+sudo apt-get -y -qq install default-jdk
 sudo apt-get -y -qq install f2c
-sudo apt-get -y -qq install valgrind
+sudo apt-get -y -qq install g++
+sudo apt-get -y -qq install gcc
 sudo apt-get -y -qq install git-core
+sudo apt-get -y -qq install graphviz-dev graphviz
+sudo apt-get -y -qq install liblua5.1-dev lua5.1
+sudo apt-get -y -qq install libpcre3-dev
 sudo apt-get -y -qq install libunwind7-dev
+sudo apt-get -y -qq install make
+sudo apt-get -y -qq install perl
+sudo apt-get -y -qq install unzip
+sudo apt-get -y -qq install valgrind
+sudo apt-get -y -qq install wget
 
 if [ $PIPOL_IMAGE == "i386-linux-ubuntu-lucid.dd.gz" ]; then
   wget http://mirror.ovh.net/ubuntu//pool/universe/libu/libunwind/libunwind7_0.99-0.3ubuntu1_i386.deb
index 7b4be67..b399a5c 100644 (file)
@@ -196,7 +196,7 @@ TAB_SIZE               = 8
 # will result in a user-defined paragraph with heading "Side Effects:".
 # You can put \n's in the value part of an alias to insert newlines.
 
-ALIASES                =
+ALIASES                = SimGridRelease="SimGrid-@release_version@"
 
 # This tag can be used to specify a number of word-keyword mappings (TCL only).
 # A mapping has the form "name=value". For example adding
index ebc4084..0a8cbbd 100644 (file)
@@ -51,44 +51,15 @@ C crashes mainly for 2 reasons:
 \subsection bindings_binding_java_install How to install Simgrid-java
 
 To use java with Simgrid you have to install some dependencies:
-- Simgrid (see [install Simgrid](http://simgrid.gforge.inria.fr/simgrid/latest/doc/install.html).
-  You should set the `SIMGRID_ROOT` environment variable to the path where you installed SimGrid.
 - Java JDK packages, such as `openjdk7` or `sun-java6-jdk` (with `libgcj10-dev` or another
   version of gcj). For maximal performance and scalability, use a coroutine-enabled JVM (see
   \ref bindings_binding_java_coroutines).
  
-Then Download and install package Simgrid-java:
+Then build Simgrid with the Java bindings enabled:
 ~~~~{.sh}
-git clone git://scm.gforge.inria.fr/simgrid/simgrid-java.git
-cd simgrid-java
-cmake -DCMAKE_INSTALL_PREFIX=$HOME/Install/simgrid-java/ .
-make install
+cmake -Denable_java=ON .
 ~~~~
  
-Cmake output
-~~~~{.sh}
--- SITE        : Linux_2.6.38-8-generic_x86_64
--- BUILDNAME   : Simgrid-Java
--- Looking for lib SimGrid
--- Looking for lib SimGrid - found
--- Simgrid version : 3.8.1
--- Looking for gras.h
--- Looking for gras.h - found
--- Found Tesh: /home/user/Bureau/simgrid/git/bin/tesh
--- Found gras_stub_generator: /home/user/Bureau/simgrid/git/bin/gras_stub_generator
--- Java version 1.6.0.22 configured successfully!
--- Looking for jni.h
--- Looking for jni.h - found
--- Add flags -I/usr/lib/jvm/java-6-openjdk/include
--- Looking for jni_md.h
--- Looking for jni_md.h - found
--- Found javac: /usr/bin/javac
--- Found jar: /usr/bin/jar
--- Configuring done
--- Generating done
--- Build files have been written to: /home/user/workspace/simgrid-java/build
-~~~~
-
 If cmake complains that **jni could not be found**, you need to tell it where
 JNI header files are located. the following command should tell you:
 
@@ -112,16 +83,15 @@ $ cmake .
 \subsubsection bindings_binding_java_use How to use Simgrid-java
 
 To execute the examples you need to add the path where you installed
-the generated `libSG_java` library (`<build_dir>/lib`) and `libsimgrid`
-(`$SIMGRID_ROOT/lib`) into the `LD_LIBRARY_PATH`.
+the generated `libSG_java` and `libsimgrid` libraries
+into the `LD_LIBRARY_PATH`.
 
 Be careful on Mac, this variable is called `DYLD_LIBRARY_PATH` and not
 `LD_LIBRARY_PATH`.
 
 ~~~~{.sh}
 $ export SIMGRID_ROOT="$HOME/Install/simgrid/" # change it to the path where you installed the SimGrid library
-$ export SIMGRID_JAVA_ROOT="$HOME/Install/simgrid-java" # change it to the path where you installed the java bindings of SimGrid 
-$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$SIMGRID_ROOT/lib:$SIMGRID_JAVA_ROOT/java
+$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$SIMGRID_ROOT/lib
 $ cd examples
 $ java -cp .:../simgrid.jar basic/BasicTest platform.xml basic/basicDeployment.xml
 ~~~~
index 64071bd..616a219 100644 (file)
@@ -124,7 +124,7 @@ set(txt_files
 \endverbatim
 
 Then, you have to follow these steps:
-\li Add the following line to <project/directory>/buildtools/Cmake/MakeExeLib.cmake:
+\li Add the following line to <project/directory>/buildtools/Cmake/MakeExe.cmake:
 \verbatim
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/<path_where_is_CMakeList.txt>)
 \endverbatim
index 286f9f5..7da810f 100644 (file)
@@ -14,10 +14,12 @@ Please apply the following checklist before releasing.
     version numbers that were used.
   - The" make distcheck" target works (testing that every files needed
     to build and install are included in the archive)
-  - The version number provided to download in the examples of
-    doc/doxygen/install.doc is accurate (we should maybe generate this
-    file to avoid issues, but some inaccuracies are less painful than
-    editing the cmake files to make this happen, sorry).
+  - The URL provided to download in the examples of
+    doc/doxygen/install.doc is accurate. Note that updating the 
+    version number is not enough as it only impacts the name that will
+    be given to the downloaded file. The real identifier is the number
+    before, between /s. This makes this part very difficult to
+    generate automatically.
 - Tests
   - All tests pass on a reasonable amount of platforms (typically,
     everything on cdash)
index d65ddad..e48785c 100644 (file)
@@ -12,18 +12,19 @@ disk and you're set.
 
 Recompiling an official archive is not much more complex, actually.
 SimGrid has very few dependencies and rely only on very standard
-tools. Recompiling the archive should be done in a few lines:
+tools.  First, download the *@SimGridRelease.tar.gz* archive
+from [the download page](https://gforge.inria.fr/frs/?group_id=12).
+Then, recompiling the archive should be done in a few lines:
 
-@verbatim
-wget https://gforge.inria.fr/frs/download.php/28674/SimGrid-3.9.tar.gz
-tar xf SimGrid-3.9.tar.gz
-cd SimGrid-3.9
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.sh}
+tar xf @SimGridRelease.tar.gz
+cd @SimGridRelease
 cmake -DCMAKE_INSTALL_PREFIX=/opt/simgrid .
 make
 make install
-@endverbatim
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-If you want to stay on the blending edge, you should get the latest
+If you want to stay on the bleeding edge, you should get the latest
 git version, and recompile it as you would do for an official archive.
 Depending on the files you change in the source tree, some extra
 tools may be needed.
diff --git a/examples/java/async/CMakeLists.txt b/examples/java/async/CMakeLists.txt
new file mode 100644 (file)
index 0000000..18d4de1
--- /dev/null
@@ -0,0 +1,48 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_async)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/AsyncTest.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Forwarder.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Master.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Slave.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/async.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/asyncDeployment.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/README
+  PARENT_SCOPE
+  )
index 6063d5a..6625851 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar async/AsyncTest ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/async/asyncDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -cp ${classpath:=.} async/AsyncTest ${srcdir:=.}/platform.xml ${srcdir:=.}/async/asyncDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (10:async.Slave@Robert) Receiving on 'slave_8'
 > [  0.000000] (11:async.Slave@Sirois) Receiving on 'slave_9'
 > [  0.000000] (12:async.Slave@Monique) Receiving on 'slave_10'
index 8730ae2..a245baa 100644 (file)
@@ -1,5 +1,6 @@
 cmake_minimum_required(VERSION 2.6)
 
+set(example java_bittorrent)
 set(sources
   ${CMAKE_CURRENT_SOURCE_DIR}/Bittorrent.java
   ${CMAKE_CURRENT_SOURCE_DIR}/Common.java
@@ -11,10 +12,16 @@ set(sources
   )
 
 if(enable_java)
-  add_custom_target(java_bittorrent ALL
-    COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar
-                            -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources})
-  add_dependencies(java_bittorrent SG_java_jar)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
 endif()
 
 set(tesh_files
@@ -41,4 +48,3 @@ set(txt_files
   ${CMAKE_CURRENT_SOURCE_DIR}/generate.py
   PARENT_SCOPE
   )
-
index b02e6da..1fa670c 100644 (file)
@@ -1,8 +1,9 @@
-#! ./tesh
+#! tesh
 
 ! output sort
+! timeout 15
 
-$ java -cp ${classpath:=.} bittorrent/Bittorrent ./platform.xml ./bittorrent/bittorrent.xml
+$ java -cp ${classpath:=.} bittorrent/Bittorrent ${srcdir:=.}/platform.xml ${srcdir:=.}/bittorrent/bittorrent.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [5000.832370] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Boivin:bittorrent.Peer:(2) 0.000000] [jmsg/INFO] Hi, I'm joining the network with id 2
diff --git a/examples/java/chord/CMakeLists.txt b/examples/java/chord/CMakeLists.txt
new file mode 100644 (file)
index 0000000..90167e8
--- /dev/null
@@ -0,0 +1,56 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_chord)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/Chord.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/ChordTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Common.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/FindSuccessorAnswerTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/FindSuccessorTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/GetPredecessorAnswerTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/GetPredecessorTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Node.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/NotifyTask.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/chord.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/chord.xml
+  ${CMAKE_CURRENT_SOURCE_DIR}/chord10.xml
+  ${CMAKE_CURRENT_SOURCE_DIR}/chord100.xml
+  ${CMAKE_CURRENT_SOURCE_DIR}/chord1000.xml
+  ${CMAKE_CURRENT_SOURCE_DIR}/chord10000.xml
+  ${CMAKE_CURRENT_SOURCE_DIR}/chord90.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
index 03894b4..2e1f474 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar chord/Chord ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/chord/chord.xml
+$ java -cp ${classpath:=.} chord/Chord ${srcdir:=.}/platform.xml ${srcdir:=.}/chord/chord.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [652.540924] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Boivin:chord.Node:(7) 0.000000] [jmsg/INFO] Joining the ring with id 8 knowing node 1
diff --git a/examples/java/cloud/CMakeLists.txt b/examples/java/cloud/CMakeLists.txt
new file mode 100644 (file)
index 0000000..9dbb0d1
--- /dev/null
@@ -0,0 +1,45 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_cloud)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/Cloud.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Master.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Slave.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/cloud.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
index 8f7cde3..01e646f 100644 (file)
@@ -21,9 +21,15 @@ public class Slave extends Process {
        public void main(String[] args) throws MsgException {
                while(true) {                   
                        Msg.info("Receiving on " + "slave_" + number);
-                       Task task = Task.receive("slave_"+number);      
-
+                       Task task;
+                        try {
+                                task = Task.receive("slave_"+number);
+                        } catch (MsgException e) {
+                                Msg.debug("Received failed. I'm done. See you!");
+                                break;
+                        }
                        if (task instanceof FinalizeTask) {
+                                Msg.info("Received Finalize. I'm done. See you!");
                                break;
                        }
                        Msg.info("Received \"" + task.getName() +  "\". Processing it.");
@@ -35,7 +41,6 @@ public class Slave extends Process {
                        Msg.info("\"" + task.getName() + "\" done ");
                }
 
-               Msg.info("Received Finalize. I'm done. See you!");
                
        }
 }
\ No newline at end of file
index 4185536..1f958c2 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar cloud/Cloud ${srcdir:=.}/examples/platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -cp ${classpath:=.} cloud/Cloud ${srcdir:=.}/platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (10:Slave 8@Jean_Yves) Receiving on slave_8
 > [  0.000000] (11:Slave 9@Fafard) Receiving on slave_9
 > [  0.000000] (1:Master@Jacquelin) Launched 10 VMs
@@ -154,6 +154,3 @@ $ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar cloud/Cloud ${srcdir
 > [1023.429105] (1:Master@Jacquelin) Let's shut down the simulation and kill everyone.
 > [1023.429105] (1:Master@Jacquelin) Master done.
 > [1023.429105] (21:Slave 19@Provost) Received "Task_19". Processing it.
-> [1023.429105] (21:Slave 19@Provost) "Task_19" done 
-> [1023.429105] (21:Slave 19@Provost) Receiving on slave_19
-
diff --git a/examples/java/commTime/CMakeLists.txt b/examples/java/commTime/CMakeLists.txt
new file mode 100644 (file)
index 0000000..320b5c8
--- /dev/null
@@ -0,0 +1,47 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_commTime)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/CommTimeTest.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Master.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Slave.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/commtime.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/commTimeDeployment.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/README
+  PARENT_SCOPE
+  )
index d21cc19..1e50976 100644 (file)
@@ -1,8 +1,9 @@
-#! ./tesh
+#! tesh
 
 ! output sort
+! timeout 15
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar commTime/CommTimeTest ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/commTime/commTimeDeployment.xml
+$ java -cp ${classpath:=.} commTime/CommTimeTest ${srcdir:=.}/platform.xml ${srcdir:=.}/commTime/commTimeDeployment.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [7016.452828] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Bellemarre:commTime.Slave:(15) 0.000000] [jmsg/INFO] Receiving on 'slave_13'
diff --git a/examples/java/io/CMakeLists.txt b/examples/java/io/CMakeLists.txt
new file mode 100644 (file)
index 0000000..767e4d6
--- /dev/null
@@ -0,0 +1,43 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_io)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/IO.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Node.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/storage.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
diff --git a/examples/java/kademlia/CMakeLists.txt b/examples/java/kademlia/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8b3833d
--- /dev/null
@@ -0,0 +1,54 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_kademlia)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/Answer.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Bucket.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Common.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Contact.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/FindNodeAnswerTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/FindNodeTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Kademlia.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/KademliaTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Node.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/PingAnswerTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/PingTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/RoutingTable.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/kademlia.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/kademlia.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
index 7396956..c368309 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar kademlia/Kademlia ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/kademlia/kademlia.xml
+$ java -cp ${classpath:=.} kademlia/Kademlia ${srcdir:=.}/platform.xml ${srcdir:=.}/kademlia/kademlia.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [900.000000] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Boivin:kademlia.Node:(2) 0.000000] [jmsg/INFO] Hi, I'm going to join the network with the id 1!
diff --git a/examples/java/master_slave_bypass/CMakeLists.txt b/examples/java/master_slave_bypass/CMakeLists.txt
new file mode 100644 (file)
index 0000000..9b18ca4
--- /dev/null
@@ -0,0 +1,46 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_master_slave_bypass)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Master.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/MsBypass.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Slave.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/bypass.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/platform.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
index dfcc347..cf1bee4 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar master_slave_bypass/MsBypass ${srcdir:=.}/examples/master_slave_bypass/platform.xml
+$ java -cp ${classpath:=.} master_slave_bypass/MsBypass ${srcdir:=.}/master_slave_bypass/platform.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [0.013010] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [alice:process2:(2) 0.000000] [jmsg/INFO] Slave Hello!
diff --git a/examples/java/master_slave_kill/CMakeLists.txt b/examples/java/master_slave_kill/CMakeLists.txt
new file mode 100644 (file)
index 0000000..34e5b26
--- /dev/null
@@ -0,0 +1,46 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_master_slave_kill)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Master.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/MsKill.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Slave.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/kill.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/platform.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
index 8e85ef1..e52dd93 100644 (file)
@@ -8,6 +8,7 @@ package master_slave_kill;
 import org.simgrid.msg.HostFailureException;
 import org.simgrid.msg.HostNotFoundException;
 import org.simgrid.msg.Msg;
+import org.simgrid.msg.MsgException;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.TimeoutException;
 import org.simgrid.msg.TransferFailureException;
@@ -26,7 +27,13 @@ public class Slave extends Process {
        Msg.info("Send Mail1!");
        task.send("mail1");
        
-       Task task2 = Task.receive("mail2");
-        Msg.info("Receive Mail2!");
+       Task task2;
+        try {
+                task2 = Task.receive("mail2");
+        } catch (MsgException e) {
+                Msg.debug("Received failed");
+                return;
+        }
+       Msg.info("Receive Mail2!");
   }
 }
index 2c7179a..f22d582 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar master_slave_kill/MsKill ${srcdir:=.}/examples/master_slave_kill/platform.xml
+$ java -cp ${classpath:=.} master_slave_kill/MsKill ${srcdir:=.}/master_slave_kill/platform.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [0.013010] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [alice:slave:(2) 0.000000] [jmsg/INFO] Slave Hello!
diff --git a/examples/java/masterslave/CMakeLists.txt b/examples/java/masterslave/CMakeLists.txt
new file mode 100644 (file)
index 0000000..c3083f6
--- /dev/null
@@ -0,0 +1,49 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_masterslave)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Forwarder.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Master.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Masterslave.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Slave.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/masterslave.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/deploy.xml
+  ${CMAKE_CURRENT_SOURCE_DIR}/masterslaveDeployment.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/README
+  PARENT_SCOPE
+  )
index fe6de58..77a09b5 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar masterslave/Masterslave ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/masterslave/masterslaveDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -cp ${classpath:=.} masterslave/Masterslave ${srcdir:=.}/platform.xml ${srcdir:=.}/masterslave/masterslaveDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (1:masterslave.Master@Jacquelin) Hello! Got 7 slaves and 5 tasks to process
 > [  0.000000] (2:masterslave.Forwarder@Jackson) Receiving on 'slave_0'
 > [  0.000000] (3:masterslave.Forwarder@Casavant) Receiving on 'slave_1'
diff --git a/examples/java/migration/CMakeLists.txt b/examples/java/migration/CMakeLists.txt
new file mode 100644 (file)
index 0000000..72108f0
--- /dev/null
@@ -0,0 +1,45 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_migration)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/Emigrant.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Migration.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Policeman.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/migration.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/migrationDeployment.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
index e40cb50..66bd4f5 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar migration/Migration ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/migration/migrationDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -cp ${classpath:=.} migration/Migration ${srcdir:=.}/platform.xml ${srcdir:=.}/migration/migrationDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (1:migration.Emigrant@Jacquelin) I'll look for a new job on another machine where the grass is greener.
 > [  0.000000] (1:migration.Emigrant@Boivin) Yeah, found something to do
 > [  1.000000] (2:migration.Policeman@Boivin) Wait a bit before migrating the emigrant.
diff --git a/examples/java/mutualExclusion/CMakeLists.txt b/examples/java/mutualExclusion/CMakeLists.txt
new file mode 100644 (file)
index 0000000..4593c8c
--- /dev/null
@@ -0,0 +1,49 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_mutualExclusion)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/Coordinator.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/GrantTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/MutexCentral.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Node.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/ReleaseTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/RequestTask.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/mutualexclusion.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/mutex_centralized_deployment.xml
+  ${CMAKE_CURRENT_SOURCE_DIR}/ring3.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
index a8ca174..944d916 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar mutualExclusion/centralized/MutexCentral ${srcdir:=.}/examples/mutualExclusion/ring3.xml ${srcdir:=.}/examples/mutualExclusion/centralized/mutex_centralized_deployment.xml
+$ java -cp ${classpath:=.} mutualExclusion/centralized/MutexCentral ${srcdir:=.}/mutualExclusion/ring3.xml ${srcdir:=.}/mutualExclusion/mutex_centralized_deployment.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [0.007806] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Host 0:mutualExclusion.centralized.Coordinator:(1) 0.001301] [jmsg/INFO] Got a request from mutualExclusion.centralized.Node. Queue empty: grant it
@@ -11,4 +11,4 @@ $ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar mutualExclusion/cent
 > [Host 1:mutualExclusion.centralized.Node:(2) 0.000000] [jmsg/INFO] Send a request to the coordinator
 > [Host 1:mutualExclusion.centralized.Node:(2) 0.001301] [jmsg/INFO] Wait for a grant from the coordinator
 > [Host 2:mutualExclusion.centralized.Node:(3) 0.000000] [jmsg/INFO] Send a request to the coordinator
-> [Host 2:mutualExclusion.centralized.Node:(3) 0.003903] [jmsg/INFO] Wait for a grant from the coordinator
\ No newline at end of file
+> [Host 2:mutualExclusion.centralized.Node:(3) 0.003903] [jmsg/INFO] Wait for a grant from the coordinator
diff --git a/examples/java/pingPong/CMakeLists.txt b/examples/java/pingPong/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8756c21
--- /dev/null
@@ -0,0 +1,47 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_pingPong)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/PingPongTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/PingPongTest.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Receiver.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Sender.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/pingpong.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/pingPongDeployment.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/README
+  PARENT_SCOPE
+  )
index 0100a58..a3db44a 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar pingPong/PingPongTest ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/pingPong/pingPongDeployment.xml
+$ java -cp ${classpath:=.} pingPong/PingPongTest ${srcdir:=.}/platform.xml ${srcdir:=.}/pingPong/pingPongDeployment.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [1.048882] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Boivin:pingPong.Receiver:(2) 0.000000] [jmsg/INFO] hello!
diff --git a/examples/java/priority/CMakeLists.txt b/examples/java/priority/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a93beec
--- /dev/null
@@ -0,0 +1,44 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_priority)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/Priority.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Test.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/priority.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/priorityDeployment.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
index f7ff99b..8622897 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar priority/Priority ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/priority/priorityDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -cp ${classpath:=.} priority/Priority ${srcdir:=.}/platform.xml ${srcdir:=.}/priority/priorityDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (1:priority.Test@Fafard) Hello! Running a task of size 7.6296E7 with priority 1.0
 > [  0.000000] (2:priority.Test@Fafard) Hello! Running a task of size 7.6296E7 with priority 2.0
 > [  0.833332] (2:priority.Test@Fafard) Goodbye now!
diff --git a/examples/java/startKillTime/CMakeLists.txt b/examples/java/startKillTime/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0a9716a
--- /dev/null
@@ -0,0 +1,48 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_startKillTime)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/Master.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Slave.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/StartKillTime.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/startKillTime.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/deployment.xml
+  ${CMAKE_CURRENT_SOURCE_DIR}/deployment_kill.xml
+  ${CMAKE_CURRENT_SOURCE_DIR}/deployment_start.xml
+  ${CMAKE_CURRENT_SOURCE_DIR}/deployment_start_kill.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
index d3f7036..e9942f0 100644 (file)
@@ -6,6 +6,7 @@
  */
 package startKillTime;
 import org.simgrid.msg.Host;
+import org.simgrid.msg.MsgException;
 import org.simgrid.msg.HostFailureException;
 import org.simgrid.msg.HostNotFoundException;
 import org.simgrid.msg.TransferFailureException;
@@ -22,8 +23,12 @@ public class Slave extends Process {
        } 
        public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
                Msg.info("Hello!");
-               waitFor(10.0);
-               Msg.info("OK, goodbye now.");
+                try {
+                        waitFor(10.0);
+                        Msg.info("OK, goodbye now.");
+                } catch (MsgException e) {
+                        Msg.debug("Wait cancelled.");
+                }
        
   }
 }
index edbe382..747b724 100644 (file)
@@ -1,5 +1,5 @@
-#! ./tesh
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar startKillTime/StartKillTime ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/startKillTime/deployment_start_kill.xml
+#! tesh
+$ java -cp ${classpath:=.} startKillTime/StartKillTime ${srcdir:=.}/platform.xml ${srcdir:=.}/startKillTime/deployment_start_kill.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [Jacquelin:startKillTime.Master:(1) 0.000000] [jmsg/INFO] Hello!
 > [Boivin:startKillTime.Slave:(2) 1.000000] [jmsg/INFO] Hello!
diff --git a/examples/java/suspend/CMakeLists.txt b/examples/java/suspend/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0ac2dfd
--- /dev/null
@@ -0,0 +1,45 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_suspend)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/DreamMaster.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/LazyGuy.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Suspend.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/suspend.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/suspendDeployment.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
index c6ec5f7..1bd9dea 100644 (file)
@@ -1,7 +1,7 @@
-#! ./tesh
+#! tesh
 
 ! output sort
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar suspend/Suspend ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/suspend/suspendDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -cp ${classpath:=.} suspend/Suspend ${srcdir:=.}/platform.xml ${srcdir:=.}/suspend/suspendDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (1:suspend.DreamMaster@Jacquelin) Let's create a lazy guy.
 > [  0.000000] (1:suspend.DreamMaster@Jacquelin) Let's wait a little bit...
 > [  0.000000] (2:Lazy@Jacquelin) Nobody's watching me ? Let's go to sleep.
diff --git a/examples/java/tracing/CMakeLists.txt b/examples/java/tracing/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f035001
--- /dev/null
@@ -0,0 +1,47 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(example java_tracing)
+set(sources
+  ${CMAKE_CURRENT_SOURCE_DIR}/PingPongTask.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Receiver.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/Sender.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/TracingTest.java
+  )
+
+if(enable_java)
+  add_custom_command(
+    COMMENT "Building ${example}..."
+    OUTPUT ${example}_compiled
+    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
+    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
+    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
+  )
+  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/tracingPingPong.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/tracingPingPongDeployment.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${sources}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/README
+  PARENT_SCOPE
+  )
index 3ecaee0..4d0e76f 100644 (file)
@@ -1,8 +1,8 @@
-#! ./tesh
+#! tesh
 
 ! output sort
 
-$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar tracing/TracingTest ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/tracing/tracingPingPongDeployment.xml --cfg=tracing:1  --cfg=tracing/filename:simulation.trace --cfg=tracing/platform:1
+$ java -cp ${classpath:=.} tracing/TracingTest ${srcdir:=.}/platform.xml ${srcdir:=.}/tracing/tracingPingPongDeployment.xml --cfg=tracing:1  --cfg=tracing/filename:simulation.trace --cfg=tracing/platform:1
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'simulation.trace'
@@ -36,3 +36,4 @@ $ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar tracing/TracingTest
 > [Marcel:tracing.Receiver:(3) 3.057925] [jmsg/INFO]  --- bw 1.0414912057858452E8 ----
 > [Marcel:tracing.Receiver:(3) 4.474401] [jmsg/INFO] goodbye!
 
+$ rm -rf simulation.trace
index 8691c9d..419c27e 100644 (file)
@@ -4,7 +4,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(actions actions.c)
 
 ### Add definitions for compile
-target_link_libraries(actions simgrid m)
+target_link_libraries(actions simgrid)
 
 set(tesh_files
   ${tesh_files}
index c700d63..a842d05 100644 (file)
@@ -68,11 +68,6 @@ static double parse_double(const char *string)
   return value;
 }
 
-static int get_rank(const char *process_name)
-{
-  return atoi(&(process_name[1]));
-}
-
 static void asynchronous_cleanup(void)
 {
   process_globals_t globals =
index e0e4c68..d6fd85d 100644 (file)
@@ -7,11 +7,17 @@
 #include "peer.h"
 #include "tracker.h"
 #include <msg/msg.h>
+#include <xbt/RngStream.h>
+
 /**
  * Bittorrent example launcher
  */
 int main(int argc, char *argv[])
 {
+  xbt_dynar_t host_list;
+  msg_host_t host;
+  unsigned i;
+
   MSG_init(&argc, argv);
 
   /* Check the arguments */
@@ -25,6 +31,15 @@ int main(int argc, char *argv[])
 
   MSG_create_environment(platform_file);
 
+  host_list = MSG_hosts_as_dynar();
+  xbt_dynar_foreach(host_list, i, host) {
+    char descr[512];
+    RngStream stream;
+    snprintf(descr, sizeof descr, "RngSream<%s>", MSG_host_get_name(host));
+    stream = RngStream_CreateStream(descr);
+    MSG_host_set_data(host, stream);
+  }
+
   MSG_function_register("tracker", tracker);
   MSG_function_register("peer", peer);
 
@@ -32,5 +47,11 @@ int main(int argc, char *argv[])
 
   MSG_main();
 
+  xbt_dynar_foreach(host_list, i, host) {
+    RngStream stream = MSG_host_get_data(host);
+    RngStream_DeleteStream(&stream);
+  }
+  xbt_dynar_free(&host_list);
+
   return 0;
 }
index 87881f4..2cad1e4 100644 (file)
@@ -53,4 +53,5 @@
  * Number of pieces the peer asks for simultaneously
  */
 #define MAX_PIECES 1
+
 #endif                          /* BITTORRENT_BITTORRENT_H_ */
index d5a8a9a..ec7df8a 100644 (file)
@@ -15,7 +15,7 @@ $ $SG_TEST_EXENV ${bindir:=.}/bittorrent ${srcdir:=.}/../msg_platform.xml ${srcd
 > [    0.000000] (8:peer@McGee) Hi, I'm joining the network with id 8
 > [ 3000.000000] (1:tracker@Jacquelin) Tracker is leaving
 > [ 5000.005340] (5:peer@Geoff) Here is my current status: 1111111111
-> [ 5000.012657] (7:peer@iRMX) Here is my current status: 1111111111
+> [ 5000.012635] (7:peer@iRMX) Here is my current status: 1111111111
 > [ 5000.048881] (2:peer@Boivin) Here is my current status: 1111111111
 > [ 5000.827441] (8:peer@McGee) Here is my current status: 1111111111
 > [ 5000.832977] (3:peer@Jean_Yves) Here is my current status: 1111111111
index 77d2da5..62bbf49 100644 (file)
@@ -96,21 +96,21 @@ void dispatch_jobs(double tracker_deadline, double peer_deadline, double seed_pe
     if(i==0) {
       //The fisrt node is the tracker
       arguments_tracker = xbt_malloc0(sizeof(char*) * 2);
-      arguments_tracker[0] = bprintf("tracker");
+      arguments_tracker[0] = xbt_strdup("tracker");
       arguments_tracker[1] = bprintf("%f", tracker_deadline);
       MSG_process_create_with_arguments("tracker", tracker, NULL, host, 2, arguments_tracker);
     } else {
       //Other nodes are peers
       int argument_size;
       arguments_peer = xbt_malloc0(sizeof(char*) * 4);
-      arguments_peer[0] = bprintf("peer");
+      arguments_peer[0] = xbt_strdup("peer");
       arguments_peer[1] = bprintf("%d", i);
       arguments_peer[2] = bprintf("%f", peer_deadline);
 
       //The first peers will be seeders
       if(seed_count > 0) {
         seed_count--;
-        arguments_peer[3] = bprintf("1");
+        arguments_peer[3] = xbt_strdup("1");
         argument_size = 4;
       } else {
         //Other ars leechers
index 026be29..4c930b7 100644 (file)
@@ -239,7 +239,7 @@ void peer_init(peer_t peer, int id, int seed)
   peer->current_pieces = xbt_dynar_new(sizeof(int), NULL);
   peer->current_piece = -1;
 
-  peer->stream = RngStream_CreateStream("");
+  peer->stream = MSG_host_get_data(MSG_host_self());
   peer->comm_received = NULL;
 
   peer->round = 0;
@@ -265,8 +265,6 @@ void peer_free(peer_t peer)
   xbt_free(peer->pieces_count);
   xbt_free(peer->bitfield);
   xbt_free(peer->bitfield_blocks);
-
-  RngStream_DeleteStream(&peer->stream);
 }
 
 /**
@@ -573,7 +571,7 @@ void update_choked_peers(peer_t peer)
   //remove a peer from the list
   xbt_dict_cursor_t cursor = NULL;
   xbt_dict_cursor_first(peer->active_peers, &cursor);
-  if (xbt_dict_length(peer->active_peers) > 0) {
+  if (!xbt_dict_is_empty(peer->active_peers)) {
     key = xbt_dict_cursor_get_key(cursor);
     connection_t peer_choked = xbt_dict_cursor_get_data(cursor);
     if (peer_choked) {
index d619047..169b5d6 100644 (file)
@@ -19,7 +19,7 @@ int tracker(int argc, char *argv[])
 {
   int i;
 
-  RngStream stream = RngStream_CreateStream("tracker");
+  RngStream stream = MSG_host_get_data(MSG_host_self());
 
   //Checking arguments
   xbt_assert(argc == 2, "Wrong number of arguments for the tracker.");
@@ -78,8 +78,6 @@ int tracker(int argc, char *argv[])
   }
   //Free the peers list
   xbt_dynar_free(&peers_list);
-  //Free the RngStream object.
-  RngStream_DeleteStream(&stream);
 
   XBT_INFO("Tracker is leaving");
 
index 26ff3cb..5111865 100644 (file)
@@ -5,7 +5,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(chainsend chainsend.c iterator.c common.c messages.c broadcaster.c peer.c)
 
 ### Add definitions for compile
-target_link_libraries(chainsend simgrid )
+target_link_libraries(chainsend simgrid )
 
 set(tesh_files
   ${tesh_files}
index 8ab4f44..fc68dab 100644 (file)
@@ -48,8 +48,7 @@ int broadcaster_build_chain(broadcaster_t bc)
       XBT_DEBUG("Building chain -- broadcaster:\"%s\" dest:\"%s\" prev:\"%s\" next:\"%s\"", me, current_host, prev, next);
     
       /* Send message to current peer */
-      task = task_message_chain_new(me, current_host, prev, next);
-      //MSG_task_set_category(task, current_host);
+      task = task_message_chain_new(me, current_host, prev, next, bc->piece_count);
       MSG_task_send(task, current_host);
 
       last = current_host;
@@ -77,27 +76,6 @@ int broadcaster_send_file(broadcaster_t bc)
   return MSG_OK;
 }
 
-int broadcaster_finish(broadcaster_t bc)
-{
-  msg_task_t task = NULL;
-  const char *me = "host0"; /* FIXME: hardcoded*/ /*MSG_host_get_name(MSG_host_self());*/
-  const char *current_host = NULL;
-  char **cur = NULL;
-
-  xbt_dynar_iterator_seek(bc->it, 0);
-
-  /* Send goodbye message to every peer in the order generated by iterator it */
-  for (cur = (char**)xbt_dynar_iterator_next(bc->it); cur != NULL; cur = (char**)xbt_dynar_iterator_next(bc->it)) {
-    /* Send message to current peer */
-    current_host = *cur;
-    task = task_message_end_data_new(me, current_host);
-    //MSG_task_set_category(task, current_host);
-    MSG_task_send(task, current_host);
-  }
-
-  return MSG_OK;
-}
-
 broadcaster_t broadcaster_init(xbt_dynar_t host_list, unsigned int piece_count)
 {
   int status;
@@ -148,7 +126,6 @@ int broadcaster(int argc, char *argv[])
 
   /* TODO: Error checking */
   status = broadcaster_send_file(bc);
-  status = broadcaster_finish(bc);
 
   broadcaster_destroy(bc);
 
index 44fe4cc..ce6fe97 100644 (file)
@@ -36,8 +36,6 @@ xbt_dynar_t build_hostlist_from_hostcount(int hostcount);
 broadcaster_t broadcaster_init(xbt_dynar_t host_list, unsigned int piece_count);
 int broadcaster_build_chain(broadcaster_t bc);
 int broadcaster_send_file(broadcaster_t bc);
-int broadcaster_finish(broadcaster_t bc);
-static void broadcaster_destroy(broadcaster_t bc);
 
 /* Tasks */
 int broadcaster(int argc, char *argv[]);
index 098df7b..6653235 100644 (file)
@@ -5,12 +5,12 @@ p Testing the chainsend MSG implementation
 ! timeout 60
 ! output sort
 $ $SG_TEST_EXENV ${bindir:=.}/chainsend ${srcdir:=.}/platform_chainsend.xml ${srcdir:=.}/deployment_tesh.xml "--log=root.fmt:[%12.6r]%e(%i:%P@%h)%e%m%n"
-> [    5.683972] (2:peer@host1) ### 5.683972 536870912 bytes (Avg 90.077856 MB/s); copy finished (simulated).
-> [    6.936704] (3:peer@host2) ### 6.936704 536870912 bytes (Avg 73.810274 MB/s); copy finished (simulated).
-> [    6.951030] (4:peer@host3) ### 6.951030 536870912 bytes (Avg 73.658146 MB/s); copy finished (simulated).
-> [    6.951486] (5:peer@host4) ### 6.951486 536870912 bytes (Avg 73.653321 MB/s); copy finished (simulated).
-> [    7.170536] (9:peer@host8) ### 7.170536 536870912 bytes (Avg 71.403309 MB/s); copy finished (simulated).
-> [    7.952668] (6:peer@host5) ### 7.952668 536870912 bytes (Avg 64.380908 MB/s); copy finished (simulated).
-> [    7.972487] (7:peer@host6) ### 7.972486 536870912 bytes (Avg 64.220868 MB/s); copy finished (simulated).
-> [    8.972948] (0:@) Total simulation time: 8.972948e+00
-> [    8.972948] (8:peer@host7) ### 8.972948 536870912 bytes (Avg 57.060399 MB/s); copy finished (simulated).
+> [    0.125671] (2:peer@host1) ### 0.125671 16777216 bytes (Avg 127.316430 MB/s); copy finished (simulated).
+> [    0.157894] (3:peer@host2) ### 0.157894 16777216 bytes (Avg 101.333796 MB/s); copy finished (simulated).
+> [    0.158420] (4:peer@host3) ### 0.158420 16777216 bytes (Avg 100.997152 MB/s); copy finished (simulated).
+> [    0.159139] (5:peer@host4) ### 0.159139 16777216 bytes (Avg 100.541154 MB/s); copy finished (simulated).
+> [    0.191593] (6:peer@host5) ### 0.191593 16777216 bytes (Avg 83.510414 MB/s); copy finished (simulated).
+> [    0.191989] (7:peer@host6) ### 0.191989 16777216 bytes (Avg 83.338080 MB/s); copy finished (simulated).
+> [    0.229841] (0:@) Total simulation time: 2.298413e-01
+> [    0.229841] (8:peer@host7) ### 0.229841 16777216 bytes (Avg 69.613244 MB/s); copy finished (simulated).
+> [    0.229841] (9:peer@host8) ### 0.229841 16777216 bytes (Avg 69.613244 MB/s); copy finished (simulated).
index 37f2b74..928c6e3 100644 (file)
@@ -10,8 +10,8 @@ int process_pending_connections(xbt_dynar_t q)
   xbt_dynar_foreach(q, iter, comm) {
     empty = 1;
     if (MSG_comm_test(comm)) {
-      MSG_comm_destroy(comm);
       status = MSG_comm_get_status(comm);
+      MSG_comm_destroy(comm);
       xbt_assert(status == MSG_OK, "process_pending_connections() failed");
       xbt_dynar_cursor_rm(q, &iter);
       empty = 0;
index 72825f5..7f4b1f0 100644 (file)
@@ -5,7 +5,7 @@
   <!-- Broadcaster -->
   <process host="host0" function="broadcaster">
        <argument value="8"/> <!-- number of peers -->
-       <argument value="8192"/> <!-- number of pieces -->
+       <argument value="256"/> <!-- number of pieces -->
   </process>
 
   <!-- Peers -->
index 3267913..3a13ed1 100644 (file)
@@ -30,7 +30,6 @@ xbt_dynar_t random_indices_list(int size);
 
 /* Shuffle */
 /**************************************/
-static int rand_int(int n);
 void xbt_dynar_shuffle_in_place(xbt_dynar_t indices_list);
 
 #define xbt_dynar_swap_elements(d, type, i, j) \
index 0bc23cd..c91243c 100644 (file)
@@ -11,12 +11,13 @@ msg_task_t task_message_new(e_message_type type, unsigned int len, const char *i
   return task;
 }
 
-msg_task_t task_message_chain_new(const char *issuer_hostname, const char *mailbox, const char* prev, const char *next)
+msg_task_t task_message_chain_new(const char *issuer_hostname, const char *mailbox, const char* prev, const char *next, const unsigned int num_pieces)
 {
   msg_task_t task = task_message_new(MESSAGE_BUILD_CHAIN, MESSAGE_BUILD_CHAIN_SIZE, issuer_hostname, mailbox);
   message_t msg = MSG_task_get_data(task);
   msg->prev_hostname = prev;
   msg->next_hostname = next;
+  msg->num_pieces = num_pieces;
 
   return task;
 }
@@ -24,8 +25,6 @@ msg_task_t task_message_chain_new(const char *issuer_hostname, const char *mailb
 msg_task_t task_message_data_new(const char *issuer_hostname, const char *mailbox, const char *block, unsigned int len)
 {
   msg_task_t task = task_message_new(MESSAGE_SEND_DATA, MESSAGE_SEND_DATA_HEADER_SIZE + len, issuer_hostname, mailbox);
-  //if (strcmp(mailbox, "host4") == 0) 
-  //MSG_task_set_category(task, mailbox);
   message_t msg = MSG_task_get_data(task);
   msg->data_block = block;
   msg->data_length = len;
@@ -33,11 +32,6 @@ msg_task_t task_message_data_new(const char *issuer_hostname, const char *mailbo
   return task;
 }
 
-msg_task_t task_message_end_data_new(const char *issuer_hostname, const char *mailbox)
-{
-  return task_message_new(MESSAGE_END_DATA, MESSAGE_END_DATA_SIZE, issuer_hostname, mailbox);
-}
-
 void task_message_delete(void *task)
 {
   message_t msg = MSG_task_get_data(task);
index 52ba874..7118d29 100644 (file)
@@ -11,8 +11,7 @@
 /* Messages enum */
 typedef enum {
   MESSAGE_BUILD_CHAIN = 0,
-  MESSAGE_SEND_DATA,
-  MESSAGE_END_DATA
+  MESSAGE_SEND_DATA
 } e_message_type;
 
 /* Message struct */
@@ -24,13 +23,13 @@ typedef struct s_message {
   const char *next_hostname;
   const char *data_block;
   unsigned int data_length;
+  unsigned int num_pieces;
 } s_message_t, *message_t;
 
 /* Message methods */
 msg_task_t task_message_new(e_message_type type, unsigned int len, const char *issuer_hostname, const char *mailbox);
-msg_task_t task_message_chain_new(const char *issuer_hostname, const char *mailbox, const char* prev, const char *next);
+msg_task_t task_message_chain_new(const char *issuer_hostname, const char *mailbox, const char* prev, const char *next, const unsigned int num_pieces);
 msg_task_t task_message_data_new(const char *issuer_hostname, const char *mailbox, const char *block, unsigned int len);
-msg_task_t task_message_end_data_new(const char *issuer_hostname, const char *mailbox);
 void task_message_delete(void *);
 
 #endif /* KADEPLOY_MESSAGES_H */
index 43c055d..4d0f9a0 100644 (file)
@@ -11,6 +11,7 @@ void peer_init_chain(peer_t peer, message_t msg)
 {
   peer->prev = msg->prev_hostname;
   peer->next = msg->next_hostname;
+  peer->total_pieces = msg->num_pieces;
   peer->init = 1;
 }
 
@@ -39,11 +40,10 @@ int peer_execute_task(peer_t peer, msg_task_t task)
         peer_forward_msg(peer, msg);
       peer->pieces++;
       peer->bytes += msg->data_length;
-      break;
-    case MESSAGE_END_DATA:
-      xbt_assert(peer->init, "peer_execute_task() failed: got msg_type %d before initialization", msg->type);
-      done = 1;
-      XBT_DEBUG("%d pieces receieved", peer->pieces);
+      if (peer->pieces >= peer->total_pieces) {
+        XBT_DEBUG("%d pieces receieved", peer->pieces);
+        done = 1;
+      }
       break;
   }
 
@@ -91,7 +91,6 @@ void peer_init(peer_t p, int argc, char *argv[])
   p->next = NULL;
   p->pieces = 0;
   p->bytes = 0;
-  p->close_asap = 0;
   p->pending_recvs = xbt_dynar_new(sizeof(msg_comm_t), NULL);
   p->pending_sends = xbt_dynar_new(sizeof(msg_comm_t), NULL);
   p->me = xbt_new(char, HOSTNAME_LENGTH);
@@ -105,17 +104,18 @@ void peer_init(peer_t p, int argc, char *argv[])
 
 void peer_shutdown(peer_t p)
 {
-  float start_time = MSG_get_clock();
-  float end_time = start_time + PEER_SHUTDOWN_DEADLINE;
+  unsigned int size = xbt_dynar_length(p->pending_sends);
+  unsigned int idx;
+  msg_comm_t *comms = xbt_new(msg_comm_t, size);
 
-  XBT_DEBUG("Waiting for sends to finish before shutdown...");
-  /* MSG_comm_waitall(p->pending_sends, PEER_SHUTDOWN_DEADLINE); FIXME: this doesn't work */
-  while (xbt_dynar_length(p->pending_sends) && MSG_get_clock() < end_time) {
-    process_pending_connections(p->pending_sends);
-    MSG_process_sleep(1);
+  for (idx = 0; idx < size; idx++) {
+    comms[idx] = xbt_dynar_get_as(p->pending_sends, idx, msg_comm_t);
   }
 
-  xbt_assert(xbt_dynar_length(p->pending_sends) == 0, "Shutdown failed, sends still pending after deadline");
+  XBT_DEBUG("Waiting for sends to finish before shutdown...");
+  MSG_comm_waitall(comms, size, PEER_SHUTDOWN_DEADLINE);
+
+  xbt_free(comms);
 }
 
 void peer_delete(peer_t p)
index 8727e15..fd20eca 100644 (file)
@@ -19,7 +19,7 @@ typedef struct s_peer {
   unsigned long long bytes;
   xbt_dynar_t pending_recvs;
   xbt_dynar_t pending_sends;
-  int close_asap; /* TODO: unused */
+  unsigned int total_pieces;
 } s_peer_t, *peer_t;
 
 /* Peer: helper functions */
index c06ebfa..534992d 100644 (file)
@@ -8,7 +8,7 @@ add_executable(masterslave_virtual_machines "masterslave_virtual_machines.c")
 if(WIN32)
   target_link_libraries(masterslave_virtual_machines simgrid )
 else()
-  target_link_libraries(masterslave_virtual_machines simgrid m)
+  target_link_libraries(masterslave_virtual_machines simgrid)
 endif()
 
 set(tesh_files
index 8f2780e..e1527eb 100644 (file)
@@ -134,6 +134,9 @@ int master(int argc, char *argv[]) {
     MSG_task_send(finalize, mailbox_buffer);
   }
 
+  XBT_INFO("Wait a while before effective shutdown.");
+  MSG_process_sleep(2);
+
   xbt_dynar_foreach(vms,i,vm) {
     MSG_vm_shutdown(vm);
     MSG_vm_destroy(vm);
index f8376d2..b3dd73a 100644 (file)
@@ -64,86 +64,97 @@ $ $SG_TEST_EXENV ${bindir:=.}/cloud/masterslave_virtual_machines$EXEEXT ${srcdir
 > [ 1000.000000] (20:Slave 18@Jean_Yves) Slave listenning on 18
 > [ 1000.000000] (21:Slave 19@Fafard) Slave listenning on 19
 > [ 1000.000000] (22:Slave 0@Jacquelin) Slave listenning on 0
-> [ 1000.000000] (23:Slave 1@Intel) Slave listenning on 1
-> [ 1000.000000] (24:Slave 2@Provost) Slave listenning on 2
-> [ 1000.000000] (25:Slave 3@Fernand) Slave listenning on 3
-> [ 1000.000000] (26:Slave 4@Bescherelle) Slave listenning on 4
-> [ 1000.000000] (27:Slave 5@Ethernet) Slave listenning on 5
-> [ 1000.000000] (28:Slave 6@Kuenning) Slave listenning on 6
-> [ 1000.000000] (29:Slave 7@Dodge) Slave listenning on 7
-> [ 1000.000000] (30:Slave 8@Jean_Yves) Slave listenning on 8
-> [ 1000.000000] (31:Slave 9@Fafard) Slave listenning on 9
+> [ 1000.000000] (23:Slave 10@Jacquelin) Slave listenning on 10
+> [ 1000.000000] (24:Slave 1@Intel) Slave listenning on 1
+> [ 1000.000000] (25:Slave 11@Intel) Slave listenning on 11
+> [ 1000.000000] (26:Slave 2@Provost) Slave listenning on 2
+> [ 1000.000000] (27:Slave 12@Provost) Slave listenning on 12
+> [ 1000.000000] (28:Slave 3@Fernand) Slave listenning on 3
+> [ 1000.000000] (29:Slave 13@Fernand) Slave listenning on 13
+> [ 1000.000000] (30:Slave 4@Bescherelle) Slave listenning on 4
+> [ 1000.000000] (31:Slave 14@Bescherelle) Slave listenning on 14
+> [ 1000.000000] (32:Slave 5@Ethernet) Slave listenning on 5
+> [ 1000.000000] (33:Slave 15@Ethernet) Slave listenning on 15
+> [ 1000.000000] (34:Slave 6@Kuenning) Slave listenning on 6
+> [ 1000.000000] (35:Slave 16@Kuenning) Slave listenning on 16
+> [ 1000.000000] (36:Slave 7@Dodge) Slave listenning on 7
+> [ 1000.000000] (37:Slave 17@Dodge) Slave listenning on 17
+> [ 1000.000000] (38:Slave 8@Jean_Yves) Slave listenning on 8
+> [ 1000.000000] (39:Slave 18@Jean_Yves) Slave listenning on 18
+> [ 1000.000000] (40:Slave 9@Fafard) Slave listenning on 9
+> [ 1000.000000] (41:Slave 19@Fafard) Slave listenning on 19
 > [ 1000.020275] (1:master@Jacquelin) Sending "Task_1" to "Slave_1"
 > [ 1000.020275] (22:Slave 0@Jacquelin) Received "Task_0" from mailbox Slave_0
 > [ 1000.093091] (22:Slave 0@Jacquelin) "Task_0" done
 > [ 1023.866678] (1:master@Jacquelin) Sending "Task_2" to "Slave_2"
-> [ 1023.866678] (23:Slave 1@Intel) Received "Task_1" from mailbox Slave_1
-> [ 1023.939494] (23:Slave 1@Intel) "Task_1" done
+> [ 1023.866678] (24:Slave 1@Intel) Received "Task_1" from mailbox Slave_1
+> [ 1023.939494] (24:Slave 1@Intel) "Task_1" done
 > [ 1048.674036] (1:master@Jacquelin) Sending "Task_3" to "Slave_3"
-> [ 1048.674036] (24:Slave 2@Provost) Received "Task_2" from mailbox Slave_2
-> [ 1048.746852] (24:Slave 2@Provost) "Task_2" done
+> [ 1048.674036] (26:Slave 2@Provost) Received "Task_2" from mailbox Slave_2
+> [ 1048.746852] (26:Slave 2@Provost) "Task_2" done
 > [ 1056.325710] (1:master@Jacquelin) Sending "Task_4" to "Slave_4"
-> [ 1056.325710] (25:Slave 3@Fernand) Received "Task_3" from mailbox Slave_3
-> [ 1056.777157] (25:Slave 3@Fernand) "Task_3" done
+> [ 1056.325710] (28:Slave 3@Fernand) Received "Task_3" from mailbox Slave_3
+> [ 1056.777157] (28:Slave 3@Fernand) "Task_3" done
 > [ 1064.574878] (1:master@Jacquelin) Sending "Task_5" to "Slave_5"
-> [ 1064.574878] (26:Slave 4@Bescherelle) Received "Task_4" from mailbox Slave_4
-> [ 1064.647694] (26:Slave 4@Bescherelle) "Task_4" done
+> [ 1064.574878] (30:Slave 4@Bescherelle) Received "Task_4" from mailbox Slave_4
+> [ 1064.647694] (30:Slave 4@Bescherelle) "Task_4" done
 > [ 1073.010762] (1:master@Jacquelin) Sending "Task_6" to "Slave_6"
-> [ 1073.010762] (27:Slave 5@Ethernet) Received "Task_5" from mailbox Slave_5
-> [ 1073.112704] (27:Slave 5@Ethernet) "Task_5" done
+> [ 1073.010762] (32:Slave 5@Ethernet) Received "Task_5" from mailbox Slave_5
+> [ 1073.112704] (32:Slave 5@Ethernet) "Task_5" done
 > [ 1081.730603] (1:master@Jacquelin) Sending "Task_7" to "Slave_7"
-> [ 1081.730603] (28:Slave 6@Kuenning) Received "Task_6" from mailbox Slave_6
-> [ 1081.847108] (28:Slave 6@Kuenning) "Task_6" done
+> [ 1081.730603] (34:Slave 6@Kuenning) Received "Task_6" from mailbox Slave_6
+> [ 1081.847108] (34:Slave 6@Kuenning) "Task_6" done
 > [ 1126.150095] (1:master@Jacquelin) Sending "Task_8" to "Slave_8"
-> [ 1126.150095] (29:Slave 7@Dodge) Received "Task_7" from mailbox Slave_7
-> [ 1126.237474] (29:Slave 7@Dodge) "Task_7" done
+> [ 1126.150095] (36:Slave 7@Dodge) Received "Task_7" from mailbox Slave_7
+> [ 1126.237474] (36:Slave 7@Dodge) "Task_7" done
 > [ 1169.839597] (1:master@Jacquelin) Sending "Task_9" to "Slave_9"
-> [ 1169.839597] (30:Slave 8@Jean_Yves) Received "Task_8" from mailbox Slave_8
-> [ 1169.941539] (30:Slave 8@Jean_Yves) "Task_8" done
+> [ 1169.839597] (38:Slave 8@Jean_Yves) Received "Task_8" from mailbox Slave_8
+> [ 1169.941539] (38:Slave 8@Jean_Yves) "Task_8" done
 > [ 1176.014409] (1:master@Jacquelin) Sending "Task_10" to "Slave_10"
-> [ 1176.014409] (31:Slave 9@Fafard) Received "Task_9" from mailbox Slave_9
-> [ 1176.034684] (12:Slave 10@Jacquelin) Received "Task_10" from mailbox Slave_10
+> [ 1176.014409] (40:Slave 9@Fafard) Received "Task_9" from mailbox Slave_9
 > [ 1176.034684] (1:master@Jacquelin) Sending "Task_11" to "Slave_11"
-> [ 1176.087225] (31:Slave 9@Fafard) "Task_9" done
-> [ 1176.107500] (12:Slave 10@Jacquelin) "Task_10" done
-> [ 1199.881087] (13:Slave 11@Intel) Received "Task_11" from mailbox Slave_11
+> [ 1176.034684] (23:Slave 10@Jacquelin) Received "Task_10" from mailbox Slave_10
+> [ 1176.087225] (40:Slave 9@Fafard) "Task_9" done
+> [ 1176.107500] (23:Slave 10@Jacquelin) "Task_10" done
 > [ 1199.881087] (1:master@Jacquelin) Sending "Task_12" to "Slave_12"
-> [ 1199.953902] (13:Slave 11@Intel) "Task_11" done
-> [ 1224.688445] (14:Slave 12@Provost) Received "Task_12" from mailbox Slave_12
+> [ 1199.881087] (25:Slave 11@Intel) Received "Task_11" from mailbox Slave_11
+> [ 1199.953902] (25:Slave 11@Intel) "Task_11" done
 > [ 1224.688445] (1:master@Jacquelin) Sending "Task_13" to "Slave_13"
-> [ 1224.761260] (14:Slave 12@Provost) "Task_12" done
-> [ 1232.340119] (15:Slave 13@Fernand) Received "Task_13" from mailbox Slave_13
+> [ 1224.688445] (27:Slave 12@Provost) Received "Task_12" from mailbox Slave_12
+> [ 1224.761260] (27:Slave 12@Provost) "Task_12" done
 > [ 1232.340119] (1:master@Jacquelin) Sending "Task_14" to "Slave_14"
-> [ 1232.791566] (15:Slave 13@Fernand) "Task_13" done
-> [ 1240.589287] (16:Slave 14@Bescherelle) Received "Task_14" from mailbox Slave_14
+> [ 1232.340119] (29:Slave 13@Fernand) Received "Task_13" from mailbox Slave_13
+> [ 1232.791566] (29:Slave 13@Fernand) "Task_13" done
 > [ 1240.589287] (1:master@Jacquelin) Sending "Task_15" to "Slave_15"
-> [ 1240.662103] (16:Slave 14@Bescherelle) "Task_14" done
-> [ 1249.025171] (17:Slave 15@Ethernet) Received "Task_15" from mailbox Slave_15
+> [ 1240.589287] (31:Slave 14@Bescherelle) Received "Task_14" from mailbox Slave_14
+> [ 1240.662103] (31:Slave 14@Bescherelle) "Task_14" done
 > [ 1249.025171] (1:master@Jacquelin) Sending "Task_16" to "Slave_16"
-> [ 1249.127113] (17:Slave 15@Ethernet) "Task_15" done
-> [ 1257.745012] (18:Slave 16@Kuenning) Received "Task_16" from mailbox Slave_16
+> [ 1249.025171] (33:Slave 15@Ethernet) Received "Task_15" from mailbox Slave_15
+> [ 1249.127113] (33:Slave 15@Ethernet) "Task_15" done
 > [ 1257.745012] (1:master@Jacquelin) Sending "Task_17" to "Slave_17"
-> [ 1257.861517] (18:Slave 16@Kuenning) "Task_16" done
-> [ 1302.164504] (19:Slave 17@Dodge) Received "Task_17" from mailbox Slave_17
+> [ 1257.745012] (35:Slave 16@Kuenning) Received "Task_16" from mailbox Slave_16
+> [ 1257.861517] (35:Slave 16@Kuenning) "Task_16" done
 > [ 1302.164504] (1:master@Jacquelin) Sending "Task_18" to "Slave_18"
-> [ 1302.251883] (19:Slave 17@Dodge) "Task_17" done
+> [ 1302.164504] (37:Slave 17@Dodge) Received "Task_17" from mailbox Slave_17
+> [ 1302.251883] (37:Slave 17@Dodge) "Task_17" done
 > [ 1345.854006] (1:master@Jacquelin) Sending "Task_19" to "Slave_19"
-> [ 1345.854006] (20:Slave 18@Jean_Yves) Received "Task_18" from mailbox Slave_18
-> [ 1345.955948] (20:Slave 18@Jean_Yves) "Task_18" done
+> [ 1345.854006] (39:Slave 18@Jean_Yves) Received "Task_18" from mailbox Slave_18
+> [ 1345.955948] (39:Slave 18@Jean_Yves) "Task_18" done
 > [ 1352.028818] (1:master@Jacquelin) Migrate everyone to the second host.
 > [ 1352.028818] (1:master@Jacquelin) Suspend everyone, move them to the third host, and resume them.
 > [ 1352.028818] (1:master@Jacquelin) Let's shut down the simulation. 10 first processes will be shut down cleanly while the second half will forcefully get killed
-> [ 1352.028818] (21:Slave 19@Fafard) Received "Task_19" from mailbox Slave_19
+> [ 1352.028818] (41:Slave 19@Fafard) Received "Task_19" from mailbox Slave_19
 > [ 1352.029013] (22:Slave 0@Provost) Received "finalize" from mailbox Slave_0
-> [ 1352.101633] (21:Slave 19@Provost) "Task_19" done
-> [ 1352.947711] (23:Slave 1@Provost) Received "finalize" from mailbox Slave_1
-> [ 1354.827365] (24:Slave 2@Provost) Received "finalize" from mailbox Slave_2
-> [ 1356.653021] (25:Slave 3@Provost) Received "finalize" from mailbox Slave_3
-> [ 1357.515808] (26:Slave 4@Provost) Received "finalize" from mailbox Slave_4
-> [ 1358.576004] (27:Slave 5@Provost) Received "finalize" from mailbox Slave_5
-> [ 1359.433313] (28:Slave 6@Provost) Received "finalize" from mailbox Slave_6
-> [ 1360.833461] (29:Slave 7@Provost) Received "finalize" from mailbox Slave_7
-> [ 1361.758549] (30:Slave 8@Provost) Received "finalize" from mailbox Slave_8
-> [ 1363.743206] (0:@) Simulation time 1363.74
-> [ 1363.743206] (1:master@Jacquelin) Goodbye now!
-> [ 1363.743206] (31:Slave 9@Provost) Received "finalize" from mailbox Slave_9
+> [ 1352.101633] (41:Slave 19@Provost) "Task_19" done
+> [ 1352.947711] (24:Slave 1@Provost) Received "finalize" from mailbox Slave_1
+> [ 1354.827365] (26:Slave 2@Provost) Received "finalize" from mailbox Slave_2
+> [ 1356.653021] (28:Slave 3@Provost) Received "finalize" from mailbox Slave_3
+> [ 1357.515808] (30:Slave 4@Provost) Received "finalize" from mailbox Slave_4
+> [ 1358.576004] (32:Slave 5@Provost) Received "finalize" from mailbox Slave_5
+> [ 1359.433313] (34:Slave 6@Provost) Received "finalize" from mailbox Slave_6
+> [ 1360.833461] (36:Slave 7@Provost) Received "finalize" from mailbox Slave_7
+> [ 1361.758549] (38:Slave 8@Provost) Received "finalize" from mailbox Slave_8
+> [ 1363.743206] (1:master@Jacquelin) Wait a while before effective shutdown.
+> [ 1363.743206] (40:Slave 9@Provost) Received "finalize" from mailbox Slave_9
+> [ 1365.743206] (0:@) Simulation time 1365.74
+> [ 1365.743206] (1:master@Jacquelin) Goodbye now!
index d7e8e5a..9017ddc 100644 (file)
@@ -5,7 +5,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(test_MSG_gpu_task_create "test_MSG_gpu_task_create.c")
 
 ### Add definitions for compile
-target_link_libraries(test_MSG_gpu_task_create simgrid )
+target_link_libraries(test_MSG_gpu_task_create simgrid )
 
 set(tesh_files
   ${tesh_files}
index 9d28349..f4d8156 100644 (file)
@@ -5,7 +5,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(gtnets gtnets.c)
 
 ### Add definitions for compile
-target_link_libraries(gtnets simgrid m)
+target_link_libraries(gtnets simgrid)
 
 set(tesh_files
   ${tesh_files}
index d3f612e..3285b5e 100644 (file)
@@ -7,8 +7,8 @@ add_executable(file_unlink file_unlink.c)
 
 ### Add definitions for compile
 if(NOT WIN32)
-  target_link_libraries(file simgrid pthread)
-  target_link_libraries(file_unlink simgrid pthread)
+  target_link_libraries(file simgrid pthread)
+  target_link_libraries(file_unlink simgrid pthread)
 else()
   target_link_libraries(file simgrid)
   target_link_libraries(file_unlink simgrid)
index 0eb2cb4..fc79986 100644 (file)
@@ -35,7 +35,7 @@ int host(int argc, char *argv[])
   msg_file_t file = NULL;
   s_msg_stat_t stat;
   void *ptr = NULL;
-  char* mount = bprintf("/home");
+  char* mount = xbt_strdup("/home");
   double read,write;
 
   if(!strcmp(MSG_process_get_name(MSG_process_self()),"0"))
index d9f6c01..f230372 100644 (file)
@@ -32,7 +32,7 @@ int host(int argc, char *argv[])
   msg_file_t file = NULL;
   s_msg_stat_t stat;
   void *ptr = NULL;
-  char* mount = bprintf("/home");
+  char* mount = xbt_strdup("/home");
   double write;
 
   // First open
@@ -113,7 +113,7 @@ int main(int argc, char **argv)
   MSG_function_register("host", host);
   unsigned long nb_hosts = xbt_dynar_length(hosts);
   XBT_INFO("Number of host '%lu'",nb_hosts);
-  char* name_host = bprintf("0");
+  char* name_host = xbt_strdup("0");
   MSG_process_create( name_host, host, NULL, xbt_dynar_get_as(hosts,0,msg_host_t) );
   free(name_host);
 
index bd1328b..224a1f8 100644 (file)
@@ -1,7 +1,6 @@
 #! ./tesh
 
 $ ${bindir:=.}/io/file ${srcdir:=.}/examples/platforms/storage.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:@) Configuration change: Set 'path' to '../examples/platforms/'
 > [  0.000000] (0:@) Number of host '4'
 > [  0.000000] (1:0@denise)    Open file './doc/simgrid/examples/platforms/g5k.xml'
 > [  0.000000] (2:1@alice)     Open file './doc/simgrid/examples/platforms/One_cluster_no_backbone.xml'
@@ -30,7 +29,6 @@ $ ${bindir:=.}/io/file ${srcdir:=.}/examples/platforms/storage.xml "--log=root.f
 > [  0.004786] (0:@) Simulation time 0.00478623
 
 $ ${bindir:=.}/io/file_unlink ${srcdir:=.}/examples/platforms/storage.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:@) Configuration change: Set 'path' to '../examples/platforms/'
 > [  0.000000] (0:@) Number of host '4'
 > [  0.000000] (1:0@denise)    Open file './doc/simgrid/examples/platforms/g5k.xml'
 > [  0.000000] (1:0@denise)    File stat ./doc/simgrid/examples/platforms/g5k.xml Size 17028.0
index 022a986..62a73e1 100644 (file)
@@ -58,7 +58,7 @@ void routing_table_print(routing_table_t table)
   XBT_INFO("Routing table of %08x:", table->id);
 
   for (i = 0; i <= identifier_size; i++) {
-    if (xbt_dynar_length(table->buckets[i].nodes) > 0) {
+    if (!xbt_dynar_is_empty(table->buckets[i].nodes)) {
       XBT_INFO("Bucket number %d: ", i);
       xbt_dynar_foreach(table->buckets[i].nodes, j, value) {
         XBT_INFO("Element %d: %08x", j, value);
index 9efb438..91d61fb 100644 (file)
@@ -23,14 +23,14 @@ if(WIN32)
   target_link_libraries(masterslave_platfgen simgrid )
   target_link_libraries(masterslave_failure_platfgen simgrid )
 else()
-  target_link_libraries(masterslave_forwarder simgrid )
-  target_link_libraries(masterslave_failure simgrid )
-  target_link_libraries(masterslave_mailbox simgrid )
-  target_link_libraries(masterslave_bypass simgrid )
-  target_link_libraries(masterslave_kill simgrid )
-  target_link_libraries(masterslave_arg simgrid )
-  target_link_libraries(masterslave_platfgen simgrid )
-  target_link_libraries(masterslave_failure_platfgen simgrid )
+  target_link_libraries(masterslave_forwarder simgrid )
+  target_link_libraries(masterslave_failure simgrid )
+  target_link_libraries(masterslave_mailbox simgrid )
+  target_link_libraries(masterslave_bypass simgrid )
+  target_link_libraries(masterslave_kill simgrid )
+  target_link_libraries(masterslave_arg simgrid )
+  target_link_libraries(masterslave_platfgen simgrid )
+  target_link_libraries(masterslave_failure_platfgen simgrid )
 endif()
 target_link_libraries(masterslave_cluster simgrid)
 
index a5e71ea..a7ab122 100644 (file)
@@ -18,7 +18,8 @@ static int surf_parse_bypass_platform(void)
 {
   static int AX_ptr = 0;
   static int surfxml_bufferstack_size = 2048;
-
+  static int surfxml_buffer_stack_stack_ptr = 0;
+  static int surfxml_buffer_stack_stack[1024];
   /* allocating memory for the buffer, I think 2kB should be enough */
   surfxml_bufferstack = xbt_new0(char, surfxml_bufferstack_size);
 
index 534a29f..784334c 100644 (file)
@@ -20,19 +20,19 @@ if(HAVE_MC)
   add_executable(test/snapshot_comparison4 test/snapshot_comparison4.c)
   add_executable(test/snapshot_comparison5 test/snapshot_comparison5.c)
 
-  target_link_libraries(centralized simgrid )
-  target_link_libraries(bugged1     simgrid )
-  target_link_libraries(bugged2     simgrid )
-  target_link_libraries(bugged3     simgrid )
-  target_link_libraries(random_test     simgrid )
-  target_link_libraries(bugged1_liveness     simgrid )
-  target_link_libraries(bugged2_liveness     simgrid )
-  target_link_libraries(chord/chord_liveness     simgrid )
-  target_link_libraries(test/snapshot_comparison1     simgrid )
-  target_link_libraries(test/snapshot_comparison2     simgrid )
-  target_link_libraries(test/snapshot_comparison3     simgrid )
-  target_link_libraries(test/snapshot_comparison4     simgrid )
-  target_link_libraries(test/snapshot_comparison5     simgrid )
+  target_link_libraries(centralized simgrid )
+  target_link_libraries(bugged1     simgrid )
+  target_link_libraries(bugged2     simgrid )
+  target_link_libraries(bugged3     simgrid )
+  target_link_libraries(random_test     simgrid )
+  target_link_libraries(bugged1_liveness     simgrid )
+  target_link_libraries(bugged2_liveness     simgrid )
+  target_link_libraries(chord/chord_liveness     simgrid )
+  target_link_libraries(test/snapshot_comparison1     simgrid )
+  target_link_libraries(test/snapshot_comparison2     simgrid )
+  target_link_libraries(test/snapshot_comparison3     simgrid )
+  target_link_libraries(test/snapshot_comparison4     simgrid )
+  target_link_libraries(test/snapshot_comparison5     simgrid )
 
 endif()
 
index b646d82..7fc5066 100644 (file)
@@ -39,7 +39,6 @@ int coordinator(int argc, char *argv[])
       } else {               
         if(strcmp(req, "2") == 0){
           XBT_INFO("CS idle. Grant immediatly");
-          MC_compare();
           answer = MSG_task_create("grant", 0, 1000, NULL);
           MSG_task_send(answer, req);
           CS_used = 1;
@@ -62,7 +61,7 @@ int client(int argc, char *argv[])
 {
   int my_pid = MSG_process_get_PID(MSG_process_self());
 
-  char *my_mailbox = bprintf("%s", argv[1]);
+  char *my_mailbox = xbt_strdup(argv[1]);
   msg_task_t grant = NULL, release = NULL;
 
 
index ac0a2cb..01dc2d6 100644 (file)
@@ -13,11 +13,7 @@ $ ${bindir:=.}/bugged1_liveness --cfg=model-check:1 --cfg=contexts/factory:ucont
 > [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
 > [  0.000000] (3:client@Boivin) Ask the request
 > [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (3:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
-> [  0.000000] (3:client@Boivin) Ask the request
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (0:@) Next pair (depth = 33, 2 interleave) already reached !
+> [  0.000000] (0:@) Next pair (depth = 25, 2 interleave) already reached !
 > [  0.000000] (0:@) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 > [  0.000000] (0:@) |             ACCEPTANCE CYCLE            |
 > [  0.000000] (0:@) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
@@ -46,14 +42,6 @@ $ ${bindir:=.}/bugged1_liveness --cfg=model-check:1 --cfg=contexts/factory:ucont
 > [  0.000000] (0:@) [(3)client] Wait (comm=(verbose only) [(3)client -> (1)coordinator])
 > [  0.000000] (0:@) [(3)client] iRecv (dst=client, buff=(verbose only), size=(verbose only))
 > [  0.000000] (0:@) [(1)coordinator] Wait (comm=(verbose only) [(1)coordinator -> (3)client])
-> [  0.000000] (0:@) [(1)coordinator] iRecv (dst=coordinator, buff=(verbose only), size=(verbose only))
-> [  0.000000] (0:@) [(3)client] Wait (comm=(verbose only) [(1)coordinator -> (3)client])
-> [  0.000000] (0:@) [(3)client] iSend (src=client, buff=(verbose only), size=(verbose only))
-> [  0.000000] (0:@) [(1)coordinator] Wait (comm=(verbose only) [(3)client -> (1)coordinator])
-> [  0.000000] (0:@) [(1)coordinator] iRecv (dst=coordinator, buff=(verbose only), size=(verbose only))
-> [  0.000000] (0:@) [(3)client] Wait (comm=(verbose only) [(3)client -> (1)coordinator])
-> [  0.000000] (0:@) [(3)client] iSend (src=client, buff=(verbose only), size=(verbose only))
-> [  0.000000] (0:@) [(1)coordinator] Wait (comm=(verbose only) [(3)client -> (1)coordinator])
-> [  0.000000] (0:@) Expanded pairs = 34
-> [  0.000000] (0:@) Visited pairs = 32
-> [  0.000000] (0:@) Expanded / Visited = 0.941176
+> [  0.000000] (0:@) Expanded pairs = 26
+> [  0.000000] (0:@) Visited pairs = 24
+> [  0.000000] (0:@) Expanded / Visited = 0.923077
\ No newline at end of file
index fb7c2d8..7117b49 100644 (file)
@@ -56,7 +56,7 @@ int coordinator(int argc, char *argv[])
 int client(int argc, char *argv[])
 {
   int my_pid = MSG_process_get_PID(MSG_process_self());
-  char *my_mailbox = bprintf("%s", argv[1]);
+  char *my_mailbox = xbt_strdup(argv[1]);
   const char* kind;
  
   while(1){
index 32c6d21..24427a4 100644 (file)
@@ -10,7 +10,7 @@ $ ${bindir:=.}/chord_liveness --cfg=model-check:1 --cfg=contexts/factory:ucontex
 > [  0.000000] (3:node@Jacquelin) A transfer has occured
 > [  0.000000] (3:node@Jacquelin) The task was successfully received by node 1
 > [  0.000000] (1:node@Jean_Yves) Node 14 joined the ring
-> [  0.000000] (0:@) Next pair (depth = 12, 2 interleave) already reached !
+> [  0.000000] (0:@) Next pair (depth = 11, 2 interleave) already reached !
 > [  0.000000] (0:@) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 > [  0.000000] (0:@) |             ACCEPTANCE CYCLE            |
 > [  0.000000] (0:@) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
@@ -25,7 +25,6 @@ $ ${bindir:=.}/chord_liveness --cfg=model-check:1 --cfg=contexts/factory:ucontex
 > [  0.000000] (0:@) [(1)node] Wait (comm=(verbose only) [(3)node -> (1)node])
 > [  0.000000] (0:@) [(1)node] iRecv (dst=node, buff=(verbose only), size=(verbose only))
 > [  0.000000] (0:@) [(1)node] Test FALSE (comm=(verbose only))
-> [  0.000000] (0:@) [(1)node] Test FALSE (comm=(verbose only))
-> [  0.000000] (0:@) Expanded pairs = 16
-> [  0.000000] (0:@) Visited pairs = 11
-> [  0.000000] (0:@) Expanded / Visited = 0.687500
\ No newline at end of file
+> [  0.000000] (0:@) Expanded pairs = 14
+> [  0.000000] (0:@) Visited pairs = 10
+> [  0.000000] (0:@) Expanded / Visited = 0.714286
index 107f2c4..cd13832 100644 (file)
@@ -5,7 +5,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(migration migration.c)
 
 ### Add definitions for compile
-target_link_libraries(migration simgrid )
+target_link_libraries(migration simgrid )
 
 set(tesh_files
   ${tesh_files}
index 87df498..95bd58c 100644 (file)
@@ -6,6 +6,7 @@
 
 #include "msg/msg.h"            /* core library */
 #include "xbt/sysdep.h"         /* calloc */
+#include "xbt/synchro_core.h"
 
 /* Create a log channel to have nice outputs. */
 #include "xbt/log.h"
index a32eb65..14d1498 100644 (file)
@@ -6,7 +6,7 @@ if(HAVE_NS3)
   add_executable(ns3 "ns3.c")
 
   ### Add definitions for compile
-  target_link_libraries(ns3 simgrid )
+  target_link_libraries(ns3 simgrid )
 endif()
 
 set(tesh_files
index 863847c..788b2e8 100644 (file)
@@ -6,8 +6,8 @@ add_executable(parallel_task parallel_task.c)
 add_executable(test_ptask test_ptask.c)
 
 ### Add definitions for compile
-target_link_libraries(parallel_task simgrid )
-target_link_libraries(test_ptask simgrid )
+target_link_libraries(parallel_task simgrid )
+target_link_libraries(test_ptask simgrid )
 
 set(tesh_files
   ${tesh_files}
index 43649dd..2e48d86 100644 (file)
@@ -4,7 +4,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(msg_pmm     msg_pmm.c)
 
-target_link_libraries(msg_pmm simgrid )
+target_link_libraries(msg_pmm simgrid )
 
 set(tesh_files
   ${tesh_files}
index df3485e..8c977f3 100644 (file)
@@ -2,7 +2,7 @@
 
 p Testing the Parallel Matrix Multiplication 
 
-! timeout 60
+! timeout 120
 $ ./pmm/msg_pmm --log=msg_pmm.thres:verbose --log=no_loc ${srcdir:=.}/../platforms/cluster.xml ${srcdir:=.}/pmm/pmm_9_deploy.xml
 > [c-0.me:node:(1) 0.000000] [msg_pmm/VERBOSE] Create job 0
 > [c-0.me:node:(1) 0.000000] [msg_pmm/VERBOSE] Create job 1
index 408c33c..700796e 100644 (file)
@@ -5,7 +5,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(priority priority.c)
 
 ### Add definitions for compile
-target_link_libraries(priority simgrid m)
+target_link_libraries(priority simgrid)
 
 set(tesh_files
   ${tesh_files}
index 4bbf294..ac68ede 100644 (file)
@@ -5,7 +5,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(msg_prop msg_prop.c)
 
 ### Add definitions for compile
-target_link_libraries(msg_prop simgrid m )
+target_link_libraries(msg_prop simgrid)
 
 set(tesh_files
   ${tesh_files}
index cca1172..bc61bfd 100644 (file)
@@ -5,7 +5,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(sendrecv sendrecv.c)
 
 ### Add definitions for compile
-target_link_libraries(sendrecv simgrid )
+target_link_libraries(sendrecv simgrid )
 
 set(tesh_files
   ${tesh_files}
index 7f291d0..e7e84a8 100644 (file)
@@ -8,7 +8,7 @@ add_executable(sk_time "sk_time.c")
 if(WIN32)
   target_link_libraries(sk_time simgrid )
 else()
-  target_link_libraries(sk_time simgrid )
+  target_link_libraries(sk_time simgrid )
 endif()
 
 set(tesh_files
index 6a25df4..cb358b8 100644 (file)
@@ -5,7 +5,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(suspend suspend.c)
 
 ### Add definitions for compile
-target_link_libraries(suspend simgrid )
+target_link_libraries(suspend simgrid )
 
 set(tesh_files
   ${tesh_files}
index f3e07d4..c6d5f01 100644 (file)
@@ -7,8 +7,8 @@ add_executable(token_bypass token_bypass.c)
 
 ### Add definitions for compile
 if(NOT WIN32)
-  target_link_libraries(token_ring simgrid pthread )
-  target_link_libraries(token_bypass simgrid pthread )
+  target_link_libraries(token_ring simgrid pthread )
+  target_link_libraries(token_bypass simgrid pthread )
 else()
   target_link_libraries(token_ring simgrid)
   target_link_libraries(token_bypass simgrid)
index f177544..215a084 100644 (file)
@@ -14,14 +14,14 @@ if(HAVE_TRACING)
   add_executable(link_srcdst_user_variables     ${CMAKE_CURRENT_SOURCE_DIR}/link_srcdst_user_variables.c)
 
   ### Add definitions for compile
-  target_link_libraries(ms simgrid )
-  target_link_libraries(categories simgrid )
-  target_link_libraries(procmig simgrid )
-  target_link_libraries(simple simgrid )
-  target_link_libraries(trace_platform simgrid )
-  target_link_libraries(user_variables simgrid )
-  target_link_libraries(link_user_variables simgrid )
-  target_link_libraries(link_srcdst_user_variables simgrid )
+  target_link_libraries(ms simgrid )
+  target_link_libraries(categories simgrid )
+  target_link_libraries(procmig simgrid )
+  target_link_libraries(simple simgrid )
+  target_link_libraries(trace_platform simgrid )
+  target_link_libraries(user_variables simgrid )
+  target_link_libraries(link_user_variables simgrid )
+  target_link_libraries(link_srcdst_user_variables simgrid )
 
   ## Clean generated files
   get_directory_property(extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
index 075f153..8186cf3 100644 (file)
@@ -135,8 +135,8 @@ $ tail -n +3 simgrid.trace
 > 6 0 13 3 0 "4"
 > 6 0 14 3 0 "0"
 > 6 0 15 3 0 "5"
-> 4 6 0 1 3 0-HOST1-LINK3
-> 4 7 0 3 3 0-LINK3-LINK3
+> 4 6 0 3 3 0-LINK3-LINK3
+> 4 7 0 1 3 0-HOST1-LINK3
 > 4 8 0 3 1 0-LINK3-HOST1
 > 8 0 2 1 98095000.000000
 > 8 0 2 2 76296000.000000
@@ -163,40 +163,40 @@ $ tail -n +3 simgrid.trace
 > 8 0 5 14 0.000060
 > 8 0 4 15 27946250.000000
 > 8 0 5 15 0.000278
-> 15 0 6 0 topology 3 0
-> 16 0 6 0 topology 11 0
-> 15 0 7 0 topology 11 1
-> 16 0 7 0 topology 12 1
-> 15 0 7 0 topology 12 2
-> 16 0 7 0 topology 14 2
-> 15 0 7 0 topology 14 3
-> 16 0 7 0 topology 10 3
-> 15 0 7 0 topology 10 4
-> 16 0 7 0 topology 7 4
-> 15 0 7 0 topology 7 5
-> 16 0 7 0 topology 13 5
-> 15 0 8 0 topology 13 6
-> 16 0 8 0 topology 1 6
-> 15 0 7 0 topology 11 7
-> 16 0 7 0 topology 6 7
-> 15 0 7 0 topology 6 8
-> 16 0 7 0 topology 8 8
-> 15 0 8 0 topology 8 9
-> 16 0 8 0 topology 5 9
-> 15 0 7 0 topology 13 10
-> 16 0 7 0 topology 9 10
-> 15 0 8 0 topology 9 11
-> 16 0 8 0 topology 2 11
-> 15 0 7 0 topology 10 12
-> 16 0 7 0 topology 15 12
-> 15 0 8 0 topology 15 13
-> 16 0 8 0 topology 4 13
-> 15 0 7 0 topology 12 14
-> 16 0 7 0 topology 6 14
-> 15 0 6 0 topology 1 15
-> 16 0 6 0 topology 9 15
-> 15 0 7 0 topology 7 16
-> 16 0 7 0 topology 15 16
+> 15 0 6 0 topology 13 0
+> 16 0 6 0 topology 7 0
+> 15 0 6 0 topology 6 1
+> 16 0 6 0 topology 8 1
+> 15 0 7 0 topology 1 2
+> 16 0 7 0 topology 13 2
+> 15 0 7 0 topology 1 3
+> 16 0 7 0 topology 9 3
+> 15 0 8 0 topology 9 4
+> 16 0 8 0 topology 2 4
+> 15 0 6 0 topology 10 5
+> 16 0 6 0 topology 14 5
+> 15 0 6 0 topology 12 6
+> 16 0 6 0 topology 11 6
+> 15 0 6 0 topology 9 7
+> 16 0 6 0 topology 13 7
+> 15 0 8 0 topology 8 8
+> 16 0 8 0 topology 5 8
+> 15 0 6 0 topology 14 9
+> 16 0 6 0 topology 12 9
+> 15 0 8 0 topology 15 10
+> 16 0 8 0 topology 4 10
+> 15 0 6 0 topology 10 11
+> 16 0 6 0 topology 15 11
+> 15 0 6 0 topology 7 12
+> 16 0 6 0 topology 15 12
+> 15 0 8 0 topology 11 13
+> 16 0 8 0 topology 3 13
+> 15 0 6 0 topology 7 14
+> 16 0 6 0 topology 10 14
+> 15 0 6 0 topology 12 15
+> 16 0 6 0 topology 6 15
+> 15 0 6 0 topology 11 16
+> 16 0 6 0 topology 6 16
 > 7 0 1 3
 > 7 0 1 1
 > 7 0 3 14
@@ -5142,26 +5142,23 @@ $ tail -n +3 simgrid.trace
 > 6 0 4795 6 4390 "gw_AS_toulouse"
 > 6 0 4796 12 4795 "gw_toulouse"
 > 6 0 4797 3 4390 "link_gw_toulouse"
-> 4 20 1 2 3 L1-ROUTER2-LINK3
+> 4 20 1 3 2 L1-LINK3-ROUTER2
 > 4 21 1 3 3 L1-LINK3-LINK3
-> 4 22 1 3 2 L1-LINK3-ROUTER2
+> 4 22 1 2 3 L1-ROUTER2-LINK3
 > 4 23 6 7 9 L2-HOST7-LINK9
 > 4 24 6 9 9 L2-LINK9-LINK9
-> 4 25 6 9 7 L2-LINK9-HOST7
-> 4 26 6 9 12 L2-LINK9-ROUTER12
+> 4 25 6 12 9 L2-ROUTER12-LINK9
+> 4 26 1 3 12 L1-LINK3-ROUTER12
 > 4 27 1 12 3 L1-ROUTER12-LINK3
-> 4 28 1 3 12 L1-LINK3-ROUTER12
+> 4 28 13 16 16 L3-LINK16-LINK16
 > 4 29 13 14 16 L3-HOST14-LINK16
-> 4 30 13 16 16 L3-LINK16-LINK16
-> 4 31 13 16 14 L3-LINK16-HOST14
-> 4 32 13 16 19 L3-LINK16-ROUTER19
-> 4 33 13 19 16 L3-ROUTER19-LINK16
-> 4 34 6 19 9 L2-ROUTER19-LINK9
-> 4 35 6 9 19 L2-LINK9-ROUTER19
-> 4 36 1 3 19 L1-LINK3-ROUTER19
-> 4 37 1 19 3 L1-ROUTER19-LINK3
-> 4 38 0 2 3 0-ROUTER2-LINK3
-> 4 39 0 3 3 0-LINK3-LINK3
+> 4 30 13 19 16 L3-ROUTER19-LINK16
+> 4 31 6 9 19 L2-LINK9-ROUTER19
+> 4 32 6 19 9 L2-ROUTER19-LINK9
+> 4 33 1 19 3 L1-ROUTER19-LINK3
+> 4 34 1 3 19 L1-LINK3-ROUTER19
+> 4 35 0 3 3 0-LINK3-LINK3
+> 4 36 0 2 3 0-ROUTER2-LINK3
 > 8 0 4 12 1250000000.000000
 > 8 0 5 12 0.000100
 > 8 0 4 13 1250000000.000000
@@ -12974,12634 +12971,12634 @@ $ tail -n +3 simgrid.trace
 > 8 0 5 4794 0.000100
 > 8 0 4 4797 1250000000.000000
 > 8 0 5 4797 0.000100
-> 15 0 20 1 topology 9 0
-> 16 0 20 1 topology 18 0
-> 15 0 21 1 topology 18 1
-> 16 0 21 1 topology 15 1
+> 15 0 20 1 topology 17 0
+> 16 0 20 1 topology 8 0
+> 15 0 20 1 topology 18 1
+> 16 0 20 1 topology 9 1
 > 15 0 21 1 topology 15 2
-> 16 0 21 1 topology 12 2
-> 15 0 22 1 topology 12 3
-> 16 0 22 1 topology 2 3
-> 15 0 20 1 topology 9 4
-> 16 0 20 1 topology 20 4
-> 15 0 22 1 topology 20 5
-> 16 0 22 1 topology 10 5
-> 15 0 21 1 topology 18 6
+> 16 0 21 1 topology 18 2
+> 15 0 22 1 topology 3 3
+> 16 0 22 1 topology 15 3
+> 15 0 22 1 topology 2 4
+> 16 0 22 1 topology 12 4
+> 15 0 21 1 topology 14 5
+> 16 0 21 1 topology 15 5
+> 15 0 21 1 topology 15 6
 > 16 0 21 1 topology 17 6
-> 15 0 22 1 topology 17 7
-> 16 0 22 1 topology 8 7
-> 15 0 22 1 topology 15 8
-> 16 0 22 1 topology 3 8
-> 15 0 20 1 topology 9 9
-> 16 0 20 1 topology 19 9
-> 15 0 22 1 topology 19 10
-> 16 0 22 1 topology 11 10
-> 15 0 21 1 topology 18 11
-> 16 0 21 1 topology 16 11
-> 15 0 22 1 topology 16 12
-> 16 0 22 1 topology 7 12
-> 15 0 22 1 topology 18 13
-> 16 0 22 1 topology 6 13
-> 15 0 21 1 topology 15 14
-> 16 0 21 1 topology 14 14
-> 15 0 22 1 topology 14 15
-> 16 0 22 1 topology 5 15
-> 15 0 21 1 topology 15 16
-> 16 0 21 1 topology 13 16
-> 15 0 22 1 topology 13 17
-> 16 0 22 1 topology 4 17
-> 15 0 21 1 topology 18 18
-> 16 0 21 1 topology 20 18
-> 15 0 21 1 topology 15 19
-> 16 0 21 1 topology 17 19
-> 15 0 22 1 topology 12 20
-> 16 0 22 1 topology 3 20
+> 15 0 21 1 topology 12 7
+> 16 0 21 1 topology 14 7
+> 15 0 21 1 topology 16 8
+> 16 0 21 1 topology 18 8
+> 15 0 22 1 topology 6 9
+> 16 0 22 1 topology 16 9
+> 15 0 22 1 topology 9 10
+> 16 0 22 1 topology 19 10
+> 15 0 20 1 topology 15 11
+> 16 0 20 1 topology 6 11
+> 15 0 21 1 topology 12 12
+> 16 0 21 1 topology 13 12
+> 15 0 22 1 topology 3 13
+> 16 0 22 1 topology 14 13
+> 15 0 21 1 topology 16 14
+> 16 0 21 1 topology 17 14
+> 15 0 21 1 topology 12 15
+> 16 0 21 1 topology 15 15
+> 15 0 20 1 topology 14 16
+> 16 0 20 1 topology 5 16
+> 15 0 22 1 topology 3 17
+> 16 0 22 1 topology 13 17
+> 15 0 21 1 topology 15 18
+> 16 0 21 1 topology 16 18
+> 15 0 22 1 topology 9 19
+> 16 0 22 1 topology 20 19
+> 15 0 20 1 topology 20 20
+> 16 0 20 1 topology 10 20
 > 15 0 21 1 topology 18 21
 > 16 0 21 1 topology 19 21
-> 15 0 21 1 topology 15 22
-> 16 0 21 1 topology 16 22
-> 15 0 22 1 topology 15 23
-> 16 0 22 1 topology 6 23
-> 15 0 21 1 topology 12 24
-> 16 0 21 1 topology 14 24
-> 15 0 21 1 topology 12 25
-> 16 0 21 1 topology 13 25
-> 15 0 21 1 topology 20 26
-> 16 0 21 1 topology 19 26
-> 15 0 21 1 topology 17 27
-> 16 0 21 1 topology 16 27
-> 15 0 22 1 topology 17 28
-> 16 0 22 1 topology 6 28
-> 15 0 20 1 topology 3 29
-> 16 0 20 1 topology 14 29
-> 15 0 20 1 topology 3 30
-> 16 0 20 1 topology 13 30
-> 15 0 22 1 topology 16 31
-> 16 0 22 1 topology 6 31
-> 15 0 21 1 topology 14 32
-> 16 0 21 1 topology 13 32
-> 15 0 23 4635 topology 4648 33
-> 16 0 23 4635 topology 4649 33
-> 15 0 24 4635 topology 4649 34
+> 15 0 21 1 topology 13 22
+> 16 0 21 1 topology 14 22
+> 15 0 20 1 topology 19 23
+> 16 0 20 1 topology 11 23
+> 15 0 20 1 topology 12 24
+> 16 0 20 1 topology 3 24
+> 15 0 20 1 topology 16 25
+> 16 0 20 1 topology 7 25
+> 15 0 21 1 topology 13 26
+> 16 0 21 1 topology 15 26
+> 15 0 21 1 topology 18 27
+> 16 0 21 1 topology 20 27
+> 15 0 21 1 topology 20 28
+> 16 0 21 1 topology 19 28
+> 15 0 22 1 topology 6 29
+> 16 0 22 1 topology 18 29
+> 15 0 21 1 topology 17 30
+> 16 0 21 1 topology 18 30
+> 15 0 20 1 topology 13 31
+> 16 0 20 1 topology 4 31
+> 15 0 22 1 topology 6 32
+> 16 0 22 1 topology 17 32
+> 15 0 23 4635 topology 4669 33
+> 16 0 23 4635 topology 4670 33
+> 15 0 24 4635 topology 4680 34
 > 16 0 24 4635 topology 4793 34
-> 15 0 24 4635 topology 4793 35
-> 16 0 24 4635 topology 4662 35
-> 15 0 25 4635 topology 4662 36
-> 16 0 25 4635 topology 4660 36
-> 15 0 24 4635 topology 4793 37
-> 16 0 24 4635 topology 4665 37
-> 15 0 25 4635 topology 4665 38
-> 16 0 25 4635 topology 4663 38
-> 15 0 24 4635 topology 4793 39
-> 16 0 24 4635 topology 4725 39
-> 15 0 25 4635 topology 4725 40
-> 16 0 25 4635 topology 4723 40
-> 15 0 24 4635 topology 4793 41
-> 16 0 24 4635 topology 4701 41
-> 15 0 25 4635 topology 4701 42
-> 16 0 25 4635 topology 4699 42
-> 15 0 24 4635 topology 4793 43
-> 16 0 24 4635 topology 4677 43
-> 15 0 25 4635 topology 4677 44
-> 16 0 25 4635 topology 4675 44
-> 15 0 24 4635 topology 4793 45
-> 16 0 24 4635 topology 4785 45
-> 15 0 25 4635 topology 4785 46
-> 16 0 25 4635 topology 4783 46
-> 15 0 24 4635 topology 4793 47
-> 16 0 24 4635 topology 4761 47
-> 15 0 25 4635 topology 4761 48
-> 16 0 25 4635 topology 4759 48
-> 15 0 24 4635 topology 4793 49
-> 16 0 24 4635 topology 4737 49
-> 15 0 25 4635 topology 4737 50
-> 16 0 25 4635 topology 4735 50
-> 15 0 24 4635 topology 4793 51
-> 16 0 24 4635 topology 4713 51
-> 15 0 25 4635 topology 4713 52
-> 16 0 25 4635 topology 4711 52
-> 15 0 24 4635 topology 4793 53
-> 16 0 24 4635 topology 4689 53
-> 15 0 25 4635 topology 4689 54
-> 16 0 25 4635 topology 4687 54
-> 15 0 24 4635 topology 4793 55
-> 16 0 24 4635 topology 4773 55
-> 15 0 25 4635 topology 4773 56
-> 16 0 25 4635 topology 4771 56
-> 15 0 24 4635 topology 4793 57
-> 16 0 24 4635 topology 4749 57
-> 15 0 25 4635 topology 4749 58
-> 16 0 25 4635 topology 4747 58
-> 15 0 24 4635 topology 4793 59
-> 16 0 24 4635 topology 4641 59
-> 15 0 25 4635 topology 4641 60
-> 16 0 25 4635 topology 4639 60
-> 15 0 24 4635 topology 4793 61
-> 16 0 24 4635 topology 4653 61
-> 15 0 25 4635 topology 4653 62
-> 16 0 25 4635 topology 4651 62
-> 15 0 26 4635 topology 4793 63
-> 16 0 26 4635 topology 4792 63
-> 15 0 24 4635 topology 4793 64
-> 16 0 24 4635 topology 4668 64
-> 15 0 25 4635 topology 4668 65
-> 16 0 25 4635 topology 4666 65
-> 15 0 24 4635 topology 4793 66
-> 16 0 24 4635 topology 4728 66
-> 15 0 25 4635 topology 4728 67
-> 16 0 25 4635 topology 4726 67
-> 15 0 24 4635 topology 4793 68
-> 16 0 24 4635 topology 4704 68
-> 15 0 25 4635 topology 4704 69
-> 16 0 25 4635 topology 4702 69
-> 15 0 24 4635 topology 4793 70
-> 16 0 24 4635 topology 4680 70
-> 15 0 25 4635 topology 4680 71
-> 16 0 25 4635 topology 4678 71
-> 15 0 24 4635 topology 4793 72
-> 16 0 24 4635 topology 4788 72
-> 15 0 25 4635 topology 4788 73
-> 16 0 25 4635 topology 4786 73
-> 15 0 24 4635 topology 4793 74
-> 16 0 24 4635 topology 4764 74
-> 15 0 25 4635 topology 4764 75
-> 16 0 25 4635 topology 4762 75
-> 15 0 24 4635 topology 4793 76
-> 16 0 24 4635 topology 4740 76
-> 15 0 25 4635 topology 4740 77
-> 16 0 25 4635 topology 4738 77
-> 15 0 24 4635 topology 4793 78
-> 16 0 24 4635 topology 4716 78
-> 15 0 25 4635 topology 4716 79
-> 16 0 25 4635 topology 4714 79
-> 15 0 24 4635 topology 4793 80
-> 16 0 24 4635 topology 4692 80
-> 15 0 25 4635 topology 4692 81
-> 16 0 25 4635 topology 4690 81
-> 15 0 24 4635 topology 4793 82
-> 16 0 24 4635 topology 4776 82
-> 15 0 25 4635 topology 4776 83
-> 16 0 25 4635 topology 4774 83
-> 15 0 24 4635 topology 4793 84
-> 16 0 24 4635 topology 4752 84
-> 15 0 25 4635 topology 4752 85
-> 16 0 25 4635 topology 4750 85
-> 15 0 24 4635 topology 4793 86
-> 16 0 24 4635 topology 4644 86
-> 15 0 25 4635 topology 4644 87
-> 16 0 25 4635 topology 4642 87
-> 15 0 24 4635 topology 4793 88
-> 16 0 24 4635 topology 4656 88
-> 15 0 25 4635 topology 4656 89
-> 16 0 25 4635 topology 4654 89
-> 15 0 24 4635 topology 4793 90
-> 16 0 24 4635 topology 4695 90
-> 15 0 25 4635 topology 4695 91
-> 16 0 25 4635 topology 4693 91
-> 15 0 24 4635 topology 4793 92
-> 16 0 24 4635 topology 4671 92
-> 15 0 25 4635 topology 4671 93
-> 16 0 25 4635 topology 4669 93
-> 15 0 24 4635 topology 4793 94
-> 16 0 24 4635 topology 4755 94
-> 15 0 25 4635 topology 4755 95
-> 16 0 25 4635 topology 4753 95
-> 15 0 24 4635 topology 4793 96
-> 16 0 24 4635 topology 4731 96
-> 15 0 25 4635 topology 4731 97
-> 16 0 25 4635 topology 4729 97
-> 15 0 24 4635 topology 4793 98
-> 16 0 24 4635 topology 4707 98
-> 15 0 25 4635 topology 4707 99
-> 16 0 25 4635 topology 4705 99
-> 15 0 24 4635 topology 4793 100
-> 16 0 24 4635 topology 4683 100
-> 15 0 25 4635 topology 4683 101
-> 16 0 25 4635 topology 4681 101
-> 15 0 24 4635 topology 4793 102
-> 16 0 24 4635 topology 4791 102
-> 15 0 25 4635 topology 4791 103
-> 16 0 25 4635 topology 4789 103
-> 15 0 24 4635 topology 4793 104
-> 16 0 24 4635 topology 4767 104
-> 15 0 25 4635 topology 4767 105
-> 16 0 25 4635 topology 4765 105
-> 15 0 24 4635 topology 4793 106
-> 16 0 24 4635 topology 4743 106
-> 15 0 25 4635 topology 4743 107
-> 16 0 25 4635 topology 4741 107
-> 15 0 24 4635 topology 4793 108
-> 16 0 24 4635 topology 4719 108
-> 15 0 25 4635 topology 4719 109
-> 16 0 25 4635 topology 4717 109
-> 15 0 24 4635 topology 4793 110
-> 16 0 24 4635 topology 4779 110
-> 15 0 25 4635 topology 4779 111
-> 16 0 25 4635 topology 4777 111
-> 15 0 24 4635 topology 4793 112
-> 16 0 24 4635 topology 4647 112
-> 15 0 25 4635 topology 4647 113
-> 16 0 25 4635 topology 4645 113
-> 15 0 24 4635 topology 4793 114
-> 16 0 24 4635 topology 4659 114
-> 15 0 25 4635 topology 4659 115
-> 16 0 25 4635 topology 4657 115
-> 15 0 24 4635 topology 4793 116
-> 16 0 24 4635 topology 4698 116
-> 15 0 25 4635 topology 4698 117
-> 16 0 25 4635 topology 4696 117
-> 15 0 24 4635 topology 4793 118
-> 16 0 24 4635 topology 4674 118
-> 15 0 25 4635 topology 4674 119
-> 16 0 25 4635 topology 4672 119
-> 15 0 24 4635 topology 4793 120
-> 16 0 24 4635 topology 4758 120
-> 15 0 25 4635 topology 4758 121
-> 16 0 25 4635 topology 4756 121
-> 15 0 24 4635 topology 4793 122
-> 16 0 24 4635 topology 4734 122
-> 15 0 25 4635 topology 4734 123
-> 16 0 25 4635 topology 4732 123
-> 15 0 24 4635 topology 4793 124
-> 16 0 24 4635 topology 4710 124
-> 15 0 25 4635 topology 4710 125
-> 16 0 25 4635 topology 4708 125
-> 15 0 24 4635 topology 4793 126
-> 16 0 24 4635 topology 4686 126
-> 15 0 25 4635 topology 4686 127
-> 16 0 25 4635 topology 4684 127
-> 15 0 24 4635 topology 4793 128
-> 16 0 24 4635 topology 4770 128
-> 15 0 25 4635 topology 4770 129
-> 16 0 25 4635 topology 4768 129
-> 15 0 24 4635 topology 4793 130
-> 16 0 24 4635 topology 4746 130
-> 15 0 25 4635 topology 4746 131
-> 16 0 25 4635 topology 4744 131
-> 15 0 24 4635 topology 4793 132
-> 16 0 24 4635 topology 4722 132
-> 15 0 25 4635 topology 4722 133
-> 16 0 25 4635 topology 4720 133
-> 15 0 24 4635 topology 4793 134
-> 16 0 24 4635 topology 4782 134
-> 15 0 25 4635 topology 4782 135
-> 16 0 25 4635 topology 4780 135
-> 15 0 24 4635 topology 4793 136
-> 16 0 24 4635 topology 4638 136
-> 15 0 25 4635 topology 4638 137
-> 16 0 25 4635 topology 4636 137
-> 15 0 23 4635 topology 4660 138
-> 16 0 23 4635 topology 4661 138
-> 15 0 24 4635 topology 4661 139
-> 16 0 24 4635 topology 4793 139
-> 15 0 24 4635 topology 4793 140
-> 16 0 24 4635 topology 4650 140
-> 15 0 25 4635 topology 4650 141
-> 16 0 25 4635 topology 4648 141
-> 15 0 23 4635 topology 4663 142
-> 16 0 23 4635 topology 4664 142
-> 15 0 24 4635 topology 4664 143
+> 15 0 24 4635 topology 4764 35
+> 16 0 24 4635 topology 4793 35
+> 15 0 23 4635 topology 4672 36
+> 16 0 23 4635 topology 4673 36
+> 15 0 24 4635 topology 4716 37
+> 16 0 24 4635 topology 4793 37
+> 15 0 23 4635 topology 4675 38
+> 16 0 23 4635 topology 4676 38
+> 15 0 23 4635 topology 4783 39
+> 16 0 23 4635 topology 4784 39
+> 15 0 23 4635 topology 4651 40
+> 16 0 23 4635 topology 4652 40
+> 15 0 23 4635 topology 4678 41
+> 16 0 23 4635 topology 4679 41
+> 15 0 24 4635 topology 4752 42
+> 16 0 24 4635 topology 4793 42
+> 15 0 23 4635 topology 4786 43
+> 16 0 23 4635 topology 4787 43
+> 15 0 24 4635 topology 4664 44
+> 16 0 24 4635 topology 4793 44
+> 15 0 23 4635 topology 4681 45
+> 16 0 23 4635 topology 4682 45
+> 15 0 23 4635 topology 4789 46
+> 16 0 23 4635 topology 4790 46
+> 15 0 23 4635 topology 4684 47
+> 16 0 23 4635 topology 4685 47
+> 15 0 24 4635 topology 4724 48
+> 16 0 24 4635 topology 4793 48
+> 15 0 23 4635 topology 4687 49
+> 16 0 23 4635 topology 4688 49
+> 15 0 24 4635 topology 4784 50
+> 16 0 24 4635 topology 4793 50
+> 15 0 24 4635 topology 4706 51
+> 16 0 24 4635 topology 4793 51
+> 15 0 24 4635 topology 4647 52
+> 16 0 24 4635 topology 4793 52
+> 15 0 23 4635 topology 4690 53
+> 16 0 23 4635 topology 4691 53
+> 15 0 23 4635 topology 4663 54
+> 16 0 23 4635 topology 4665 54
+> 15 0 24 4635 topology 4766 55
+> 16 0 24 4635 topology 4793 55
+> 15 0 24 4635 topology 4688 56
+> 16 0 24 4635 topology 4793 56
+> 15 0 24 4635 topology 4748 57
+> 16 0 24 4635 topology 4793 57
+> 15 0 23 4635 topology 4723 58
+> 16 0 23 4635 topology 4725 58
+> 15 0 23 4635 topology 4699 59
+> 16 0 23 4635 topology 4701 59
+> 15 0 23 4635 topology 4675 60
+> 16 0 23 4635 topology 4677 60
+> 15 0 23 4635 topology 4783 61
+> 16 0 23 4635 topology 4785 61
+> 15 0 23 4635 topology 4759 62
+> 16 0 23 4635 topology 4761 62
+> 15 0 24 4635 topology 4643 63
+> 16 0 24 4635 topology 4793 63
+> 15 0 23 4635 topology 4654 64
+> 16 0 23 4635 topology 4656 64
+> 15 0 23 4635 topology 4735 65
+> 16 0 23 4635 topology 4737 65
+> 15 0 24 4635 topology 4671 66
+> 16 0 24 4635 topology 4793 66
+> 15 0 23 4635 topology 4711 67
+> 16 0 23 4635 topology 4713 67
+> 15 0 24 4635 topology 4755 68
+> 16 0 24 4635 topology 4793 68
+> 15 0 23 4635 topology 4687 69
+> 16 0 23 4635 topology 4689 69
+> 15 0 24 4635 topology 4707 70
+> 16 0 24 4635 topology 4793 70
+> 15 0 23 4635 topology 4771 71
+> 16 0 23 4635 topology 4773 71
+> 15 0 24 4635 topology 4791 72
+> 16 0 24 4635 topology 4793 72
+> 15 0 24 4635 topology 4743 73
+> 16 0 24 4635 topology 4793 73
+> 15 0 23 4635 topology 4747 74
+> 16 0 23 4635 topology 4749 74
+> 15 0 23 4635 topology 4648 75
+> 16 0 23 4635 topology 4649 75
+> 15 0 24 4635 topology 4779 76
+> 16 0 24 4635 topology 4793 76
+> 15 0 24 4635 topology 4638 77
+> 16 0 24 4635 topology 4793 77
+> 15 0 24 4635 topology 4673 78
+> 16 0 24 4635 topology 4793 78
+> 15 0 24 4635 topology 4733 79
+> 16 0 24 4635 topology 4793 79
+> 15 0 24 4635 topology 4715 80
+> 16 0 24 4635 topology 4793 80
+> 15 0 24 4635 topology 4775 81
+> 16 0 24 4635 topology 4793 81
+> 15 0 24 4635 topology 4662 82
+> 16 0 24 4635 topology 4793 82
+> 15 0 24 4635 topology 4652 83
+> 16 0 24 4635 topology 4793 83
+> 15 0 23 4635 topology 4657 84
+> 16 0 23 4635 topology 4659 84
+> 15 0 24 4635 topology 4698 85
+> 16 0 24 4635 topology 4793 85
+> 15 0 23 4635 topology 4693 86
+> 16 0 23 4635 topology 4694 86
+> 15 0 23 4635 topology 4696 87
+> 16 0 23 4635 topology 4697 87
+> 15 0 24 4635 topology 4734 88
+> 16 0 24 4635 topology 4793 88
+> 15 0 23 4635 topology 4645 89
+> 16 0 23 4635 topology 4646 89
+> 15 0 24 4635 topology 4686 90
+> 16 0 24 4635 topology 4793 90
+> 15 0 23 4635 topology 4699 91
+> 16 0 23 4635 topology 4700 91
+> 15 0 24 4635 topology 4770 92
+> 16 0 24 4635 topology 4793 92
+> 15 0 23 4635 topology 4702 93
+> 16 0 23 4635 topology 4703 93
+> 15 0 24 4635 topology 4722 94
+> 16 0 24 4635 topology 4793 94
+> 15 0 23 4635 topology 4705 95
+> 16 0 23 4635 topology 4706 95
+> 15 0 23 4635 topology 4708 96
+> 16 0 23 4635 topology 4709 96
+> 15 0 23 4635 topology 4711 97
+> 16 0 23 4635 topology 4712 97
+> 15 0 24 4635 topology 4700 98
+> 16 0 24 4635 topology 4793 98
+> 15 0 23 4635 topology 4714 99
+> 16 0 23 4635 topology 4715 99
+> 15 0 24 4635 topology 4760 100
+> 16 0 24 4635 topology 4793 100
+> 15 0 24 4635 topology 4682 101
+> 16 0 24 4635 topology 4793 101
+> 15 0 23 4635 topology 4717 102
+> 16 0 23 4635 topology 4718 102
+> 15 0 23 4635 topology 4636 103
+> 16 0 23 4635 topology 4638 103
+> 15 0 24 4635 topology 4653 104
+> 16 0 24 4635 topology 4793 104
+> 15 0 23 4635 topology 4720 105
+> 16 0 23 4635 topology 4721 105
+> 15 0 24 4635 topology 4742 106
+> 16 0 24 4635 topology 4793 106
+> 15 0 23 4635 topology 4666 107
+> 16 0 23 4635 topology 4668 107
+> 15 0 23 4635 topology 4726 108
+> 16 0 23 4635 topology 4728 108
+> 15 0 23 4635 topology 4702 109
+> 16 0 23 4635 topology 4704 109
+> 15 0 24 4635 topology 4637 110
+> 16 0 24 4635 topology 4793 110
+> 15 0 23 4635 topology 4678 111
+> 16 0 23 4635 topology 4680 111
+> 15 0 23 4635 topology 4786 112
+> 16 0 23 4635 topology 4788 112
+> 15 0 23 4635 topology 4762 113
+> 16 0 23 4635 topology 4764 113
+> 15 0 24 4635 topology 4725 114
+> 16 0 24 4635 topology 4793 114
+> 15 0 23 4635 topology 4738 115
+> 16 0 23 4635 topology 4740 115
+> 15 0 23 4635 topology 4660 116
+> 16 0 23 4635 topology 4662 116
+> 15 0 24 4635 topology 4677 117
+> 16 0 24 4635 topology 4793 117
+> 15 0 23 4635 topology 4714 118
+> 16 0 23 4635 topology 4716 118
+> 15 0 23 4635 topology 4642 119
+> 16 0 23 4635 topology 4643 119
+> 15 0 24 4635 topology 4661 120
+> 16 0 24 4635 topology 4793 120
+> 15 0 24 4635 topology 4761 121
+> 16 0 24 4635 topology 4793 121
+> 15 0 23 4635 topology 4690 122
+> 16 0 23 4635 topology 4692 122
+> 15 0 24 4635 topology 4713 123
+> 16 0 24 4635 topology 4793 123
+> 15 0 23 4635 topology 4774 124
+> 16 0 23 4635 topology 4776 124
+> 15 0 24 4635 topology 4749 125
+> 16 0 24 4635 topology 4793 125
+> 15 0 23 4635 topology 4750 126
+> 16 0 23 4635 topology 4752 126
+> 15 0 24 4635 topology 4667 127
+> 16 0 24 4635 topology 4793 127
+> 15 0 24 4635 topology 4727 128
+> 16 0 24 4635 topology 4793 128
+> 15 0 24 4635 topology 4644 129
+> 16 0 24 4635 topology 4793 129
+> 15 0 24 4635 topology 4787 130
+> 16 0 24 4635 topology 4793 130
+> 15 0 24 4635 topology 4709 131
+> 16 0 24 4635 topology 4793 131
+> 15 0 24 4635 topology 4769 132
+> 16 0 24 4635 topology 4793 132
+> 15 0 23 4635 topology 4639 133
+> 16 0 23 4635 topology 4641 133
+> 15 0 24 4635 topology 4691 134
+> 16 0 24 4635 topology 4793 134
+> 15 0 24 4635 topology 4751 135
+> 16 0 24 4635 topology 4793 135
+> 15 0 24 4635 topology 4646 136
+> 16 0 24 4635 topology 4793 136
+> 15 0 24 4635 topology 4668 137
+> 16 0 24 4635 topology 4793 137
+> 15 0 25 4635 topology 4792 138
+> 16 0 25 4635 topology 4793 138
+> 15 0 23 4635 topology 4639 139
+> 16 0 23 4635 topology 4640 139
+> 15 0 24 4635 topology 4704 140
+> 16 0 24 4635 topology 4793 140
+> 15 0 23 4635 topology 4723 141
+> 16 0 23 4635 topology 4724 141
+> 15 0 24 4635 topology 4788 142
+> 16 0 24 4635 topology 4793 142
+> 15 0 24 4635 topology 4740 143
 > 16 0 24 4635 topology 4793 143
-> 15 0 23 4635 topology 4723 144
-> 16 0 23 4635 topology 4724 144
-> 15 0 24 4635 topology 4724 145
-> 16 0 24 4635 topology 4793 145
-> 15 0 23 4635 topology 4699 146
-> 16 0 23 4635 topology 4700 146
-> 15 0 24 4635 topology 4700 147
+> 15 0 23 4635 topology 4726 144
+> 16 0 23 4635 topology 4727 144
+> 15 0 23 4635 topology 4729 145
+> 16 0 23 4635 topology 4730 145
+> 15 0 24 4635 topology 4692 146
+> 16 0 24 4635 topology 4793 146
+> 15 0 24 4635 topology 4776 147
 > 16 0 24 4635 topology 4793 147
-> 15 0 23 4635 topology 4675 148
-> 16 0 23 4635 topology 4676 148
-> 15 0 24 4635 topology 4676 149
-> 16 0 24 4635 topology 4793 149
-> 15 0 23 4635 topology 4783 150
-> 16 0 23 4635 topology 4784 150
-> 15 0 24 4635 topology 4784 151
-> 16 0 24 4635 topology 4793 151
-> 15 0 23 4635 topology 4759 152
-> 16 0 23 4635 topology 4760 152
-> 15 0 24 4635 topology 4760 153
-> 16 0 24 4635 topology 4793 153
-> 15 0 23 4635 topology 4735 154
-> 16 0 23 4635 topology 4736 154
-> 15 0 24 4635 topology 4736 155
-> 16 0 24 4635 topology 4793 155
-> 15 0 23 4635 topology 4711 156
-> 16 0 23 4635 topology 4712 156
-> 15 0 24 4635 topology 4712 157
-> 16 0 24 4635 topology 4793 157
-> 15 0 23 4635 topology 4687 158
-> 16 0 23 4635 topology 4688 158
-> 15 0 24 4635 topology 4688 159
-> 16 0 24 4635 topology 4793 159
-> 15 0 23 4635 topology 4771 160
-> 16 0 23 4635 topology 4772 160
-> 15 0 24 4635 topology 4772 161
+> 15 0 23 4635 topology 4732 148
+> 16 0 23 4635 topology 4733 148
+> 15 0 23 4635 topology 4735 149
+> 16 0 23 4635 topology 4736 149
+> 15 0 24 4635 topology 4694 150
+> 16 0 24 4635 topology 4793 150
+> 15 0 23 4635 topology 4738 151
+> 16 0 23 4635 topology 4739 151
+> 15 0 24 4635 topology 4754 152
+> 16 0 24 4635 topology 4793 152
+> 15 0 23 4635 topology 4741 153
+> 16 0 23 4635 topology 4742 153
+> 15 0 24 4635 topology 4676 154
+> 16 0 24 4635 topology 4793 154
+> 15 0 23 4635 topology 4744 155
+> 16 0 23 4635 topology 4745 155
+> 15 0 24 4635 topology 4736 156
+> 16 0 24 4635 topology 4793 156
+> 15 0 23 4635 topology 4747 157
+> 16 0 23 4635 topology 4748 157
+> 15 0 24 4635 topology 4718 158
+> 16 0 24 4635 topology 4793 158
+> 15 0 23 4635 topology 4693 159
+> 16 0 23 4635 topology 4695 159
+> 15 0 23 4635 topology 4750 160
+> 16 0 23 4635 topology 4751 160
+> 15 0 24 4635 topology 4659 161
 > 16 0 24 4635 topology 4793 161
-> 15 0 23 4635 topology 4747 162
-> 16 0 23 4635 topology 4748 162
-> 15 0 24 4635 topology 4748 163
-> 16 0 24 4635 topology 4793 163
-> 15 0 23 4635 topology 4639 164
-> 16 0 23 4635 topology 4640 164
-> 15 0 24 4635 topology 4640 165
-> 16 0 24 4635 topology 4793 165
-> 15 0 23 4635 topology 4651 166
-> 16 0 23 4635 topology 4652 166
-> 15 0 24 4635 topology 4652 167
-> 16 0 24 4635 topology 4793 167
-> 15 0 23 4635 topology 4666 168
-> 16 0 23 4635 topology 4667 168
-> 15 0 24 4635 topology 4667 169
-> 16 0 24 4635 topology 4793 169
-> 15 0 23 4635 topology 4726 170
-> 16 0 23 4635 topology 4727 170
-> 15 0 24 4635 topology 4727 171
-> 16 0 24 4635 topology 4793 171
-> 15 0 23 4635 topology 4702 172
-> 16 0 23 4635 topology 4703 172
-> 15 0 24 4635 topology 4703 173
+> 15 0 24 4635 topology 4778 162
+> 16 0 24 4635 topology 4793 162
+> 15 0 23 4635 topology 4669 163
+> 16 0 23 4635 topology 4671 163
+> 15 0 23 4635 topology 4642 164
+> 16 0 23 4635 topology 4644 164
+> 15 0 23 4635 topology 4753 165
+> 16 0 23 4635 topology 4755 165
+> 15 0 23 4635 topology 4729 166
+> 16 0 23 4635 topology 4731 166
+> 15 0 23 4635 topology 4705 167
+> 16 0 23 4635 topology 4707 167
+> 15 0 23 4635 topology 4681 168
+> 16 0 23 4635 topology 4683 168
+> 15 0 23 4635 topology 4789 169
+> 16 0 23 4635 topology 4791 169
+> 15 0 24 4635 topology 4695 170
+> 16 0 24 4635 topology 4793 170
+> 15 0 23 4635 topology 4636 171
+> 16 0 23 4635 topology 4637 171
+> 15 0 23 4635 topology 4765 172
+> 16 0 23 4635 topology 4767 172
+> 15 0 24 4635 topology 4655 173
 > 16 0 24 4635 topology 4793 173
-> 15 0 23 4635 topology 4678 174
-> 16 0 23 4635 topology 4679 174
-> 15 0 24 4635 topology 4679 175
+> 15 0 23 4635 topology 4741 174
+> 16 0 23 4635 topology 4743 174
+> 15 0 24 4635 topology 4731 175
 > 16 0 24 4635 topology 4793 175
-> 15 0 23 4635 topology 4786 176
-> 16 0 23 4635 topology 4787 176
-> 15 0 24 4635 topology 4787 177
+> 15 0 23 4635 topology 4717 176
+> 16 0 23 4635 topology 4719 176
+> 15 0 24 4635 topology 4683 177
 > 16 0 24 4635 topology 4793 177
-> 15 0 23 4635 topology 4762 178
-> 16 0 23 4635 topology 4763 178
-> 15 0 24 4635 topology 4763 179
+> 15 0 24 4635 topology 4767 178
+> 16 0 24 4635 topology 4793 178
+> 15 0 24 4635 topology 4719 179
 > 16 0 24 4635 topology 4793 179
-> 15 0 23 4635 topology 4738 180
-> 16 0 23 4635 topology 4739 180
-> 15 0 24 4635 topology 4739 181
+> 15 0 23 4635 topology 4777 180
+> 16 0 23 4635 topology 4779 180
+> 15 0 24 4635 topology 4703 181
 > 16 0 24 4635 topology 4793 181
-> 15 0 23 4635 topology 4714 182
-> 16 0 23 4635 topology 4715 182
-> 15 0 24 4635 topology 4715 183
+> 15 0 23 4635 topology 4660 182
+> 16 0 23 4635 topology 4661 182
+> 15 0 24 4635 topology 4763 183
 > 16 0 24 4635 topology 4793 183
-> 15 0 23 4635 topology 4690 184
-> 16 0 23 4635 topology 4691 184
-> 15 0 24 4635 topology 4691 185
+> 15 0 24 4635 topology 4685 184
+> 16 0 24 4635 topology 4793 184
+> 15 0 24 4635 topology 4650 185
 > 16 0 24 4635 topology 4793 185
-> 15 0 23 4635 topology 4774 186
-> 16 0 23 4635 topology 4775 186
-> 15 0 24 4635 topology 4775 187
-> 16 0 24 4635 topology 4793 187
-> 15 0 23 4635 topology 4750 188
-> 16 0 23 4635 topology 4751 188
-> 15 0 24 4635 topology 4751 189
+> 15 0 24 4635 topology 4745 186
+> 16 0 24 4635 topology 4793 186
+> 15 0 23 4635 topology 4645 187
+> 16 0 23 4635 topology 4647 187
+> 15 0 24 4635 topology 4640 188
+> 16 0 24 4635 topology 4793 188
+> 15 0 24 4635 topology 4674 189
 > 16 0 24 4635 topology 4793 189
-> 15 0 23 4635 topology 4642 190
-> 16 0 23 4635 topology 4643 190
-> 15 0 24 4635 topology 4643 191
+> 15 0 24 4635 topology 4758 190
+> 16 0 24 4635 topology 4793 190
+> 15 0 24 4635 topology 4710 191
 > 16 0 24 4635 topology 4793 191
-> 15 0 23 4635 topology 4654 192
-> 16 0 23 4635 topology 4655 192
-> 15 0 24 4635 topology 4655 193
-> 16 0 24 4635 topology 4793 193
-> 15 0 23 4635 topology 4693 194
-> 16 0 23 4635 topology 4694 194
-> 15 0 24 4635 topology 4694 195
-> 16 0 24 4635 topology 4793 195
-> 15 0 23 4635 topology 4669 196
-> 16 0 23 4635 topology 4670 196
-> 15 0 24 4635 topology 4670 197
-> 16 0 24 4635 topology 4793 197
-> 15 0 23 4635 topology 4753 198
-> 16 0 23 4635 topology 4754 198
-> 15 0 24 4635 topology 4754 199
+> 15 0 23 4635 topology 4753 192
+> 16 0 23 4635 topology 4754 192
+> 15 0 23 4635 topology 4756 193
+> 16 0 23 4635 topology 4757 193
+> 15 0 24 4635 topology 4746 194
+> 16 0 24 4635 topology 4793 194
+> 15 0 23 4635 topology 4759 195
+> 16 0 23 4635 topology 4760 195
+> 15 0 24 4635 topology 4782 196
+> 16 0 24 4635 topology 4793 196
+> 15 0 23 4635 topology 4762 197
+> 16 0 23 4635 topology 4763 197
+> 15 0 23 4635 topology 4765 198
+> 16 0 23 4635 topology 4766 198
+> 15 0 24 4635 topology 4670 199
 > 16 0 24 4635 topology 4793 199
-> 15 0 23 4635 topology 4729 200
-> 16 0 23 4635 topology 4730 200
-> 15 0 24 4635 topology 4730 201
-> 16 0 24 4635 topology 4793 201
-> 15 0 23 4635 topology 4705 202
-> 16 0 23 4635 topology 4706 202
-> 15 0 24 4635 topology 4706 203
+> 15 0 23 4635 topology 4657 200
+> 16 0 23 4635 topology 4658 200
+> 15 0 23 4635 topology 4768 201
+> 16 0 23 4635 topology 4769 201
+> 15 0 24 4635 topology 4730 202
+> 16 0 24 4635 topology 4793 202
+> 15 0 24 4635 topology 4641 203
 > 16 0 24 4635 topology 4793 203
-> 15 0 23 4635 topology 4681 204
-> 16 0 23 4635 topology 4682 204
-> 15 0 24 4635 topology 4682 205
+> 15 0 23 4635 topology 4771 204
+> 16 0 23 4635 topology 4772 204
+> 15 0 24 4635 topology 4790 205
 > 16 0 24 4635 topology 4793 205
-> 15 0 23 4635 topology 4789 206
-> 16 0 23 4635 topology 4790 206
-> 15 0 24 4635 topology 4790 207
-> 16 0 24 4635 topology 4793 207
-> 15 0 23 4635 topology 4765 208
-> 16 0 23 4635 topology 4766 208
-> 15 0 24 4635 topology 4766 209
-> 16 0 24 4635 topology 4793 209
-> 15 0 23 4635 topology 4741 210
-> 16 0 23 4635 topology 4742 210
-> 15 0 24 4635 topology 4742 211
-> 16 0 24 4635 topology 4793 211
-> 15 0 23 4635 topology 4717 212
-> 16 0 23 4635 topology 4718 212
-> 15 0 24 4635 topology 4718 213
-> 16 0 24 4635 topology 4793 213
-> 15 0 23 4635 topology 4777 214
-> 16 0 23 4635 topology 4778 214
-> 15 0 24 4635 topology 4778 215
-> 16 0 24 4635 topology 4793 215
-> 15 0 23 4635 topology 4645 216
-> 16 0 23 4635 topology 4646 216
-> 15 0 24 4635 topology 4646 217
+> 15 0 24 4635 topology 4712 206
+> 16 0 24 4635 topology 4793 206
+> 15 0 23 4635 topology 4774 207
+> 16 0 23 4635 topology 4775 207
+> 15 0 24 4635 topology 4772 208
+> 16 0 24 4635 topology 4793 208
+> 15 0 23 4635 topology 4777 209
+> 16 0 23 4635 topology 4778 209
+> 15 0 23 4635 topology 4696 210
+> 16 0 23 4635 topology 4698 210
+> 15 0 23 4635 topology 4780 211
+> 16 0 23 4635 topology 4781 211
+> 15 0 23 4635 topology 4672 212
+> 16 0 23 4635 topology 4674 212
+> 15 0 23 4635 topology 4756 213
+> 16 0 23 4635 topology 4758 213
+> 15 0 23 4635 topology 4648 214
+> 16 0 23 4635 topology 4650 214
+> 15 0 23 4635 topology 4732 215
+> 16 0 23 4635 topology 4734 215
+> 15 0 23 4635 topology 4708 216
+> 16 0 23 4635 topology 4710 216
+> 15 0 24 4635 topology 4665 217
 > 16 0 24 4635 topology 4793 217
-> 15 0 23 4635 topology 4657 218
-> 16 0 23 4635 topology 4658 218
-> 15 0 24 4635 topology 4658 219
-> 16 0 24 4635 topology 4793 219
-> 15 0 23 4635 topology 4696 220
-> 16 0 23 4635 topology 4697 220
-> 15 0 24 4635 topology 4697 221
-> 16 0 24 4635 topology 4793 221
-> 15 0 23 4635 topology 4672 222
-> 16 0 23 4635 topology 4673 222
-> 15 0 24 4635 topology 4673 223
-> 16 0 24 4635 topology 4793 223
-> 15 0 23 4635 topology 4756 224
-> 16 0 23 4635 topology 4757 224
-> 15 0 24 4635 topology 4757 225
-> 16 0 24 4635 topology 4793 225
-> 15 0 23 4635 topology 4732 226
-> 16 0 23 4635 topology 4733 226
-> 15 0 24 4635 topology 4733 227
+> 15 0 24 4635 topology 4649 218
+> 16 0 24 4635 topology 4793 218
+> 15 0 23 4635 topology 4684 219
+> 16 0 23 4635 topology 4686 219
+> 15 0 24 4635 topology 4701 220
+> 16 0 24 4635 topology 4793 220
+> 15 0 23 4635 topology 4768 221
+> 16 0 23 4635 topology 4770 221
+> 15 0 24 4635 topology 4785 222
+> 16 0 24 4635 topology 4793 222
+> 15 0 23 4635 topology 4744 223
+> 16 0 23 4635 topology 4746 223
+> 15 0 24 4635 topology 4737 224
+> 16 0 24 4635 topology 4793 224
+> 15 0 23 4635 topology 4720 225
+> 16 0 23 4635 topology 4722 225
+> 15 0 24 4635 topology 4689 226
+> 16 0 24 4635 topology 4793 226
+> 15 0 24 4635 topology 4773 227
 > 16 0 24 4635 topology 4793 227
-> 15 0 23 4635 topology 4708 228
-> 16 0 23 4635 topology 4709 228
-> 15 0 24 4635 topology 4709 229
-> 16 0 24 4635 topology 4793 229
-> 15 0 23 4635 topology 4684 230
-> 16 0 23 4635 topology 4685 230
-> 15 0 24 4635 topology 4685 231
+> 15 0 23 4635 topology 4780 228
+> 16 0 23 4635 topology 4782 228
+> 15 0 23 4635 topology 4654 229
+> 16 0 23 4635 topology 4655 229
+> 15 0 24 4635 topology 4697 230
+> 16 0 24 4635 topology 4793 230
+> 15 0 24 4635 topology 4757 231
 > 16 0 24 4635 topology 4793 231
-> 15 0 23 4635 topology 4768 232
-> 16 0 23 4635 topology 4769 232
-> 15 0 24 4635 topology 4769 233
+> 15 0 24 4635 topology 4679 232
+> 16 0 24 4635 topology 4793 232
+> 15 0 24 4635 topology 4739 233
 > 16 0 24 4635 topology 4793 233
-> 15 0 23 4635 topology 4744 234
-> 16 0 23 4635 topology 4745 234
-> 15 0 24 4635 topology 4745 235
+> 15 0 24 4635 topology 4656 234
+> 16 0 24 4635 topology 4793 234
+> 15 0 24 4635 topology 4721 235
 > 16 0 24 4635 topology 4793 235
-> 15 0 23 4635 topology 4720 236
-> 16 0 23 4635 topology 4721 236
-> 15 0 24 4635 topology 4721 237
-> 16 0 24 4635 topology 4793 237
-> 15 0 23 4635 topology 4780 238
-> 16 0 23 4635 topology 4781 238
-> 15 0 24 4635 topology 4781 239
+> 15 0 24 4635 topology 4781 236
+> 16 0 24 4635 topology 4793 236
+> 15 0 23 4635 topology 4651 237
+> 16 0 23 4635 topology 4653 237
+> 15 0 23 4635 topology 4663 238
+> 16 0 23 4635 topology 4664 238
+> 15 0 24 4635 topology 4728 239
 > 16 0 24 4635 topology 4793 239
-> 15 0 23 4635 topology 4636 240
-> 16 0 23 4635 topology 4637 240
-> 15 0 24 4635 topology 4637 241
+> 15 0 23 4635 topology 4666 240
+> 16 0 23 4635 topology 4667 240
+> 15 0 24 4635 topology 4658 241
 > 16 0 24 4635 topology 4793 241
-> 15 0 23 4391 topology 4422 242
-> 16 0 23 4391 topology 4423 242
-> 15 0 24 4391 topology 4423 243
-> 16 0 24 4391 topology 4633 243
-> 15 0 24 4391 topology 4633 244
-> 16 0 24 4391 topology 4460 244
-> 15 0 25 4391 topology 4460 245
-> 16 0 25 4391 topology 4458 245
-> 15 0 24 4391 topology 4633 246
-> 16 0 24 4391 topology 4544 246
-> 15 0 25 4391 topology 4544 247
-> 16 0 25 4391 topology 4542 247
-> 15 0 24 4391 topology 4633 248
-> 16 0 24 4391 topology 4496 248
-> 15 0 25 4391 topology 4496 249
-> 16 0 25 4391 topology 4494 249
-> 15 0 24 4391 topology 4633 250
-> 16 0 24 4391 topology 4580 250
-> 15 0 25 4391 topology 4580 251
-> 16 0 25 4391 topology 4578 251
-> 15 0 24 4391 topology 4633 252
-> 16 0 24 4391 topology 4448 252
-> 15 0 25 4391 topology 4448 253
-> 16 0 25 4391 topology 4446 253
-> 15 0 24 4391 topology 4633 254
-> 16 0 24 4391 topology 4532 254
-> 15 0 25 4391 topology 4532 255
-> 16 0 25 4391 topology 4530 255
-> 15 0 24 4391 topology 4633 256
-> 16 0 24 4391 topology 4616 256
-> 15 0 25 4391 topology 4616 257
-> 16 0 25 4391 topology 4614 257
-> 15 0 24 4391 topology 4633 258
-> 16 0 24 4391 topology 4568 258
-> 15 0 25 4391 topology 4568 259
-> 16 0 25 4391 topology 4566 259
-> 15 0 24 4391 topology 4633 260
-> 16 0 24 4391 topology 4415 260
-> 15 0 25 4391 topology 4415 261
-> 16 0 25 4391 topology 4413 261
-> 15 0 24 4391 topology 4633 262
-> 16 0 24 4391 topology 4451 262
-> 15 0 25 4391 topology 4451 263
-> 16 0 25 4391 topology 4449 263
-> 15 0 24 4391 topology 4633 264
-> 16 0 24 4391 topology 4487 264
-> 15 0 25 4391 topology 4487 265
-> 16 0 25 4391 topology 4485 265
-> 15 0 24 4391 topology 4633 266
-> 16 0 24 4391 topology 4571 266
-> 15 0 25 4391 topology 4571 267
-> 16 0 25 4391 topology 4569 267
-> 15 0 24 4391 topology 4633 268
-> 16 0 24 4391 topology 4439 268
-> 15 0 25 4391 topology 4439 269
-> 16 0 25 4391 topology 4437 269
-> 15 0 24 4391 topology 4633 270
-> 16 0 24 4391 topology 4523 270
-> 15 0 25 4391 topology 4523 271
-> 16 0 25 4391 topology 4521 271
-> 15 0 24 4391 topology 4633 272
-> 16 0 24 4391 topology 4607 272
-> 15 0 25 4391 topology 4607 273
-> 16 0 25 4391 topology 4605 273
-> 15 0 24 4391 topology 4633 274
-> 16 0 24 4391 topology 4475 274
-> 15 0 25 4391 topology 4475 275
-> 16 0 25 4391 topology 4473 275
-> 15 0 24 4391 topology 4633 276
-> 16 0 24 4391 topology 4559 276
-> 15 0 25 4391 topology 4559 277
-> 16 0 25 4391 topology 4557 277
-> 15 0 24 4391 topology 4633 278
-> 16 0 24 4391 topology 4595 278
-> 15 0 25 4391 topology 4595 279
-> 16 0 25 4391 topology 4593 279
-> 15 0 24 4391 topology 4633 280
-> 16 0 24 4391 topology 4406 280
-> 15 0 25 4391 topology 4406 281
-> 16 0 25 4391 topology 4404 281
-> 15 0 24 4391 topology 4633 282
-> 16 0 24 4391 topology 4430 282
-> 15 0 25 4391 topology 4430 283
-> 16 0 25 4391 topology 4428 283
-> 15 0 24 4391 topology 4633 284
-> 16 0 24 4391 topology 4514 284
-> 15 0 25 4391 topology 4514 285
-> 16 0 25 4391 topology 4512 285
-> 15 0 24 4391 topology 4633 286
-> 16 0 24 4391 topology 4466 286
-> 15 0 25 4391 topology 4466 287
-> 16 0 25 4391 topology 4464 287
-> 15 0 24 4391 topology 4633 288
-> 16 0 24 4391 topology 4550 288
-> 15 0 25 4391 topology 4550 289
-> 16 0 25 4391 topology 4548 289
-> 15 0 24 4391 topology 4633 290
-> 16 0 24 4391 topology 4502 290
-> 15 0 25 4391 topology 4502 291
-> 16 0 25 4391 topology 4500 291
-> 15 0 24 4391 topology 4633 292
-> 16 0 24 4391 topology 4586 292
-> 15 0 25 4391 topology 4586 293
-> 16 0 25 4391 topology 4584 293
-> 15 0 24 4391 topology 4633 294
-> 16 0 24 4391 topology 4538 294
-> 15 0 25 4391 topology 4538 295
-> 16 0 25 4391 topology 4536 295
-> 15 0 24 4391 topology 4633 296
-> 16 0 24 4391 topology 4622 296
-> 15 0 25 4391 topology 4622 297
-> 16 0 25 4391 topology 4620 297
-> 15 0 24 4391 topology 4633 298
-> 16 0 24 4391 topology 4397 298
-> 15 0 25 4391 topology 4397 299
-> 16 0 25 4391 topology 4395 299
-> 15 0 24 4391 topology 4633 300
-> 16 0 24 4391 topology 4421 300
-> 15 0 25 4391 topology 4421 301
-> 16 0 25 4391 topology 4419 301
-> 15 0 24 4391 topology 4633 302
-> 16 0 24 4391 topology 4457 302
-> 15 0 25 4391 topology 4457 303
-> 16 0 25 4391 topology 4455 303
-> 15 0 24 4391 topology 4633 304
-> 16 0 24 4391 topology 4541 304
-> 15 0 25 4391 topology 4541 305
-> 16 0 25 4391 topology 4539 305
-> 15 0 24 4391 topology 4633 306
-> 16 0 24 4391 topology 4493 306
-> 15 0 25 4391 topology 4493 307
-> 16 0 25 4391 topology 4491 307
-> 15 0 24 4391 topology 4633 308
-> 16 0 24 4391 topology 4577 308
-> 15 0 25 4391 topology 4577 309
-> 16 0 25 4391 topology 4575 309
-> 15 0 24 4391 topology 4633 310
-> 16 0 24 4391 topology 4445 310
-> 15 0 25 4391 topology 4445 311
-> 16 0 25 4391 topology 4443 311
-> 15 0 24 4391 topology 4633 312
-> 16 0 24 4391 topology 4529 312
-> 15 0 25 4391 topology 4529 313
-> 16 0 25 4391 topology 4527 313
-> 15 0 24 4391 topology 4633 314
-> 16 0 24 4391 topology 4613 314
-> 15 0 25 4391 topology 4613 315
-> 16 0 25 4391 topology 4611 315
-> 15 0 24 4391 topology 4633 316
-> 16 0 24 4391 topology 4565 316
-> 15 0 25 4391 topology 4565 317
-> 16 0 25 4391 topology 4563 317
-> 15 0 24 4391 topology 4633 318
-> 16 0 24 4391 topology 4412 318
-> 15 0 25 4391 topology 4412 319
-> 16 0 25 4391 topology 4410 319
-> 15 0 24 4391 topology 4633 320
-> 16 0 24 4391 topology 4484 320
-> 15 0 25 4391 topology 4484 321
-> 16 0 25 4391 topology 4482 321
-> 15 0 24 4391 topology 4633 322
-> 16 0 24 4391 topology 4436 322
-> 15 0 25 4391 topology 4436 323
-> 16 0 25 4391 topology 4434 323
-> 15 0 24 4391 topology 4633 324
-> 16 0 24 4391 topology 4520 324
-> 15 0 25 4391 topology 4520 325
-> 16 0 25 4391 topology 4518 325
-> 15 0 24 4391 topology 4633 326
-> 16 0 24 4391 topology 4604 326
-> 15 0 25 4391 topology 4604 327
-> 16 0 25 4391 topology 4602 327
-> 15 0 24 4391 topology 4633 328
-> 16 0 24 4391 topology 4472 328
-> 15 0 25 4391 topology 4472 329
-> 16 0 25 4391 topology 4470 329
-> 15 0 24 4391 topology 4633 330
-> 16 0 24 4391 topology 4556 330
-> 15 0 25 4391 topology 4556 331
-> 16 0 25 4391 topology 4554 331
-> 15 0 24 4391 topology 4633 332
-> 16 0 24 4391 topology 4508 332
-> 15 0 25 4391 topology 4508 333
-> 16 0 25 4391 topology 4506 333
-> 15 0 24 4391 topology 4633 334
-> 16 0 24 4391 topology 4592 334
-> 15 0 25 4391 topology 4592 335
-> 16 0 25 4391 topology 4590 335
-> 15 0 24 4391 topology 4633 336
-> 16 0 24 4391 topology 4628 336
-> 15 0 25 4391 topology 4628 337
-> 16 0 25 4391 topology 4626 337
-> 15 0 24 4391 topology 4633 338
-> 16 0 24 4391 topology 4403 338
-> 15 0 25 4391 topology 4403 339
-> 16 0 25 4391 topology 4401 339
-> 15 0 26 4391 topology 4633 340
-> 16 0 26 4391 topology 4632 340
-> 15 0 24 4391 topology 4633 341
-> 16 0 24 4391 topology 4427 341
-> 15 0 25 4391 topology 4427 342
-> 16 0 25 4391 topology 4425 342
-> 15 0 24 4391 topology 4633 343
-> 16 0 24 4391 topology 4511 343
-> 15 0 25 4391 topology 4511 344
-> 16 0 25 4391 topology 4509 344
-> 15 0 24 4391 topology 4633 345
-> 16 0 24 4391 topology 4463 345
-> 15 0 25 4391 topology 4463 346
-> 16 0 25 4391 topology 4461 346
-> 15 0 24 4391 topology 4633 347
-> 16 0 24 4391 topology 4547 347
-> 15 0 25 4391 topology 4547 348
-> 16 0 25 4391 topology 4545 348
-> 15 0 24 4391 topology 4633 349
-> 16 0 24 4391 topology 4631 349
-> 15 0 25 4391 topology 4631 350
-> 16 0 25 4391 topology 4629 350
-> 15 0 24 4391 topology 4633 351
-> 16 0 24 4391 topology 4499 351
-> 15 0 25 4391 topology 4499 352
-> 16 0 25 4391 topology 4497 352
-> 15 0 24 4391 topology 4633 353
-> 16 0 24 4391 topology 4583 353
-> 15 0 25 4391 topology 4583 354
-> 16 0 25 4391 topology 4581 354
-> 15 0 24 4391 topology 4633 355
-> 16 0 24 4391 topology 4535 355
-> 15 0 25 4391 topology 4535 356
-> 16 0 25 4391 topology 4533 356
-> 15 0 24 4391 topology 4633 357
-> 16 0 24 4391 topology 4619 357
-> 15 0 25 4391 topology 4619 358
-> 16 0 25 4391 topology 4617 358
-> 15 0 24 4391 topology 4633 359
-> 16 0 24 4391 topology 4394 359
-> 15 0 25 4391 topology 4394 360
-> 16 0 25 4391 topology 4392 360
-> 15 0 24 4391 topology 4633 361
-> 16 0 24 4391 topology 4418 361
-> 15 0 25 4391 topology 4418 362
-> 16 0 25 4391 topology 4416 362
-> 15 0 24 4391 topology 4633 363
-> 16 0 24 4391 topology 4454 363
-> 15 0 25 4391 topology 4454 364
-> 16 0 25 4391 topology 4452 364
-> 15 0 24 4391 topology 4633 365
-> 16 0 24 4391 topology 4490 365
-> 15 0 25 4391 topology 4490 366
-> 16 0 25 4391 topology 4488 366
-> 15 0 24 4391 topology 4633 367
-> 16 0 24 4391 topology 4574 367
-> 15 0 25 4391 topology 4574 368
-> 16 0 25 4391 topology 4572 368
-> 15 0 24 4391 topology 4633 369
-> 16 0 24 4391 topology 4442 369
-> 15 0 25 4391 topology 4442 370
-> 16 0 25 4391 topology 4440 370
-> 15 0 24 4391 topology 4633 371
-> 16 0 24 4391 topology 4526 371
-> 15 0 25 4391 topology 4526 372
-> 16 0 25 4391 topology 4524 372
-> 15 0 24 4391 topology 4633 373
-> 16 0 24 4391 topology 4610 373
-> 15 0 25 4391 topology 4610 374
-> 16 0 25 4391 topology 4608 374
-> 15 0 24 4391 topology 4633 375
-> 16 0 24 4391 topology 4478 375
-> 15 0 25 4391 topology 4478 376
-> 16 0 25 4391 topology 4476 376
-> 15 0 24 4391 topology 4633 377
-> 16 0 24 4391 topology 4562 377
-> 15 0 25 4391 topology 4562 378
-> 16 0 25 4391 topology 4560 378
-> 15 0 24 4391 topology 4633 379
-> 16 0 24 4391 topology 4598 379
-> 15 0 25 4391 topology 4598 380
-> 16 0 25 4391 topology 4596 380
-> 15 0 24 4391 topology 4633 381
-> 16 0 24 4391 topology 4409 381
-> 15 0 25 4391 topology 4409 382
-> 16 0 25 4391 topology 4407 382
-> 15 0 24 4391 topology 4633 383
-> 16 0 24 4391 topology 4481 383
-> 15 0 25 4391 topology 4481 384
-> 16 0 25 4391 topology 4479 384
-> 15 0 24 4391 topology 4633 385
-> 16 0 24 4391 topology 4433 385
-> 15 0 25 4391 topology 4433 386
-> 16 0 25 4391 topology 4431 386
-> 15 0 24 4391 topology 4633 387
-> 16 0 24 4391 topology 4517 387
-> 15 0 25 4391 topology 4517 388
-> 16 0 25 4391 topology 4515 388
-> 15 0 24 4391 topology 4633 389
-> 16 0 24 4391 topology 4601 389
-> 15 0 25 4391 topology 4601 390
-> 16 0 25 4391 topology 4599 390
-> 15 0 24 4391 topology 4633 391
-> 16 0 24 4391 topology 4469 391
-> 15 0 25 4391 topology 4469 392
-> 16 0 25 4391 topology 4467 392
-> 15 0 24 4391 topology 4633 393
-> 16 0 24 4391 topology 4553 393
-> 15 0 25 4391 topology 4553 394
-> 16 0 25 4391 topology 4551 394
-> 15 0 24 4391 topology 4633 395
-> 16 0 24 4391 topology 4505 395
-> 15 0 25 4391 topology 4505 396
-> 16 0 25 4391 topology 4503 396
-> 15 0 24 4391 topology 4633 397
-> 16 0 24 4391 topology 4589 397
-> 15 0 25 4391 topology 4589 398
-> 16 0 25 4391 topology 4587 398
-> 15 0 24 4391 topology 4633 399
-> 16 0 24 4391 topology 4625 399
-> 15 0 25 4391 topology 4625 400
-> 16 0 25 4391 topology 4623 400
-> 15 0 24 4391 topology 4633 401
-> 16 0 24 4391 topology 4400 401
-> 15 0 25 4391 topology 4400 402
-> 16 0 25 4391 topology 4398 402
-> 15 0 23 4391 topology 4458 403
-> 16 0 23 4391 topology 4459 403
-> 15 0 24 4391 topology 4459 404
+> 15 0 24 4391 topology 4508 242
+> 16 0 24 4391 topology 4633 242
+> 15 0 23 4391 topology 4536 243
+> 16 0 23 4391 topology 4538 243
+> 15 0 24 4391 topology 4592 244
+> 16 0 24 4391 topology 4633 244
+> 15 0 24 4391 topology 4450 245
+> 16 0 24 4391 topology 4633 245
+> 15 0 24 4391 topology 4628 246
+> 16 0 24 4391 topology 4633 246
+> 15 0 24 4391 topology 4510 247
+> 16 0 24 4391 topology 4633 247
+> 15 0 24 4391 topology 4432 248
+> 16 0 24 4391 topology 4633 248
+> 15 0 24 4391 topology 4570 249
+> 16 0 24 4391 topology 4633 249
+> 15 0 24 4391 topology 4492 250
+> 16 0 24 4391 topology 4633 250
+> 15 0 24 4391 topology 4630 251
+> 16 0 24 4391 topology 4633 251
+> 15 0 24 4391 topology 4409 252
+> 16 0 24 4391 topology 4633 252
+> 15 0 24 4391 topology 4552 253
+> 16 0 24 4391 topology 4633 253
+> 15 0 24 4391 topology 4474 254
+> 16 0 24 4391 topology 4633 254
+> 15 0 24 4391 topology 4612 255
+> 16 0 24 4391 topology 4633 255
+> 15 0 24 4391 topology 4534 256
+> 16 0 24 4391 topology 4633 256
+> 15 0 24 4391 topology 4594 257
+> 16 0 24 4391 topology 4633 257
+> 15 0 23 4391 topology 4404 258
+> 16 0 23 4391 topology 4406 258
+> 15 0 24 4391 topology 4405 259
+> 16 0 24 4391 topology 4633 259
+> 15 0 24 4391 topology 4427 260
+> 16 0 24 4391 topology 4633 260
+> 15 0 24 4391 topology 4511 261
+> 16 0 24 4391 topology 4633 261
+> 15 0 23 4391 topology 4425 262
+> 16 0 23 4391 topology 4426 262
+> 15 0 24 4391 topology 4463 263
+> 16 0 24 4391 topology 4633 263
+> 15 0 24 4391 topology 4547 264
+> 16 0 24 4391 topology 4633 264
+> 15 0 23 4391 topology 4455 265
+> 16 0 23 4391 topology 4456 265
+> 15 0 24 4391 topology 4631 266
+> 16 0 24 4391 topology 4633 266
+> 15 0 24 4391 topology 4499 267
+> 16 0 24 4391 topology 4633 267
+> 15 0 23 4391 topology 4485 268
+> 16 0 23 4391 topology 4486 268
+> 15 0 24 4391 topology 4583 269
+> 16 0 24 4391 topology 4633 269
+> 15 0 23 4391 topology 4515 270
+> 16 0 23 4391 topology 4516 270
+> 15 0 24 4391 topology 4535 271
+> 16 0 24 4391 topology 4633 271
+> 15 0 24 4391 topology 4619 272
+> 16 0 24 4391 topology 4633 272
+> 15 0 23 4391 topology 4410 273
+> 16 0 23 4391 topology 4411 273
+> 15 0 23 4391 topology 4437 274
+> 16 0 23 4391 topology 4438 274
+> 15 0 23 4391 topology 4545 275
+> 16 0 23 4391 topology 4546 275
+> 15 0 23 4391 topology 4467 276
+> 16 0 23 4391 topology 4468 276
+> 15 0 23 4391 topology 4575 277
+> 16 0 23 4391 topology 4576 277
+> 15 0 24 4391 topology 4459 278
+> 16 0 24 4391 topology 4633 278
+> 15 0 23 4391 topology 4497 279
+> 16 0 23 4391 topology 4498 279
+> 15 0 23 4391 topology 4605 280
+> 16 0 23 4391 topology 4606 280
+> 15 0 24 4391 topology 4400 281
+> 16 0 24 4391 topology 4633 281
+> 15 0 24 4391 topology 4519 282
+> 16 0 24 4391 topology 4633 282
+> 15 0 23 4391 topology 4527 283
+> 16 0 23 4391 topology 4528 283
+> 15 0 23 4391 topology 4419 284
+> 16 0 23 4391 topology 4421 284
+> 15 0 24 4391 topology 4441 285
+> 16 0 24 4391 topology 4633 285
+> 15 0 23 4391 topology 4557 286
+> 16 0 23 4391 topology 4558 286
+> 15 0 24 4391 topology 4579 287
+> 16 0 24 4391 topology 4633 287
+> 15 0 23 4391 topology 4422 288
+> 16 0 23 4391 topology 4424 288
+> 15 0 24 4391 topology 4501 289
+> 16 0 24 4391 topology 4633 289
+> 15 0 23 4391 topology 4587 290
+> 16 0 23 4391 topology 4588 290
+> 15 0 23 4391 topology 4425 291
+> 16 0 23 4391 topology 4427 291
+> 15 0 24 4391 topology 4561 292
+> 16 0 24 4391 topology 4633 292
+> 15 0 23 4391 topology 4617 293
+> 16 0 23 4391 topology 4618 293
+> 15 0 23 4391 topology 4401 294
+> 16 0 23 4391 topology 4403 294
+> 15 0 23 4391 topology 4428 295
+> 16 0 23 4391 topology 4430 295
+> 15 0 24 4391 topology 4621 296
+> 16 0 24 4391 topology 4633 296
+> 15 0 23 4391 topology 4431 297
+> 16 0 23 4391 topology 4433 297
+> 15 0 23 4391 topology 4539 298
+> 16 0 23 4391 topology 4541 298
+> 15 0 23 4391 topology 4434 299
+> 16 0 23 4391 topology 4436 299
+> 15 0 23 4391 topology 4542 300
+> 16 0 23 4391 topology 4544 300
+> 15 0 23 4391 topology 4437 301
+> 16 0 23 4391 topology 4439 301
+> 15 0 23 4391 topology 4545 302
+> 16 0 23 4391 topology 4547 302
+> 15 0 23 4391 topology 4440 303
+> 16 0 23 4391 topology 4442 303
+> 15 0 24 4391 topology 4454 304
+> 16 0 24 4391 topology 4633 304
+> 15 0 23 4391 topology 4548 305
+> 16 0 23 4391 topology 4550 305
+> 15 0 24 4391 topology 4414 306
+> 16 0 24 4391 topology 4633 306
+> 15 0 23 4391 topology 4443 307
+> 16 0 23 4391 topology 4445 307
+> 15 0 23 4391 topology 4551 308
+> 16 0 23 4391 topology 4553 308
+> 15 0 24 4391 topology 4490 309
+> 16 0 24 4391 topology 4633 309
+> 15 0 23 4391 topology 4446 310
+> 16 0 23 4391 topology 4448 310
+> 15 0 23 4391 topology 4554 311
+> 16 0 23 4391 topology 4556 311
+> 15 0 24 4391 topology 4574 312
+> 16 0 24 4391 topology 4633 312
+> 15 0 23 4391 topology 4401 313
+> 16 0 23 4391 topology 4402 313
+> 15 0 24 4391 topology 4442 314
+> 16 0 24 4391 topology 4633 314
+> 15 0 24 4391 topology 4526 315
+> 16 0 24 4391 topology 4633 315
+> 15 0 23 4391 topology 4557 316
+> 16 0 23 4391 topology 4559 316
+> 15 0 24 4391 topology 4610 317
+> 16 0 24 4391 topology 4633 317
+> 15 0 24 4391 topology 4478 318
+> 16 0 24 4391 topology 4633 318
+> 15 0 23 4391 topology 4560 319
+> 16 0 23 4391 topology 4562 319
+> 15 0 24 4391 topology 4562 320
+> 16 0 24 4391 topology 4633 320
+> 15 0 23 4391 topology 4563 321
+> 16 0 23 4391 topology 4565 321
+> 15 0 23 4391 topology 4566 322
+> 16 0 23 4391 topology 4568 322
+> 15 0 24 4391 topology 4598 323
+> 16 0 24 4391 topology 4633 323
+> 15 0 24 4391 topology 4426 324
+> 16 0 24 4391 topology 4633 324
+> 15 0 24 4391 topology 4486 325
+> 16 0 24 4391 topology 4633 325
+> 15 0 24 4391 topology 4546 326
+> 16 0 24 4391 topology 4633 326
+> 15 0 24 4391 topology 4468 327
+> 16 0 24 4391 topology 4633 327
+> 15 0 24 4391 topology 4606 328
+> 16 0 24 4391 topology 4633 328
+> 15 0 24 4391 topology 4528 329
+> 16 0 24 4391 topology 4633 329
+> 15 0 24 4391 topology 4415 330
+> 16 0 24 4391 topology 4633 330
+> 15 0 23 4391 topology 4398 331
+> 16 0 23 4391 topology 4400 331
+> 15 0 24 4391 topology 4588 332
+> 16 0 24 4391 topology 4633 332
+> 15 0 24 4391 topology 4399 333
+> 16 0 24 4391 topology 4633 333
+> 15 0 23 4391 topology 4392 334
+> 16 0 23 4391 topology 4393 334
+> 15 0 24 4391 topology 4481 335
+> 16 0 24 4391 topology 4633 335
+> 15 0 23 4391 topology 4422 336
+> 16 0 23 4391 topology 4423 336
+> 15 0 24 4391 topology 4433 337
+> 16 0 24 4391 topology 4633 337
+> 15 0 23 4391 topology 4452 338
+> 16 0 23 4391 topology 4453 338
+> 15 0 24 4391 topology 4517 339
+> 16 0 24 4391 topology 4633 339
+> 15 0 24 4391 topology 4601 340
+> 16 0 24 4391 topology 4633 340
+> 15 0 24 4391 topology 4469 341
+> 16 0 24 4391 topology 4633 341
+> 15 0 23 4391 topology 4482 342
+> 16 0 23 4391 topology 4483 342
+> 15 0 24 4391 topology 4553 343
+> 16 0 24 4391 topology 4633 343
+> 15 0 23 4391 topology 4512 344
+> 16 0 23 4391 topology 4513 344
+> 15 0 24 4391 topology 4505 345
+> 16 0 24 4391 topology 4633 345
+> 15 0 23 4391 topology 4434 346
+> 16 0 23 4391 topology 4435 346
+> 15 0 23 4391 topology 4542 347
+> 16 0 23 4391 topology 4543 347
+> 15 0 24 4391 topology 4589 348
+> 16 0 24 4391 topology 4633 348
+> 15 0 23 4391 topology 4464 349
+> 16 0 23 4391 topology 4465 349
+> 15 0 23 4391 topology 4572 350
+> 16 0 23 4391 topology 4573 350
+> 15 0 24 4391 topology 4625 351
+> 16 0 24 4391 topology 4633 351
+> 15 0 24 4391 topology 4453 352
+> 16 0 24 4391 topology 4633 352
+> 15 0 23 4391 topology 4494 353
+> 16 0 23 4391 topology 4495 353
+> 15 0 23 4391 topology 4602 354
+> 16 0 23 4391 topology 4603 354
+> 15 0 23 4391 topology 4416 355
+> 16 0 23 4391 topology 4417 355
+> 15 0 24 4391 topology 4513 356
+> 16 0 24 4391 topology 4633 356
+> 15 0 23 4391 topology 4524 357
+> 16 0 23 4391 topology 4525 357
+> 15 0 24 4391 topology 4435 358
+> 16 0 24 4391 topology 4633 358
+> 15 0 23 4391 topology 4446 359
+> 16 0 23 4391 topology 4447 359
+> 15 0 23 4391 topology 4554 360
+> 16 0 23 4391 topology 4555 360
+> 15 0 24 4391 topology 4573 361
+> 16 0 24 4391 topology 4633 361
+> 15 0 24 4391 topology 4406 362
+> 16 0 24 4391 topology 4633 362
+> 15 0 24 4391 topology 4495 363
+> 16 0 24 4391 topology 4633 363
+> 15 0 23 4391 topology 4476 364
+> 16 0 23 4391 topology 4477 364
+> 15 0 23 4391 topology 4584 365
+> 16 0 23 4391 topology 4585 365
+> 15 0 23 4391 topology 4395 366
+> 16 0 23 4391 topology 4397 366
+> 15 0 23 4391 topology 4449 367
+> 16 0 23 4391 topology 4451 367
+> 15 0 24 4391 topology 4555 368
+> 16 0 24 4391 topology 4633 368
+> 15 0 24 4391 topology 4477 369
+> 16 0 24 4391 topology 4633 369
+> 15 0 23 4391 topology 4506 370
+> 16 0 23 4391 topology 4507 370
+> 15 0 23 4391 topology 4614 371
+> 16 0 23 4391 topology 4615 371
+> 15 0 23 4391 topology 4452 372
+> 16 0 23 4391 topology 4454 372
+> 15 0 24 4391 topology 4615 373
+> 16 0 24 4391 topology 4633 373
+> 15 0 23 4391 topology 4536 374
+> 16 0 23 4391 topology 4537 374
+> 15 0 24 4391 topology 4537 375
+> 16 0 24 4391 topology 4633 375
+> 15 0 23 4391 topology 4455 376
+> 16 0 23 4391 topology 4457 376
+> 15 0 23 4391 topology 4566 377
+> 16 0 23 4391 topology 4567 377
+> 15 0 24 4391 topology 4597 378
+> 16 0 24 4391 topology 4633 378
+> 15 0 23 4391 topology 4458 379
+> 16 0 23 4391 topology 4460 379
+> 15 0 23 4391 topology 4596 380
+> 16 0 23 4391 topology 4597 380
+> 15 0 23 4391 topology 4461 381
+> 16 0 23 4391 topology 4463 381
+> 15 0 23 4391 topology 4569 382
+> 16 0 23 4391 topology 4571 382
+> 15 0 23 4391 topology 4626 383
+> 16 0 23 4391 topology 4627 383
+> 15 0 23 4391 topology 4464 384
+> 16 0 23 4391 topology 4466 384
+> 15 0 23 4391 topology 4572 385
+> 16 0 23 4391 topology 4574 385
+> 15 0 24 4391 topology 4424 386
+> 16 0 24 4391 topology 4633 386
+> 15 0 24 4391 topology 4408 387
+> 16 0 24 4391 topology 4633 387
+> 15 0 23 4391 topology 4467 388
+> 16 0 23 4391 topology 4469 388
+> 15 0 23 4391 topology 4575 389
+> 16 0 23 4391 topology 4577 389
+> 15 0 24 4391 topology 4460 390
+> 16 0 24 4391 topology 4633 390
+> 15 0 23 4391 topology 4470 391
+> 16 0 23 4391 topology 4472 391
+> 15 0 23 4391 topology 4578 392
+> 16 0 23 4391 topology 4580 392
+> 15 0 24 4391 topology 4544 393
+> 16 0 24 4391 topology 4633 393
+> 15 0 23 4391 topology 4473 394
+> 16 0 23 4391 topology 4475 394
+> 15 0 23 4391 topology 4581 395
+> 16 0 23 4391 topology 4583 395
+> 15 0 24 4391 topology 4496 396
+> 16 0 24 4391 topology 4633 396
+> 15 0 23 4391 topology 4476 397
+> 16 0 23 4391 topology 4478 397
+> 15 0 24 4391 topology 4580 398
+> 16 0 24 4391 topology 4633 398
+> 15 0 23 4391 topology 4584 399
+> 16 0 23 4391 topology 4586 399
+> 15 0 24 4391 topology 4448 400
+> 16 0 24 4391 topology 4633 400
+> 15 0 24 4391 topology 4532 401
+> 16 0 24 4391 topology 4633 401
+> 15 0 23 4391 topology 4587 402
+> 16 0 23 4391 topology 4589 402
+> 15 0 23 4391 topology 4407 403
+> 16 0 23 4391 topology 4408 403
+> 15 0 24 4391 topology 4616 404
 > 16 0 24 4391 topology 4633 404
-> 15 0 24 4391 topology 4633 405
-> 16 0 24 4391 topology 4424 405
-> 15 0 25 4391 topology 4424 406
-> 16 0 25 4391 topology 4422 406
-> 15 0 23 4391 topology 4542 407
-> 16 0 23 4391 topology 4543 407
-> 15 0 24 4391 topology 4543 408
-> 16 0 24 4391 topology 4633 408
-> 15 0 23 4391 topology 4494 409
-> 16 0 23 4391 topology 4495 409
-> 15 0 24 4391 topology 4495 410
-> 16 0 24 4391 topology 4633 410
-> 15 0 23 4391 topology 4578 411
-> 16 0 23 4391 topology 4579 411
-> 15 0 24 4391 topology 4579 412
+> 15 0 23 4391 topology 4590 405
+> 16 0 23 4391 topology 4592 405
+> 15 0 24 4391 topology 4420 406
+> 16 0 24 4391 topology 4633 406
+> 15 0 24 4391 topology 4568 407
+> 16 0 24 4391 topology 4633 407
+> 15 0 23 4391 topology 4593 408
+> 16 0 23 4391 topology 4595 408
+> 15 0 24 4391 topology 4480 409
+> 16 0 24 4391 topology 4633 409
+> 15 0 23 4391 topology 4596 410
+> 16 0 23 4391 topology 4598 410
+> 15 0 24 4391 topology 4540 411
+> 16 0 24 4391 topology 4633 411
+> 15 0 24 4391 topology 4397 412
 > 16 0 24 4391 topology 4633 412
-> 15 0 23 4391 topology 4446 413
-> 16 0 23 4391 topology 4447 413
-> 15 0 24 4391 topology 4447 414
+> 15 0 24 4391 topology 4462 413
+> 16 0 24 4391 topology 4633 413
+> 15 0 24 4391 topology 4600 414
 > 16 0 24 4391 topology 4633 414
-> 15 0 23 4391 topology 4530 415
-> 16 0 23 4391 topology 4531 415
-> 15 0 24 4391 topology 4531 416
-> 16 0 24 4391 topology 4633 416
-> 15 0 23 4391 topology 4614 417
-> 16 0 23 4391 topology 4615 417
-> 15 0 24 4391 topology 4615 418
+> 15 0 24 4391 topology 4522 415
+> 16 0 24 4391 topology 4633 415
+> 15 0 23 4391 topology 4392 416
+> 16 0 23 4391 topology 4394 416
+> 15 0 24 4391 topology 4444 417
+> 16 0 24 4391 topology 4633 417
+> 15 0 24 4391 topology 4582 418
 > 16 0 24 4391 topology 4633 418
-> 15 0 23 4391 topology 4566 419
-> 16 0 23 4391 topology 4567 419
-> 15 0 24 4391 topology 4567 420
+> 15 0 24 4391 topology 4504 419
+> 16 0 24 4391 topology 4633 419
+> 15 0 24 4391 topology 4564 420
 > 16 0 24 4391 topology 4633 420
-> 15 0 23 4391 topology 4413 421
-> 16 0 23 4391 topology 4414 421
-> 15 0 24 4391 topology 4414 422
+> 15 0 24 4391 topology 4624 421
+> 16 0 24 4391 topology 4633 421
+> 15 0 24 4391 topology 4393 422
 > 16 0 24 4391 topology 4633 422
-> 15 0 23 4391 topology 4449 423
-> 16 0 23 4391 topology 4450 423
-> 15 0 24 4391 topology 4450 424
-> 16 0 24 4391 topology 4633 424
-> 15 0 23 4391 topology 4485 425
-> 16 0 23 4391 topology 4486 425
-> 15 0 24 4391 topology 4486 426
+> 15 0 24 4391 topology 4451 423
+> 16 0 24 4391 topology 4633 423
+> 15 0 23 4391 topology 4419 424
+> 16 0 23 4391 topology 4420 424
+> 15 0 23 4391 topology 4449 425
+> 16 0 23 4391 topology 4450 425
+> 15 0 24 4391 topology 4487 426
 > 16 0 24 4391 topology 4633 426
-> 15 0 23 4391 topology 4569 427
-> 16 0 23 4391 topology 4570 427
-> 15 0 24 4391 topology 4570 428
-> 16 0 24 4391 topology 4633 428
-> 15 0 23 4391 topology 4437 429
-> 16 0 23 4391 topology 4438 429
-> 15 0 24 4391 topology 4438 430
-> 16 0 24 4391 topology 4633 430
-> 15 0 23 4391 topology 4521 431
-> 16 0 23 4391 topology 4522 431
-> 15 0 24 4391 topology 4522 432
+> 15 0 23 4391 topology 4416 427
+> 16 0 23 4391 topology 4418 427
+> 15 0 23 4391 topology 4479 428
+> 16 0 23 4391 topology 4480 428
+> 15 0 24 4391 topology 4417 429
+> 16 0 24 4391 topology 4633 429
+> 15 0 23 4391 topology 4398 430
+> 16 0 23 4391 topology 4399 430
+> 15 0 24 4391 topology 4571 431
+> 16 0 24 4391 topology 4633 431
+> 15 0 24 4391 topology 4439 432
 > 16 0 24 4391 topology 4633 432
-> 15 0 23 4391 topology 4605 433
-> 16 0 23 4391 topology 4606 433
-> 15 0 24 4391 topology 4606 434
-> 16 0 24 4391 topology 4633 434
-> 15 0 23 4391 topology 4473 435
-> 16 0 23 4391 topology 4474 435
-> 15 0 24 4391 topology 4474 436
-> 16 0 24 4391 topology 4633 436
-> 15 0 23 4391 topology 4557 437
-> 16 0 23 4391 topology 4558 437
-> 15 0 24 4391 topology 4558 438
-> 16 0 24 4391 topology 4633 438
-> 15 0 23 4391 topology 4593 439
-> 16 0 23 4391 topology 4594 439
-> 15 0 24 4391 topology 4594 440
-> 16 0 24 4391 topology 4633 440
-> 15 0 23 4391 topology 4404 441
-> 16 0 23 4391 topology 4405 441
-> 15 0 24 4391 topology 4405 442
-> 16 0 24 4391 topology 4633 442
-> 15 0 23 4391 topology 4428 443
-> 16 0 23 4391 topology 4429 443
-> 15 0 24 4391 topology 4429 444
-> 16 0 24 4391 topology 4633 444
-> 15 0 23 4391 topology 4512 445
-> 16 0 23 4391 topology 4513 445
-> 15 0 24 4391 topology 4513 446
-> 16 0 24 4391 topology 4633 446
-> 15 0 23 4391 topology 4464 447
-> 16 0 23 4391 topology 4465 447
-> 15 0 24 4391 topology 4465 448
-> 16 0 24 4391 topology 4633 448
-> 15 0 23 4391 topology 4548 449
-> 16 0 23 4391 topology 4549 449
-> 15 0 24 4391 topology 4549 450
+> 15 0 24 4391 topology 4523 433
+> 16 0 24 4391 topology 4633 433
+> 15 0 23 4391 topology 4509 434
+> 16 0 23 4391 topology 4510 434
+> 15 0 24 4391 topology 4607 435
+> 16 0 24 4391 topology 4633 435
+> 15 0 23 4391 topology 4539 436
+> 16 0 23 4391 topology 4540 436
+> 15 0 24 4391 topology 4475 437
+> 16 0 24 4391 topology 4633 437
+> 15 0 23 4391 topology 4431 438
+> 16 0 23 4391 topology 4432 438
+> 15 0 24 4391 topology 4559 439
+> 16 0 24 4391 topology 4633 439
+> 15 0 23 4391 topology 4461 440
+> 16 0 23 4391 topology 4462 440
+> 15 0 23 4391 topology 4569 441
+> 16 0 23 4391 topology 4570 441
+> 15 0 23 4391 topology 4491 442
+> 16 0 23 4391 topology 4492 442
+> 15 0 24 4391 topology 4595 443
+> 16 0 24 4391 topology 4633 443
+> 15 0 23 4391 topology 4599 444
+> 16 0 23 4391 topology 4600 444
+> 15 0 23 4391 topology 4521 445
+> 16 0 23 4391 topology 4522 445
+> 15 0 23 4391 topology 4629 446
+> 16 0 23 4391 topology 4630 446
+> 15 0 24 4391 topology 4429 447
+> 16 0 24 4391 topology 4633 447
+> 15 0 23 4391 topology 4551 448
+> 16 0 23 4391 topology 4552 448
+> 15 0 23 4391 topology 4443 449
+> 16 0 23 4391 topology 4444 449
+> 15 0 24 4391 topology 4489 450
 > 16 0 24 4391 topology 4633 450
-> 15 0 23 4391 topology 4500 451
-> 16 0 23 4391 topology 4501 451
-> 15 0 24 4391 topology 4501 452
-> 16 0 24 4391 topology 4633 452
-> 15 0 23 4391 topology 4584 453
-> 16 0 23 4391 topology 4585 453
-> 15 0 24 4391 topology 4585 454
-> 16 0 24 4391 topology 4633 454
-> 15 0 23 4391 topology 4536 455
-> 16 0 23 4391 topology 4537 455
-> 15 0 24 4391 topology 4537 456
-> 16 0 24 4391 topology 4633 456
-> 15 0 23 4391 topology 4620 457
-> 16 0 23 4391 topology 4621 457
-> 15 0 24 4391 topology 4621 458
+> 15 0 23 4391 topology 4473 451
+> 16 0 23 4391 topology 4474 451
+> 15 0 23 4391 topology 4581 452
+> 16 0 23 4391 topology 4582 452
+> 15 0 24 4391 topology 4549 453
+> 16 0 24 4391 topology 4633 453
+> 15 0 23 4391 topology 4503 454
+> 16 0 23 4391 topology 4504 454
+> 15 0 24 4391 topology 4471 455
+> 16 0 24 4391 topology 4633 455
+> 15 0 23 4391 topology 4611 456
+> 16 0 23 4391 topology 4612 456
+> 15 0 24 4391 topology 4412 457
+> 16 0 24 4391 topology 4633 457
+> 15 0 24 4391 topology 4609 458
 > 16 0 24 4391 topology 4633 458
-> 15 0 23 4391 topology 4395 459
-> 16 0 23 4391 topology 4396 459
-> 15 0 24 4391 topology 4396 460
+> 15 0 23 4391 topology 4533 459
+> 16 0 23 4391 topology 4534 459
+> 15 0 24 4391 topology 4531 460
 > 16 0 24 4391 topology 4633 460
-> 15 0 23 4391 topology 4419 461
-> 16 0 23 4391 topology 4420 461
-> 15 0 24 4391 topology 4420 462
-> 16 0 24 4391 topology 4633 462
-> 15 0 23 4391 topology 4455 463
-> 16 0 23 4391 topology 4456 463
-> 15 0 24 4391 topology 4456 464
-> 16 0 24 4391 topology 4633 464
-> 15 0 23 4391 topology 4539 465
-> 16 0 23 4391 topology 4540 465
-> 15 0 24 4391 topology 4540 466
-> 16 0 24 4391 topology 4633 466
-> 15 0 23 4391 topology 4491 467
-> 16 0 23 4391 topology 4492 467
-> 15 0 24 4391 topology 4492 468
-> 16 0 24 4391 topology 4633 468
-> 15 0 23 4391 topology 4575 469
-> 16 0 23 4391 topology 4576 469
-> 15 0 24 4391 topology 4576 470
-> 16 0 24 4391 topology 4633 470
-> 15 0 23 4391 topology 4443 471
-> 16 0 23 4391 topology 4444 471
-> 15 0 24 4391 topology 4444 472
-> 16 0 24 4391 topology 4633 472
-> 15 0 23 4391 topology 4527 473
-> 16 0 23 4391 topology 4528 473
-> 15 0 24 4391 topology 4528 474
-> 16 0 24 4391 topology 4633 474
-> 15 0 23 4391 topology 4611 475
-> 16 0 23 4391 topology 4612 475
-> 15 0 24 4391 topology 4612 476
+> 15 0 23 4391 topology 4479 461
+> 16 0 23 4391 topology 4481 461
+> 15 0 23 4391 topology 4563 462
+> 16 0 23 4391 topology 4564 462
+> 15 0 24 4391 topology 4591 463
+> 16 0 24 4391 topology 4633 463
+> 15 0 23 4391 topology 4482 464
+> 16 0 23 4391 topology 4484 464
+> 15 0 23 4391 topology 4593 465
+> 16 0 23 4391 topology 4594 465
+> 15 0 23 4391 topology 4485 466
+> 16 0 23 4391 topology 4487 466
+> 15 0 23 4391 topology 4623 467
+> 16 0 23 4391 topology 4624 467
+> 15 0 23 4391 topology 4488 468
+> 16 0 23 4391 topology 4490 468
+> 15 0 25 4391 topology 4632 469
+> 16 0 25 4391 topology 4633 469
+> 15 0 23 4391 topology 4491 470
+> 16 0 23 4391 topology 4493 470
+> 15 0 24 4391 topology 4402 471
+> 16 0 24 4391 topology 4633 471
+> 15 0 23 4391 topology 4599 472
+> 16 0 23 4391 topology 4601 472
+> 15 0 23 4391 topology 4494 473
+> 16 0 23 4391 topology 4496 473
+> 15 0 23 4391 topology 4413 474
+> 16 0 23 4391 topology 4415 474
+> 15 0 23 4391 topology 4602 475
+> 16 0 23 4391 topology 4604 475
+> 15 0 24 4391 topology 4430 476
 > 16 0 24 4391 topology 4633 476
-> 15 0 23 4391 topology 4563 477
-> 16 0 23 4391 topology 4564 477
-> 15 0 24 4391 topology 4564 478
-> 16 0 24 4391 topology 4633 478
-> 15 0 23 4391 topology 4410 479
-> 16 0 23 4391 topology 4411 479
-> 15 0 24 4391 topology 4411 480
-> 16 0 24 4391 topology 4633 480
-> 15 0 23 4391 topology 4482 481
-> 16 0 23 4391 topology 4483 481
-> 15 0 24 4391 topology 4483 482
-> 16 0 24 4391 topology 4633 482
-> 15 0 23 4391 topology 4434 483
-> 16 0 23 4391 topology 4435 483
-> 15 0 24 4391 topology 4435 484
-> 16 0 24 4391 topology 4633 484
-> 15 0 23 4391 topology 4518 485
-> 16 0 23 4391 topology 4519 485
-> 15 0 24 4391 topology 4519 486
+> 15 0 24 4391 topology 4514 477
+> 16 0 24 4391 topology 4633 477
+> 15 0 23 4391 topology 4497 478
+> 16 0 23 4391 topology 4499 478
+> 15 0 23 4391 topology 4605 479
+> 16 0 23 4391 topology 4607 479
+> 15 0 23 4391 topology 4500 480
+> 16 0 23 4391 topology 4502 480
+> 15 0 24 4391 topology 4466 481
+> 16 0 24 4391 topology 4633 481
+> 15 0 23 4391 topology 4608 482
+> 16 0 23 4391 topology 4610 482
+> 15 0 24 4391 topology 4550 483
+> 16 0 24 4391 topology 4633 483
+> 15 0 23 4391 topology 4503 484
+> 16 0 23 4391 topology 4505 484
+> 15 0 23 4391 topology 4611 485
+> 16 0 23 4391 topology 4613 485
+> 15 0 24 4391 topology 4502 486
 > 16 0 24 4391 topology 4633 486
-> 15 0 23 4391 topology 4602 487
-> 16 0 23 4391 topology 4603 487
-> 15 0 24 4391 topology 4603 488
+> 15 0 23 4391 topology 4506 487
+> 16 0 23 4391 topology 4508 487
+> 15 0 24 4391 topology 4586 488
 > 16 0 24 4391 topology 4633 488
-> 15 0 23 4391 topology 4470 489
-> 16 0 23 4391 topology 4471 489
-> 15 0 24 4391 topology 4471 490
+> 15 0 23 4391 topology 4614 489
+> 16 0 23 4391 topology 4616 489
+> 15 0 24 4391 topology 4538 490
 > 16 0 24 4391 topology 4633 490
-> 15 0 23 4391 topology 4554 491
-> 16 0 23 4391 topology 4555 491
-> 15 0 24 4391 topology 4555 492
+> 15 0 23 4391 topology 4617 491
+> 16 0 23 4391 topology 4619 491
+> 15 0 24 4391 topology 4622 492
 > 16 0 24 4391 topology 4633 492
-> 15 0 23 4391 topology 4506 493
-> 16 0 23 4391 topology 4507 493
-> 15 0 24 4391 topology 4507 494
-> 16 0 24 4391 topology 4633 494
-> 15 0 23 4391 topology 4590 495
-> 16 0 23 4391 topology 4591 495
-> 15 0 24 4391 topology 4591 496
-> 16 0 24 4391 topology 4633 496
-> 15 0 23 4391 topology 4626 497
-> 16 0 23 4391 topology 4627 497
-> 15 0 24 4391 topology 4627 498
-> 16 0 24 4391 topology 4633 498
-> 15 0 23 4391 topology 4401 499
-> 16 0 23 4391 topology 4402 499
-> 15 0 24 4391 topology 4402 500
+> 15 0 23 4391 topology 4620 493
+> 16 0 23 4391 topology 4622 493
+> 15 0 23 4391 topology 4413 494
+> 16 0 23 4391 topology 4414 494
+> 15 0 24 4391 topology 4456 495
+> 16 0 24 4391 topology 4633 495
+> 15 0 23 4391 topology 4623 496
+> 16 0 23 4391 topology 4625 496
+> 15 0 24 4391 topology 4516 497
+> 16 0 24 4391 topology 4633 497
+> 15 0 23 4391 topology 4626 498
+> 16 0 23 4391 topology 4628 498
+> 15 0 24 4391 topology 4438 499
+> 16 0 24 4391 topology 4633 499
+> 15 0 24 4391 topology 4403 500
 > 16 0 24 4391 topology 4633 500
-> 15 0 23 4391 topology 4425 501
-> 16 0 23 4391 topology 4426 501
-> 15 0 24 4391 topology 4426 502
+> 15 0 24 4391 topology 4576 501
+> 16 0 24 4391 topology 4633 501
+> 15 0 24 4391 topology 4498 502
 > 16 0 24 4391 topology 4633 502
-> 15 0 23 4391 topology 4509 503
-> 16 0 23 4391 topology 4510 503
-> 15 0 24 4391 topology 4510 504
+> 15 0 24 4391 topology 4558 503
+> 16 0 24 4391 topology 4633 503
+> 15 0 24 4391 topology 4618 504
 > 16 0 24 4391 topology 4633 504
-> 15 0 23 4391 topology 4461 505
-> 16 0 23 4391 topology 4462 505
-> 15 0 24 4391 topology 4462 506
-> 16 0 24 4391 topology 4633 506
-> 15 0 23 4391 topology 4545 507
-> 16 0 23 4391 topology 4546 507
-> 15 0 24 4391 topology 4546 508
+> 15 0 24 4391 topology 4421 505
+> 16 0 24 4391 topology 4633 505
+> 15 0 23 4391 topology 4410 506
+> 16 0 23 4391 topology 4412 506
+> 15 0 24 4391 topology 4457 507
+> 16 0 24 4391 topology 4633 507
+> 15 0 24 4391 topology 4411 508
 > 16 0 24 4391 topology 4633 508
-> 15 0 23 4391 topology 4629 509
-> 16 0 23 4391 topology 4630 509
-> 15 0 24 4391 topology 4630 510
+> 15 0 24 4391 topology 4541 509
+> 16 0 24 4391 topology 4633 509
+> 15 0 24 4391 topology 4493 510
 > 16 0 24 4391 topology 4633 510
-> 15 0 23 4391 topology 4497 511
-> 16 0 23 4391 topology 4498 511
-> 15 0 24 4391 topology 4498 512
+> 15 0 23 4391 topology 4428 511
+> 16 0 23 4391 topology 4429 511
+> 15 0 24 4391 topology 4577 512
 > 16 0 24 4391 topology 4633 512
-> 15 0 23 4391 topology 4581 513
-> 16 0 23 4391 topology 4582 513
-> 15 0 24 4391 topology 4582 514
+> 15 0 24 4391 topology 4445 513
+> 16 0 24 4391 topology 4633 513
+> 15 0 24 4391 topology 4529 514
 > 16 0 24 4391 topology 4633 514
-> 15 0 23 4391 topology 4533 515
-> 16 0 23 4391 topology 4534 515
-> 15 0 24 4391 topology 4534 516
-> 16 0 24 4391 topology 4633 516
-> 15 0 23 4391 topology 4617 517
-> 16 0 23 4391 topology 4618 517
-> 15 0 24 4391 topology 4618 518
-> 16 0 24 4391 topology 4633 518
-> 15 0 23 4391 topology 4392 519
-> 16 0 23 4391 topology 4393 519
-> 15 0 24 4391 topology 4393 520
-> 16 0 24 4391 topology 4633 520
-> 15 0 23 4391 topology 4416 521
-> 16 0 23 4391 topology 4417 521
-> 15 0 24 4391 topology 4417 522
-> 16 0 24 4391 topology 4633 522
-> 15 0 23 4391 topology 4452 523
-> 16 0 23 4391 topology 4453 523
-> 15 0 24 4391 topology 4453 524
+> 15 0 23 4391 topology 4458 515
+> 16 0 23 4391 topology 4459 515
+> 15 0 23 4391 topology 4404 516
+> 16 0 23 4391 topology 4405 516
+> 15 0 24 4391 topology 4613 517
+> 16 0 24 4391 topology 4633 517
+> 15 0 23 4391 topology 4488 518
+> 16 0 23 4391 topology 4489 518
+> 15 0 24 4391 topology 4565 519
+> 16 0 24 4391 topology 4633 519
+> 15 0 23 4391 topology 4518 520
+> 16 0 23 4391 topology 4519 520
+> 15 0 24 4391 topology 4423 521
+> 16 0 24 4391 topology 4633 521
+> 15 0 23 4391 topology 4548 522
+> 16 0 23 4391 topology 4549 522
+> 15 0 23 4391 topology 4440 523
+> 16 0 23 4391 topology 4441 523
+> 15 0 24 4391 topology 4483 524
 > 16 0 24 4391 topology 4633 524
-> 15 0 23 4391 topology 4488 525
-> 16 0 23 4391 topology 4489 525
-> 15 0 24 4391 topology 4489 526
-> 16 0 24 4391 topology 4633 526
-> 15 0 23 4391 topology 4572 527
-> 16 0 23 4391 topology 4573 527
-> 15 0 24 4391 topology 4573 528
+> 15 0 24 4391 topology 4394 525
+> 16 0 24 4391 topology 4633 525
+> 15 0 23 4391 topology 4470 526
+> 16 0 23 4391 topology 4471 526
+> 15 0 23 4391 topology 4578 527
+> 16 0 23 4391 topology 4579 527
+> 15 0 24 4391 topology 4543 528
 > 16 0 24 4391 topology 4633 528
-> 15 0 23 4391 topology 4440 529
-> 16 0 23 4391 topology 4441 529
-> 15 0 24 4391 topology 4441 530
+> 15 0 23 4391 topology 4500 529
+> 16 0 23 4391 topology 4501 529
+> 15 0 24 4391 topology 4465 530
 > 16 0 24 4391 topology 4633 530
-> 15 0 23 4391 topology 4524 531
-> 16 0 23 4391 topology 4525 531
-> 15 0 24 4391 topology 4525 532
+> 15 0 23 4391 topology 4608 531
+> 16 0 23 4391 topology 4609 531
+> 15 0 24 4391 topology 4603 532
 > 16 0 24 4391 topology 4633 532
-> 15 0 23 4391 topology 4608 533
-> 16 0 23 4391 topology 4609 533
-> 15 0 24 4391 topology 4609 534
+> 15 0 23 4391 topology 4530 533
+> 16 0 23 4391 topology 4531 533
+> 15 0 24 4391 topology 4525 534
 > 16 0 24 4391 topology 4633 534
-> 15 0 23 4391 topology 4476 535
-> 16 0 23 4391 topology 4477 535
-> 15 0 24 4391 topology 4477 536
-> 16 0 24 4391 topology 4633 536
-> 15 0 23 4391 topology 4560 537
-> 16 0 23 4391 topology 4561 537
-> 15 0 24 4391 topology 4561 538
+> 15 0 24 4391 topology 4447 535
+> 16 0 24 4391 topology 4633 535
+> 15 0 23 4391 topology 4560 536
+> 16 0 23 4391 topology 4561 536
+> 15 0 24 4391 topology 4585 537
+> 16 0 24 4391 topology 4633 537
+> 15 0 24 4391 topology 4507 538
 > 16 0 24 4391 topology 4633 538
-> 15 0 23 4391 topology 4596 539
-> 16 0 23 4391 topology 4597 539
-> 15 0 24 4391 topology 4597 540
-> 16 0 24 4391 topology 4633 540
-> 15 0 23 4391 topology 4407 541
-> 16 0 23 4391 topology 4408 541
-> 15 0 24 4391 topology 4408 542
+> 15 0 24 4391 topology 4418 539
+> 16 0 24 4391 topology 4633 539
+> 15 0 23 4391 topology 4590 540
+> 16 0 23 4391 topology 4591 540
+> 15 0 23 4391 topology 4509 541
+> 16 0 23 4391 topology 4511 541
+> 15 0 24 4391 topology 4567 542
 > 16 0 24 4391 topology 4633 542
-> 15 0 23 4391 topology 4479 543
-> 16 0 23 4391 topology 4480 543
-> 15 0 24 4391 topology 4480 544
-> 16 0 24 4391 topology 4633 544
-> 15 0 23 4391 topology 4431 545
-> 16 0 23 4391 topology 4432 545
-> 15 0 24 4391 topology 4432 546
-> 16 0 24 4391 topology 4633 546
-> 15 0 23 4391 topology 4515 547
-> 16 0 23 4391 topology 4516 547
-> 15 0 24 4391 topology 4516 548
+> 15 0 23 4391 topology 4620 543
+> 16 0 23 4391 topology 4621 543
+> 15 0 23 4391 topology 4512 544
+> 16 0 23 4391 topology 4514 544
+> 15 0 24 4391 topology 4627 545
+> 16 0 24 4391 topology 4633 545
+> 15 0 23 4391 topology 4515 546
+> 16 0 23 4391 topology 4517 546
+> 15 0 23 4391 topology 4407 547
+> 16 0 23 4391 topology 4409 547
+> 15 0 24 4391 topology 4396 548
 > 16 0 24 4391 topology 4633 548
-> 15 0 23 4391 topology 4599 549
-> 16 0 23 4391 topology 4600 549
-> 15 0 24 4391 topology 4600 550
-> 16 0 24 4391 topology 4633 550
-> 15 0 23 4391 topology 4467 551
-> 16 0 23 4391 topology 4468 551
-> 15 0 24 4391 topology 4468 552
+> 15 0 23 4391 topology 4518 549
+> 16 0 23 4391 topology 4520 549
+> 15 0 23 4391 topology 4521 550
+> 16 0 23 4391 topology 4523 550
+> 15 0 23 4391 topology 4629 551
+> 16 0 23 4391 topology 4631 551
+> 15 0 24 4391 topology 4484 552
 > 16 0 24 4391 topology 4633 552
-> 15 0 23 4391 topology 4551 553
-> 16 0 23 4391 topology 4552 553
-> 15 0 24 4391 topology 4552 554
-> 16 0 24 4391 topology 4633 554
-> 15 0 23 4391 topology 4503 555
-> 16 0 23 4391 topology 4504 555
-> 15 0 24 4391 topology 4504 556
-> 16 0 24 4391 topology 4633 556
-> 15 0 23 4391 topology 4587 557
-> 16 0 23 4391 topology 4588 557
-> 15 0 24 4391 topology 4588 558
+> 15 0 23 4391 topology 4395 553
+> 16 0 23 4391 topology 4396 553
+> 15 0 23 4391 topology 4524 554
+> 16 0 23 4391 topology 4526 554
+> 15 0 24 4391 topology 4436 555
+> 16 0 24 4391 topology 4633 555
+> 15 0 23 4391 topology 4527 556
+> 16 0 23 4391 topology 4529 556
+> 15 0 24 4391 topology 4520 557
+> 16 0 24 4391 topology 4633 557
+> 15 0 24 4391 topology 4604 558
 > 16 0 24 4391 topology 4633 558
-> 15 0 23 4391 topology 4623 559
-> 16 0 23 4391 topology 4624 559
-> 15 0 24 4391 topology 4624 560
+> 15 0 23 4391 topology 4530 559
+> 16 0 23 4391 topology 4532 559
+> 15 0 24 4391 topology 4472 560
 > 16 0 24 4391 topology 4633 560
-> 15 0 23 4391 topology 4398 561
-> 16 0 23 4391 topology 4399 561
-> 15 0 24 4391 topology 4399 562
-> 16 0 24 4391 topology 4633 562
-> 15 0 27 4390 topology 4792 563
-> 16 0 27 4390 topology 4794 563
-> 15 0 28 4390 topology 4794 564
-> 16 0 28 4390 topology 4796 564
-> 15 0 21 4390 topology 4794 565
-> 16 0 21 4390 topology 4634 565
-> 15 0 28 4390 topology 4634 566
-> 16 0 28 4390 topology 4632 566
-> 15 0 27 4390 topology 4796 567
-> 16 0 27 4390 topology 4634 567
-> 15 0 23 3794 topology 3801 568
-> 16 0 23 3794 topology 3802 568
-> 15 0 24 3794 topology 3802 569
-> 16 0 24 3794 topology 3916 569
-> 15 0 26 3794 topology 3916 570
-> 16 0 26 3794 topology 3915 570
-> 15 0 24 3794 topology 3916 571
-> 16 0 24 3794 topology 3815 571
-> 15 0 25 3794 topology 3815 572
-> 16 0 25 3794 topology 3813 572
-> 15 0 24 3794 topology 3916 573
-> 16 0 24 3794 topology 3827 573
-> 15 0 25 3794 topology 3827 574
-> 16 0 25 3794 topology 3825 574
-> 15 0 24 3794 topology 3916 575
-> 16 0 24 3794 topology 3857 575
-> 15 0 25 3794 topology 3857 576
-> 16 0 25 3794 topology 3855 576
-> 15 0 24 3794 topology 3916 577
-> 16 0 24 3794 topology 3887 577
-> 15 0 25 3794 topology 3887 578
-> 16 0 25 3794 topology 3885 578
-> 15 0 24 3794 topology 3916 579
-> 16 0 24 3794 topology 3839 579
-> 15 0 25 3794 topology 3839 580
-> 16 0 25 3794 topology 3837 580
-> 15 0 24 3794 topology 3916 581
-> 16 0 24 3794 topology 3869 581
-> 15 0 25 3794 topology 3869 582
-> 16 0 25 3794 topology 3867 582
-> 15 0 24 3794 topology 3916 583
-> 16 0 24 3794 topology 3899 583
-> 15 0 25 3794 topology 3899 584
-> 16 0 25 3794 topology 3897 584
-> 15 0 24 3794 topology 3916 585
-> 16 0 24 3794 topology 3851 585
-> 15 0 25 3794 topology 3851 586
-> 16 0 25 3794 topology 3849 586
-> 15 0 24 3794 topology 3916 587
-> 16 0 24 3794 topology 3881 587
-> 15 0 25 3794 topology 3881 588
-> 16 0 25 3794 topology 3879 588
-> 15 0 24 3794 topology 3916 589
-> 16 0 24 3794 topology 3911 589
-> 15 0 25 3794 topology 3911 590
-> 16 0 25 3794 topology 3909 590
-> 15 0 24 3794 topology 3916 591
-> 16 0 24 3794 topology 3800 591
-> 15 0 25 3794 topology 3800 592
-> 16 0 25 3794 topology 3798 592
-> 15 0 24 3794 topology 3916 593
-> 16 0 24 3794 topology 3812 593
-> 15 0 25 3794 topology 3812 594
-> 16 0 25 3794 topology 3810 594
-> 15 0 24 3794 topology 3916 595
-> 16 0 24 3794 topology 3824 595
-> 15 0 25 3794 topology 3824 596
-> 16 0 25 3794 topology 3822 596
-> 15 0 24 3794 topology 3916 597
-> 16 0 24 3794 topology 3854 597
-> 15 0 25 3794 topology 3854 598
-> 16 0 25 3794 topology 3852 598
-> 15 0 24 3794 topology 3916 599
-> 16 0 24 3794 topology 3884 599
-> 15 0 25 3794 topology 3884 600
-> 16 0 25 3794 topology 3882 600
-> 15 0 24 3794 topology 3916 601
-> 16 0 24 3794 topology 3914 601
-> 15 0 25 3794 topology 3914 602
-> 16 0 25 3794 topology 3912 602
-> 15 0 24 3794 topology 3916 603
-> 16 0 24 3794 topology 3836 603
-> 15 0 25 3794 topology 3836 604
-> 16 0 25 3794 topology 3834 604
-> 15 0 24 3794 topology 3916 605
-> 16 0 24 3794 topology 3866 605
-> 15 0 25 3794 topology 3866 606
-> 16 0 25 3794 topology 3864 606
-> 15 0 24 3794 topology 3916 607
-> 16 0 24 3794 topology 3896 607
-> 15 0 25 3794 topology 3896 608
-> 16 0 25 3794 topology 3894 608
-> 15 0 24 3794 topology 3916 609
-> 16 0 24 3794 topology 3848 609
-> 15 0 25 3794 topology 3848 610
-> 16 0 25 3794 topology 3846 610
-> 15 0 24 3794 topology 3916 611
-> 16 0 24 3794 topology 3878 611
-> 15 0 25 3794 topology 3878 612
-> 16 0 25 3794 topology 3876 612
-> 15 0 24 3794 topology 3916 613
-> 16 0 24 3794 topology 3908 613
-> 15 0 25 3794 topology 3908 614
-> 16 0 25 3794 topology 3906 614
-> 15 0 24 3794 topology 3916 615
-> 16 0 24 3794 topology 3797 615
-> 15 0 25 3794 topology 3797 616
-> 16 0 25 3794 topology 3795 616
-> 15 0 24 3794 topology 3916 617
-> 16 0 24 3794 topology 3809 617
-> 15 0 25 3794 topology 3809 618
-> 16 0 25 3794 topology 3807 618
-> 15 0 24 3794 topology 3916 619
-> 16 0 24 3794 topology 3821 619
-> 15 0 25 3794 topology 3821 620
-> 16 0 25 3794 topology 3819 620
-> 15 0 24 3794 topology 3916 621
-> 16 0 24 3794 topology 3833 621
-> 15 0 25 3794 topology 3833 622
-> 16 0 25 3794 topology 3831 622
-> 15 0 24 3794 topology 3916 623
-> 16 0 24 3794 topology 3863 623
-> 15 0 25 3794 topology 3863 624
-> 16 0 25 3794 topology 3861 624
-> 15 0 24 3794 topology 3916 625
-> 16 0 24 3794 topology 3893 625
-> 15 0 25 3794 topology 3893 626
-> 16 0 25 3794 topology 3891 626
-> 15 0 24 3794 topology 3916 627
-> 16 0 24 3794 topology 3845 627
-> 15 0 25 3794 topology 3845 628
-> 16 0 25 3794 topology 3843 628
-> 15 0 24 3794 topology 3916 629
-> 16 0 24 3794 topology 3875 629
-> 15 0 25 3794 topology 3875 630
-> 16 0 25 3794 topology 3873 630
-> 15 0 24 3794 topology 3916 631
-> 16 0 24 3794 topology 3905 631
-> 15 0 25 3794 topology 3905 632
-> 16 0 25 3794 topology 3903 632
-> 15 0 24 3794 topology 3916 633
-> 16 0 24 3794 topology 3806 633
-> 15 0 25 3794 topology 3806 634
-> 16 0 25 3794 topology 3804 634
-> 15 0 24 3794 topology 3916 635
-> 16 0 24 3794 topology 3818 635
-> 15 0 25 3794 topology 3818 636
-> 16 0 25 3794 topology 3816 636
-> 15 0 24 3794 topology 3916 637
-> 16 0 24 3794 topology 3830 637
-> 15 0 25 3794 topology 3830 638
-> 16 0 25 3794 topology 3828 638
-> 15 0 24 3794 topology 3916 639
-> 16 0 24 3794 topology 3860 639
-> 15 0 25 3794 topology 3860 640
-> 16 0 25 3794 topology 3858 640
-> 15 0 24 3794 topology 3916 641
-> 16 0 24 3794 topology 3890 641
-> 15 0 25 3794 topology 3890 642
-> 16 0 25 3794 topology 3888 642
-> 15 0 24 3794 topology 3916 643
-> 16 0 24 3794 topology 3842 643
-> 15 0 25 3794 topology 3842 644
-> 16 0 25 3794 topology 3840 644
-> 15 0 24 3794 topology 3916 645
-> 16 0 24 3794 topology 3872 645
-> 15 0 25 3794 topology 3872 646
-> 16 0 25 3794 topology 3870 646
-> 15 0 24 3794 topology 3916 647
-> 16 0 24 3794 topology 3902 647
-> 15 0 25 3794 topology 3902 648
-> 16 0 25 3794 topology 3900 648
-> 15 0 24 3794 topology 3916 649
-> 16 0 24 3794 topology 3803 649
-> 15 0 25 3794 topology 3803 650
-> 16 0 25 3794 topology 3801 650
-> 15 0 23 3794 topology 3813 651
-> 16 0 23 3794 topology 3814 651
-> 15 0 24 3794 topology 3814 652
-> 16 0 24 3794 topology 3916 652
-> 15 0 23 3794 topology 3825 653
-> 16 0 23 3794 topology 3826 653
-> 15 0 24 3794 topology 3826 654
-> 16 0 24 3794 topology 3916 654
-> 15 0 23 3794 topology 3855 655
-> 16 0 23 3794 topology 3856 655
-> 15 0 24 3794 topology 3856 656
+> 15 0 24 4391 topology 4556 561
+> 16 0 24 4391 topology 4633 561
+> 15 0 23 4391 topology 4533 562
+> 16 0 23 4391 topology 4535 562
+> 15 0 26 4390 topology 4794 563
+> 16 0 26 4390 topology 4796 563
+> 15 0 21 4390 topology 4634 564
+> 16 0 21 4390 topology 4794 564
+> 15 0 27 4390 topology 4632 565
+> 16 0 27 4390 topology 4634 565
+> 15 0 26 4390 topology 4794 566
+> 16 0 26 4390 topology 4792 566
+> 15 0 26 4390 topology 4634 567
+> 16 0 26 4390 topology 4796 567
+> 15 0 24 3794 topology 3907 568
+> 16 0 24 3794 topology 3916 568
+> 15 0 23 3794 topology 3870 569
+> 16 0 23 3794 topology 3871 569
+> 15 0 24 3794 topology 3796 570
+> 16 0 24 3794 topology 3916 570
+> 15 0 23 3794 topology 3849 571
+> 16 0 23 3794 topology 3850 571
+> 15 0 23 3794 topology 3903 572
+> 16 0 23 3794 topology 3904 572
+> 15 0 24 3794 topology 3808 573
+> 16 0 24 3794 topology 3916 573
+> 15 0 24 3794 topology 3854 574
+> 16 0 24 3794 topology 3916 574
+> 15 0 24 3794 topology 3830 575
+> 16 0 24 3794 topology 3916 575
+> 15 0 23 3794 topology 3828 576
+> 16 0 23 3794 topology 3830 576
+> 15 0 23 3794 topology 3882 577
+> 16 0 23 3794 topology 3884 577
+> 15 0 24 3794 topology 3914 578
+> 16 0 24 3794 topology 3916 578
+> 15 0 24 3794 topology 3890 579
+> 16 0 24 3794 topology 3916 579
+> 15 0 24 3794 topology 3820 580
+> 16 0 24 3794 topology 3916 580
+> 15 0 24 3794 topology 3866 581
+> 16 0 24 3794 topology 3916 581
+> 15 0 24 3794 topology 3842 582
+> 16 0 24 3794 topology 3916 582
+> 15 0 23 3794 topology 3861 583
+> 16 0 23 3794 topology 3863 583
+> 15 0 24 3794 topology 3902 584
+> 16 0 24 3794 topology 3916 584
+> 15 0 24 3794 topology 3878 585
+> 16 0 24 3794 topology 3916 585
+> 15 0 23 3794 topology 3840 586
+> 16 0 23 3794 topology 3842 586
+> 15 0 23 3794 topology 3894 587
+> 16 0 23 3794 topology 3896 587
+> 15 0 23 3794 topology 3873 588
+> 16 0 23 3794 topology 3875 588
+> 15 0 23 3794 topology 3828 589
+> 16 0 23 3794 topology 3829 589
+> 15 0 24 3794 topology 3832 590
+> 16 0 24 3794 topology 3916 590
+> 15 0 23 3794 topology 3882 591
+> 16 0 23 3794 topology 3883 591
+> 15 0 24 3794 topology 3862 592
+> 16 0 24 3794 topology 3916 592
+> 15 0 24 3794 topology 3803 593
+> 16 0 24 3794 topology 3916 593
+> 15 0 24 3794 topology 3892 594
+> 16 0 24 3794 topology 3916 594
+> 15 0 23 3794 topology 3906 595
+> 16 0 23 3794 topology 3908 595
+> 15 0 24 3794 topology 3844 596
+> 16 0 24 3794 topology 3916 596
+> 15 0 23 3794 topology 3861 597
+> 16 0 23 3794 topology 3862 597
+> 15 0 24 3794 topology 3874 598
+> 16 0 24 3794 topology 3916 598
+> 15 0 24 3794 topology 3815 599
+> 16 0 24 3794 topology 3916 599
+> 15 0 24 3794 topology 3904 600
+> 16 0 24 3794 topology 3916 600
+> 15 0 23 3794 topology 3840 601
+> 16 0 23 3794 topology 3841 601
+> 15 0 23 3794 topology 3894 602
+> 16 0 23 3794 topology 3895 602
+> 15 0 23 3794 topology 3873 603
+> 16 0 23 3794 topology 3874 603
+> 15 0 24 3794 topology 3805 604
+> 16 0 24 3794 topology 3916 604
+> 15 0 23 3794 topology 3906 605
+> 16 0 23 3794 topology 3907 605
+> 15 0 23 3794 topology 3798 606
+> 16 0 23 3794 topology 3800 606
+> 15 0 23 3794 topology 3825 607
+> 16 0 23 3794 topology 3827 607
+> 15 0 24 3794 topology 3857 608
+> 16 0 24 3794 topology 3916 608
+> 15 0 24 3794 topology 3833 609
+> 16 0 24 3794 topology 3916 609
+> 15 0 25 3794 topology 3915 610
+> 16 0 25 3794 topology 3916 610
+> 15 0 24 3794 topology 3817 611
+> 16 0 24 3794 topology 3916 611
+> 15 0 23 3794 topology 3804 612
+> 16 0 23 3794 topology 3806 612
+> 15 0 23 3794 topology 3858 613
+> 16 0 23 3794 topology 3860 613
+> 15 0 24 3794 topology 3893 614
+> 16 0 24 3794 topology 3916 614
+> 15 0 23 3794 topology 3912 615
+> 16 0 23 3794 topology 3914 615
+> 15 0 24 3794 topology 3869 616
+> 16 0 24 3794 topology 3916 616
+> 15 0 24 3794 topology 3845 617
+> 16 0 24 3794 topology 3916 617
+> 15 0 23 3794 topology 3810 618
+> 16 0 23 3794 topology 3812 618
+> 15 0 23 3794 topology 3837 619
+> 16 0 23 3794 topology 3839 619
+> 15 0 23 3794 topology 3891 620
+> 16 0 23 3794 topology 3893 620
+> 15 0 24 3794 topology 3905 621
+> 16 0 24 3794 topology 3916 621
+> 15 0 24 3794 topology 3881 622
+> 16 0 24 3794 topology 3916 622
+> 15 0 23 3794 topology 3816 623
+> 16 0 23 3794 topology 3818 623
+> 15 0 23 3794 topology 3870 624
+> 16 0 23 3794 topology 3872 624
+> 15 0 23 3794 topology 3852 625
+> 16 0 23 3794 topology 3853 625
+> 15 0 24 3794 topology 3829 626
+> 16 0 24 3794 topology 3916 626
+> 15 0 24 3794 topology 3859 627
+> 16 0 24 3794 topology 3916 627
+> 15 0 23 3794 topology 3849 628
+> 16 0 23 3794 topology 3851 628
+> 15 0 24 3794 topology 3889 629
+> 16 0 24 3794 topology 3916 629
+> 15 0 23 3794 topology 3903 630
+> 16 0 23 3794 topology 3905 630
+> 15 0 23 3794 topology 3831 631
+> 16 0 23 3794 topology 3832 631
+> 15 0 23 3794 topology 3885 632
+> 16 0 23 3794 topology 3886 632
+> 15 0 24 3794 topology 3806 633
+> 16 0 24 3794 topology 3916 633
+> 15 0 24 3794 topology 3841 634
+> 16 0 24 3794 topology 3916 634
+> 15 0 24 3794 topology 3871 635
+> 16 0 24 3794 topology 3916 635
+> 15 0 24 3794 topology 3901 636
+> 16 0 24 3794 topology 3916 636
+> 15 0 23 3794 topology 3864 637
+> 16 0 23 3794 topology 3865 637
+> 15 0 24 3794 topology 3818 638
+> 16 0 24 3794 topology 3916 638
+> 15 0 23 3794 topology 3843 639
+> 16 0 23 3794 topology 3844 639
+> 15 0 23 3794 topology 3897 640
+> 16 0 23 3794 topology 3898 640
+> 15 0 23 3794 topology 3876 641
+> 16 0 23 3794 topology 3877 641
+> 15 0 24 3794 topology 3802 642
+> 16 0 24 3794 topology 3916 642
+> 15 0 23 3794 topology 3822 643
+> 16 0 23 3794 topology 3824 643
+> 15 0 24 3794 topology 3824 644
+> 16 0 24 3794 topology 3916 644
+> 15 0 24 3794 topology 3884 645
+> 16 0 24 3794 topology 3916 645
+> 15 0 23 3794 topology 3909 646
+> 16 0 23 3794 topology 3910 646
+> 15 0 24 3794 topology 3814 647
+> 16 0 24 3794 topology 3916 647
+> 15 0 23 3794 topology 3855 648
+> 16 0 23 3794 topology 3857 648
+> 15 0 24 3794 topology 3860 649
+> 16 0 24 3794 topology 3916 649
+> 15 0 24 3794 topology 3836 650
+> 16 0 24 3794 topology 3916 650
+> 15 0 24 3794 topology 3896 651
+> 16 0 24 3794 topology 3916 651
+> 15 0 23 3794 topology 3834 652
+> 16 0 23 3794 topology 3836 652
+> 15 0 24 3794 topology 3872 653
+> 16 0 24 3794 topology 3916 653
+> 15 0 23 3794 topology 3888 654
+> 16 0 23 3794 topology 3890 654
+> 15 0 24 3794 topology 3848 655
+> 16 0 24 3794 topology 3916 655
+> 15 0 24 3794 topology 3908 656
 > 16 0 24 3794 topology 3916 656
-> 15 0 23 3794 topology 3885 657
-> 16 0 23 3794 topology 3886 657
-> 15 0 24 3794 topology 3886 658
-> 16 0 24 3794 topology 3916 658
-> 15 0 23 3794 topology 3837 659
-> 16 0 23 3794 topology 3838 659
-> 15 0 24 3794 topology 3838 660
-> 16 0 24 3794 topology 3916 660
-> 15 0 23 3794 topology 3867 661
-> 16 0 23 3794 topology 3868 661
-> 15 0 24 3794 topology 3868 662
-> 16 0 24 3794 topology 3916 662
-> 15 0 23 3794 topology 3897 663
-> 16 0 23 3794 topology 3898 663
-> 15 0 24 3794 topology 3898 664
-> 16 0 24 3794 topology 3916 664
-> 15 0 23 3794 topology 3849 665
-> 16 0 23 3794 topology 3850 665
-> 15 0 24 3794 topology 3850 666
-> 16 0 24 3794 topology 3916 666
-> 15 0 23 3794 topology 3879 667
-> 16 0 23 3794 topology 3880 667
-> 15 0 24 3794 topology 3880 668
+> 15 0 23 3794 topology 3867 657
+> 16 0 23 3794 topology 3869 657
+> 15 0 23 3794 topology 3795 658
+> 16 0 23 3794 topology 3796 658
+> 15 0 23 3794 topology 3822 659
+> 16 0 23 3794 topology 3823 659
+> 15 0 23 3794 topology 3798 660
+> 16 0 23 3794 topology 3799 660
+> 15 0 24 3794 topology 3826 661
+> 16 0 24 3794 topology 3916 661
+> 15 0 23 3794 topology 3846 662
+> 16 0 23 3794 topology 3848 662
+> 15 0 24 3794 topology 3856 663
+> 16 0 24 3794 topology 3916 663
+> 15 0 23 3794 topology 3900 664
+> 16 0 23 3794 topology 3902 664
+> 15 0 24 3794 topology 3797 665
+> 16 0 24 3794 topology 3916 665
+> 15 0 23 3794 topology 3801 666
+> 16 0 23 3794 topology 3802 666
+> 15 0 23 3794 topology 3855 667
+> 16 0 23 3794 topology 3856 667
+> 15 0 24 3794 topology 3886 668
 > 16 0 24 3794 topology 3916 668
-> 15 0 23 3794 topology 3909 669
-> 16 0 23 3794 topology 3910 669
-> 15 0 24 3794 topology 3910 670
+> 15 0 23 3794 topology 3804 669
+> 16 0 23 3794 topology 3805 669
+> 15 0 24 3794 topology 3838 670
 > 16 0 24 3794 topology 3916 670
-> 15 0 23 3794 topology 3798 671
-> 16 0 23 3794 topology 3799 671
-> 15 0 24 3794 topology 3799 672
-> 16 0 24 3794 topology 3916 672
-> 15 0 23 3794 topology 3810 673
-> 16 0 23 3794 topology 3811 673
-> 15 0 24 3794 topology 3811 674
+> 15 0 24 3794 topology 3868 671
+> 16 0 24 3794 topology 3916 671
+> 15 0 23 3794 topology 3879 672
+> 16 0 23 3794 topology 3881 672
+> 15 0 23 3794 topology 3807 673
+> 16 0 23 3794 topology 3808 673
+> 15 0 24 3794 topology 3809 674
 > 16 0 24 3794 topology 3916 674
-> 15 0 23 3794 topology 3822 675
-> 16 0 23 3794 topology 3823 675
-> 15 0 24 3794 topology 3823 676
-> 16 0 24 3794 topology 3916 676
-> 15 0 23 3794 topology 3852 677
-> 16 0 23 3794 topology 3853 677
-> 15 0 24 3794 topology 3853 678
-> 16 0 24 3794 topology 3916 678
-> 15 0 23 3794 topology 3882 679
-> 16 0 23 3794 topology 3883 679
-> 15 0 24 3794 topology 3883 680
+> 15 0 23 3794 topology 3834 675
+> 16 0 23 3794 topology 3835 675
+> 15 0 23 3794 topology 3888 676
+> 16 0 23 3794 topology 3889 676
+> 15 0 24 3794 topology 3898 677
+> 16 0 24 3794 topology 3916 677
+> 15 0 23 3794 topology 3810 678
+> 16 0 23 3794 topology 3811 678
+> 15 0 24 3794 topology 3850 679
+> 16 0 24 3794 topology 3916 679
+> 15 0 24 3794 topology 3880 680
 > 16 0 24 3794 topology 3916 680
-> 15 0 23 3794 topology 3912 681
-> 16 0 23 3794 topology 3913 681
-> 15 0 24 3794 topology 3913 682
+> 15 0 23 3794 topology 3813 681
+> 16 0 23 3794 topology 3814 681
+> 15 0 24 3794 topology 3821 682
 > 16 0 24 3794 topology 3916 682
-> 15 0 23 3794 topology 3834 683
-> 16 0 23 3794 topology 3835 683
-> 15 0 24 3794 topology 3835 684
+> 15 0 23 3794 topology 3867 683
+> 16 0 23 3794 topology 3868 683
+> 15 0 24 3794 topology 3910 684
 > 16 0 24 3794 topology 3916 684
-> 15 0 23 3794 topology 3864 685
-> 16 0 23 3794 topology 3865 685
-> 15 0 24 3794 topology 3865 686
-> 16 0 24 3794 topology 3916 686
-> 15 0 23 3794 topology 3894 687
-> 16 0 23 3794 topology 3895 687
-> 15 0 24 3794 topology 3895 688
-> 16 0 24 3794 topology 3916 688
-> 15 0 23 3794 topology 3846 689
-> 16 0 23 3794 topology 3847 689
-> 15 0 24 3794 topology 3847 690
-> 16 0 24 3794 topology 3916 690
-> 15 0 23 3794 topology 3876 691
-> 16 0 23 3794 topology 3877 691
-> 15 0 24 3794 topology 3877 692
+> 15 0 23 3794 topology 3816 685
+> 16 0 23 3794 topology 3817 685
+> 15 0 23 3794 topology 3819 686
+> 16 0 23 3794 topology 3820 686
+> 15 0 23 3794 topology 3846 687
+> 16 0 23 3794 topology 3847 687
+> 15 0 23 3794 topology 3900 688
+> 16 0 23 3794 topology 3901 688
+> 15 0 24 3794 topology 3799 689
+> 16 0 24 3794 topology 3916 689
+> 15 0 23 3794 topology 3795 690
+> 16 0 23 3794 topology 3797 690
+> 15 0 23 3794 topology 3879 691
+> 16 0 23 3794 topology 3880 691
+> 15 0 24 3794 topology 3827 692
 > 16 0 24 3794 topology 3916 692
-> 15 0 23 3794 topology 3906 693
-> 16 0 23 3794 topology 3907 693
-> 15 0 24 3794 topology 3907 694
+> 15 0 23 3794 topology 3852 693
+> 16 0 23 3794 topology 3854 693
+> 15 0 24 3794 topology 3811 694
 > 16 0 24 3794 topology 3916 694
-> 15 0 23 3794 topology 3795 695
-> 16 0 23 3794 topology 3796 695
-> 15 0 24 3794 topology 3796 696
+> 15 0 23 3794 topology 3801 695
+> 16 0 23 3794 topology 3803 695
+> 15 0 24 3794 topology 3887 696
 > 16 0 24 3794 topology 3916 696
-> 15 0 23 3794 topology 3807 697
-> 16 0 23 3794 topology 3808 697
-> 15 0 24 3794 topology 3808 698
-> 16 0 24 3794 topology 3916 698
-> 15 0 23 3794 topology 3819 699
-> 16 0 23 3794 topology 3820 699
-> 15 0 24 3794 topology 3820 700
-> 16 0 24 3794 topology 3916 700
-> 15 0 23 3794 topology 3831 701
-> 16 0 23 3794 topology 3832 701
-> 15 0 24 3794 topology 3832 702
+> 15 0 24 3794 topology 3863 697
+> 16 0 24 3794 topology 3916 697
+> 15 0 23 3794 topology 3831 698
+> 16 0 23 3794 topology 3833 698
+> 15 0 24 3794 topology 3839 699
+> 16 0 24 3794 topology 3916 699
+> 15 0 23 3794 topology 3885 700
+> 16 0 23 3794 topology 3887 700
+> 15 0 23 3794 topology 3807 701
+> 16 0 23 3794 topology 3809 701
+> 15 0 24 3794 topology 3899 702
 > 16 0 24 3794 topology 3916 702
-> 15 0 23 3794 topology 3861 703
-> 16 0 23 3794 topology 3862 703
-> 15 0 24 3794 topology 3862 704
+> 15 0 24 3794 topology 3875 703
+> 16 0 24 3794 topology 3916 703
+> 15 0 24 3794 topology 3851 704
 > 16 0 24 3794 topology 3916 704
-> 15 0 23 3794 topology 3891 705
-> 16 0 23 3794 topology 3892 705
-> 15 0 24 3794 topology 3892 706
-> 16 0 24 3794 topology 3916 706
-> 15 0 23 3794 topology 3843 707
-> 16 0 23 3794 topology 3844 707
-> 15 0 24 3794 topology 3844 708
+> 15 0 23 3794 topology 3864 705
+> 16 0 23 3794 topology 3866 705
+> 15 0 23 3794 topology 3813 706
+> 16 0 23 3794 topology 3815 706
+> 15 0 24 3794 topology 3911 707
+> 16 0 24 3794 topology 3916 707
+> 15 0 24 3794 topology 3823 708
 > 16 0 24 3794 topology 3916 708
-> 15 0 23 3794 topology 3873 709
-> 16 0 23 3794 topology 3874 709
-> 15 0 24 3794 topology 3874 710
-> 16 0 24 3794 topology 3916 710
-> 15 0 23 3794 topology 3903 711
-> 16 0 23 3794 topology 3904 711
-> 15 0 24 3794 topology 3904 712
+> 15 0 23 3794 topology 3843 709
+> 16 0 23 3794 topology 3845 709
+> 15 0 23 3794 topology 3897 710
+> 16 0 23 3794 topology 3899 710
+> 15 0 23 3794 topology 3825 711
+> 16 0 23 3794 topology 3826 711
+> 15 0 24 3794 topology 3853 712
 > 16 0 24 3794 topology 3916 712
-> 15 0 23 3794 topology 3804 713
-> 16 0 23 3794 topology 3805 713
-> 15 0 24 3794 topology 3805 714
+> 15 0 23 3794 topology 3819 713
+> 16 0 23 3794 topology 3821 713
+> 15 0 24 3794 topology 3883 714
 > 16 0 24 3794 topology 3916 714
-> 15 0 23 3794 topology 3816 715
-> 16 0 23 3794 topology 3817 715
-> 15 0 24 3794 topology 3817 716
+> 15 0 24 3794 topology 3913 715
+> 16 0 24 3794 topology 3916 715
+> 15 0 24 3794 topology 3800 716
 > 16 0 24 3794 topology 3916 716
-> 15 0 23 3794 topology 3828 717
-> 16 0 23 3794 topology 3829 717
-> 15 0 24 3794 topology 3829 718
-> 16 0 24 3794 topology 3916 718
+> 15 0 24 3794 topology 3835 717
+> 16 0 24 3794 topology 3916 717
+> 15 0 23 3794 topology 3876 718
+> 16 0 23 3794 topology 3878 718
 > 15 0 23 3794 topology 3858 719
 > 16 0 23 3794 topology 3859 719
-> 15 0 24 3794 topology 3859 720
+> 15 0 24 3794 topology 3865 720
 > 16 0 24 3794 topology 3916 720
-> 15 0 23 3794 topology 3888 721
-> 16 0 23 3794 topology 3889 721
-> 15 0 24 3794 topology 3889 722
+> 15 0 23 3794 topology 3912 721
+> 16 0 23 3794 topology 3913 721
+> 15 0 24 3794 topology 3895 722
 > 16 0 24 3794 topology 3916 722
-> 15 0 23 3794 topology 3840 723
-> 16 0 23 3794 topology 3841 723
-> 15 0 24 3794 topology 3841 724
+> 15 0 24 3794 topology 3812 723
+> 16 0 24 3794 topology 3916 723
+> 15 0 24 3794 topology 3847 724
 > 16 0 24 3794 topology 3916 724
-> 15 0 23 3794 topology 3870 725
-> 16 0 23 3794 topology 3871 725
-> 15 0 24 3794 topology 3871 726
-> 16 0 24 3794 topology 3916 726
-> 15 0 23 3794 topology 3900 727
-> 16 0 23 3794 topology 3901 727
-> 15 0 24 3794 topology 3901 728
-> 16 0 24 3794 topology 3916 728
-> 15 0 23 3416 topology 3462 729
-> 16 0 23 3416 topology 3463 729
-> 15 0 24 3416 topology 3463 730
-> 16 0 24 3416 topology 3610 730
-> 15 0 24 3416 topology 3610 731
-> 16 0 24 3416 topology 3572 731
-> 15 0 25 3416 topology 3572 732
-> 16 0 25 3416 topology 3570 732
-> 15 0 24 3416 topology 3610 733
-> 16 0 24 3416 topology 3494 733
-> 15 0 25 3416 topology 3494 734
-> 16 0 25 3416 topology 3492 734
-> 15 0 24 3416 topology 3610 735
-> 16 0 24 3416 topology 3602 735
-> 15 0 25 3416 topology 3602 736
-> 16 0 25 3416 topology 3600 736
-> 15 0 24 3416 topology 3610 737
-> 16 0 24 3416 topology 3524 737
-> 15 0 25 3416 topology 3524 738
-> 16 0 25 3416 topology 3522 738
-> 15 0 24 3416 topology 3610 739
-> 16 0 24 3416 topology 3554 739
-> 15 0 25 3416 topology 3554 740
-> 16 0 25 3416 topology 3552 740
-> 15 0 24 3416 topology 3610 741
-> 16 0 24 3416 topology 3584 741
-> 15 0 25 3416 topology 3584 742
-> 16 0 25 3416 topology 3582 742
-> 15 0 24 3416 topology 3610 743
-> 16 0 24 3416 topology 3425 743
-> 15 0 25 3416 topology 3425 744
-> 16 0 25 3416 topology 3423 744
-> 15 0 24 3416 topology 3610 745
-> 16 0 24 3416 topology 3437 745
-> 15 0 25 3416 topology 3437 746
-> 16 0 25 3416 topology 3435 746
-> 15 0 24 3416 topology 3610 747
-> 16 0 24 3416 topology 3449 747
-> 15 0 25 3416 topology 3449 748
-> 16 0 25 3416 topology 3447 748
-> 15 0 24 3416 topology 3610 749
-> 16 0 24 3416 topology 3479 749
-> 15 0 25 3416 topology 3479 750
-> 16 0 25 3416 topology 3477 750
-> 15 0 24 3416 topology 3610 751
-> 16 0 24 3416 topology 3509 751
-> 15 0 25 3416 topology 3509 752
-> 16 0 25 3416 topology 3507 752
-> 15 0 24 3416 topology 3610 753
-> 16 0 24 3416 topology 3539 753
-> 15 0 25 3416 topology 3539 754
-> 16 0 25 3416 topology 3537 754
-> 15 0 24 3416 topology 3610 755
-> 16 0 24 3416 topology 3461 755
-> 15 0 25 3416 topology 3461 756
-> 16 0 25 3416 topology 3459 756
-> 15 0 24 3416 topology 3610 757
-> 16 0 24 3416 topology 3569 757
-> 15 0 25 3416 topology 3569 758
-> 16 0 25 3416 topology 3567 758
-> 15 0 24 3416 topology 3610 759
-> 16 0 24 3416 topology 3491 759
-> 15 0 25 3416 topology 3491 760
-> 16 0 25 3416 topology 3489 760
-> 15 0 24 3416 topology 3610 761
-> 16 0 24 3416 topology 3599 761
-> 15 0 25 3416 topology 3599 762
-> 16 0 25 3416 topology 3597 762
-> 15 0 24 3416 topology 3610 763
-> 16 0 24 3416 topology 3521 763
-> 15 0 25 3416 topology 3521 764
-> 16 0 25 3416 topology 3519 764
-> 15 0 24 3416 topology 3610 765
-> 16 0 24 3416 topology 3551 765
-> 15 0 25 3416 topology 3551 766
-> 16 0 25 3416 topology 3549 766
-> 15 0 24 3416 topology 3610 767
-> 16 0 24 3416 topology 3473 767
-> 15 0 25 3416 topology 3473 768
-> 16 0 25 3416 topology 3471 768
-> 15 0 24 3416 topology 3610 769
-> 16 0 24 3416 topology 3581 769
-> 15 0 25 3416 topology 3581 770
-> 16 0 25 3416 topology 3579 770
-> 15 0 24 3416 topology 3610 771
-> 16 0 24 3416 topology 3503 771
-> 15 0 25 3416 topology 3503 772
-> 16 0 25 3416 topology 3501 772
-> 15 0 24 3416 topology 3610 773
-> 16 0 24 3416 topology 3533 773
-> 15 0 25 3416 topology 3533 774
-> 16 0 25 3416 topology 3531 774
-> 15 0 24 3416 topology 3610 775
-> 16 0 24 3416 topology 3563 775
-> 15 0 25 3416 topology 3563 776
-> 16 0 25 3416 topology 3561 776
-> 15 0 24 3416 topology 3610 777
-> 16 0 24 3416 topology 3593 777
-> 15 0 25 3416 topology 3593 778
-> 16 0 25 3416 topology 3591 778
-> 15 0 24 3416 topology 3610 779
-> 16 0 24 3416 topology 3422 779
-> 15 0 25 3416 topology 3422 780
-> 16 0 25 3416 topology 3420 780
-> 15 0 24 3416 topology 3610 781
-> 16 0 24 3416 topology 3434 781
-> 15 0 25 3416 topology 3434 782
-> 16 0 25 3416 topology 3432 782
-> 15 0 24 3416 topology 3610 783
-> 16 0 24 3416 topology 3446 783
-> 15 0 25 3416 topology 3446 784
-> 16 0 25 3416 topology 3444 784
-> 15 0 24 3416 topology 3610 785
-> 16 0 24 3416 topology 3476 785
-> 15 0 25 3416 topology 3476 786
-> 16 0 25 3416 topology 3474 786
-> 15 0 26 3416 topology 3610 787
-> 16 0 26 3416 topology 3609 787
-> 15 0 24 3416 topology 3610 788
-> 16 0 24 3416 topology 3506 788
-> 15 0 25 3416 topology 3506 789
-> 16 0 25 3416 topology 3504 789
-> 15 0 24 3416 topology 3610 790
-> 16 0 24 3416 topology 3536 790
-> 15 0 25 3416 topology 3536 791
-> 16 0 25 3416 topology 3534 791
-> 15 0 24 3416 topology 3610 792
-> 16 0 24 3416 topology 3458 792
-> 15 0 25 3416 topology 3458 793
-> 16 0 25 3416 topology 3456 793
-> 15 0 24 3416 topology 3610 794
-> 16 0 24 3416 topology 3566 794
-> 15 0 25 3416 topology 3566 795
-> 16 0 25 3416 topology 3564 795
-> 15 0 24 3416 topology 3610 796
-> 16 0 24 3416 topology 3488 796
-> 15 0 25 3416 topology 3488 797
-> 16 0 25 3416 topology 3486 797
-> 15 0 24 3416 topology 3610 798
-> 16 0 24 3416 topology 3596 798
-> 15 0 25 3416 topology 3596 799
-> 16 0 25 3416 topology 3594 799
-> 15 0 24 3416 topology 3610 800
-> 16 0 24 3416 topology 3518 800
-> 15 0 25 3416 topology 3518 801
-> 16 0 25 3416 topology 3516 801
-> 15 0 24 3416 topology 3610 802
-> 16 0 24 3416 topology 3548 802
-> 15 0 25 3416 topology 3548 803
-> 16 0 25 3416 topology 3546 803
-> 15 0 24 3416 topology 3610 804
-> 16 0 24 3416 topology 3470 804
-> 15 0 25 3416 topology 3470 805
-> 16 0 25 3416 topology 3468 805
-> 15 0 24 3416 topology 3610 806
-> 16 0 24 3416 topology 3578 806
-> 15 0 25 3416 topology 3578 807
-> 16 0 25 3416 topology 3576 807
-> 15 0 24 3416 topology 3610 808
-> 16 0 24 3416 topology 3500 808
-> 15 0 25 3416 topology 3500 809
-> 16 0 25 3416 topology 3498 809
-> 15 0 24 3416 topology 3610 810
-> 16 0 24 3416 topology 3608 810
-> 15 0 25 3416 topology 3608 811
-> 16 0 25 3416 topology 3606 811
-> 15 0 24 3416 topology 3610 812
-> 16 0 24 3416 topology 3530 812
-> 15 0 25 3416 topology 3530 813
-> 16 0 25 3416 topology 3528 813
-> 15 0 24 3416 topology 3610 814
-> 16 0 24 3416 topology 3560 814
-> 15 0 25 3416 topology 3560 815
-> 16 0 25 3416 topology 3558 815
-> 15 0 24 3416 topology 3610 816
-> 16 0 24 3416 topology 3590 816
-> 15 0 25 3416 topology 3590 817
-> 16 0 25 3416 topology 3588 817
-> 15 0 24 3416 topology 3610 818
-> 16 0 24 3416 topology 3419 818
-> 15 0 25 3416 topology 3419 819
-> 16 0 25 3416 topology 3417 819
-> 15 0 24 3416 topology 3610 820
-> 16 0 24 3416 topology 3431 820
-> 15 0 25 3416 topology 3431 821
-> 16 0 25 3416 topology 3429 821
-> 15 0 24 3416 topology 3610 822
-> 16 0 24 3416 topology 3443 822
-> 15 0 25 3416 topology 3443 823
-> 16 0 25 3416 topology 3441 823
-> 15 0 24 3416 topology 3610 824
-> 16 0 24 3416 topology 3455 824
-> 15 0 25 3416 topology 3455 825
-> 16 0 25 3416 topology 3453 825
-> 15 0 24 3416 topology 3610 826
-> 16 0 24 3416 topology 3485 826
-> 15 0 25 3416 topology 3485 827
-> 16 0 25 3416 topology 3483 827
-> 15 0 24 3416 topology 3610 828
-> 16 0 24 3416 topology 3515 828
-> 15 0 25 3416 topology 3515 829
-> 16 0 25 3416 topology 3513 829
-> 15 0 24 3416 topology 3610 830
-> 16 0 24 3416 topology 3545 830
-> 15 0 25 3416 topology 3545 831
-> 16 0 25 3416 topology 3543 831
-> 15 0 24 3416 topology 3610 832
-> 16 0 24 3416 topology 3467 832
-> 15 0 25 3416 topology 3467 833
-> 16 0 25 3416 topology 3465 833
-> 15 0 24 3416 topology 3610 834
-> 16 0 24 3416 topology 3575 834
-> 15 0 25 3416 topology 3575 835
-> 16 0 25 3416 topology 3573 835
-> 15 0 24 3416 topology 3610 836
-> 16 0 24 3416 topology 3497 836
-> 15 0 25 3416 topology 3497 837
-> 16 0 25 3416 topology 3495 837
-> 15 0 24 3416 topology 3610 838
-> 16 0 24 3416 topology 3605 838
-> 15 0 25 3416 topology 3605 839
-> 16 0 25 3416 topology 3603 839
-> 15 0 24 3416 topology 3610 840
-> 16 0 24 3416 topology 3527 840
-> 15 0 25 3416 topology 3527 841
-> 16 0 25 3416 topology 3525 841
-> 15 0 24 3416 topology 3610 842
-> 16 0 24 3416 topology 3557 842
-> 15 0 25 3416 topology 3557 843
-> 16 0 25 3416 topology 3555 843
-> 15 0 24 3416 topology 3610 844
-> 16 0 24 3416 topology 3587 844
-> 15 0 25 3416 topology 3587 845
-> 16 0 25 3416 topology 3585 845
-> 15 0 24 3416 topology 3610 846
-> 16 0 24 3416 topology 3428 846
-> 15 0 25 3416 topology 3428 847
-> 16 0 25 3416 topology 3426 847
-> 15 0 24 3416 topology 3610 848
-> 16 0 24 3416 topology 3440 848
-> 15 0 25 3416 topology 3440 849
-> 16 0 25 3416 topology 3438 849
-> 15 0 24 3416 topology 3610 850
-> 16 0 24 3416 topology 3452 850
-> 15 0 25 3416 topology 3452 851
-> 16 0 25 3416 topology 3450 851
-> 15 0 24 3416 topology 3610 852
-> 16 0 24 3416 topology 3482 852
-> 15 0 25 3416 topology 3482 853
-> 16 0 25 3416 topology 3480 853
-> 15 0 24 3416 topology 3610 854
-> 16 0 24 3416 topology 3512 854
-> 15 0 25 3416 topology 3512 855
-> 16 0 25 3416 topology 3510 855
-> 15 0 24 3416 topology 3610 856
-> 16 0 24 3416 topology 3542 856
-> 15 0 25 3416 topology 3542 857
-> 16 0 25 3416 topology 3540 857
-> 15 0 23 3416 topology 3570 858
-> 16 0 23 3416 topology 3571 858
-> 15 0 24 3416 topology 3571 859
+> 15 0 23 3794 topology 3909 725
+> 16 0 23 3794 topology 3911 725
+> 15 0 23 3794 topology 3837 726
+> 16 0 23 3794 topology 3838 726
+> 15 0 24 3794 topology 3877 727
+> 16 0 24 3794 topology 3916 727
+> 15 0 23 3794 topology 3891 728
+> 16 0 23 3794 topology 3892 728
+> 15 0 23 3416 topology 3501 729
+> 16 0 23 3416 topology 3502 729
+> 15 0 23 3416 topology 3555 730
+> 16 0 23 3416 topology 3556 730
+> 15 0 23 3416 topology 3420 731
+> 16 0 23 3416 topology 3422 731
+> 15 0 23 3416 topology 3447 732
+> 16 0 23 3416 topology 3449 732
+> 15 0 24 3416 topology 3449 733
+> 16 0 24 3416 topology 3610 733
+> 15 0 24 3416 topology 3433 734
+> 16 0 24 3416 topology 3610 734
+> 15 0 23 3416 topology 3558 735
+> 16 0 23 3416 topology 3559 735
+> 15 0 23 3416 topology 3477 736
+> 16 0 23 3416 topology 3479 736
+> 15 0 24 3416 topology 3509 737
+> 16 0 24 3416 topology 3610 737
+> 15 0 24 3416 topology 3485 738
+> 16 0 24 3416 topology 3610 738
+> 15 0 23 3416 topology 3561 739
+> 16 0 23 3416 topology 3562 739
+> 15 0 23 3416 topology 3453 740
+> 16 0 23 3416 topology 3455 740
+> 15 0 24 3416 topology 3461 741
+> 16 0 24 3416 topology 3610 741
+> 15 0 23 3416 topology 3507 742
+> 16 0 23 3416 topology 3509 742
+> 15 0 24 3416 topology 3569 743
+> 16 0 24 3416 topology 3610 743
+> 15 0 24 3416 topology 3545 744
+> 16 0 24 3416 topology 3610 744
+> 15 0 23 3416 topology 3483 745
+> 16 0 23 3416 topology 3485 745
+> 15 0 24 3416 topology 3521 746
+> 16 0 24 3416 topology 3610 746
+> 15 0 23 3416 topology 3537 747
+> 16 0 23 3416 topology 3539 747
+> 15 0 24 3416 topology 3497 748
+> 16 0 24 3416 topology 3610 748
+> 15 0 24 3416 topology 3605 749
+> 16 0 24 3416 topology 3610 749
+> 15 0 23 3416 topology 3432 750
+> 16 0 23 3416 topology 3434 750
+> 15 0 23 3416 topology 3459 751
+> 16 0 23 3416 topology 3461 751
+> 15 0 24 3416 topology 3473 752
+> 16 0 24 3416 topology 3610 752
+> 15 0 23 3416 topology 3513 753
+> 16 0 23 3416 topology 3515 753
+> 15 0 23 3416 topology 3567 754
+> 16 0 23 3416 topology 3569 754
+> 15 0 24 3416 topology 3581 755
+> 16 0 24 3416 topology 3610 755
+> 15 0 24 3416 topology 3557 756
+> 16 0 24 3416 topology 3610 756
+> 15 0 23 3416 topology 3489 757
+> 16 0 23 3416 topology 3491 757
+> 15 0 24 3416 topology 3533 758
+> 16 0 24 3416 topology 3610 758
+> 15 0 23 3416 topology 3543 759
+> 16 0 23 3416 topology 3545 759
+> 15 0 23 3416 topology 3597 760
+> 16 0 23 3416 topology 3599 760
+> 15 0 24 3416 topology 3445 761
+> 16 0 24 3416 topology 3610 761
+> 15 0 23 3416 topology 3465 762
+> 16 0 23 3416 topology 3467 762
+> 15 0 23 3416 topology 3519 763
+> 16 0 23 3416 topology 3521 763
+> 15 0 23 3416 topology 3573 764
+> 16 0 23 3416 topology 3575 764
+> 15 0 24 3416 topology 3593 765
+> 16 0 24 3416 topology 3610 765
+> 15 0 23 3416 topology 3420 766
+> 16 0 23 3416 topology 3421 766
+> 15 0 24 3416 topology 3475 767
+> 16 0 24 3416 topology 3610 767
+> 15 0 23 3416 topology 3495 768
+> 16 0 23 3416 topology 3497 768
+> 15 0 24 3416 topology 3505 769
+> 16 0 24 3416 topology 3610 769
+> 15 0 23 3416 topology 3549 770
+> 16 0 23 3416 topology 3551 770
+> 15 0 23 3416 topology 3603 771
+> 16 0 23 3416 topology 3605 771
+> 15 0 25 3416 topology 3609 772
+> 16 0 25 3416 topology 3610 772
+> 15 0 24 3416 topology 3535 773
+> 16 0 24 3416 topology 3610 773
+> 15 0 24 3416 topology 3422 774
+> 16 0 24 3416 topology 3610 774
+> 15 0 24 3416 topology 3457 775
+> 16 0 24 3416 topology 3610 775
+> 15 0 23 3416 topology 3471 776
+> 16 0 23 3416 topology 3473 776
+> 15 0 23 3416 topology 3525 777
+> 16 0 23 3416 topology 3527 777
+> 15 0 24 3416 topology 3565 778
+> 16 0 24 3416 topology 3610 778
+> 15 0 23 3416 topology 3579 779
+> 16 0 23 3416 topology 3581 779
+> 15 0 24 3416 topology 3487 780
+> 16 0 24 3416 topology 3610 780
+> 15 0 24 3416 topology 3595 781
+> 16 0 24 3416 topology 3610 781
+> 15 0 23 3416 topology 3501 782
+> 16 0 23 3416 topology 3503 782
+> 15 0 24 3416 topology 3517 783
+> 16 0 24 3416 topology 3610 783
+> 15 0 23 3416 topology 3555 784
+> 16 0 23 3416 topology 3557 784
+> 15 0 24 3416 topology 3547 785
+> 16 0 24 3416 topology 3610 785
+> 15 0 24 3416 topology 3434 786
+> 16 0 24 3416 topology 3610 786
+> 15 0 24 3416 topology 3469 787
+> 16 0 24 3416 topology 3610 787
+> 15 0 23 3416 topology 3531 788
+> 16 0 23 3416 topology 3533 788
+> 15 0 24 3416 topology 3577 789
+> 16 0 24 3416 topology 3610 789
+> 15 0 23 3416 topology 3585 790
+> 16 0 23 3416 topology 3587 790
+> 15 0 23 3416 topology 3432 791
+> 16 0 23 3416 topology 3433 791
+> 15 0 24 3416 topology 3499 792
+> 16 0 24 3416 topology 3610 792
+> 15 0 24 3416 topology 3607 793
+> 16 0 24 3416 topology 3610 793
+> 15 0 24 3416 topology 3529 794
+> 16 0 24 3416 topology 3610 794
+> 15 0 23 3416 topology 3561 795
+> 16 0 23 3416 topology 3563 795
+> 15 0 24 3416 topology 3559 796
+> 16 0 24 3416 topology 3610 796
+> 15 0 24 3416 topology 3589 797
+> 16 0 24 3416 topology 3610 797
+> 15 0 23 3416 topology 3591 798
+> 16 0 23 3416 topology 3593 798
+> 15 0 24 3416 topology 3418 799
+> 16 0 24 3416 topology 3610 799
+> 15 0 24 3416 topology 3430 800
+> 16 0 24 3416 topology 3610 800
+> 15 0 24 3416 topology 3476 801
+> 16 0 24 3416 topology 3610 801
+> 15 0 24 3416 topology 3452 802
+> 16 0 24 3416 topology 3610 802
+> 15 0 23 3416 topology 3423 803
+> 16 0 23 3416 topology 3425 803
+> 15 0 24 3416 topology 3536 804
+> 16 0 24 3416 topology 3610 804
+> 15 0 24 3416 topology 3512 805
+> 16 0 24 3416 topology 3610 805
+> 15 0 24 3416 topology 3442 806
+> 16 0 24 3416 topology 3610 806
+> 15 0 24 3416 topology 3488 807
+> 16 0 24 3416 topology 3610 807
+> 15 0 24 3416 topology 3596 808
+> 16 0 24 3416 topology 3610 808
+> 15 0 24 3416 topology 3464 809
+> 16 0 24 3416 topology 3610 809
+> 15 0 24 3416 topology 3572 810
+> 16 0 24 3416 topology 3610 810
+> 15 0 24 3416 topology 3548 811
+> 16 0 24 3416 topology 3610 811
+> 15 0 24 3416 topology 3524 812
+> 16 0 24 3416 topology 3610 812
+> 15 0 24 3416 topology 3500 813
+> 16 0 24 3416 topology 3610 813
+> 15 0 24 3416 topology 3608 814
+> 16 0 24 3416 topology 3610 814
+> 15 0 24 3416 topology 3584 815
+> 16 0 24 3416 topology 3610 815
+> 15 0 23 3416 topology 3435 816
+> 16 0 23 3416 topology 3437 816
+> 15 0 24 3416 topology 3560 817
+> 16 0 24 3416 topology 3610 817
+> 15 0 23 3416 topology 3417 818
+> 16 0 23 3416 topology 3418 818
+> 15 0 23 3416 topology 3444 819
+> 16 0 23 3416 topology 3445 819
+> 15 0 23 3416 topology 3447 820
+> 16 0 23 3416 topology 3448 820
+> 15 0 23 3416 topology 3450 821
+> 16 0 23 3416 topology 3451 821
+> 15 0 24 3416 topology 3454 822
+> 16 0 24 3416 topology 3610 822
+> 15 0 23 3416 topology 3504 823
+> 16 0 23 3416 topology 3505 823
+> 15 0 24 3416 topology 3484 824
+> 16 0 24 3416 topology 3610 824
+> 15 0 24 3416 topology 3425 825
+> 16 0 24 3416 topology 3610 825
+> 15 0 23 3416 topology 3453 826
+> 16 0 23 3416 topology 3454 826
+> 15 0 23 3416 topology 3507 827
+> 16 0 23 3416 topology 3508 827
+> 15 0 24 3416 topology 3514 828
+> 16 0 24 3416 topology 3610 828
+> 15 0 24 3416 topology 3544 829
+> 16 0 24 3416 topology 3610 829
+> 15 0 23 3416 topology 3429 830
+> 16 0 23 3416 topology 3430 830
+> 15 0 23 3416 topology 3456 831
+> 16 0 23 3416 topology 3457 831
+> 15 0 24 3416 topology 3466 832
+> 16 0 24 3416 topology 3610 832
+> 15 0 23 3416 topology 3510 833
+> 16 0 23 3416 topology 3511 833
+> 15 0 23 3416 topology 3564 834
+> 16 0 23 3416 topology 3565 834
+> 15 0 24 3416 topology 3574 835
+> 16 0 24 3416 topology 3610 835
+> 15 0 24 3416 topology 3496 836
+> 16 0 24 3416 topology 3610 836
+> 15 0 24 3416 topology 3604 837
+> 16 0 24 3416 topology 3610 837
+> 15 0 24 3416 topology 3437 838
+> 16 0 24 3416 topology 3610 838
+> 15 0 23 3416 topology 3459 839
+> 16 0 23 3416 topology 3460 839
+> 15 0 23 3416 topology 3513 840
+> 16 0 23 3416 topology 3514 840
+> 15 0 24 3416 topology 3526 841
+> 16 0 24 3416 topology 3610 841
+> 15 0 23 3416 topology 3567 842
+> 16 0 23 3416 topology 3568 842
+> 15 0 24 3416 topology 3556 843
+> 16 0 24 3416 topology 3610 843
+> 15 0 23 3416 topology 3462 844
+> 16 0 23 3416 topology 3463 844
+> 15 0 23 3416 topology 3516 845
+> 16 0 23 3416 topology 3517 845
+> 15 0 23 3416 topology 3570 846
+> 16 0 23 3416 topology 3571 846
+> 15 0 24 3416 topology 3586 847
+> 16 0 24 3416 topology 3610 847
+> 15 0 23 3416 topology 3465 848
+> 16 0 23 3416 topology 3466 848
+> 15 0 23 3416 topology 3519 849
+> 16 0 23 3416 topology 3520 849
+> 15 0 23 3416 topology 3573 850
+> 16 0 23 3416 topology 3574 850
+> 15 0 23 3416 topology 3441 851
+> 16 0 23 3416 topology 3442 851
+> 15 0 23 3416 topology 3468 852
+> 16 0 23 3416 topology 3469 852
+> 15 0 23 3416 topology 3522 853
+> 16 0 23 3416 topology 3523 853
+> 15 0 23 3416 topology 3576 854
+> 16 0 23 3416 topology 3577 854
+> 15 0 23 3416 topology 3471 855
+> 16 0 23 3416 topology 3472 855
+> 15 0 23 3416 topology 3525 856
+> 16 0 23 3416 topology 3526 856
+> 15 0 23 3416 topology 3579 857
+> 16 0 23 3416 topology 3580 857
+> 15 0 23 3416 topology 3444 858
+> 16 0 23 3416 topology 3446 858
+> 15 0 24 3416 topology 3427 859
 > 16 0 24 3416 topology 3610 859
-> 15 0 24 3416 topology 3610 860
-> 16 0 24 3416 topology 3464 860
-> 15 0 25 3416 topology 3464 861
-> 16 0 25 3416 topology 3462 861
-> 15 0 23 3416 topology 3492 862
-> 16 0 23 3416 topology 3493 862
-> 15 0 24 3416 topology 3493 863
+> 15 0 23 3416 topology 3528 860
+> 16 0 23 3416 topology 3529 860
+> 15 0 23 3416 topology 3582 861
+> 16 0 23 3416 topology 3583 861
+> 15 0 23 3416 topology 3474 862
+> 16 0 23 3416 topology 3476 862
+> 15 0 24 3416 topology 3479 863
 > 16 0 24 3416 topology 3610 863
-> 15 0 23 3416 topology 3600 864
-> 16 0 23 3416 topology 3601 864
-> 15 0 24 3416 topology 3601 865
-> 16 0 24 3416 topology 3610 865
-> 15 0 23 3416 topology 3522 866
-> 16 0 23 3416 topology 3523 866
-> 15 0 24 3416 topology 3523 867
+> 15 0 23 3416 topology 3531 864
+> 16 0 23 3416 topology 3532 864
+> 15 0 23 3416 topology 3585 865
+> 16 0 23 3416 topology 3586 865
+> 15 0 23 3416 topology 3450 866
+> 16 0 23 3416 topology 3452 866
+> 15 0 24 3416 topology 3455 867
 > 16 0 24 3416 topology 3610 867
-> 15 0 23 3416 topology 3552 868
-> 16 0 23 3416 topology 3553 868
-> 15 0 24 3416 topology 3553 869
+> 15 0 23 3416 topology 3504 868
+> 16 0 23 3416 topology 3506 868
+> 15 0 24 3416 topology 3439 869
 > 16 0 24 3416 topology 3610 869
-> 15 0 23 3416 topology 3582 870
-> 16 0 23 3416 topology 3583 870
-> 15 0 24 3416 topology 3583 871
-> 16 0 24 3416 topology 3610 871
-> 15 0 23 3416 topology 3423 872
-> 16 0 23 3416 topology 3424 872
-> 15 0 24 3416 topology 3424 873
-> 16 0 24 3416 topology 3610 873
-> 15 0 23 3416 topology 3435 874
-> 16 0 23 3416 topology 3436 874
-> 15 0 24 3416 topology 3436 875
-> 16 0 24 3416 topology 3610 875
-> 15 0 23 3416 topology 3447 876
-> 16 0 23 3416 topology 3448 876
-> 15 0 24 3416 topology 3448 877
-> 16 0 24 3416 topology 3610 877
-> 15 0 23 3416 topology 3477 878
-> 16 0 23 3416 topology 3478 878
-> 15 0 24 3416 topology 3478 879
-> 16 0 24 3416 topology 3610 879
-> 15 0 23 3416 topology 3507 880
-> 16 0 23 3416 topology 3508 880
-> 15 0 24 3416 topology 3508 881
-> 16 0 24 3416 topology 3610 881
-> 15 0 23 3416 topology 3537 882
-> 16 0 23 3416 topology 3538 882
-> 15 0 24 3416 topology 3538 883
+> 15 0 24 3416 topology 3539 870
+> 16 0 24 3416 topology 3610 870
+> 15 0 23 3416 topology 3588 871
+> 16 0 23 3416 topology 3589 871
+> 15 0 23 3416 topology 3426 872
+> 16 0 23 3416 topology 3428 872
+> 15 0 23 3416 topology 3480 873
+> 16 0 23 3416 topology 3482 873
+> 15 0 24 3416 topology 3515 874
+> 16 0 24 3416 topology 3610 874
+> 15 0 23 3416 topology 3534 875
+> 16 0 23 3416 topology 3536 875
+> 15 0 24 3416 topology 3491 876
+> 16 0 24 3416 topology 3610 876
+> 15 0 23 3416 topology 3591 877
+> 16 0 23 3416 topology 3592 877
+> 15 0 24 3416 topology 3599 878
+> 16 0 24 3416 topology 3610 878
+> 15 0 23 3416 topology 3456 879
+> 16 0 23 3416 topology 3458 879
+> 15 0 24 3416 topology 3467 880
+> 16 0 24 3416 topology 3610 880
+> 15 0 23 3416 topology 3510 881
+> 16 0 23 3416 topology 3512 881
+> 15 0 23 3416 topology 3564 882
+> 16 0 23 3416 topology 3566 882
+> 15 0 24 3416 topology 3575 883
 > 16 0 24 3416 topology 3610 883
-> 15 0 23 3416 topology 3459 884
-> 16 0 23 3416 topology 3460 884
-> 15 0 24 3416 topology 3460 885
-> 16 0 24 3416 topology 3610 885
-> 15 0 23 3416 topology 3567 886
-> 16 0 23 3416 topology 3568 886
-> 15 0 24 3416 topology 3568 887
-> 16 0 24 3416 topology 3610 887
-> 15 0 23 3416 topology 3489 888
-> 16 0 23 3416 topology 3490 888
-> 15 0 24 3416 topology 3490 889
+> 15 0 24 3416 topology 3551 884
+> 16 0 24 3416 topology 3610 884
+> 15 0 23 3416 topology 3486 885
+> 16 0 23 3416 topology 3488 885
+> 15 0 24 3416 topology 3527 886
+> 16 0 24 3416 topology 3610 886
+> 15 0 23 3416 topology 3540 887
+> 16 0 23 3416 topology 3542 887
+> 15 0 23 3416 topology 3594 888
+> 16 0 23 3416 topology 3596 888
+> 15 0 24 3416 topology 3503 889
 > 16 0 24 3416 topology 3610 889
-> 15 0 23 3416 topology 3597 890
-> 16 0 23 3416 topology 3598 890
-> 15 0 24 3416 topology 3598 891
-> 16 0 24 3416 topology 3610 891
-> 15 0 23 3416 topology 3519 892
-> 16 0 23 3416 topology 3520 892
-> 15 0 24 3416 topology 3520 893
+> 15 0 23 3416 topology 3462 890
+> 16 0 23 3416 topology 3464 890
+> 15 0 23 3416 topology 3516 891
+> 16 0 23 3416 topology 3518 891
+> 15 0 23 3416 topology 3570 892
+> 16 0 23 3416 topology 3572 892
+> 15 0 24 3416 topology 3587 893
 > 16 0 24 3416 topology 3610 893
-> 15 0 23 3416 topology 3549 894
-> 16 0 23 3416 topology 3550 894
-> 15 0 24 3416 topology 3550 895
-> 16 0 24 3416 topology 3610 895
-> 15 0 23 3416 topology 3471 896
-> 16 0 23 3416 topology 3472 896
-> 15 0 24 3416 topology 3472 897
-> 16 0 24 3416 topology 3610 897
-> 15 0 23 3416 topology 3579 898
-> 16 0 23 3416 topology 3580 898
-> 15 0 24 3416 topology 3580 899
+> 15 0 24 3416 topology 3563 894
+> 16 0 24 3416 topology 3610 894
+> 15 0 23 3416 topology 3438 895
+> 16 0 23 3416 topology 3440 895
+> 15 0 23 3416 topology 3492 896
+> 16 0 23 3416 topology 3494 896
+> 15 0 23 3416 topology 3546 897
+> 16 0 23 3416 topology 3548 897
+> 15 0 23 3416 topology 3600 898
+> 16 0 23 3416 topology 3602 898
+> 15 0 24 3416 topology 3451 899
 > 16 0 24 3416 topology 3610 899
-> 15 0 23 3416 topology 3501 900
-> 16 0 23 3416 topology 3502 900
-> 15 0 24 3416 topology 3502 901
-> 16 0 24 3416 topology 3610 901
-> 15 0 23 3416 topology 3531 902
-> 16 0 23 3416 topology 3532 902
-> 15 0 24 3416 topology 3532 903
+> 15 0 23 3416 topology 3468 900
+> 16 0 23 3416 topology 3470 900
+> 15 0 23 3416 topology 3522 901
+> 16 0 23 3416 topology 3524 901
+> 15 0 23 3416 topology 3576 902
+> 16 0 23 3416 topology 3578 902
+> 15 0 24 3416 topology 3481 903
 > 16 0 24 3416 topology 3610 903
-> 15 0 23 3416 topology 3561 904
-> 16 0 23 3416 topology 3562 904
-> 15 0 24 3416 topology 3562 905
+> 15 0 23 3416 topology 3498 904
+> 16 0 23 3416 topology 3500 904
+> 15 0 24 3416 topology 3511 905
 > 16 0 24 3416 topology 3610 905
-> 15 0 23 3416 topology 3591 906
-> 16 0 23 3416 topology 3592 906
-> 15 0 24 3416 topology 3592 907
-> 16 0 24 3416 topology 3610 907
-> 15 0 23 3416 topology 3420 908
-> 16 0 23 3416 topology 3421 908
-> 15 0 24 3416 topology 3421 909
+> 15 0 23 3416 topology 3552 906
+> 16 0 23 3416 topology 3554 906
+> 15 0 23 3416 topology 3606 907
+> 16 0 23 3416 topology 3608 907
+> 15 0 23 3416 topology 3426 908
+> 16 0 23 3416 topology 3427 908
+> 15 0 24 3416 topology 3541 909
 > 16 0 24 3416 topology 3610 909
-> 15 0 23 3416 topology 3432 910
-> 16 0 23 3416 topology 3433 910
-> 15 0 24 3416 topology 3433 911
+> 15 0 24 3416 topology 3428 910
+> 16 0 24 3416 topology 3610 910
+> 15 0 24 3416 topology 3463 911
 > 16 0 24 3416 topology 3610 911
-> 15 0 23 3416 topology 3444 912
-> 16 0 23 3416 topology 3445 912
-> 15 0 24 3416 topology 3445 913
+> 15 0 23 3416 topology 3528 912
+> 16 0 23 3416 topology 3530 912
+> 15 0 24 3416 topology 3571 913
 > 16 0 24 3416 topology 3610 913
-> 15 0 23 3416 topology 3474 914
-> 16 0 23 3416 topology 3475 914
-> 15 0 24 3416 topology 3475 915
+> 15 0 23 3416 topology 3582 914
+> 16 0 23 3416 topology 3584 914
+> 15 0 24 3416 topology 3493 915
 > 16 0 24 3416 topology 3610 915
-> 15 0 23 3416 topology 3504 916
-> 16 0 23 3416 topology 3505 916
-> 15 0 24 3416 topology 3505 917
+> 15 0 24 3416 topology 3601 916
+> 16 0 24 3416 topology 3610 916
+> 15 0 24 3416 topology 3523 917
 > 16 0 24 3416 topology 3610 917
-> 15 0 23 3416 topology 3534 918
-> 16 0 23 3416 topology 3535 918
-> 15 0 24 3416 topology 3535 919
+> 15 0 23 3416 topology 3558 918
+> 16 0 23 3416 topology 3560 918
+> 15 0 24 3416 topology 3553 919
 > 16 0 24 3416 topology 3610 919
-> 15 0 23 3416 topology 3456 920
-> 16 0 23 3416 topology 3457 920
-> 15 0 24 3416 topology 3457 921
+> 15 0 24 3416 topology 3440 920
+> 16 0 24 3416 topology 3610 920
+> 15 0 24 3416 topology 3583 921
 > 16 0 24 3416 topology 3610 921
-> 15 0 23 3416 topology 3564 922
-> 16 0 23 3416 topology 3565 922
-> 15 0 24 3416 topology 3565 923
-> 16 0 24 3416 topology 3610 923
-> 15 0 23 3416 topology 3486 924
-> 16 0 23 3416 topology 3487 924
-> 15 0 24 3416 topology 3487 925
+> 15 0 23 3416 topology 3588 922
+> 16 0 23 3416 topology 3590 922
+> 15 0 23 3416 topology 3438 923
+> 16 0 23 3416 topology 3439 923
+> 15 0 23 3416 topology 3417 924
+> 16 0 23 3416 topology 3419 924
+> 15 0 24 3416 topology 3424 925
 > 16 0 24 3416 topology 3610 925
-> 15 0 23 3416 topology 3594 926
-> 16 0 23 3416 topology 3595 926
-> 15 0 24 3416 topology 3595 927
+> 15 0 24 3416 topology 3446 926
+> 16 0 24 3416 topology 3610 926
+> 15 0 24 3416 topology 3506 927
 > 16 0 24 3416 topology 3610 927
-> 15 0 23 3416 topology 3516 928
-> 16 0 23 3416 topology 3517 928
-> 15 0 24 3416 topology 3517 929
+> 15 0 24 3416 topology 3436 928
+> 16 0 24 3416 topology 3610 928
+> 15 0 24 3416 topology 3482 929
 > 16 0 24 3416 topology 3610 929
-> 15 0 23 3416 topology 3546 930
-> 16 0 23 3416 topology 3547 930
-> 15 0 24 3416 topology 3547 931
+> 15 0 24 3416 topology 3458 930
+> 16 0 24 3416 topology 3610 930
+> 15 0 24 3416 topology 3566 931
 > 16 0 24 3416 topology 3610 931
-> 15 0 23 3416 topology 3468 932
-> 16 0 23 3416 topology 3469 932
-> 15 0 24 3416 topology 3469 933
+> 15 0 24 3416 topology 3542 932
+> 16 0 24 3416 topology 3610 932
+> 15 0 24 3416 topology 3518 933
 > 16 0 24 3416 topology 3610 933
-> 15 0 23 3416 topology 3576 934
-> 16 0 23 3416 topology 3577 934
-> 15 0 24 3416 topology 3577 935
+> 15 0 23 3416 topology 3429 934
+> 16 0 23 3416 topology 3431 934
+> 15 0 24 3416 topology 3494 935
 > 16 0 24 3416 topology 3610 935
-> 15 0 23 3416 topology 3498 936
-> 16 0 23 3416 topology 3499 936
-> 15 0 24 3416 topology 3499 937
+> 15 0 24 3416 topology 3602 936
+> 16 0 24 3416 topology 3610 936
+> 15 0 24 3416 topology 3470 937
 > 16 0 24 3416 topology 3610 937
-> 15 0 23 3416 topology 3606 938
-> 16 0 23 3416 topology 3607 938
-> 15 0 24 3416 topology 3607 939
+> 15 0 24 3416 topology 3578 938
+> 16 0 24 3416 topology 3610 938
+> 15 0 24 3416 topology 3554 939
 > 16 0 24 3416 topology 3610 939
-> 15 0 23 3416 topology 3528 940
-> 16 0 23 3416 topology 3529 940
-> 15 0 24 3416 topology 3529 941
+> 15 0 24 3416 topology 3530 940
+> 16 0 24 3416 topology 3610 940
+> 15 0 24 3416 topology 3590 941
 > 16 0 24 3416 topology 3610 941
-> 15 0 23 3416 topology 3558 942
-> 16 0 23 3416 topology 3559 942
-> 15 0 24 3416 topology 3559 943
-> 16 0 24 3416 topology 3610 943
-> 15 0 23 3416 topology 3588 944
-> 16 0 23 3416 topology 3589 944
-> 15 0 24 3416 topology 3589 945
+> 15 0 24 3416 topology 3448 942
+> 16 0 24 3416 topology 3610 942
+> 15 0 23 3416 topology 3474 943
+> 16 0 23 3416 topology 3475 943
+> 15 0 23 3416 topology 3441 944
+> 16 0 23 3416 topology 3443 944
+> 15 0 24 3416 topology 3478 945
 > 16 0 24 3416 topology 3610 945
-> 15 0 23 3416 topology 3417 946
-> 16 0 23 3416 topology 3418 946
-> 15 0 24 3416 topology 3418 947
-> 16 0 24 3416 topology 3610 947
-> 15 0 23 3416 topology 3429 948
-> 16 0 23 3416 topology 3430 948
-> 15 0 24 3416 topology 3430 949
+> 15 0 24 3416 topology 3419 946
+> 16 0 24 3416 topology 3610 946
+> 15 0 23 3416 topology 3423 947
+> 16 0 23 3416 topology 3424 947
+> 15 0 23 3416 topology 3477 948
+> 16 0 23 3416 topology 3478 948
+> 15 0 24 3416 topology 3508 949
 > 16 0 24 3416 topology 3610 949
-> 15 0 23 3416 topology 3441 950
-> 16 0 23 3416 topology 3442 950
-> 15 0 24 3416 topology 3442 951
+> 15 0 24 3416 topology 3538 950
+> 16 0 24 3416 topology 3610 950
+> 15 0 24 3416 topology 3460 951
 > 16 0 24 3416 topology 3610 951
-> 15 0 23 3416 topology 3453 952
-> 16 0 23 3416 topology 3454 952
-> 15 0 24 3416 topology 3454 953
-> 16 0 24 3416 topology 3610 953
-> 15 0 23 3416 topology 3483 954
-> 16 0 23 3416 topology 3484 954
-> 15 0 24 3416 topology 3484 955
+> 15 0 23 3416 topology 3480 952
+> 16 0 23 3416 topology 3481 952
+> 15 0 23 3416 topology 3534 953
+> 16 0 23 3416 topology 3535 953
+> 15 0 24 3416 topology 3568 954
+> 16 0 24 3416 topology 3610 954
+> 15 0 24 3416 topology 3490 955
 > 16 0 24 3416 topology 3610 955
-> 15 0 23 3416 topology 3513 956
-> 16 0 23 3416 topology 3514 956
-> 15 0 24 3416 topology 3514 957
+> 15 0 24 3416 topology 3598 956
+> 16 0 24 3416 topology 3610 956
+> 15 0 24 3416 topology 3431 957
 > 16 0 24 3416 topology 3610 957
-> 15 0 23 3416 topology 3543 958
-> 16 0 23 3416 topology 3544 958
-> 15 0 24 3416 topology 3544 959
+> 15 0 23 3416 topology 3483 958
+> 16 0 23 3416 topology 3484 958
+> 15 0 24 3416 topology 3520 959
 > 16 0 24 3416 topology 3610 959
-> 15 0 23 3416 topology 3465 960
-> 16 0 23 3416 topology 3466 960
-> 15 0 24 3416 topology 3466 961
+> 15 0 23 3416 topology 3537 960
+> 16 0 23 3416 topology 3538 960
+> 15 0 24 3416 topology 3550 961
 > 16 0 24 3416 topology 3610 961
-> 15 0 23 3416 topology 3573 962
-> 16 0 23 3416 topology 3574 962
-> 15 0 24 3416 topology 3574 963
-> 16 0 24 3416 topology 3610 963
-> 15 0 23 3416 topology 3495 964
-> 16 0 23 3416 topology 3496 964
-> 15 0 24 3416 topology 3496 965
+> 15 0 24 3416 topology 3472 962
+> 16 0 24 3416 topology 3610 962
+> 15 0 23 3416 topology 3486 963
+> 16 0 23 3416 topology 3487 963
+> 15 0 23 3416 topology 3540 964
+> 16 0 23 3416 topology 3541 964
+> 15 0 24 3416 topology 3580 965
 > 16 0 24 3416 topology 3610 965
-> 15 0 23 3416 topology 3603 966
-> 16 0 23 3416 topology 3604 966
-> 15 0 24 3416 topology 3604 967
+> 15 0 23 3416 topology 3594 966
+> 16 0 23 3416 topology 3595 966
+> 15 0 24 3416 topology 3502 967
 > 16 0 24 3416 topology 3610 967
-> 15 0 23 3416 topology 3525 968
-> 16 0 23 3416 topology 3526 968
-> 15 0 24 3416 topology 3526 969
+> 15 0 23 3416 topology 3435 968
+> 16 0 23 3416 topology 3436 968
+> 15 0 24 3416 topology 3443 969
 > 16 0 24 3416 topology 3610 969
-> 15 0 23 3416 topology 3555 970
-> 16 0 23 3416 topology 3556 970
-> 15 0 24 3416 topology 3556 971
+> 15 0 23 3416 topology 3489 970
+> 16 0 23 3416 topology 3490 970
+> 15 0 24 3416 topology 3532 971
 > 16 0 24 3416 topology 3610 971
-> 15 0 23 3416 topology 3585 972
-> 16 0 23 3416 topology 3586 972
-> 15 0 24 3416 topology 3586 973
-> 16 0 24 3416 topology 3610 973
-> 15 0 23 3416 topology 3426 974
-> 16 0 23 3416 topology 3427 974
-> 15 0 24 3416 topology 3427 975
-> 16 0 24 3416 topology 3610 975
-> 15 0 23 3416 topology 3438 976
-> 16 0 23 3416 topology 3439 976
-> 15 0 24 3416 topology 3439 977
+> 15 0 23 3416 topology 3543 972
+> 16 0 23 3416 topology 3544 972
+> 15 0 23 3416 topology 3597 973
+> 16 0 23 3416 topology 3598 973
+> 15 0 24 3416 topology 3562 974
+> 16 0 24 3416 topology 3610 974
+> 15 0 23 3416 topology 3492 975
+> 16 0 23 3416 topology 3493 975
+> 15 0 23 3416 topology 3546 976
+> 16 0 23 3416 topology 3547 976
+> 15 0 24 3416 topology 3592 977
 > 16 0 24 3416 topology 3610 977
-> 15 0 23 3416 topology 3450 978
-> 16 0 23 3416 topology 3451 978
-> 15 0 24 3416 topology 3451 979
-> 16 0 24 3416 topology 3610 979
-> 15 0 23 3416 topology 3480 980
-> 16 0 23 3416 topology 3481 980
-> 15 0 24 3416 topology 3481 981
-> 16 0 24 3416 topology 3610 981
-> 15 0 23 3416 topology 3510 982
-> 16 0 23 3416 topology 3511 982
-> 15 0 24 3416 topology 3511 983
-> 16 0 24 3416 topology 3610 983
-> 15 0 23 3416 topology 3540 984
-> 16 0 23 3416 topology 3541 984
-> 15 0 24 3416 topology 3541 985
-> 16 0 24 3416 topology 3610 985
-> 15 0 23 3612 topology 3640 986
-> 16 0 23 3612 topology 3641 986
-> 15 0 24 3612 topology 3641 987
+> 15 0 23 3416 topology 3600 978
+> 16 0 23 3416 topology 3601 978
+> 15 0 23 3416 topology 3495 979
+> 16 0 23 3416 topology 3496 979
+> 15 0 23 3416 topology 3549 980
+> 16 0 23 3416 topology 3550 980
+> 15 0 23 3416 topology 3603 981
+> 16 0 23 3416 topology 3604 981
+> 15 0 24 3416 topology 3421 982
+> 16 0 24 3416 topology 3610 982
+> 15 0 23 3416 topology 3498 983
+> 16 0 23 3416 topology 3499 983
+> 15 0 23 3416 topology 3552 984
+> 16 0 23 3416 topology 3553 984
+> 15 0 23 3416 topology 3606 985
+> 16 0 23 3416 topology 3607 985
+> 15 0 23 3612 topology 3664 986
+> 16 0 23 3612 topology 3666 986
+> 15 0 24 3612 topology 3674 987
 > 16 0 24 3612 topology 3713 987
-> 15 0 24 3612 topology 3713 988
-> 16 0 24 3612 topology 3672 988
-> 15 0 25 3612 topology 3672 989
-> 16 0 25 3612 topology 3670 989
-> 15 0 24 3612 topology 3713 990
-> 16 0 24 3612 topology 3702 990
-> 15 0 25 3612 topology 3702 991
-> 16 0 25 3612 topology 3700 991
-> 15 0 24 3612 topology 3713 992
-> 16 0 24 3612 topology 3654 992
-> 15 0 25 3612 topology 3654 993
-> 16 0 25 3612 topology 3652 993
-> 15 0 24 3612 topology 3713 994
-> 16 0 24 3612 topology 3684 994
-> 15 0 25 3612 topology 3684 995
-> 16 0 25 3612 topology 3682 995
-> 15 0 24 3612 topology 3713 996
-> 16 0 24 3612 topology 3666 996
-> 15 0 25 3612 topology 3666 997
-> 16 0 25 3612 topology 3664 997
-> 15 0 24 3612 topology 3713 998
-> 16 0 24 3612 topology 3696 998
-> 15 0 25 3612 topology 3696 999
-> 16 0 25 3612 topology 3694 999
-> 15 0 24 3612 topology 3713 1000
-> 16 0 24 3612 topology 3615 1000
-> 15 0 25 3612 topology 3615 1001
-> 16 0 25 3612 topology 3613 1001
-> 15 0 24 3612 topology 3713 1002
-> 16 0 24 3612 topology 3627 1002
-> 15 0 25 3612 topology 3627 1003
-> 16 0 25 3612 topology 3625 1003
-> 15 0 24 3612 topology 3713 1004
-> 16 0 24 3612 topology 3639 1004
-> 15 0 25 3612 topology 3639 1005
-> 16 0 25 3612 topology 3637 1005
-> 15 0 24 3612 topology 3713 1006
-> 16 0 24 3612 topology 3651 1006
-> 15 0 25 3612 topology 3651 1007
-> 16 0 25 3612 topology 3649 1007
-> 15 0 24 3612 topology 3713 1008
-> 16 0 24 3612 topology 3681 1008
-> 15 0 25 3612 topology 3681 1009
-> 16 0 25 3612 topology 3679 1009
-> 15 0 24 3612 topology 3713 1010
-> 16 0 24 3612 topology 3711 1010
-> 15 0 25 3612 topology 3711 1011
-> 16 0 25 3612 topology 3709 1011
-> 15 0 24 3612 topology 3713 1012
-> 16 0 24 3612 topology 3663 1012
-> 15 0 25 3612 topology 3663 1013
-> 16 0 25 3612 topology 3661 1013
-> 15 0 24 3612 topology 3713 1014
-> 16 0 24 3612 topology 3693 1014
-> 15 0 25 3612 topology 3693 1015
-> 16 0 25 3612 topology 3691 1015
-> 15 0 26 3612 topology 3713 1016
-> 16 0 26 3612 topology 3712 1016
-> 15 0 24 3612 topology 3713 1017
-> 16 0 24 3612 topology 3624 1017
-> 15 0 25 3612 topology 3624 1018
-> 16 0 25 3612 topology 3622 1018
-> 15 0 24 3612 topology 3713 1019
-> 16 0 24 3612 topology 3636 1019
-> 15 0 25 3612 topology 3636 1020
-> 16 0 25 3612 topology 3634 1020
-> 15 0 24 3612 topology 3713 1021
-> 16 0 24 3612 topology 3648 1021
-> 15 0 25 3612 topology 3648 1022
-> 16 0 25 3612 topology 3646 1022
-> 15 0 24 3612 topology 3713 1023
-> 16 0 24 3612 topology 3678 1023
-> 15 0 25 3612 topology 3678 1024
-> 16 0 25 3612 topology 3676 1024
-> 15 0 24 3612 topology 3713 1025
-> 16 0 24 3612 topology 3708 1025
-> 15 0 25 3612 topology 3708 1026
-> 16 0 25 3612 topology 3706 1026
-> 15 0 24 3612 topology 3713 1027
-> 16 0 24 3612 topology 3660 1027
-> 15 0 25 3612 topology 3660 1028
-> 16 0 25 3612 topology 3658 1028
-> 15 0 24 3612 topology 3713 1029
-> 16 0 24 3612 topology 3690 1029
-> 15 0 25 3612 topology 3690 1030
-> 16 0 25 3612 topology 3688 1030
-> 15 0 24 3612 topology 3713 1031
-> 16 0 24 3612 topology 3621 1031
-> 15 0 25 3612 topology 3621 1032
-> 16 0 25 3612 topology 3619 1032
-> 15 0 24 3612 topology 3713 1033
-> 16 0 24 3612 topology 3633 1033
-> 15 0 25 3612 topology 3633 1034
-> 16 0 25 3612 topology 3631 1034
-> 15 0 24 3612 topology 3713 1035
-> 16 0 24 3612 topology 3645 1035
-> 15 0 25 3612 topology 3645 1036
-> 16 0 25 3612 topology 3643 1036
-> 15 0 24 3612 topology 3713 1037
-> 16 0 24 3612 topology 3675 1037
-> 15 0 25 3612 topology 3675 1038
-> 16 0 25 3612 topology 3673 1038
-> 15 0 24 3612 topology 3713 1039
-> 16 0 24 3612 topology 3705 1039
-> 15 0 25 3612 topology 3705 1040
-> 16 0 25 3612 topology 3703 1040
-> 15 0 24 3612 topology 3713 1041
-> 16 0 24 3612 topology 3657 1041
-> 15 0 25 3612 topology 3657 1042
-> 16 0 25 3612 topology 3655 1042
-> 15 0 24 3612 topology 3713 1043
-> 16 0 24 3612 topology 3687 1043
-> 15 0 25 3612 topology 3687 1044
-> 16 0 25 3612 topology 3685 1044
-> 15 0 24 3612 topology 3713 1045
-> 16 0 24 3612 topology 3669 1045
-> 15 0 25 3612 topology 3669 1046
-> 16 0 25 3612 topology 3667 1046
-> 15 0 24 3612 topology 3713 1047
-> 16 0 24 3612 topology 3699 1047
-> 15 0 25 3612 topology 3699 1048
-> 16 0 25 3612 topology 3697 1048
-> 15 0 24 3612 topology 3713 1049
-> 16 0 24 3612 topology 3618 1049
-> 15 0 25 3612 topology 3618 1050
-> 16 0 25 3612 topology 3616 1050
-> 15 0 24 3612 topology 3713 1051
-> 16 0 24 3612 topology 3630 1051
-> 15 0 25 3612 topology 3630 1052
-> 16 0 25 3612 topology 3628 1052
-> 15 0 23 3612 topology 3670 1053
-> 16 0 23 3612 topology 3671 1053
-> 15 0 24 3612 topology 3671 1054
+> 15 0 24 3612 topology 3615 988
+> 16 0 24 3612 topology 3713 988
+> 15 0 23 3612 topology 3619 989
+> 16 0 23 3612 topology 3620 989
+> 15 0 23 3612 topology 3673 990
+> 16 0 23 3612 topology 3674 990
+> 15 0 24 3612 topology 3704 991
+> 16 0 24 3612 topology 3713 991
+> 15 0 23 3612 topology 3622 992
+> 16 0 23 3612 topology 3623 992
+> 15 0 24 3612 topology 3656 993
+> 16 0 24 3612 topology 3713 993
+> 15 0 24 3612 topology 3686 994
+> 16 0 24 3612 topology 3713 994
+> 15 0 23 3612 topology 3697 995
+> 16 0 23 3612 topology 3699 995
+> 15 0 23 3612 topology 3625 996
+> 16 0 23 3612 topology 3626 996
+> 15 0 24 3612 topology 3627 997
+> 16 0 24 3612 topology 3713 997
+> 15 0 23 3612 topology 3652 998
+> 16 0 23 3612 topology 3653 998
+> 15 0 23 3612 topology 3706 999
+> 16 0 23 3612 topology 3707 999
+> 15 0 23 3612 topology 3628 1000
+> 16 0 23 3612 topology 3629 1000
+> 15 0 24 3612 topology 3668 1001
+> 16 0 24 3612 topology 3713 1001
+> 15 0 24 3612 topology 3698 1002
+> 16 0 24 3612 topology 3713 1002
+> 15 0 23 3612 topology 3631 1003
+> 16 0 23 3612 topology 3632 1003
+> 15 0 24 3612 topology 3639 1004
+> 16 0 24 3612 topology 3713 1004
+> 15 0 23 3612 topology 3685 1005
+> 16 0 23 3612 topology 3686 1005
+> 15 0 23 3612 topology 3634 1006
+> 16 0 23 3612 topology 3635 1006
+> 15 0 23 3612 topology 3637 1007
+> 16 0 23 3612 topology 3638 1007
+> 15 0 23 3612 topology 3664 1008
+> 16 0 23 3612 topology 3665 1008
+> 15 0 24 3612 topology 3617 1009
+> 16 0 24 3612 topology 3713 1009
+> 15 0 23 3612 topology 3613 1010
+> 16 0 23 3612 topology 3615 1010
+> 15 0 23 3612 topology 3697 1011
+> 16 0 23 3612 topology 3698 1011
+> 15 0 24 3612 topology 3645 1012
+> 16 0 24 3612 topology 3713 1012
+> 15 0 23 3612 topology 3670 1013
+> 16 0 23 3612 topology 3672 1013
+> 15 0 24 3612 topology 3629 1014
+> 16 0 24 3612 topology 3713 1014
+> 15 0 23 3612 topology 3619 1015
+> 16 0 23 3612 topology 3621 1015
+> 15 0 24 3612 topology 3705 1016
+> 16 0 24 3612 topology 3713 1016
+> 15 0 24 3612 topology 3681 1017
+> 16 0 24 3612 topology 3713 1017
+> 15 0 23 3612 topology 3649 1018
+> 16 0 23 3612 topology 3651 1018
+> 15 0 24 3612 topology 3657 1019
+> 16 0 24 3612 topology 3713 1019
+> 15 0 23 3612 topology 3703 1020
+> 16 0 23 3612 topology 3705 1020
+> 15 0 23 3612 topology 3625 1021
+> 16 0 23 3612 topology 3627 1021
+> 15 0 24 3612 topology 3693 1022
+> 16 0 24 3612 topology 3713 1022
+> 15 0 24 3612 topology 3669 1023
+> 16 0 24 3612 topology 3713 1023
+> 15 0 23 3612 topology 3682 1024
+> 16 0 23 3612 topology 3684 1024
+> 15 0 23 3612 topology 3631 1025
+> 16 0 23 3612 topology 3633 1025
+> 15 0 24 3612 topology 3641 1026
+> 16 0 24 3612 topology 3713 1026
+> 15 0 23 3612 topology 3661 1027
+> 16 0 23 3612 topology 3663 1027
+> 15 0 23 3612 topology 3643 1028
+> 16 0 23 3612 topology 3644 1028
+> 15 0 24 3612 topology 3671 1029
+> 16 0 24 3612 topology 3713 1029
+> 15 0 23 3612 topology 3637 1030
+> 16 0 23 3612 topology 3639 1030
+> 15 0 24 3612 topology 3701 1031
+> 16 0 24 3612 topology 3713 1031
+> 15 0 24 3612 topology 3618 1032
+> 16 0 24 3612 topology 3713 1032
+> 15 0 24 3612 topology 3653 1033
+> 16 0 24 3612 topology 3713 1033
+> 15 0 23 3612 topology 3694 1034
+> 16 0 23 3612 topology 3696 1034
+> 15 0 23 3612 topology 3676 1035
+> 16 0 23 3612 topology 3677 1035
+> 15 0 24 3612 topology 3683 1036
+> 16 0 24 3612 topology 3713 1036
+> 15 0 24 3612 topology 3630 1037
+> 16 0 24 3612 topology 3713 1037
+> 15 0 24 3612 topology 3665 1038
+> 16 0 24 3612 topology 3713 1038
+> 15 0 23 3612 topology 3655 1039
+> 16 0 23 3612 topology 3656 1039
+> 15 0 24 3612 topology 3695 1040
+> 16 0 24 3612 topology 3713 1040
+> 15 0 23 3612 topology 3709 1041
+> 16 0 23 3612 topology 3710 1041
+> 15 0 25 3612 topology 3712 1042
+> 16 0 25 3612 topology 3713 1042
+> 15 0 23 3612 topology 3688 1043
+> 16 0 23 3612 topology 3689 1043
+> 15 0 24 3612 topology 3614 1044
+> 16 0 24 3612 topology 3713 1044
+> 15 0 23 3612 topology 3667 1045
+> 16 0 23 3612 topology 3668 1045
+> 15 0 24 3612 topology 3626 1046
+> 16 0 24 3612 topology 3713 1046
+> 15 0 24 3612 topology 3672 1047
+> 16 0 24 3612 topology 3713 1047
+> 15 0 24 3612 topology 3648 1048
+> 16 0 24 3612 topology 3713 1048
+> 15 0 23 3612 topology 3646 1049
+> 16 0 23 3612 topology 3648 1049
+> 15 0 23 3612 topology 3700 1050
+> 16 0 23 3612 topology 3702 1050
+> 15 0 24 3612 topology 3708 1051
+> 16 0 24 3612 topology 3713 1051
+> 15 0 24 3612 topology 3638 1052
+> 16 0 24 3612 topology 3713 1052
+> 15 0 24 3612 topology 3684 1053
+> 16 0 24 3612 topology 3713 1053
+> 15 0 24 3612 topology 3660 1054
 > 16 0 24 3612 topology 3713 1054
-> 15 0 24 3612 topology 3713 1055
-> 16 0 24 3612 topology 3642 1055
-> 15 0 25 3612 topology 3642 1056
-> 16 0 25 3612 topology 3640 1056
-> 15 0 23 3612 topology 3700 1057
-> 16 0 23 3612 topology 3701 1057
-> 15 0 24 3612 topology 3701 1058
-> 16 0 24 3612 topology 3713 1058
-> 15 0 23 3612 topology 3652 1059
-> 16 0 23 3612 topology 3653 1059
-> 15 0 24 3612 topology 3653 1060
+> 15 0 23 3612 topology 3679 1055
+> 16 0 23 3612 topology 3681 1055
+> 15 0 24 3612 topology 3696 1056
+> 16 0 24 3612 topology 3713 1056
+> 15 0 23 3612 topology 3658 1057
+> 16 0 23 3612 topology 3660 1057
+> 15 0 23 3612 topology 3691 1058
+> 16 0 23 3612 topology 3693 1058
+> 15 0 23 3612 topology 3646 1059
+> 16 0 23 3612 topology 3647 1059
+> 15 0 24 3612 topology 3650 1060
 > 16 0 24 3612 topology 3713 1060
-> 15 0 23 3612 topology 3682 1061
-> 16 0 23 3612 topology 3683 1061
-> 15 0 24 3612 topology 3683 1062
+> 15 0 23 3612 topology 3700 1061
+> 16 0 23 3612 topology 3701 1061
+> 15 0 24 3612 topology 3680 1062
 > 16 0 24 3612 topology 3713 1062
-> 15 0 23 3612 topology 3664 1063
-> 16 0 23 3612 topology 3665 1063
-> 15 0 24 3612 topology 3665 1064
+> 15 0 24 3612 topology 3621 1063
+> 16 0 24 3612 topology 3713 1063
+> 15 0 24 3612 topology 3710 1064
 > 16 0 24 3612 topology 3713 1064
-> 15 0 23 3612 topology 3694 1065
-> 16 0 23 3612 topology 3695 1065
-> 15 0 24 3612 topology 3695 1066
-> 16 0 24 3612 topology 3713 1066
-> 15 0 23 3612 topology 3613 1067
-> 16 0 23 3612 topology 3614 1067
-> 15 0 24 3612 topology 3614 1068
+> 15 0 24 3612 topology 3662 1065
+> 16 0 24 3612 topology 3713 1065
+> 15 0 23 3612 topology 3679 1066
+> 16 0 23 3612 topology 3680 1066
+> 15 0 24 3612 topology 3692 1067
+> 16 0 24 3612 topology 3713 1067
+> 15 0 24 3612 topology 3633 1068
 > 16 0 24 3612 topology 3713 1068
-> 15 0 23 3612 topology 3625 1069
-> 16 0 23 3612 topology 3626 1069
-> 15 0 24 3612 topology 3626 1070
-> 16 0 24 3612 topology 3713 1070
-> 15 0 23 3612 topology 3637 1071
-> 16 0 23 3612 topology 3638 1071
-> 15 0 24 3612 topology 3638 1072
-> 16 0 24 3612 topology 3713 1072
-> 15 0 23 3612 topology 3649 1073
-> 16 0 23 3612 topology 3650 1073
-> 15 0 24 3612 topology 3650 1074
+> 15 0 23 3612 topology 3658 1069
+> 16 0 23 3612 topology 3659 1069
+> 15 0 23 3612 topology 3691 1070
+> 16 0 23 3612 topology 3692 1070
+> 15 0 24 3612 topology 3623 1071
+> 16 0 24 3612 topology 3713 1071
+> 15 0 23 3612 topology 3616 1072
+> 16 0 23 3612 topology 3618 1072
+> 15 0 23 3612 topology 3643 1073
+> 16 0 23 3612 topology 3645 1073
+> 15 0 24 3612 topology 3675 1074
 > 16 0 24 3612 topology 3713 1074
-> 15 0 23 3612 topology 3679 1075
-> 16 0 23 3612 topology 3680 1075
-> 15 0 24 3612 topology 3680 1076
+> 15 0 24 3612 topology 3651 1075
+> 16 0 24 3612 topology 3713 1075
+> 15 0 24 3612 topology 3635 1076
 > 16 0 24 3612 topology 3713 1076
-> 15 0 23 3612 topology 3709 1077
-> 16 0 23 3612 topology 3710 1077
-> 15 0 24 3612 topology 3710 1078
-> 16 0 24 3612 topology 3713 1078
-> 15 0 23 3612 topology 3661 1079
-> 16 0 23 3612 topology 3662 1079
-> 15 0 24 3612 topology 3662 1080
+> 15 0 23 3612 topology 3622 1077
+> 16 0 23 3612 topology 3624 1077
+> 15 0 23 3612 topology 3676 1078
+> 16 0 23 3612 topology 3678 1078
+> 15 0 24 3612 topology 3711 1079
+> 16 0 24 3612 topology 3713 1079
+> 15 0 24 3612 topology 3687 1080
 > 16 0 24 3612 topology 3713 1080
-> 15 0 23 3612 topology 3691 1081
-> 16 0 23 3612 topology 3692 1081
-> 15 0 24 3612 topology 3692 1082
-> 16 0 24 3612 topology 3713 1082
-> 15 0 23 3612 topology 3622 1083
-> 16 0 23 3612 topology 3623 1083
-> 15 0 24 3612 topology 3623 1084
-> 16 0 24 3612 topology 3713 1084
-> 15 0 23 3612 topology 3634 1085
-> 16 0 23 3612 topology 3635 1085
-> 15 0 24 3612 topology 3635 1086
-> 16 0 24 3612 topology 3713 1086
-> 15 0 23 3612 topology 3646 1087
-> 16 0 23 3612 topology 3647 1087
-> 15 0 24 3612 topology 3647 1088
-> 16 0 24 3612 topology 3713 1088
-> 15 0 23 3612 topology 3676 1089
-> 16 0 23 3612 topology 3677 1089
+> 15 0 24 3612 topology 3663 1081
+> 16 0 24 3612 topology 3713 1081
+> 15 0 23 3612 topology 3628 1082
+> 16 0 23 3612 topology 3630 1082
+> 15 0 23 3612 topology 3655 1083
+> 16 0 23 3612 topology 3657 1083
+> 15 0 23 3612 topology 3709 1084
+> 16 0 23 3612 topology 3711 1084
+> 15 0 24 3612 topology 3699 1085
+> 16 0 24 3612 topology 3713 1085
+> 15 0 23 3612 topology 3634 1086
+> 16 0 23 3612 topology 3636 1086
+> 15 0 23 3612 topology 3688 1087
+> 16 0 23 3612 topology 3690 1087
+> 15 0 23 3612 topology 3670 1088
+> 16 0 23 3612 topology 3671 1088
+> 15 0 24 3612 topology 3647 1089
+> 16 0 24 3612 topology 3713 1089
 > 15 0 24 3612 topology 3677 1090
 > 16 0 24 3612 topology 3713 1090
-> 15 0 23 3612 topology 3706 1091
-> 16 0 23 3612 topology 3707 1091
+> 15 0 23 3612 topology 3667 1091
+> 16 0 23 3612 topology 3669 1091
 > 15 0 24 3612 topology 3707 1092
 > 16 0 24 3612 topology 3713 1092
-> 15 0 23 3612 topology 3658 1093
-> 16 0 23 3612 topology 3659 1093
-> 15 0 24 3612 topology 3659 1094
-> 16 0 24 3612 topology 3713 1094
-> 15 0 23 3612 topology 3688 1095
-> 16 0 23 3612 topology 3689 1095
-> 15 0 24 3612 topology 3689 1096
+> 15 0 23 3612 topology 3649 1093
+> 16 0 23 3612 topology 3650 1093
+> 15 0 23 3612 topology 3703 1094
+> 16 0 23 3612 topology 3704 1094
+> 15 0 24 3612 topology 3624 1095
+> 16 0 24 3612 topology 3713 1095
+> 15 0 24 3612 topology 3659 1096
 > 16 0 24 3612 topology 3713 1096
-> 15 0 23 3612 topology 3619 1097
-> 16 0 23 3612 topology 3620 1097
-> 15 0 24 3612 topology 3620 1098
-> 16 0 24 3612 topology 3713 1098
-> 15 0 23 3612 topology 3631 1099
-> 16 0 23 3612 topology 3632 1099
-> 15 0 24 3612 topology 3632 1100
-> 16 0 24 3612 topology 3713 1100
-> 15 0 23 3612 topology 3643 1101
-> 16 0 23 3612 topology 3644 1101
-> 15 0 24 3612 topology 3644 1102
+> 15 0 24 3612 topology 3689 1097
+> 16 0 24 3612 topology 3713 1097
+> 15 0 23 3612 topology 3682 1098
+> 16 0 23 3612 topology 3683 1098
+> 15 0 24 3612 topology 3636 1099
+> 16 0 24 3612 topology 3713 1099
+> 15 0 23 3612 topology 3661 1100
+> 16 0 23 3612 topology 3662 1100
+> 15 0 23 3612 topology 3694 1101
+> 16 0 23 3612 topology 3695 1101
+> 15 0 24 3612 topology 3620 1102
 > 16 0 24 3612 topology 3713 1102
-> 15 0 23 3612 topology 3673 1103
-> 16 0 23 3612 topology 3674 1103
-> 15 0 24 3612 topology 3674 1104
+> 15 0 23 3612 topology 3640 1103
+> 16 0 23 3612 topology 3642 1103
+> 15 0 24 3612 topology 3642 1104
 > 16 0 24 3612 topology 3713 1104
-> 15 0 23 3612 topology 3703 1105
-> 16 0 23 3612 topology 3704 1105
-> 15 0 24 3612 topology 3704 1106
+> 15 0 24 3612 topology 3702 1105
+> 16 0 24 3612 topology 3713 1105
+> 15 0 24 3612 topology 3632 1106
 > 16 0 24 3612 topology 3713 1106
-> 15 0 23 3612 topology 3655 1107
-> 16 0 23 3612 topology 3656 1107
-> 15 0 24 3612 topology 3656 1108
+> 15 0 23 3612 topology 3673 1107
+> 16 0 23 3612 topology 3675 1107
+> 15 0 24 3612 topology 3678 1108
 > 16 0 24 3612 topology 3713 1108
-> 15 0 23 3612 topology 3685 1109
-> 16 0 23 3612 topology 3686 1109
-> 15 0 24 3612 topology 3686 1110
-> 16 0 24 3612 topology 3713 1110
-> 15 0 23 3612 topology 3667 1111
-> 16 0 23 3612 topology 3668 1111
-> 15 0 24 3612 topology 3668 1112
-> 16 0 24 3612 topology 3713 1112
-> 15 0 23 3612 topology 3697 1113
-> 16 0 23 3612 topology 3698 1113
-> 15 0 24 3612 topology 3698 1114
-> 16 0 24 3612 topology 3713 1114
-> 15 0 23 3612 topology 3616 1115
-> 16 0 23 3612 topology 3617 1115
-> 15 0 24 3612 topology 3617 1116
-> 16 0 24 3612 topology 3713 1116
-> 15 0 23 3612 topology 3628 1117
-> 16 0 23 3612 topology 3629 1117
-> 15 0 24 3612 topology 3629 1118
+> 15 0 24 3612 topology 3654 1109
+> 16 0 24 3612 topology 3713 1109
+> 15 0 23 3612 topology 3652 1110
+> 16 0 23 3612 topology 3654 1110
+> 15 0 24 3612 topology 3690 1111
+> 16 0 24 3612 topology 3713 1111
+> 15 0 23 3612 topology 3706 1112
+> 16 0 23 3612 topology 3708 1112
+> 15 0 24 3612 topology 3666 1113
+> 16 0 24 3612 topology 3713 1113
+> 15 0 23 3612 topology 3685 1114
+> 16 0 23 3612 topology 3687 1114
+> 15 0 23 3612 topology 3613 1115
+> 16 0 23 3612 topology 3614 1115
+> 15 0 23 3612 topology 3640 1116
+> 16 0 23 3612 topology 3641 1116
+> 15 0 23 3612 topology 3616 1117
+> 16 0 23 3612 topology 3617 1117
+> 15 0 24 3612 topology 3644 1118
 > 16 0 24 3612 topology 3713 1118
-> 15 0 23 3715 topology 3725 1119
-> 16 0 23 3715 topology 3726 1119
-> 15 0 24 3715 topology 3726 1120
-> 16 0 24 3715 topology 3792 1120
-> 15 0 24 3715 topology 3792 1121
-> 16 0 24 3715 topology 3739 1121
-> 15 0 25 3715 topology 3739 1122
-> 16 0 25 3715 topology 3737 1122
-> 15 0 24 3715 topology 3792 1123
-> 16 0 24 3715 topology 3748 1123
-> 15 0 25 3715 topology 3748 1124
-> 16 0 25 3715 topology 3746 1124
-> 15 0 24 3715 topology 3792 1125
-> 16 0 24 3715 topology 3778 1125
-> 15 0 25 3715 topology 3778 1126
-> 16 0 25 3715 topology 3776 1126
-> 15 0 24 3715 topology 3792 1127
-> 16 0 24 3715 topology 3760 1127
-> 15 0 25 3715 topology 3760 1128
-> 16 0 25 3715 topology 3758 1128
-> 15 0 24 3715 topology 3792 1129
-> 16 0 24 3715 topology 3790 1129
-> 15 0 25 3715 topology 3790 1130
-> 16 0 25 3715 topology 3788 1130
-> 15 0 24 3715 topology 3792 1131
-> 16 0 24 3715 topology 3772 1131
-> 15 0 25 3715 topology 3772 1132
-> 16 0 25 3715 topology 3770 1132
-> 15 0 24 3715 topology 3792 1133
-> 16 0 24 3715 topology 3724 1133
-> 15 0 25 3715 topology 3724 1134
-> 16 0 25 3715 topology 3722 1134
-> 15 0 24 3715 topology 3792 1135
-> 16 0 24 3715 topology 3736 1135
-> 15 0 25 3715 topology 3736 1136
-> 16 0 25 3715 topology 3734 1136
-> 15 0 26 3715 topology 3792 1137
-> 16 0 26 3715 topology 3791 1137
-> 15 0 24 3715 topology 3792 1138
-> 16 0 24 3715 topology 3745 1138
-> 15 0 25 3715 topology 3745 1139
-> 16 0 25 3715 topology 3743 1139
-> 15 0 24 3715 topology 3792 1140
-> 16 0 24 3715 topology 3775 1140
-> 15 0 25 3715 topology 3775 1141
-> 16 0 25 3715 topology 3773 1141
-> 15 0 24 3715 topology 3792 1142
-> 16 0 24 3715 topology 3757 1142
-> 15 0 25 3715 topology 3757 1143
-> 16 0 25 3715 topology 3755 1143
-> 15 0 24 3715 topology 3792 1144
-> 16 0 24 3715 topology 3787 1144
-> 15 0 25 3715 topology 3787 1145
-> 16 0 25 3715 topology 3785 1145
-> 15 0 24 3715 topology 3792 1146
-> 16 0 24 3715 topology 3769 1146
-> 15 0 25 3715 topology 3769 1147
-> 16 0 25 3715 topology 3767 1147
-> 15 0 24 3715 topology 3792 1148
-> 16 0 24 3715 topology 3721 1148
-> 15 0 25 3715 topology 3721 1149
-> 16 0 25 3715 topology 3719 1149
-> 15 0 24 3715 topology 3792 1150
-> 16 0 24 3715 topology 3733 1150
-> 15 0 25 3715 topology 3733 1151
-> 16 0 25 3715 topology 3731 1151
-> 15 0 24 3715 topology 3792 1152
-> 16 0 24 3715 topology 3754 1152
-> 15 0 25 3715 topology 3754 1153
-> 16 0 25 3715 topology 3752 1153
-> 15 0 24 3715 topology 3792 1154
-> 16 0 24 3715 topology 3784 1154
-> 15 0 25 3715 topology 3784 1155
-> 16 0 25 3715 topology 3782 1155
-> 15 0 24 3715 topology 3792 1156
-> 16 0 24 3715 topology 3766 1156
-> 15 0 25 3715 topology 3766 1157
-> 16 0 25 3715 topology 3764 1157
-> 15 0 24 3715 topology 3792 1158
-> 16 0 24 3715 topology 3718 1158
-> 15 0 25 3715 topology 3718 1159
-> 16 0 25 3715 topology 3716 1159
-> 15 0 24 3715 topology 3792 1160
-> 16 0 24 3715 topology 3730 1160
-> 15 0 25 3715 topology 3730 1161
-> 16 0 25 3715 topology 3728 1161
-> 15 0 24 3715 topology 3792 1162
-> 16 0 24 3715 topology 3742 1162
-> 15 0 25 3715 topology 3742 1163
-> 16 0 25 3715 topology 3740 1163
-> 15 0 24 3715 topology 3792 1164
-> 16 0 24 3715 topology 3751 1164
-> 15 0 25 3715 topology 3751 1165
-> 16 0 25 3715 topology 3749 1165
-> 15 0 24 3715 topology 3792 1166
-> 16 0 24 3715 topology 3781 1166
-> 15 0 25 3715 topology 3781 1167
-> 16 0 25 3715 topology 3779 1167
-> 15 0 24 3715 topology 3792 1168
-> 16 0 24 3715 topology 3763 1168
-> 15 0 25 3715 topology 3763 1169
-> 16 0 25 3715 topology 3761 1169
-> 15 0 23 3715 topology 3737 1170
-> 16 0 23 3715 topology 3738 1170
-> 15 0 24 3715 topology 3738 1171
+> 15 0 24 3715 topology 3721 1119
+> 16 0 24 3715 topology 3792 1119
+> 15 0 23 3715 topology 3779 1120
+> 16 0 23 3715 topology 3780 1120
+> 15 0 24 3715 topology 3762 1121
+> 16 0 24 3715 topology 3792 1121
+> 15 0 23 3715 topology 3782 1122
+> 16 0 23 3715 topology 3783 1122
+> 15 0 24 3715 topology 3733 1123
+> 16 0 24 3715 topology 3792 1123
+> 15 0 23 3715 topology 3731 1124
+> 16 0 23 3715 topology 3732 1124
+> 15 0 23 3715 topology 3785 1125
+> 16 0 23 3715 topology 3786 1125
+> 15 0 23 3715 topology 3788 1126
+> 16 0 23 3715 topology 3789 1126
+> 15 0 24 3715 topology 3717 1127
+> 16 0 24 3715 topology 3792 1127
+> 15 0 23 3715 topology 3716 1128
+> 16 0 23 3715 topology 3718 1128
+> 15 0 23 3715 topology 3743 1129
+> 16 0 23 3715 topology 3745 1129
+> 15 0 24 3715 topology 3745 1130
+> 16 0 24 3715 topology 3792 1130
+> 15 0 24 3715 topology 3729 1131
+> 16 0 24 3715 topology 3792 1131
+> 15 0 23 3715 topology 3773 1132
+> 16 0 23 3715 topology 3775 1132
+> 15 0 23 3715 topology 3749 1133
+> 16 0 23 3715 topology 3751 1133
+> 15 0 24 3715 topology 3781 1134
+> 16 0 24 3715 topology 3792 1134
+> 15 0 24 3715 topology 3757 1135
+> 16 0 24 3715 topology 3792 1135
+> 15 0 24 3715 topology 3741 1136
+> 16 0 24 3715 topology 3792 1136
+> 15 0 23 3715 topology 3779 1137
+> 16 0 23 3715 topology 3781 1137
+> 15 0 23 3715 topology 3728 1138
+> 16 0 23 3715 topology 3730 1138
+> 15 0 23 3715 topology 3755 1139
+> 16 0 23 3715 topology 3757 1139
+> 15 0 24 3715 topology 3769 1140
+> 16 0 24 3715 topology 3792 1140
+> 15 0 23 3715 topology 3785 1141
+> 16 0 23 3715 topology 3787 1141
+> 15 0 23 3715 topology 3761 1142
+> 16 0 23 3715 topology 3763 1142
+> 15 0 23 3715 topology 3716 1143
+> 16 0 23 3715 topology 3717 1143
+> 15 0 24 3715 topology 3747 1144
+> 16 0 24 3715 topology 3792 1144
+> 15 0 23 3715 topology 3740 1145
+> 16 0 23 3715 topology 3742 1145
+> 15 0 23 3715 topology 3767 1146
+> 16 0 23 3715 topology 3769 1146
+> 15 0 24 3715 topology 3777 1147
+> 16 0 24 3715 topology 3792 1147
+> 15 0 24 3715 topology 3724 1148
+> 16 0 24 3715 topology 3792 1148
+> 15 0 24 3715 topology 3759 1149
+> 16 0 24 3715 topology 3792 1149
+> 15 0 24 3715 topology 3789 1150
+> 16 0 24 3715 topology 3792 1150
+> 15 0 23 3715 topology 3728 1151
+> 16 0 23 3715 topology 3729 1151
+> 15 0 24 3715 topology 3736 1152
+> 16 0 24 3715 topology 3792 1152
+> 15 0 24 3715 topology 3771 1153
+> 16 0 24 3715 topology 3792 1153
+> 15 0 23 3715 topology 3740 1154
+> 16 0 23 3715 topology 3741 1154
+> 15 0 24 3715 topology 3726 1155
+> 16 0 24 3715 topology 3792 1155
+> 15 0 23 3715 topology 3719 1156
+> 16 0 23 3715 topology 3721 1156
+> 15 0 24 3715 topology 3748 1157
+> 16 0 24 3715 topology 3792 1157
+> 15 0 24 3715 topology 3738 1158
+> 16 0 24 3715 topology 3792 1158
+> 15 0 24 3715 topology 3784 1159
+> 16 0 24 3715 topology 3792 1159
+> 15 0 24 3715 topology 3760 1160
+> 16 0 24 3715 topology 3792 1160
+> 15 0 23 3715 topology 3731 1161
+> 16 0 23 3715 topology 3733 1161
+> 15 0 24 3715 topology 3772 1162
+> 16 0 24 3715 topology 3792 1162
+> 15 0 23 3715 topology 3743 1163
+> 16 0 23 3715 topology 3744 1163
+> 15 0 24 3715 topology 3744 1164
+> 16 0 24 3715 topology 3792 1164
+> 15 0 23 3715 topology 3746 1165
+> 16 0 23 3715 topology 3747 1165
+> 15 0 24 3715 topology 3774 1166
+> 16 0 24 3715 topology 3792 1166
+> 15 0 23 3715 topology 3749 1167
+> 16 0 23 3715 topology 3750 1167
+> 15 0 24 3715 topology 3756 1168
+> 16 0 24 3715 topology 3792 1168
+> 15 0 23 3715 topology 3725 1169
+> 16 0 23 3715 topology 3726 1169
+> 15 0 23 3715 topology 3752 1170
+> 16 0 23 3715 topology 3753 1170
+> 15 0 24 3715 topology 3786 1171
 > 16 0 24 3715 topology 3792 1171
-> 15 0 24 3715 topology 3792 1172
-> 16 0 24 3715 topology 3727 1172
-> 15 0 25 3715 topology 3727 1173
-> 16 0 25 3715 topology 3725 1173
-> 15 0 23 3715 topology 3746 1174
-> 16 0 23 3715 topology 3747 1174
-> 15 0 24 3715 topology 3747 1175
-> 16 0 24 3715 topology 3792 1175
-> 15 0 23 3715 topology 3776 1176
-> 16 0 23 3715 topology 3777 1176
-> 15 0 24 3715 topology 3777 1177
-> 16 0 24 3715 topology 3792 1177
-> 15 0 23 3715 topology 3758 1178
-> 16 0 23 3715 topology 3759 1178
-> 15 0 24 3715 topology 3759 1179
-> 16 0 24 3715 topology 3792 1179
-> 15 0 23 3715 topology 3788 1180
-> 16 0 23 3715 topology 3789 1180
-> 15 0 24 3715 topology 3789 1181
-> 16 0 24 3715 topology 3792 1181
-> 15 0 23 3715 topology 3770 1182
-> 16 0 23 3715 topology 3771 1182
-> 15 0 24 3715 topology 3771 1183
-> 16 0 24 3715 topology 3792 1183
-> 15 0 23 3715 topology 3722 1184
-> 16 0 23 3715 topology 3723 1184
-> 15 0 24 3715 topology 3723 1185
+> 15 0 24 3715 topology 3727 1172
+> 16 0 24 3715 topology 3792 1172
+> 15 0 23 3715 topology 3755 1173
+> 16 0 23 3715 topology 3756 1173
+> 15 0 24 3715 topology 3768 1174
+> 16 0 24 3715 topology 3792 1174
+> 15 0 23 3715 topology 3758 1175
+> 16 0 23 3715 topology 3759 1175
+> 15 0 24 3715 topology 3739 1176
+> 16 0 24 3715 topology 3792 1176
+> 15 0 23 3715 topology 3761 1177
+> 16 0 23 3715 topology 3762 1177
+> 15 0 23 3715 topology 3737 1178
+> 16 0 23 3715 topology 3738 1178
+> 15 0 23 3715 topology 3764 1179
+> 16 0 23 3715 topology 3765 1179
+> 15 0 23 3715 topology 3767 1180
+> 16 0 23 3715 topology 3768 1180
+> 15 0 23 3715 topology 3770 1181
+> 16 0 23 3715 topology 3771 1181
+> 15 0 24 3715 topology 3723 1182
+> 16 0 24 3715 topology 3792 1182
+> 15 0 23 3715 topology 3746 1183
+> 16 0 23 3715 topology 3748 1183
+> 15 0 24 3715 topology 3775 1184
+> 16 0 24 3715 topology 3792 1184
+> 15 0 24 3715 topology 3751 1185
 > 16 0 24 3715 topology 3792 1185
-> 15 0 23 3715 topology 3734 1186
-> 16 0 23 3715 topology 3735 1186
+> 15 0 23 3715 topology 3722 1186
+> 16 0 23 3715 topology 3724 1186
 > 15 0 24 3715 topology 3735 1187
 > 16 0 24 3715 topology 3792 1187
-> 15 0 23 3715 topology 3743 1188
-> 16 0 23 3715 topology 3744 1188
-> 15 0 24 3715 topology 3744 1189
-> 16 0 24 3715 topology 3792 1189
-> 15 0 23 3715 topology 3773 1190
-> 16 0 23 3715 topology 3774 1190
-> 15 0 24 3715 topology 3774 1191
+> 15 0 23 3715 topology 3776 1188
+> 16 0 23 3715 topology 3778 1188
+> 15 0 23 3715 topology 3752 1189
+> 16 0 23 3715 topology 3754 1189
+> 15 0 24 3715 topology 3787 1190
+> 16 0 24 3715 topology 3792 1190
+> 15 0 24 3715 topology 3763 1191
 > 16 0 24 3715 topology 3792 1191
-> 15 0 23 3715 topology 3755 1192
-> 16 0 23 3715 topology 3756 1192
-> 15 0 24 3715 topology 3756 1193
-> 16 0 24 3715 topology 3792 1193
-> 15 0 23 3715 topology 3785 1194
-> 16 0 23 3715 topology 3786 1194
-> 15 0 24 3715 topology 3786 1195
-> 16 0 24 3715 topology 3792 1195
-> 15 0 23 3715 topology 3767 1196
-> 16 0 23 3715 topology 3768 1196
-> 15 0 24 3715 topology 3768 1197
-> 16 0 24 3715 topology 3792 1197
-> 15 0 23 3715 topology 3719 1198
-> 16 0 23 3715 topology 3720 1198
-> 15 0 24 3715 topology 3720 1199
-> 16 0 24 3715 topology 3792 1199
-> 15 0 23 3715 topology 3731 1200
-> 16 0 23 3715 topology 3732 1200
-> 15 0 24 3715 topology 3732 1201
-> 16 0 24 3715 topology 3792 1201
-> 15 0 23 3715 topology 3752 1202
-> 16 0 23 3715 topology 3753 1202
-> 15 0 24 3715 topology 3753 1203
+> 15 0 25 3715 topology 3791 1192
+> 16 0 25 3715 topology 3792 1192
+> 15 0 23 3715 topology 3782 1193
+> 16 0 23 3715 topology 3784 1193
+> 15 0 23 3715 topology 3758 1194
+> 16 0 23 3715 topology 3760 1194
+> 15 0 23 3715 topology 3734 1195
+> 16 0 23 3715 topology 3736 1195
+> 15 0 23 3715 topology 3788 1196
+> 16 0 23 3715 topology 3790 1196
+> 15 0 23 3715 topology 3764 1197
+> 16 0 23 3715 topology 3766 1197
+> 15 0 24 3715 topology 3718 1198
+> 16 0 24 3715 topology 3792 1198
+> 15 0 23 3715 topology 3722 1199
+> 16 0 23 3715 topology 3723 1199
+> 15 0 24 3715 topology 3753 1200
+> 16 0 24 3715 topology 3792 1200
+> 15 0 23 3715 topology 3770 1201
+> 16 0 23 3715 topology 3772 1201
+> 15 0 24 3715 topology 3783 1202
+> 16 0 24 3715 topology 3792 1202
+> 15 0 24 3715 topology 3730 1203
 > 16 0 24 3715 topology 3792 1203
-> 15 0 23 3715 topology 3782 1204
-> 16 0 23 3715 topology 3783 1204
-> 15 0 24 3715 topology 3783 1205
-> 16 0 24 3715 topology 3792 1205
-> 15 0 23 3715 topology 3764 1206
-> 16 0 23 3715 topology 3765 1206
-> 15 0 24 3715 topology 3765 1207
+> 15 0 24 3715 topology 3765 1204
+> 16 0 24 3715 topology 3792 1204
+> 15 0 23 3715 topology 3734 1205
+> 16 0 23 3715 topology 3735 1205
+> 15 0 24 3715 topology 3742 1206
+> 16 0 24 3715 topology 3792 1206
+> 15 0 24 3715 topology 3720 1207
 > 16 0 24 3715 topology 3792 1207
-> 15 0 23 3715 topology 3716 1208
-> 16 0 23 3715 topology 3717 1208
-> 15 0 24 3715 topology 3717 1209
+> 15 0 24 3715 topology 3732 1208
+> 16 0 24 3715 topology 3792 1208
+> 15 0 24 3715 topology 3778 1209
 > 16 0 24 3715 topology 3792 1209
-> 15 0 23 3715 topology 3728 1210
-> 16 0 23 3715 topology 3729 1210
-> 15 0 24 3715 topology 3729 1211
-> 16 0 24 3715 topology 3792 1211
-> 15 0 23 3715 topology 3740 1212
-> 16 0 23 3715 topology 3741 1212
-> 15 0 24 3715 topology 3741 1213
+> 15 0 24 3715 topology 3754 1210
+> 16 0 24 3715 topology 3792 1210
+> 15 0 23 3715 topology 3725 1211
+> 16 0 23 3715 topology 3727 1211
+> 15 0 24 3715 topology 3790 1212
+> 16 0 24 3715 topology 3792 1212
+> 15 0 24 3715 topology 3766 1213
 > 16 0 24 3715 topology 3792 1213
-> 15 0 23 3715 topology 3749 1214
-> 16 0 23 3715 topology 3750 1214
-> 15 0 24 3715 topology 3750 1215
-> 16 0 24 3715 topology 3792 1215
-> 15 0 23 3715 topology 3779 1216
-> 16 0 23 3715 topology 3780 1216
-> 15 0 24 3715 topology 3780 1217
+> 15 0 23 3715 topology 3737 1214
+> 16 0 23 3715 topology 3739 1214
+> 15 0 23 3715 topology 3719 1215
+> 16 0 23 3715 topology 3720 1215
+> 15 0 23 3715 topology 3773 1216
+> 16 0 23 3715 topology 3774 1216
+> 15 0 24 3715 topology 3750 1217
 > 16 0 24 3715 topology 3792 1217
-> 15 0 23 3715 topology 3761 1218
-> 16 0 23 3715 topology 3762 1218
-> 15 0 24 3715 topology 3762 1219
+> 15 0 23 3715 topology 3776 1218
+> 16 0 23 3715 topology 3777 1218
+> 15 0 24 3715 topology 3780 1219
 > 16 0 24 3715 topology 3792 1219
-> 15 0 27 3415 topology 3919 1220
-> 16 0 27 3415 topology 3917 1220
-> 15 0 28 3415 topology 3917 1221
-> 16 0 28 3415 topology 3915 1221
-> 15 0 27 3415 topology 3919 1222
-> 16 0 27 3415 topology 3611 1222
-> 15 0 28 3415 topology 3611 1223
-> 16 0 28 3415 topology 3609 1223
-> 15 0 27 3415 topology 3919 1224
-> 16 0 27 3415 topology 3714 1224
-> 15 0 28 3415 topology 3714 1225
-> 16 0 28 3415 topology 3712 1225
-> 15 0 27 3415 topology 3919 1226
-> 16 0 27 3415 topology 3793 1226
-> 15 0 28 3415 topology 3793 1227
-> 16 0 28 3415 topology 3791 1227
-> 15 0 21 3415 topology 3917 1228
-> 16 0 21 3415 topology 3611 1228
-> 15 0 21 3415 topology 3917 1229
-> 16 0 21 3415 topology 3714 1229
-> 15 0 21 3415 topology 3917 1230
-> 16 0 21 3415 topology 3793 1230
+> 15 0 21 3415 topology 3611 1220
+> 16 0 21 3415 topology 3917 1220
+> 15 0 26 3415 topology 3714 1221
+> 16 0 26 3415 topology 3919 1221
+> 15 0 21 3415 topology 3611 1222
+> 16 0 21 3415 topology 3793 1222
+> 15 0 26 3415 topology 3793 1223
+> 16 0 26 3415 topology 3791 1223
+> 15 0 26 3415 topology 3611 1224
+> 16 0 26 3415 topology 3919 1224
+> 15 0 26 3415 topology 3917 1225
+> 16 0 26 3415 topology 3919 1225
+> 15 0 21 3415 topology 3793 1226
+> 16 0 21 3415 topology 3917 1226
+> 15 0 26 3415 topology 3714 1227
+> 16 0 26 3415 topology 3712 1227
+> 15 0 26 3415 topology 3917 1228
+> 16 0 26 3415 topology 3915 1228
+> 15 0 21 3415 topology 3714 1229
+> 16 0 21 3415 topology 3793 1229
+> 15 0 26 3415 topology 3793 1230
+> 16 0 26 3415 topology 3919 1230
 > 15 0 21 3415 topology 3611 1231
 > 16 0 21 3415 topology 3714 1231
-> 15 0 21 3415 topology 3611 1232
-> 16 0 21 3415 topology 3793 1232
+> 15 0 27 3415 topology 3609 1232
+> 16 0 27 3415 topology 3611 1232
 > 15 0 21 3415 topology 3714 1233
-> 16 0 21 3415 topology 3793 1233
-> 15 0 23 540 topology 628 1234
-> 16 0 23 540 topology 629 1234
-> 15 0 24 540 topology 629 1235
-> 16 0 24 540 topology 758 1235
-> 15 0 24 540 topology 758 1236
-> 16 0 24 540 topology 582 1236
-> 15 0 25 540 topology 582 1237
-> 16 0 25 540 topology 580 1237
-> 15 0 24 540 topology 758 1238
-> 16 0 24 540 topology 666 1238
-> 15 0 25 540 topology 666 1239
-> 16 0 25 540 topology 664 1239
-> 15 0 24 540 topology 758 1240
-> 16 0 24 540 topology 750 1240
-> 15 0 25 540 topology 750 1241
-> 16 0 25 540 topology 748 1241
-> 15 0 24 540 topology 758 1242
-> 16 0 24 540 topology 618 1242
-> 15 0 25 540 topology 618 1243
-> 16 0 25 540 topology 616 1243
-> 15 0 24 540 topology 758 1244
-> 16 0 24 540 topology 702 1244
-> 15 0 25 540 topology 702 1245
-> 16 0 25 540 topology 700 1245
-> 15 0 24 540 topology 758 1246
-> 16 0 24 540 topology 654 1246
-> 15 0 25 540 topology 654 1247
-> 16 0 25 540 topology 652 1247
-> 15 0 24 540 topology 758 1248
-> 16 0 24 540 topology 738 1248
-> 15 0 25 540 topology 738 1249
-> 16 0 25 540 topology 736 1249
-> 15 0 24 540 topology 758 1250
-> 16 0 24 540 topology 564 1250
-> 15 0 25 540 topology 564 1251
-> 16 0 25 540 topology 562 1251
-> 15 0 24 540 topology 758 1252
-> 16 0 24 540 topology 573 1252
-> 15 0 25 540 topology 573 1253
-> 16 0 25 540 topology 571 1253
-> 15 0 24 540 topology 758 1254
-> 16 0 24 540 topology 609 1254
-> 15 0 25 540 topology 609 1255
-> 16 0 25 540 topology 607 1255
-> 15 0 24 540 topology 758 1256
-> 16 0 24 540 topology 693 1256
-> 15 0 25 540 topology 693 1257
-> 16 0 25 540 topology 691 1257
-> 15 0 24 540 topology 758 1258
-> 16 0 24 540 topology 645 1258
-> 15 0 25 540 topology 645 1259
-> 16 0 25 540 topology 643 1259
-> 15 0 24 540 topology 758 1260
-> 16 0 24 540 topology 729 1260
-> 15 0 25 540 topology 729 1261
-> 16 0 25 540 topology 727 1261
-> 15 0 24 540 topology 758 1262
-> 16 0 24 540 topology 597 1262
-> 15 0 25 540 topology 597 1263
-> 16 0 25 540 topology 595 1263
-> 15 0 24 540 topology 758 1264
-> 16 0 24 540 topology 681 1264
-> 15 0 25 540 topology 681 1265
-> 16 0 25 540 topology 679 1265
-> 15 0 24 540 topology 758 1266
-> 16 0 24 540 topology 717 1266
-> 15 0 25 540 topology 717 1267
-> 16 0 25 540 topology 715 1267
-> 15 0 24 540 topology 758 1268
-> 16 0 24 540 topology 555 1268
-> 15 0 25 540 topology 555 1269
-> 16 0 25 540 topology 553 1269
-> 15 0 24 540 topology 758 1270
-> 16 0 24 540 topology 600 1270
-> 15 0 25 540 topology 600 1271
-> 16 0 25 540 topology 598 1271
-> 15 0 24 540 topology 758 1272
-> 16 0 24 540 topology 636 1272
-> 15 0 25 540 topology 636 1273
-> 16 0 25 540 topology 634 1273
-> 15 0 24 540 topology 758 1274
-> 16 0 24 540 topology 720 1274
-> 15 0 25 540 topology 720 1275
-> 16 0 25 540 topology 718 1275
-> 15 0 24 540 topology 758 1276
-> 16 0 24 540 topology 588 1276
-> 15 0 25 540 topology 588 1277
-> 16 0 25 540 topology 586 1277
-> 15 0 24 540 topology 758 1278
-> 16 0 24 540 topology 672 1278
-> 15 0 25 540 topology 672 1279
-> 16 0 25 540 topology 670 1279
-> 15 0 24 540 topology 758 1280
-> 16 0 24 540 topology 756 1280
-> 15 0 25 540 topology 756 1281
-> 16 0 25 540 topology 754 1281
-> 15 0 24 540 topology 758 1282
-> 16 0 24 540 topology 624 1282
-> 15 0 25 540 topology 624 1283
-> 16 0 25 540 topology 622 1283
-> 15 0 24 540 topology 758 1284
-> 16 0 24 540 topology 708 1284
-> 15 0 25 540 topology 708 1285
-> 16 0 25 540 topology 706 1285
-> 15 0 24 540 topology 758 1286
-> 16 0 24 540 topology 744 1286
-> 15 0 25 540 topology 744 1287
-> 16 0 25 540 topology 742 1287
-> 15 0 24 540 topology 758 1288
-> 16 0 24 540 topology 546 1288
-> 15 0 25 540 topology 546 1289
-> 16 0 25 540 topology 544 1289
-> 15 0 24 540 topology 758 1290
-> 16 0 24 540 topology 579 1290
-> 15 0 25 540 topology 579 1291
-> 16 0 25 540 topology 577 1291
-> 15 0 24 540 topology 758 1292
-> 16 0 24 540 topology 663 1292
-> 15 0 25 540 topology 663 1293
-> 16 0 25 540 topology 661 1293
-> 15 0 24 540 topology 758 1294
-> 16 0 24 540 topology 615 1294
-> 15 0 25 540 topology 615 1295
-> 16 0 25 540 topology 613 1295
-> 15 0 24 540 topology 758 1296
-> 16 0 24 540 topology 699 1296
-> 15 0 25 540 topology 699 1297
-> 16 0 25 540 topology 697 1297
-> 15 0 24 540 topology 758 1298
-> 16 0 24 540 topology 651 1298
-> 15 0 25 540 topology 651 1299
-> 16 0 25 540 topology 649 1299
-> 15 0 24 540 topology 758 1300
-> 16 0 24 540 topology 735 1300
-> 15 0 25 540 topology 735 1301
-> 16 0 25 540 topology 733 1301
-> 15 0 24 540 topology 758 1302
-> 16 0 24 540 topology 687 1302
-> 15 0 25 540 topology 687 1303
-> 16 0 25 540 topology 685 1303
-> 15 0 24 540 topology 758 1304
-> 16 0 24 540 topology 561 1304
-> 15 0 25 540 topology 561 1305
-> 16 0 25 540 topology 559 1305
-> 15 0 24 540 topology 758 1306
-> 16 0 24 540 topology 570 1306
-> 15 0 25 540 topology 570 1307
-> 16 0 25 540 topology 568 1307
-> 15 0 24 540 topology 758 1308
-> 16 0 24 540 topology 606 1308
-> 15 0 25 540 topology 606 1309
-> 16 0 25 540 topology 604 1309
-> 15 0 24 540 topology 758 1310
-> 16 0 24 540 topology 690 1310
-> 15 0 25 540 topology 690 1311
-> 16 0 25 540 topology 688 1311
-> 15 0 24 540 topology 758 1312
-> 16 0 24 540 topology 642 1312
-> 15 0 25 540 topology 642 1313
-> 16 0 25 540 topology 640 1313
-> 15 0 24 540 topology 758 1314
-> 16 0 24 540 topology 726 1314
-> 15 0 25 540 topology 726 1315
-> 16 0 25 540 topology 724 1315
-> 15 0 24 540 topology 758 1316
-> 16 0 24 540 topology 594 1316
-> 15 0 25 540 topology 594 1317
-> 16 0 25 540 topology 592 1317
-> 15 0 24 540 topology 758 1318
-> 16 0 24 540 topology 678 1318
-> 15 0 25 540 topology 678 1319
-> 16 0 25 540 topology 676 1319
-> 15 0 24 540 topology 758 1320
-> 16 0 24 540 topology 714 1320
-> 15 0 25 540 topology 714 1321
-> 16 0 25 540 topology 712 1321
-> 15 0 26 540 topology 758 1322
-> 16 0 26 540 topology 757 1322
-> 15 0 24 540 topology 758 1323
-> 16 0 24 540 topology 552 1323
-> 15 0 25 540 topology 552 1324
-> 16 0 25 540 topology 550 1324
-> 15 0 24 540 topology 758 1325
-> 16 0 24 540 topology 633 1325
-> 15 0 25 540 topology 633 1326
-> 16 0 25 540 topology 631 1326
-> 15 0 24 540 topology 758 1327
-> 16 0 24 540 topology 585 1327
-> 15 0 25 540 topology 585 1328
-> 16 0 25 540 topology 583 1328
-> 15 0 24 540 topology 758 1329
-> 16 0 24 540 topology 669 1329
-> 15 0 25 540 topology 669 1330
-> 16 0 25 540 topology 667 1330
-> 15 0 24 540 topology 758 1331
-> 16 0 24 540 topology 753 1331
-> 15 0 25 540 topology 753 1332
-> 16 0 25 540 topology 751 1332
-> 15 0 24 540 topology 758 1333
-> 16 0 24 540 topology 621 1333
-> 15 0 25 540 topology 621 1334
-> 16 0 25 540 topology 619 1334
-> 15 0 24 540 topology 758 1335
-> 16 0 24 540 topology 705 1335
-> 15 0 25 540 topology 705 1336
-> 16 0 25 540 topology 703 1336
-> 15 0 24 540 topology 758 1337
-> 16 0 24 540 topology 657 1337
-> 15 0 25 540 topology 657 1338
-> 16 0 25 540 topology 655 1338
-> 15 0 24 540 topology 758 1339
-> 16 0 24 540 topology 741 1339
-> 15 0 25 540 topology 741 1340
-> 16 0 25 540 topology 739 1340
-> 15 0 24 540 topology 758 1341
-> 16 0 24 540 topology 543 1341
-> 15 0 25 540 topology 543 1342
-> 16 0 25 540 topology 541 1342
-> 15 0 24 540 topology 758 1343
-> 16 0 24 540 topology 567 1343
-> 15 0 25 540 topology 567 1344
-> 16 0 25 540 topology 565 1344
-> 15 0 24 540 topology 758 1345
-> 16 0 24 540 topology 576 1345
-> 15 0 25 540 topology 576 1346
-> 16 0 25 540 topology 574 1346
-> 15 0 24 540 topology 758 1347
-> 16 0 24 540 topology 660 1347
-> 15 0 25 540 topology 660 1348
-> 16 0 25 540 topology 658 1348
-> 15 0 24 540 topology 758 1349
-> 16 0 24 540 topology 612 1349
-> 15 0 25 540 topology 612 1350
-> 16 0 25 540 topology 610 1350
-> 15 0 24 540 topology 758 1351
-> 16 0 24 540 topology 696 1351
-> 15 0 25 540 topology 696 1352
-> 16 0 25 540 topology 694 1352
-> 15 0 24 540 topology 758 1353
-> 16 0 24 540 topology 648 1353
-> 15 0 25 540 topology 648 1354
-> 16 0 25 540 topology 646 1354
-> 15 0 24 540 topology 758 1355
-> 16 0 24 540 topology 732 1355
-> 15 0 25 540 topology 732 1356
-> 16 0 25 540 topology 730 1356
-> 15 0 24 540 topology 758 1357
-> 16 0 24 540 topology 684 1357
-> 15 0 25 540 topology 684 1358
-> 16 0 25 540 topology 682 1358
-> 15 0 24 540 topology 758 1359
-> 16 0 24 540 topology 558 1359
-> 15 0 25 540 topology 558 1360
-> 16 0 25 540 topology 556 1360
-> 15 0 24 540 topology 758 1361
-> 16 0 24 540 topology 603 1361
-> 15 0 25 540 topology 603 1362
-> 16 0 25 540 topology 601 1362
-> 15 0 24 540 topology 758 1363
-> 16 0 24 540 topology 639 1363
-> 15 0 25 540 topology 639 1364
-> 16 0 25 540 topology 637 1364
-> 15 0 24 540 topology 758 1365
-> 16 0 24 540 topology 723 1365
-> 15 0 25 540 topology 723 1366
-> 16 0 25 540 topology 721 1366
-> 15 0 24 540 topology 758 1367
-> 16 0 24 540 topology 591 1367
-> 15 0 25 540 topology 591 1368
-> 16 0 25 540 topology 589 1368
-> 15 0 24 540 topology 758 1369
-> 16 0 24 540 topology 675 1369
-> 15 0 25 540 topology 675 1370
-> 16 0 25 540 topology 673 1370
-> 15 0 24 540 topology 758 1371
-> 16 0 24 540 topology 627 1371
-> 15 0 25 540 topology 627 1372
-> 16 0 25 540 topology 625 1372
-> 15 0 24 540 topology 758 1373
-> 16 0 24 540 topology 711 1373
-> 15 0 25 540 topology 711 1374
-> 16 0 25 540 topology 709 1374
-> 15 0 24 540 topology 758 1375
-> 16 0 24 540 topology 747 1375
-> 15 0 25 540 topology 747 1376
-> 16 0 25 540 topology 745 1376
-> 15 0 24 540 topology 758 1377
-> 16 0 24 540 topology 549 1377
-> 15 0 25 540 topology 549 1378
-> 16 0 25 540 topology 547 1378
-> 15 0 23 540 topology 580 1379
-> 16 0 23 540 topology 581 1379
-> 15 0 24 540 topology 581 1380
-> 16 0 24 540 topology 758 1380
-> 15 0 24 540 topology 758 1381
-> 16 0 24 540 topology 630 1381
-> 15 0 25 540 topology 630 1382
-> 16 0 25 540 topology 628 1382
-> 15 0 23 540 topology 664 1383
-> 16 0 23 540 topology 665 1383
-> 15 0 24 540 topology 665 1384
+> 16 0 21 3415 topology 3917 1233
+> 15 0 24 540 topology 732 1234
+> 16 0 24 540 topology 758 1234
+> 15 0 23 540 topology 607 1235
+> 16 0 23 540 topology 609 1235
+> 15 0 24 540 topology 684 1236
+> 16 0 24 540 topology 758 1236
+> 15 0 23 540 topology 745 1237
+> 16 0 23 540 topology 746 1237
+> 15 0 23 540 topology 637 1238
+> 16 0 23 540 topology 639 1238
+> 15 0 23 540 topology 667 1239
+> 16 0 23 540 topology 669 1239
+> 15 0 23 540 topology 541 1240
+> 16 0 23 540 topology 542 1240
+> 15 0 24 540 topology 578 1241
+> 16 0 24 540 topology 758 1241
+> 15 0 23 540 topology 589 1242
+> 16 0 23 540 topology 591 1242
+> 15 0 23 540 topology 697 1243
+> 16 0 23 540 topology 699 1243
+> 15 0 23 540 topology 619 1244
+> 16 0 23 540 topology 621 1244
+> 15 0 24 540 topology 638 1245
+> 16 0 24 540 topology 758 1245
+> 15 0 23 540 topology 727 1246
+> 16 0 23 540 topology 729 1246
+> 15 0 24 540 topology 555 1247
+> 16 0 24 540 topology 758 1247
+> 15 0 23 540 topology 649 1248
+> 16 0 23 540 topology 651 1248
+> 15 0 24 540 topology 698 1249
+> 16 0 24 540 topology 758 1249
+> 15 0 24 540 topology 620 1250
+> 16 0 24 540 topology 758 1250
+> 15 0 23 540 topology 679 1251
+> 16 0 23 540 topology 681 1251
+> 15 0 24 540 topology 680 1252
+> 16 0 24 540 topology 758 1252
+> 15 0 23 540 topology 709 1253
+> 16 0 23 540 topology 711 1253
+> 15 0 24 540 topology 740 1254
+> 16 0 24 540 topology 758 1254
+> 15 0 23 540 topology 739 1255
+> 16 0 23 540 topology 741 1255
+> 15 0 25 540 topology 757 1256
+> 16 0 25 540 topology 758 1256
+> 15 0 24 540 topology 545 1257
+> 16 0 24 540 topology 758 1257
+> 15 0 23 540 topology 565 1258
+> 16 0 23 540 topology 566 1258
+> 15 0 24 540 topology 603 1259
+> 16 0 24 540 topology 758 1259
+> 15 0 24 540 topology 639 1260
+> 16 0 24 540 topology 758 1260
+> 15 0 24 540 topology 723 1261
+> 16 0 24 540 topology 758 1261
+> 15 0 24 540 topology 591 1262
+> 16 0 24 540 topology 758 1262
+> 15 0 24 540 topology 675 1263
+> 16 0 24 540 topology 758 1263
+> 15 0 24 540 topology 627 1264
+> 16 0 24 540 topology 758 1264
+> 15 0 24 540 topology 711 1265
+> 16 0 24 540 topology 758 1265
+> 15 0 24 540 topology 747 1266
+> 16 0 24 540 topology 758 1266
+> 15 0 23 540 topology 562 1267
+> 16 0 23 540 topology 564 1267
+> 15 0 24 540 topology 605 1268
+> 16 0 24 540 topology 758 1268
+> 15 0 24 540 topology 546 1269
+> 16 0 24 540 topology 758 1269
+> 15 0 23 540 topology 571 1270
+> 16 0 23 540 topology 572 1270
+> 15 0 24 540 topology 665 1271
+> 16 0 24 540 topology 758 1271
+> 15 0 24 540 topology 587 1272
+> 16 0 24 540 topology 758 1272
+> 15 0 23 540 topology 628 1273
+> 16 0 23 540 topology 629 1273
+> 15 0 24 540 topology 725 1274
+> 16 0 24 540 topology 758 1274
+> 15 0 23 540 topology 550 1275
+> 16 0 23 540 topology 551 1275
+> 15 0 23 540 topology 577 1276
+> 16 0 23 540 topology 578 1276
+> 15 0 24 540 topology 647 1277
+> 16 0 24 540 topology 758 1277
+> 15 0 23 540 topology 634 1278
+> 16 0 23 540 topology 635 1278
+> 15 0 24 540 topology 707 1279
+> 16 0 24 540 topology 758 1279
+> 15 0 23 540 topology 583 1280
+> 16 0 23 540 topology 584 1280
+> 15 0 23 540 topology 691 1281
+> 16 0 23 540 topology 692 1281
+> 15 0 23 540 topology 640 1282
+> 16 0 23 540 topology 641 1282
+> 15 0 23 540 topology 748 1283
+> 16 0 23 540 topology 749 1283
+> 15 0 23 540 topology 589 1284
+> 16 0 23 540 topology 590 1284
+> 15 0 23 540 topology 697 1285
+> 16 0 23 540 topology 698 1285
+> 15 0 23 540 topology 646 1286
+> 16 0 23 540 topology 647 1286
+> 15 0 23 540 topology 754 1287
+> 16 0 23 540 topology 755 1287
+> 15 0 24 540 topology 554 1288
+> 16 0 24 540 topology 758 1288
+> 15 0 23 540 topology 595 1289
+> 16 0 23 540 topology 596 1289
+> 15 0 23 540 topology 703 1290
+> 16 0 23 540 topology 704 1290
+> 15 0 24 540 topology 630 1291
+> 16 0 24 540 topology 758 1291
+> 15 0 23 540 topology 652 1292
+> 16 0 23 540 topology 653 1292
+> 15 0 24 540 topology 582 1293
+> 16 0 24 540 topology 758 1293
+> 15 0 24 540 topology 666 1294
+> 16 0 24 540 topology 758 1294
+> 15 0 23 540 topology 709 1295
+> 16 0 23 540 topology 710 1295
+> 15 0 23 540 topology 574 1296
+> 16 0 23 540 topology 576 1296
+> 15 0 24 540 topology 750 1297
+> 16 0 24 540 topology 758 1297
+> 15 0 24 540 topology 618 1298
+> 16 0 24 540 topology 758 1298
+> 15 0 23 540 topology 604 1299
+> 16 0 23 540 topology 606 1299
+> 15 0 24 540 topology 702 1300
+> 16 0 24 540 topology 758 1300
+> 15 0 23 540 topology 715 1301
+> 16 0 23 540 topology 716 1301
+> 15 0 23 540 topology 553 1302
+> 16 0 23 540 topology 555 1302
+> 15 0 23 540 topology 634 1303
+> 16 0 23 540 topology 636 1303
+> 15 0 24 540 topology 654 1304
+> 16 0 24 540 topology 758 1304
+> 15 0 24 540 topology 738 1305
+> 16 0 24 540 topology 758 1305
+> 15 0 23 540 topology 664 1306
+> 16 0 23 540 topology 666 1306
+> 15 0 24 540 topology 572 1307
+> 16 0 24 540 topology 758 1307
+> 15 0 23 540 topology 586 1308
+> 16 0 23 540 topology 588 1308
+> 15 0 23 540 topology 694 1309
+> 16 0 23 540 topology 696 1309
+> 15 0 23 540 topology 616 1310
+> 16 0 23 540 topology 618 1310
+> 15 0 24 540 topology 632 1311
+> 16 0 24 540 topology 758 1311
+> 15 0 23 540 topology 724 1312
+> 16 0 23 540 topology 726 1312
+> 15 0 23 540 topology 646 1313
+> 16 0 23 540 topology 648 1313
+> 15 0 24 540 topology 692 1314
+> 16 0 24 540 topology 758 1314
+> 15 0 23 540 topology 754 1315
+> 16 0 23 540 topology 756 1315
+> 15 0 24 540 topology 614 1316
+> 16 0 24 540 topology 758 1316
+> 15 0 23 540 topology 676 1317
+> 16 0 23 540 topology 678 1317
+> 15 0 24 540 topology 752 1318
+> 16 0 24 540 topology 758 1318
+> 15 0 24 540 topology 674 1319
+> 16 0 24 540 topology 758 1319
+> 15 0 24 540 topology 561 1320
+> 16 0 24 540 topology 758 1320
+> 15 0 24 540 topology 596 1321
+> 16 0 24 540 topology 758 1321
+> 15 0 23 540 topology 706 1322
+> 16 0 23 540 topology 708 1322
+> 15 0 24 540 topology 734 1323
+> 16 0 24 540 topology 758 1323
+> 15 0 24 540 topology 656 1324
+> 16 0 24 540 topology 758 1324
+> 15 0 23 540 topology 736 1325
+> 16 0 23 540 topology 738 1325
+> 15 0 24 540 topology 716 1326
+> 16 0 24 540 topology 758 1326
+> 15 0 23 540 topology 559 1327
+> 16 0 23 540 topology 560 1327
+> 15 0 24 540 topology 573 1328
+> 16 0 24 540 topology 758 1328
+> 15 0 23 540 topology 544 1329
+> 16 0 23 540 topology 546 1329
+> 15 0 24 540 topology 563 1330
+> 16 0 24 540 topology 758 1330
+> 15 0 24 540 topology 609 1331
+> 16 0 24 540 topology 758 1331
+> 15 0 24 540 topology 693 1332
+> 16 0 24 540 topology 758 1332
+> 15 0 24 540 topology 645 1333
+> 16 0 24 540 topology 758 1333
+> 15 0 24 540 topology 729 1334
+> 16 0 24 540 topology 758 1334
+> 15 0 24 540 topology 597 1335
+> 16 0 24 540 topology 758 1335
+> 15 0 24 540 topology 681 1336
+> 16 0 24 540 topology 758 1336
+> 15 0 24 540 topology 717 1337
+> 16 0 24 540 topology 758 1337
+> 15 0 24 540 topology 599 1338
+> 16 0 24 540 topology 758 1338
+> 15 0 24 540 topology 659 1339
+> 16 0 24 540 topology 758 1339
+> 15 0 23 540 topology 544 1340
+> 16 0 23 540 topology 545 1340
+> 15 0 24 540 topology 581 1341
+> 16 0 24 540 topology 758 1341
+> 15 0 23 540 topology 598 1342
+> 16 0 23 540 topology 599 1342
+> 15 0 24 540 topology 719 1343
+> 16 0 24 540 topology 758 1343
+> 15 0 24 540 topology 552 1344
+> 16 0 24 540 topology 758 1344
+> 15 0 24 540 topology 641 1345
+> 16 0 24 540 topology 758 1345
+> 15 0 23 540 topology 604 1346
+> 16 0 23 540 topology 605 1346
+> 15 0 24 540 topology 701 1347
+> 16 0 24 540 topology 758 1347
+> 15 0 24 540 topology 623 1348
+> 16 0 24 540 topology 758 1348
+> 15 0 23 540 topology 661 1349
+> 16 0 23 540 topology 662 1349
+> 15 0 24 540 topology 683 1350
+> 16 0 24 540 topology 758 1350
+> 15 0 23 540 topology 610 1351
+> 16 0 23 540 topology 611 1351
+> 15 0 23 540 topology 718 1352
+> 16 0 23 540 topology 719 1352
+> 15 0 24 540 topology 743 1353
+> 16 0 24 540 topology 758 1353
+> 15 0 23 540 topology 667 1354
+> 16 0 23 540 topology 668 1354
+> 15 0 23 540 topology 616 1355
+> 16 0 23 540 topology 617 1355
+> 15 0 23 540 topology 724 1356
+> 16 0 23 540 topology 725 1356
+> 15 0 24 540 topology 548 1357
+> 16 0 24 540 topology 758 1357
+> 15 0 23 540 topology 673 1358
+> 16 0 23 540 topology 674 1358
+> 15 0 24 540 topology 600 1359
+> 16 0 24 540 topology 758 1359
+> 15 0 23 540 topology 622 1360
+> 16 0 23 540 topology 623 1360
+> 15 0 23 540 topology 730 1361
+> 16 0 23 540 topology 731 1361
+> 15 0 23 540 topology 679 1362
+> 16 0 23 540 topology 680 1362
+> 15 0 23 540 topology 571 1363
+> 16 0 23 540 topology 573 1363
+> 15 0 24 540 topology 636 1364
+> 16 0 24 540 topology 758 1364
+> 15 0 24 540 topology 720 1365
+> 16 0 24 540 topology 758 1365
+> 15 0 23 540 topology 736 1366
+> 16 0 23 540 topology 737 1366
+> 15 0 24 540 topology 588 1367
+> 16 0 24 540 topology 758 1367
+> 15 0 23 540 topology 601 1368
+> 16 0 23 540 topology 603 1368
+> 15 0 24 540 topology 672 1369
+> 16 0 24 540 topology 758 1369
+> 15 0 23 540 topology 685 1370
+> 16 0 23 540 topology 686 1370
+> 15 0 23 540 topology 631 1371
+> 16 0 23 540 topology 633 1371
+> 15 0 24 540 topology 756 1372
+> 16 0 24 540 topology 758 1372
+> 15 0 24 540 topology 624 1373
+> 16 0 24 540 topology 758 1373
+> 15 0 23 540 topology 742 1374
+> 16 0 23 540 topology 743 1374
+> 15 0 24 540 topology 708 1375
+> 16 0 24 540 topology 758 1375
+> 15 0 23 540 topology 661 1376
+> 16 0 23 540 topology 663 1376
+> 15 0 23 540 topology 691 1377
+> 16 0 23 540 topology 693 1377
+> 15 0 23 540 topology 583 1378
+> 16 0 23 540 topology 585 1378
+> 15 0 24 540 topology 744 1379
+> 16 0 24 540 topology 758 1379
+> 15 0 23 540 topology 613 1380
+> 16 0 23 540 topology 615 1380
+> 15 0 23 540 topology 559 1381
+> 16 0 23 540 topology 561 1381
+> 15 0 23 540 topology 721 1382
+> 16 0 23 540 topology 723 1382
+> 15 0 23 540 topology 643 1383
+> 16 0 23 540 topology 645 1383
+> 15 0 24 540 topology 543 1384
 > 16 0 24 540 topology 758 1384
-> 15 0 23 540 topology 748 1385
-> 16 0 23 540 topology 749 1385
-> 15 0 24 540 topology 749 1386
+> 15 0 23 540 topology 751 1385
+> 16 0 23 540 topology 753 1385
+> 15 0 24 540 topology 608 1386
 > 16 0 24 540 topology 758 1386
-> 15 0 23 540 topology 616 1387
-> 16 0 23 540 topology 617 1387
-> 15 0 24 540 topology 617 1388
+> 15 0 23 540 topology 673 1387
+> 16 0 23 540 topology 675 1387
+> 15 0 24 540 topology 668 1388
 > 16 0 24 540 topology 758 1388
-> 15 0 23 540 topology 700 1389
-> 16 0 23 540 topology 701 1389
-> 15 0 24 540 topology 701 1390
-> 16 0 24 540 topology 758 1390
-> 15 0 23 540 topology 652 1391
-> 16 0 23 540 topology 653 1391
-> 15 0 24 540 topology 653 1392
+> 15 0 23 540 topology 703 1389
+> 16 0 23 540 topology 705 1389
+> 15 0 23 540 topology 595 1390
+> 16 0 23 540 topology 597 1390
+> 15 0 24 540 topology 590 1391
+> 16 0 24 540 topology 758 1391
+> 15 0 24 540 topology 728 1392
 > 16 0 24 540 topology 758 1392
-> 15 0 23 540 topology 736 1393
-> 16 0 23 540 topology 737 1393
-> 15 0 24 540 topology 737 1394
-> 16 0 24 540 topology 758 1394
-> 15 0 23 540 topology 562 1395
-> 16 0 23 540 topology 563 1395
-> 15 0 24 540 topology 563 1396
-> 16 0 24 540 topology 758 1396
-> 15 0 23 540 topology 571 1397
-> 16 0 23 540 topology 572 1397
-> 15 0 24 540 topology 572 1398
-> 16 0 24 540 topology 758 1398
-> 15 0 23 540 topology 607 1399
-> 16 0 23 540 topology 608 1399
-> 15 0 24 540 topology 608 1400
-> 16 0 24 540 topology 758 1400
-> 15 0 23 540 topology 691 1401
-> 16 0 23 540 topology 692 1401
-> 15 0 24 540 topology 692 1402
-> 16 0 24 540 topology 758 1402
-> 15 0 23 540 topology 643 1403
-> 16 0 23 540 topology 644 1403
-> 15 0 24 540 topology 644 1404
+> 15 0 24 540 topology 650 1393
+> 16 0 24 540 topology 758 1393
+> 15 0 23 540 topology 625 1394
+> 16 0 23 540 topology 627 1394
+> 15 0 23 540 topology 733 1395
+> 16 0 23 540 topology 735 1395
+> 15 0 23 540 topology 553 1396
+> 16 0 23 540 topology 554 1396
+> 15 0 24 540 topology 710 1397
+> 16 0 24 540 topology 758 1397
+> 15 0 23 540 topology 655 1398
+> 16 0 23 540 topology 657 1398
+> 15 0 24 540 topology 567 1399
+> 16 0 24 540 topology 758 1399
+> 15 0 23 540 topology 685 1400
+> 16 0 23 540 topology 687 1400
+> 15 0 23 540 topology 715 1401
+> 16 0 23 540 topology 717 1401
+> 15 0 23 540 topology 745 1402
+> 16 0 23 540 topology 747 1402
+> 15 0 24 540 topology 557 1403
+> 16 0 24 540 topology 758 1403
+> 15 0 24 540 topology 579 1404
 > 16 0 24 540 topology 758 1404
-> 15 0 23 540 topology 727 1405
-> 16 0 23 540 topology 728 1405
-> 15 0 24 540 topology 728 1406
+> 15 0 24 540 topology 663 1405
+> 16 0 24 540 topology 758 1405
+> 15 0 24 540 topology 615 1406
 > 16 0 24 540 topology 758 1406
-> 15 0 23 540 topology 595 1407
-> 16 0 23 540 topology 596 1407
-> 15 0 24 540 topology 596 1408
-> 16 0 24 540 topology 758 1408
-> 15 0 23 540 topology 679 1409
-> 16 0 23 540 topology 680 1409
-> 15 0 24 540 topology 680 1410
+> 15 0 24 540 topology 699 1407
+> 16 0 24 540 topology 758 1407
+> 15 0 23 540 topology 550 1408
+> 16 0 23 540 topology 552 1408
+> 15 0 24 540 topology 651 1409
+> 16 0 24 540 topology 758 1409
+> 15 0 24 540 topology 735 1410
 > 16 0 24 540 topology 758 1410
-> 15 0 23 540 topology 715 1411
-> 16 0 23 540 topology 716 1411
-> 15 0 24 540 topology 716 1412
+> 15 0 24 540 topology 687 1411
+> 16 0 24 540 topology 758 1411
+> 15 0 24 540 topology 575 1412
 > 16 0 24 540 topology 758 1412
-> 15 0 23 540 topology 553 1413
-> 16 0 23 540 topology 554 1413
-> 15 0 24 540 topology 554 1414
+> 15 0 23 540 topology 568 1413
+> 16 0 23 540 topology 569 1413
+> 15 0 24 540 topology 635 1414
 > 16 0 24 540 topology 758 1414
-> 15 0 23 540 topology 598 1415
-> 16 0 23 540 topology 599 1415
-> 15 0 24 540 topology 599 1416
-> 16 0 24 540 topology 758 1416
-> 15 0 23 540 topology 634 1417
-> 16 0 23 540 topology 635 1417
-> 15 0 24 540 topology 635 1418
-> 16 0 24 540 topology 758 1418
-> 15 0 23 540 topology 718 1419
-> 16 0 23 540 topology 719 1419
-> 15 0 24 540 topology 719 1420
+> 15 0 24 540 topology 695 1415
+> 16 0 24 540 topology 758 1415
+> 15 0 23 540 topology 574 1416
+> 16 0 23 540 topology 575 1416
+> 15 0 24 540 topology 617 1417
+> 16 0 24 540 topology 758 1417
+> 15 0 23 540 topology 631 1418
+> 16 0 23 540 topology 632 1418
+> 15 0 24 540 topology 558 1419
+> 16 0 24 540 topology 758 1419
+> 15 0 24 540 topology 755 1420
 > 16 0 24 540 topology 758 1420
-> 15 0 23 540 topology 586 1421
-> 16 0 23 540 topology 587 1421
-> 15 0 24 540 topology 587 1422
-> 16 0 24 540 topology 758 1422
-> 15 0 23 540 topology 670 1423
-> 16 0 23 540 topology 671 1423
-> 15 0 24 540 topology 671 1424
+> 15 0 24 540 topology 677 1421
+> 16 0 24 540 topology 758 1421
+> 15 0 23 540 topology 688 1422
+> 16 0 23 540 topology 689 1422
+> 15 0 23 540 topology 580 1423
+> 16 0 23 540 topology 581 1423
+> 15 0 24 540 topology 737 1424
 > 16 0 24 540 topology 758 1424
-> 15 0 23 540 topology 754 1425
-> 16 0 23 540 topology 755 1425
-> 15 0 24 540 topology 755 1426
-> 16 0 24 540 topology 758 1426
-> 15 0 23 540 topology 622 1427
-> 16 0 23 540 topology 623 1427
-> 15 0 24 540 topology 623 1428
-> 16 0 24 540 topology 758 1428
-> 15 0 23 540 topology 706 1429
-> 16 0 23 540 topology 707 1429
-> 15 0 24 540 topology 707 1430
+> 15 0 23 540 topology 637 1425
+> 16 0 23 540 topology 638 1425
+> 15 0 23 540 topology 694 1426
+> 16 0 23 540 topology 695 1426
+> 15 0 23 540 topology 586 1427
+> 16 0 23 540 topology 587 1427
+> 15 0 23 540 topology 643 1428
+> 16 0 23 540 topology 644 1428
+> 15 0 23 540 topology 562 1429
+> 16 0 23 540 topology 563 1429
+> 15 0 24 540 topology 542 1430
 > 16 0 24 540 topology 758 1430
-> 15 0 23 540 topology 742 1431
-> 16 0 23 540 topology 743 1431
-> 15 0 24 540 topology 743 1432
-> 16 0 24 540 topology 758 1432
-> 15 0 23 540 topology 544 1433
-> 16 0 23 540 topology 545 1433
-> 15 0 24 540 topology 545 1434
+> 15 0 23 540 topology 751 1431
+> 16 0 23 540 topology 752 1431
+> 15 0 23 540 topology 700 1432
+> 16 0 23 540 topology 701 1432
+> 15 0 23 540 topology 592 1433
+> 16 0 23 540 topology 593 1433
+> 15 0 24 540 topology 570 1434
 > 16 0 24 540 topology 758 1434
-> 15 0 23 540 topology 577 1435
-> 16 0 23 540 topology 578 1435
-> 15 0 24 540 topology 578 1436
-> 16 0 24 540 topology 758 1436
-> 15 0 23 540 topology 661 1437
-> 16 0 23 540 topology 662 1437
-> 15 0 24 540 topology 662 1438
-> 16 0 24 540 topology 758 1438
-> 15 0 23 540 topology 613 1439
-> 16 0 23 540 topology 614 1439
-> 15 0 24 540 topology 614 1440
+> 15 0 23 540 topology 649 1435
+> 16 0 23 540 topology 650 1435
+> 15 0 23 540 topology 568 1436
+> 16 0 23 540 topology 570 1436
+> 15 0 23 540 topology 541 1437
+> 16 0 23 540 topology 543 1437
+> 15 0 23 540 topology 706 1438
+> 16 0 23 540 topology 707 1438
+> 15 0 24 540 topology 606 1439
+> 16 0 24 540 topology 758 1439
+> 15 0 24 540 topology 690 1440
 > 16 0 24 540 topology 758 1440
-> 15 0 23 540 topology 697 1441
-> 16 0 23 540 topology 698 1441
-> 15 0 24 540 topology 698 1442
-> 16 0 24 540 topology 758 1442
-> 15 0 23 540 topology 649 1443
-> 16 0 23 540 topology 650 1443
-> 15 0 24 540 topology 650 1444
+> 15 0 23 540 topology 598 1441
+> 16 0 23 540 topology 600 1441
+> 15 0 23 540 topology 655 1442
+> 16 0 23 540 topology 656 1442
+> 15 0 24 540 topology 566 1443
+> 16 0 24 540 topology 758 1443
+> 15 0 24 540 topology 642 1444
 > 16 0 24 540 topology 758 1444
-> 15 0 23 540 topology 733 1445
-> 16 0 23 540 topology 734 1445
-> 15 0 24 540 topology 734 1446
-> 16 0 24 540 topology 758 1446
-> 15 0 23 540 topology 685 1447
-> 16 0 23 540 topology 686 1447
-> 15 0 24 540 topology 686 1448
-> 16 0 24 540 topology 758 1448
-> 15 0 23 540 topology 559 1449
-> 16 0 23 540 topology 560 1449
-> 15 0 24 540 topology 560 1450
+> 15 0 23 540 topology 628 1445
+> 16 0 23 540 topology 630 1445
+> 15 0 23 540 topology 712 1446
+> 16 0 23 540 topology 713 1446
+> 15 0 24 540 topology 726 1447
+> 16 0 24 540 topology 758 1447
+> 15 0 23 540 topology 658 1448
+> 16 0 23 540 topology 660 1448
+> 15 0 24 540 topology 594 1449
+> 16 0 24 540 topology 758 1449
+> 15 0 24 540 topology 678 1450
 > 16 0 24 540 topology 758 1450
-> 15 0 23 540 topology 568 1451
-> 16 0 23 540 topology 569 1451
-> 15 0 24 540 topology 569 1452
-> 16 0 24 540 topology 758 1452
-> 15 0 23 540 topology 604 1453
-> 16 0 23 540 topology 605 1453
-> 15 0 24 540 topology 605 1454
+> 15 0 23 540 topology 688 1451
+> 16 0 23 540 topology 690 1451
+> 15 0 23 540 topology 580 1452
+> 16 0 23 540 topology 582 1452
+> 15 0 23 540 topology 610 1453
+> 16 0 23 540 topology 612 1453
+> 15 0 24 540 topology 714 1454
 > 16 0 24 540 topology 758 1454
-> 15 0 23 540 topology 688 1455
-> 16 0 23 540 topology 689 1455
-> 15 0 24 540 topology 689 1456
-> 16 0 24 540 topology 758 1456
-> 15 0 23 540 topology 640 1457
-> 16 0 23 540 topology 641 1457
-> 15 0 24 540 topology 641 1458
+> 15 0 23 540 topology 718 1455
+> 16 0 23 540 topology 720 1455
+> 15 0 23 540 topology 640 1456
+> 16 0 23 540 topology 642 1456
+> 15 0 23 540 topology 748 1457
+> 16 0 23 540 topology 750 1457
+> 15 0 24 540 topology 602 1458
 > 16 0 24 540 topology 758 1458
-> 15 0 23 540 topology 724 1459
-> 16 0 23 540 topology 725 1459
-> 15 0 24 540 topology 725 1460
+> 15 0 23 540 topology 670 1459
+> 16 0 23 540 topology 672 1459
+> 15 0 24 540 topology 662 1460
 > 16 0 24 540 topology 758 1460
-> 15 0 23 540 topology 592 1461
-> 16 0 23 540 topology 593 1461
-> 15 0 24 540 topology 593 1462
-> 16 0 24 540 topology 758 1462
-> 15 0 23 540 topology 676 1463
-> 16 0 23 540 topology 677 1463
-> 15 0 24 540 topology 677 1464
-> 16 0 24 540 topology 758 1464
-> 15 0 23 540 topology 712 1465
-> 16 0 23 540 topology 713 1465
-> 15 0 24 540 topology 713 1466
-> 16 0 24 540 topology 758 1466
-> 15 0 23 540 topology 550 1467
-> 16 0 23 540 topology 551 1467
-> 15 0 24 540 topology 551 1468
+> 15 0 23 540 topology 700 1461
+> 16 0 23 540 topology 702 1461
+> 15 0 23 540 topology 592 1462
+> 16 0 23 540 topology 594 1462
+> 15 0 24 540 topology 584 1463
+> 16 0 24 540 topology 758 1463
+> 15 0 23 540 topology 565 1464
+> 16 0 23 540 topology 567 1464
+> 15 0 24 540 topology 549 1465
+> 16 0 24 540 topology 758 1465
+> 15 0 23 540 topology 547 1466
+> 16 0 23 540 topology 548 1466
+> 15 0 24 540 topology 722 1467
+> 16 0 24 540 topology 758 1467
+> 15 0 24 540 topology 644 1468
 > 16 0 24 540 topology 758 1468
-> 15 0 23 540 topology 631 1469
-> 16 0 23 540 topology 632 1469
-> 15 0 24 540 topology 632 1470
-> 16 0 24 540 topology 758 1470
-> 15 0 23 540 topology 583 1471
-> 16 0 23 540 topology 584 1471
-> 15 0 24 540 topology 584 1472
-> 16 0 24 540 topology 758 1472
-> 15 0 23 540 topology 667 1473
-> 16 0 23 540 topology 668 1473
-> 15 0 24 540 topology 668 1474
-> 16 0 24 540 topology 758 1474
-> 15 0 23 540 topology 751 1475
-> 16 0 23 540 topology 752 1475
-> 15 0 24 540 topology 752 1476
-> 16 0 24 540 topology 758 1476
-> 15 0 23 540 topology 619 1477
-> 16 0 23 540 topology 620 1477
-> 15 0 24 540 topology 620 1478
-> 16 0 24 540 topology 758 1478
-> 15 0 23 540 topology 703 1479
-> 16 0 23 540 topology 704 1479
-> 15 0 24 540 topology 704 1480
+> 15 0 23 540 topology 622 1469
+> 16 0 23 540 topology 624 1469
+> 15 0 23 540 topology 730 1470
+> 16 0 23 540 topology 732 1470
+> 15 0 24 540 topology 704 1471
+> 16 0 24 540 topology 758 1471
+> 15 0 23 540 topology 652 1472
+> 16 0 23 540 topology 654 1472
+> 15 0 24 540 topology 626 1473
+> 16 0 24 540 topology 758 1473
+> 15 0 23 540 topology 682 1474
+> 16 0 23 540 topology 684 1474
+> 15 0 24 540 topology 686 1475
+> 16 0 24 540 topology 758 1475
+> 15 0 23 540 topology 712 1476
+> 16 0 23 540 topology 714 1476
+> 15 0 24 540 topology 746 1477
+> 16 0 24 540 topology 758 1477
+> 15 0 23 540 topology 742 1478
+> 16 0 23 540 topology 744 1478
+> 15 0 24 540 topology 551 1479
+> 16 0 24 540 topology 758 1479
+> 15 0 24 540 topology 633 1480
 > 16 0 24 540 topology 758 1480
-> 15 0 23 540 topology 655 1481
-> 16 0 23 540 topology 656 1481
-> 15 0 24 540 topology 656 1482
+> 15 0 24 540 topology 585 1481
+> 16 0 24 540 topology 758 1481
+> 15 0 24 540 topology 669 1482
 > 16 0 24 540 topology 758 1482
-> 15 0 23 540 topology 739 1483
-> 16 0 23 540 topology 740 1483
-> 15 0 24 540 topology 740 1484
+> 15 0 24 540 topology 753 1483
+> 16 0 24 540 topology 758 1483
+> 15 0 24 540 topology 621 1484
 > 16 0 24 540 topology 758 1484
-> 15 0 23 540 topology 541 1485
-> 16 0 23 540 topology 542 1485
-> 15 0 24 540 topology 542 1486
+> 15 0 24 540 topology 705 1485
+> 16 0 24 540 topology 758 1485
+> 15 0 24 540 topology 657 1486
 > 16 0 24 540 topology 758 1486
-> 15 0 23 540 topology 565 1487
-> 16 0 23 540 topology 566 1487
-> 15 0 24 540 topology 566 1488
+> 15 0 23 540 topology 556 1487
+> 16 0 23 540 topology 558 1487
+> 15 0 24 540 topology 741 1488
 > 16 0 24 540 topology 758 1488
-> 15 0 23 540 topology 574 1489
-> 16 0 23 540 topology 575 1489
-> 15 0 24 540 topology 575 1490
+> 15 0 24 540 topology 569 1489
+> 16 0 24 540 topology 758 1489
+> 15 0 24 540 topology 629 1490
 > 16 0 24 540 topology 758 1490
-> 15 0 23 540 topology 658 1491
-> 16 0 23 540 topology 659 1491
-> 15 0 24 540 topology 659 1492
+> 15 0 24 540 topology 689 1491
+> 16 0 24 540 topology 758 1491
+> 15 0 24 540 topology 611 1492
 > 16 0 24 540 topology 758 1492
-> 15 0 23 540 topology 610 1493
-> 16 0 23 540 topology 611 1493
-> 15 0 24 540 topology 611 1494
+> 15 0 23 540 topology 601 1493
+> 16 0 23 540 topology 602 1493
+> 15 0 24 540 topology 749 1494
 > 16 0 24 540 topology 758 1494
-> 15 0 23 540 topology 694 1495
-> 16 0 23 540 topology 695 1495
-> 15 0 24 540 topology 695 1496
-> 16 0 24 540 topology 758 1496
-> 15 0 23 540 topology 646 1497
-> 16 0 23 540 topology 647 1497
-> 15 0 24 540 topology 647 1498
+> 15 0 24 540 topology 671 1495
+> 16 0 24 540 topology 758 1495
+> 15 0 23 540 topology 658 1496
+> 16 0 23 540 topology 659 1496
+> 15 0 24 540 topology 593 1497
+> 16 0 24 540 topology 758 1497
+> 15 0 24 540 topology 731 1498
 > 16 0 24 540 topology 758 1498
-> 15 0 23 540 topology 730 1499
-> 16 0 23 540 topology 731 1499
-> 15 0 24 540 topology 731 1500
-> 16 0 24 540 topology 758 1500
-> 15 0 23 540 topology 682 1501
-> 16 0 23 540 topology 683 1501
-> 15 0 24 540 topology 683 1502
+> 15 0 24 540 topology 653 1499
+> 16 0 24 540 topology 758 1499
+> 15 0 23 540 topology 607 1500
+> 16 0 23 540 topology 608 1500
+> 15 0 24 540 topology 564 1501
+> 16 0 24 540 topology 758 1501
+> 15 0 24 540 topology 713 1502
 > 16 0 24 540 topology 758 1502
-> 15 0 23 540 topology 556 1503
-> 16 0 23 540 topology 557 1503
-> 15 0 24 540 topology 557 1504
-> 16 0 24 540 topology 758 1504
-> 15 0 23 540 topology 601 1505
-> 16 0 23 540 topology 602 1505
-> 15 0 24 540 topology 602 1506
-> 16 0 24 540 topology 758 1506
-> 15 0 23 540 topology 637 1507
-> 16 0 23 540 topology 638 1507
-> 15 0 24 540 topology 638 1508
-> 16 0 24 540 topology 758 1508
-> 15 0 23 540 topology 721 1509
-> 16 0 23 540 topology 722 1509
-> 15 0 24 540 topology 722 1510
-> 16 0 24 540 topology 758 1510
-> 15 0 23 540 topology 589 1511
-> 16 0 23 540 topology 590 1511
-> 15 0 24 540 topology 590 1512
+> 15 0 23 540 topology 664 1503
+> 16 0 23 540 topology 665 1503
+> 15 0 23 540 topology 556 1504
+> 16 0 23 540 topology 557 1504
+> 15 0 23 540 topology 613 1505
+> 16 0 23 540 topology 614 1505
+> 15 0 23 540 topology 721 1506
+> 16 0 23 540 topology 722 1506
+> 15 0 23 540 topology 670 1507
+> 16 0 23 540 topology 671 1507
+> 15 0 23 540 topology 619 1508
+> 16 0 23 540 topology 620 1508
+> 15 0 23 540 topology 727 1509
+> 16 0 23 540 topology 728 1509
+> 15 0 23 540 topology 676 1510
+> 16 0 23 540 topology 677 1510
+> 15 0 24 540 topology 576 1511
+> 16 0 24 540 topology 758 1511
+> 15 0 24 540 topology 660 1512
 > 16 0 24 540 topology 758 1512
-> 15 0 23 540 topology 673 1513
-> 16 0 23 540 topology 674 1513
-> 15 0 24 540 topology 674 1514
+> 15 0 23 540 topology 625 1513
+> 16 0 23 540 topology 626 1513
+> 15 0 24 540 topology 560 1514
 > 16 0 24 540 topology 758 1514
-> 15 0 23 540 topology 625 1515
-> 16 0 23 540 topology 626 1515
-> 15 0 24 540 topology 626 1516
-> 16 0 24 540 topology 758 1516
-> 15 0 23 540 topology 709 1517
-> 16 0 23 540 topology 710 1517
-> 15 0 24 540 topology 710 1518
+> 15 0 23 540 topology 733 1515
+> 16 0 23 540 topology 734 1515
+> 15 0 23 540 topology 682 1516
+> 16 0 23 540 topology 683 1516
+> 15 0 24 540 topology 612 1517
+> 16 0 24 540 topology 758 1517
+> 15 0 24 540 topology 696 1518
 > 16 0 24 540 topology 758 1518
-> 15 0 23 540 topology 745 1519
-> 16 0 23 540 topology 746 1519
-> 15 0 24 540 topology 746 1520
-> 16 0 24 540 topology 758 1520
-> 15 0 23 540 topology 547 1521
-> 16 0 23 540 topology 548 1521
-> 15 0 24 540 topology 548 1522
-> 16 0 24 540 topology 758 1522
-> 15 0 23 760 topology 788 1523
-> 16 0 23 760 topology 789 1523
-> 15 0 24 760 topology 789 1524
+> 15 0 23 540 topology 547 1519
+> 16 0 23 540 topology 549 1519
+> 15 0 23 540 topology 739 1520
+> 16 0 23 540 topology 740 1520
+> 15 0 24 540 topology 648 1521
+> 16 0 24 540 topology 758 1521
+> 15 0 23 540 topology 577 1522
+> 16 0 23 540 topology 579 1522
+> 15 0 23 760 topology 779 1523
+> 16 0 23 760 topology 781 1523
+> 15 0 24 760 topology 792 1524
 > 16 0 24 760 topology 864 1524
-> 15 0 24 760 topology 864 1525
-> 16 0 24 760 topology 850 1525
-> 15 0 25 760 topology 850 1526
-> 16 0 25 760 topology 848 1526
-> 15 0 24 760 topology 864 1527
-> 16 0 24 760 topology 826 1527
-> 15 0 25 760 topology 826 1528
-> 16 0 25 760 topology 824 1528
-> 15 0 24 760 topology 864 1529
-> 16 0 24 760 topology 802 1529
-> 15 0 25 760 topology 802 1530
-> 16 0 25 760 topology 800 1530
-> 15 0 24 760 topology 864 1531
-> 16 0 24 760 topology 862 1531
-> 15 0 25 760 topology 862 1532
-> 16 0 25 760 topology 860 1532
-> 15 0 24 760 topology 864 1533
-> 16 0 24 760 topology 838 1533
-> 15 0 25 760 topology 838 1534
-> 16 0 25 760 topology 836 1534
-> 15 0 24 760 topology 864 1535
-> 16 0 24 760 topology 814 1535
-> 15 0 25 760 topology 814 1536
-> 16 0 25 760 topology 812 1536
-> 15 0 26 760 topology 864 1537
-> 16 0 26 760 topology 863 1537
-> 15 0 24 760 topology 864 1538
-> 16 0 24 760 topology 766 1538
-> 15 0 25 760 topology 766 1539
-> 16 0 25 760 topology 764 1539
-> 15 0 24 760 topology 864 1540
-> 16 0 24 760 topology 778 1540
-> 15 0 25 760 topology 778 1541
-> 16 0 25 760 topology 776 1541
-> 15 0 24 760 topology 864 1542
-> 16 0 24 760 topology 793 1542
-> 15 0 25 760 topology 793 1543
-> 16 0 25 760 topology 791 1543
-> 15 0 24 760 topology 864 1544
-> 16 0 24 760 topology 853 1544
-> 15 0 25 760 topology 853 1545
-> 16 0 25 760 topology 851 1545
-> 15 0 24 760 topology 864 1546
-> 16 0 24 760 topology 829 1546
-> 15 0 25 760 topology 829 1547
-> 16 0 25 760 topology 827 1547
-> 15 0 24 760 topology 864 1548
-> 16 0 24 760 topology 805 1548
-> 15 0 25 760 topology 805 1549
-> 16 0 25 760 topology 803 1549
-> 15 0 24 760 topology 864 1550
-> 16 0 24 760 topology 841 1550
-> 15 0 25 760 topology 841 1551
-> 16 0 25 760 topology 839 1551
-> 15 0 24 760 topology 864 1552
-> 16 0 24 760 topology 817 1552
-> 15 0 25 760 topology 817 1553
-> 16 0 25 760 topology 815 1553
-> 15 0 24 760 topology 864 1554
-> 16 0 24 760 topology 769 1554
-> 15 0 25 760 topology 769 1555
-> 16 0 25 760 topology 767 1555
-> 15 0 24 760 topology 864 1556
-> 16 0 24 760 topology 781 1556
-> 15 0 25 760 topology 781 1557
-> 16 0 25 760 topology 779 1557
-> 15 0 24 760 topology 864 1558
-> 16 0 24 760 topology 820 1558
-> 15 0 25 760 topology 820 1559
-> 16 0 25 760 topology 818 1559
-> 15 0 24 760 topology 864 1560
-> 16 0 24 760 topology 796 1560
-> 15 0 25 760 topology 796 1561
-> 16 0 25 760 topology 794 1561
-> 15 0 24 760 topology 864 1562
-> 16 0 24 760 topology 856 1562
-> 15 0 25 760 topology 856 1563
-> 16 0 25 760 topology 854 1563
-> 15 0 24 760 topology 864 1564
-> 16 0 24 760 topology 832 1564
-> 15 0 25 760 topology 832 1565
-> 16 0 25 760 topology 830 1565
-> 15 0 24 760 topology 864 1566
-> 16 0 24 760 topology 808 1566
-> 15 0 25 760 topology 808 1567
-> 16 0 25 760 topology 806 1567
-> 15 0 24 760 topology 864 1568
-> 16 0 24 760 topology 844 1568
-> 15 0 25 760 topology 844 1569
-> 16 0 25 760 topology 842 1569
-> 15 0 24 760 topology 864 1570
-> 16 0 24 760 topology 772 1570
-> 15 0 25 760 topology 772 1571
-> 16 0 25 760 topology 770 1571
-> 15 0 24 760 topology 864 1572
-> 16 0 24 760 topology 784 1572
-> 15 0 25 760 topology 784 1573
-> 16 0 25 760 topology 782 1573
-> 15 0 24 760 topology 864 1574
-> 16 0 24 760 topology 823 1574
-> 15 0 25 760 topology 823 1575
-> 16 0 25 760 topology 821 1575
-> 15 0 24 760 topology 864 1576
-> 16 0 24 760 topology 799 1576
-> 15 0 25 760 topology 799 1577
-> 16 0 25 760 topology 797 1577
-> 15 0 24 760 topology 864 1578
-> 16 0 24 760 topology 859 1578
-> 15 0 25 760 topology 859 1579
-> 16 0 25 760 topology 857 1579
-> 15 0 24 760 topology 864 1580
-> 16 0 24 760 topology 835 1580
-> 15 0 25 760 topology 835 1581
-> 16 0 25 760 topology 833 1581
-> 15 0 24 760 topology 864 1582
-> 16 0 24 760 topology 811 1582
-> 15 0 25 760 topology 811 1583
-> 16 0 25 760 topology 809 1583
-> 15 0 24 760 topology 864 1584
-> 16 0 24 760 topology 847 1584
-> 15 0 25 760 topology 847 1585
-> 16 0 25 760 topology 845 1585
-> 15 0 24 760 topology 864 1586
-> 16 0 24 760 topology 763 1586
-> 15 0 25 760 topology 763 1587
-> 16 0 25 760 topology 761 1587
-> 15 0 24 760 topology 864 1588
-> 16 0 24 760 topology 775 1588
-> 15 0 25 760 topology 775 1589
-> 16 0 25 760 topology 773 1589
-> 15 0 24 760 topology 864 1590
-> 16 0 24 760 topology 787 1590
-> 15 0 25 760 topology 787 1591
-> 16 0 25 760 topology 785 1591
-> 15 0 23 760 topology 848 1592
-> 16 0 23 760 topology 849 1592
-> 15 0 24 760 topology 849 1593
+> 15 0 23 760 topology 806 1525
+> 16 0 23 760 topology 808 1525
+> 15 0 23 760 topology 860 1526
+> 16 0 23 760 topology 862 1526
+> 15 0 24 760 topology 822 1527
+> 16 0 24 760 topology 864 1527
+> 15 0 23 760 topology 809 1528
+> 16 0 23 760 topology 811 1528
+> 15 0 24 760 topology 852 1529
+> 16 0 24 760 topology 864 1529
+> 15 0 24 760 topology 769 1530
+> 16 0 24 760 topology 864 1530
+> 15 0 24 760 topology 804 1531
+> 16 0 24 760 topology 864 1531
+> 15 0 23 760 topology 812 1532
+> 16 0 23 760 topology 814 1532
+> 15 0 23 760 topology 767 1533
+> 16 0 23 760 topology 768 1533
+> 15 0 24 760 topology 834 1534
+> 16 0 24 760 topology 864 1534
+> 15 0 23 760 topology 815 1535
+> 16 0 23 760 topology 817 1535
+> 15 0 24 760 topology 781 1536
+> 16 0 24 760 topology 864 1536
+> 15 0 24 760 topology 816 1537
+> 16 0 24 760 topology 864 1537
+> 15 0 24 760 topology 846 1538
+> 16 0 24 760 topology 864 1538
+> 15 0 23 760 topology 779 1539
+> 16 0 23 760 topology 780 1539
+> 15 0 25 760 topology 863 1540
+> 16 0 25 760 topology 864 1540
+> 15 0 24 760 topology 771 1541
+> 16 0 24 760 topology 864 1541
+> 15 0 24 760 topology 793 1542
+> 16 0 24 760 topology 864 1542
+> 15 0 24 760 topology 853 1543
+> 16 0 24 760 topology 864 1543
+> 15 0 23 760 topology 764 1544
+> 16 0 23 760 topology 766 1544
+> 15 0 24 760 topology 783 1545
+> 16 0 24 760 topology 864 1545
+> 15 0 24 760 topology 829 1546
+> 16 0 24 760 topology 864 1546
+> 15 0 24 760 topology 805 1547
+> 16 0 24 760 topology 864 1547
+> 15 0 24 760 topology 841 1548
+> 16 0 24 760 topology 864 1548
+> 15 0 24 760 topology 817 1549
+> 16 0 24 760 topology 864 1549
+> 15 0 23 760 topology 776 1550
+> 16 0 23 760 topology 778 1550
+> 15 0 24 760 topology 789 1551
+> 16 0 24 760 topology 864 1551
+> 15 0 24 760 topology 819 1552
+> 16 0 24 760 topology 864 1552
+> 15 0 23 760 topology 788 1553
+> 16 0 23 760 topology 789 1553
+> 15 0 24 760 topology 849 1554
+> 16 0 24 760 topology 864 1554
+> 15 0 24 760 topology 801 1555
+> 16 0 24 760 topology 864 1555
+> 15 0 23 760 topology 818 1556
+> 16 0 23 760 topology 819 1556
+> 15 0 24 760 topology 831 1557
+> 16 0 24 760 topology 864 1557
+> 15 0 24 760 topology 772 1558
+> 16 0 24 760 topology 864 1558
+> 15 0 23 760 topology 794 1559
+> 16 0 23 760 topology 795 1559
+> 15 0 23 760 topology 848 1560
+> 16 0 23 760 topology 849 1560
+> 15 0 24 760 topology 861 1561
+> 16 0 24 760 topology 864 1561
+> 15 0 23 760 topology 770 1562
+> 16 0 23 760 topology 771 1562
+> 15 0 24 760 topology 813 1563
+> 16 0 24 760 topology 864 1563
+> 15 0 23 760 topology 824 1564
+> 16 0 23 760 topology 825 1564
+> 15 0 24 760 topology 843 1565
+> 16 0 24 760 topology 864 1565
+> 15 0 24 760 topology 784 1566
+> 16 0 24 760 topology 864 1566
+> 15 0 23 760 topology 800 1567
+> 16 0 23 760 topology 801 1567
+> 15 0 23 760 topology 854 1568
+> 16 0 23 760 topology 855 1568
+> 15 0 23 760 topology 830 1569
+> 16 0 23 760 topology 831 1569
+> 15 0 23 760 topology 806 1570
+> 16 0 23 760 topology 807 1570
+> 15 0 23 760 topology 860 1571
+> 16 0 23 760 topology 861 1571
+> 15 0 23 760 topology 782 1572
+> 16 0 23 760 topology 783 1572
+> 15 0 23 760 topology 836 1573
+> 16 0 23 760 topology 837 1573
+> 15 0 24 760 topology 768 1574
+> 16 0 24 760 topology 864 1574
+> 15 0 23 760 topology 812 1575
+> 16 0 23 760 topology 813 1575
+> 15 0 24 760 topology 820 1576
+> 16 0 24 760 topology 864 1576
+> 15 0 23 760 topology 842 1577
+> 16 0 23 760 topology 843 1577
+> 15 0 23 760 topology 761 1578
+> 16 0 23 760 topology 763 1578
+> 15 0 24 760 topology 796 1579
+> 16 0 24 760 topology 864 1579
+> 15 0 24 760 topology 780 1580
+> 16 0 24 760 topology 864 1580
+> 15 0 23 760 topology 818 1581
+> 16 0 23 760 topology 820 1581
+> 15 0 24 760 topology 856 1582
+> 16 0 24 760 topology 864 1582
+> 15 0 24 760 topology 832 1583
+> 16 0 24 760 topology 864 1583
+> 15 0 24 760 topology 808 1584
+> 16 0 24 760 topology 864 1584
+> 15 0 23 760 topology 821 1585
+> 16 0 23 760 topology 823 1585
+> 15 0 23 760 topology 824 1586
+> 16 0 23 760 topology 826 1586
+> 15 0 24 760 topology 844 1587
+> 16 0 24 760 topology 864 1587
+> 15 0 23 760 topology 773 1588
+> 16 0 23 760 topology 775 1588
+> 15 0 23 760 topology 827 1589
+> 16 0 23 760 topology 829 1589
+> 15 0 23 760 topology 830 1590
+> 16 0 23 760 topology 832 1590
+> 15 0 23 760 topology 833 1591
+> 16 0 23 760 topology 835 1591
+> 15 0 23 760 topology 761 1592
+> 16 0 23 760 topology 762 1592
+> 15 0 24 760 topology 763 1593
 > 16 0 24 760 topology 864 1593
-> 15 0 24 760 topology 864 1594
-> 16 0 24 760 topology 790 1594
-> 15 0 25 760 topology 790 1595
-> 16 0 25 760 topology 788 1595
-> 15 0 23 760 topology 824 1596
-> 16 0 23 760 topology 825 1596
-> 15 0 24 760 topology 825 1597
-> 16 0 24 760 topology 864 1597
-> 15 0 23 760 topology 800 1598
-> 16 0 23 760 topology 801 1598
-> 15 0 24 760 topology 801 1599
+> 15 0 24 760 topology 798 1594
+> 16 0 24 760 topology 864 1594
+> 15 0 23 760 topology 836 1595
+> 16 0 23 760 topology 838 1595
+> 15 0 24 760 topology 828 1596
+> 16 0 24 760 topology 864 1596
+> 15 0 23 760 topology 785 1597
+> 16 0 23 760 topology 787 1597
+> 15 0 23 760 topology 839 1598
+> 16 0 23 760 topology 841 1598
+> 15 0 24 760 topology 858 1599
 > 16 0 24 760 topology 864 1599
-> 15 0 23 760 topology 860 1600
-> 16 0 23 760 topology 861 1600
-> 15 0 24 760 topology 861 1601
+> 15 0 24 760 topology 775 1600
+> 16 0 24 760 topology 864 1600
+> 15 0 24 760 topology 810 1601
 > 16 0 24 760 topology 864 1601
-> 15 0 23 760 topology 836 1602
-> 16 0 23 760 topology 837 1602
-> 15 0 24 760 topology 837 1603
+> 15 0 23 760 topology 842 1602
+> 16 0 23 760 topology 844 1602
+> 15 0 24 760 topology 840 1603
 > 16 0 24 760 topology 864 1603
-> 15 0 23 760 topology 812 1604
-> 16 0 23 760 topology 813 1604
-> 15 0 24 760 topology 813 1605
-> 16 0 24 760 topology 864 1605
-> 15 0 23 760 topology 764 1606
-> 16 0 23 760 topology 765 1606
+> 15 0 23 760 topology 845 1604
+> 16 0 23 760 topology 847 1604
+> 15 0 23 760 topology 773 1605
+> 16 0 23 760 topology 774 1605
+> 15 0 24 760 topology 787 1606
+> 16 0 24 760 topology 864 1606
 > 15 0 24 760 topology 765 1607
 > 16 0 24 760 topology 864 1607
-> 15 0 23 760 topology 776 1608
-> 16 0 23 760 topology 777 1608
+> 15 0 23 760 topology 785 1608
+> 16 0 23 760 topology 786 1608
 > 15 0 24 760 topology 777 1609
 > 16 0 24 760 topology 864 1609
-> 15 0 23 760 topology 791 1610
-> 16 0 23 760 topology 792 1610
-> 15 0 24 760 topology 792 1611
+> 15 0 24 760 topology 823 1610
+> 16 0 24 760 topology 864 1610
+> 15 0 24 760 topology 799 1611
 > 16 0 24 760 topology 864 1611
-> 15 0 23 760 topology 851 1612
-> 16 0 23 760 topology 852 1612
-> 15 0 24 760 topology 852 1613
+> 15 0 24 760 topology 859 1612
+> 16 0 24 760 topology 864 1612
+> 15 0 24 760 topology 835 1613
 > 16 0 24 760 topology 864 1613
-> 15 0 23 760 topology 827 1614
-> 16 0 23 760 topology 828 1614
-> 15 0 24 760 topology 828 1615
-> 16 0 24 760 topology 864 1615
-> 15 0 23 760 topology 803 1616
-> 16 0 23 760 topology 804 1616
-> 15 0 24 760 topology 804 1617
+> 15 0 24 760 topology 811 1614
+> 16 0 24 760 topology 864 1614
+> 15 0 23 760 topology 770 1615
+> 16 0 23 760 topology 772 1615
+> 15 0 24 760 topology 847 1616
+> 16 0 24 760 topology 864 1616
+> 15 0 24 760 topology 795 1617
 > 16 0 24 760 topology 864 1617
-> 15 0 23 760 topology 839 1618
-> 16 0 23 760 topology 840 1618
-> 15 0 24 760 topology 840 1619
+> 15 0 23 760 topology 782 1618
+> 16 0 23 760 topology 784 1618
+> 15 0 24 760 topology 825 1619
 > 16 0 24 760 topology 864 1619
-> 15 0 23 760 topology 815 1620
-> 16 0 23 760 topology 816 1620
-> 15 0 24 760 topology 816 1621
+> 15 0 23 760 topology 764 1620
+> 16 0 23 760 topology 765 1620
+> 15 0 24 760 topology 766 1621
 > 16 0 24 760 topology 864 1621
-> 15 0 23 760 topology 767 1622
-> 16 0 23 760 topology 768 1622
-> 15 0 24 760 topology 768 1623
+> 15 0 23 760 topology 791 1622
+> 16 0 23 760 topology 792 1622
+> 15 0 24 760 topology 855 1623
 > 16 0 24 760 topology 864 1623
-> 15 0 23 760 topology 779 1624
-> 16 0 23 760 topology 780 1624
-> 15 0 24 760 topology 780 1625
-> 16 0 24 760 topology 864 1625
-> 15 0 23 760 topology 818 1626
-> 16 0 23 760 topology 819 1626
-> 15 0 24 760 topology 819 1627
+> 15 0 24 760 topology 807 1624
+> 16 0 24 760 topology 864 1624
+> 15 0 23 760 topology 821 1625
+> 16 0 23 760 topology 822 1625
+> 15 0 24 760 topology 837 1626
+> 16 0 24 760 topology 864 1626
+> 15 0 24 760 topology 778 1627
 > 16 0 24 760 topology 864 1627
-> 15 0 23 760 topology 794 1628
-> 16 0 23 760 topology 795 1628
-> 15 0 24 760 topology 795 1629
-> 16 0 24 760 topology 864 1629
-> 15 0 23 760 topology 854 1630
-> 16 0 23 760 topology 855 1630
-> 15 0 24 760 topology 855 1631
-> 16 0 24 760 topology 864 1631
-> 15 0 23 760 topology 830 1632
-> 16 0 23 760 topology 831 1632
-> 15 0 24 760 topology 831 1633
-> 16 0 24 760 topology 864 1633
-> 15 0 23 760 topology 806 1634
-> 16 0 23 760 topology 807 1634
-> 15 0 24 760 topology 807 1635
+> 15 0 23 760 topology 797 1628
+> 16 0 23 760 topology 798 1628
+> 15 0 23 760 topology 851 1629
+> 16 0 23 760 topology 852 1629
+> 15 0 23 760 topology 827 1630
+> 16 0 23 760 topology 828 1630
+> 15 0 23 760 topology 776 1631
+> 16 0 23 760 topology 777 1631
+> 15 0 23 760 topology 803 1632
+> 16 0 23 760 topology 804 1632
+> 15 0 23 760 topology 857 1633
+> 16 0 23 760 topology 858 1633
+> 15 0 23 760 topology 833 1634
+> 16 0 23 760 topology 834 1634
+> 15 0 24 760 topology 762 1635
 > 16 0 24 760 topology 864 1635
-> 15 0 23 760 topology 842 1636
-> 16 0 23 760 topology 843 1636
-> 15 0 24 760 topology 843 1637
-> 16 0 24 760 topology 864 1637
-> 15 0 23 760 topology 770 1638
-> 16 0 23 760 topology 771 1638
-> 15 0 24 760 topology 771 1639
+> 15 0 23 760 topology 809 1636
+> 16 0 23 760 topology 810 1636
+> 15 0 23 760 topology 839 1637
+> 16 0 23 760 topology 840 1637
+> 15 0 24 760 topology 790 1638
+> 16 0 24 760 topology 864 1638
+> 15 0 24 760 topology 774 1639
 > 16 0 24 760 topology 864 1639
-> 15 0 23 760 topology 782 1640
-> 16 0 23 760 topology 783 1640
-> 15 0 24 760 topology 783 1641
-> 16 0 24 760 topology 864 1641
-> 15 0 23 760 topology 821 1642
-> 16 0 23 760 topology 822 1642
-> 15 0 24 760 topology 822 1643
+> 15 0 23 760 topology 815 1640
+> 16 0 23 760 topology 816 1640
+> 15 0 23 760 topology 788 1641
+> 16 0 23 760 topology 790 1641
+> 15 0 24 760 topology 850 1642
+> 16 0 24 760 topology 864 1642
+> 15 0 24 760 topology 826 1643
 > 16 0 24 760 topology 864 1643
-> 15 0 23 760 topology 797 1644
-> 16 0 23 760 topology 798 1644
-> 15 0 24 760 topology 798 1645
-> 16 0 24 760 topology 864 1645
-> 15 0 23 760 topology 857 1646
-> 16 0 23 760 topology 858 1646
-> 15 0 24 760 topology 858 1647
+> 15 0 23 760 topology 845 1644
+> 16 0 23 760 topology 846 1644
+> 15 0 23 760 topology 791 1645
+> 16 0 23 760 topology 793 1645
+> 15 0 24 760 topology 802 1646
+> 16 0 24 760 topology 864 1646
+> 15 0 24 760 topology 786 1647
 > 16 0 24 760 topology 864 1647
-> 15 0 23 760 topology 833 1648
-> 16 0 23 760 topology 834 1648
-> 15 0 24 760 topology 834 1649
-> 16 0 24 760 topology 864 1649
-> 15 0 23 760 topology 809 1650
-> 16 0 23 760 topology 810 1650
-> 15 0 24 760 topology 810 1651
+> 15 0 23 760 topology 767 1648
+> 16 0 23 760 topology 769 1648
+> 15 0 23 760 topology 794 1649
+> 16 0 23 760 topology 796 1649
+> 15 0 23 760 topology 848 1650
+> 16 0 23 760 topology 850 1650
+> 15 0 24 760 topology 862 1651
 > 16 0 24 760 topology 864 1651
-> 15 0 23 760 topology 845 1652
-> 16 0 23 760 topology 846 1652
-> 15 0 24 760 topology 846 1653
-> 16 0 24 760 topology 864 1653
-> 15 0 23 760 topology 761 1654
-> 16 0 23 760 topology 762 1654
-> 15 0 24 760 topology 762 1655
-> 16 0 24 760 topology 864 1655
-> 15 0 23 760 topology 773 1656
-> 16 0 23 760 topology 774 1656
-> 15 0 24 760 topology 774 1657
-> 16 0 24 760 topology 864 1657
-> 15 0 23 760 topology 785 1658
-> 16 0 23 760 topology 786 1658
-> 15 0 24 760 topology 786 1659
-> 16 0 24 760 topology 864 1659
-> 15 0 23 500 topology 519 1660
-> 16 0 23 500 topology 520 1660
-> 15 0 24 500 topology 520 1661
+> 15 0 24 760 topology 838 1652
+> 16 0 24 760 topology 864 1652
+> 15 0 23 760 topology 797 1653
+> 16 0 23 760 topology 799 1653
+> 15 0 24 760 topology 814 1654
+> 16 0 24 760 topology 864 1654
+> 15 0 23 760 topology 851 1655
+> 16 0 23 760 topology 853 1655
+> 15 0 23 760 topology 800 1656
+> 16 0 23 760 topology 802 1656
+> 15 0 23 760 topology 854 1657
+> 16 0 23 760 topology 856 1657
+> 15 0 23 760 topology 803 1658
+> 16 0 23 760 topology 805 1658
+> 15 0 23 760 topology 857 1659
+> 16 0 23 760 topology 859 1659
+> 15 0 24 500 topology 514 1660
+> 16 0 24 500 topology 538 1660
+> 15 0 24 500 topology 526 1661
 > 16 0 24 500 topology 538 1661
-> 15 0 24 500 topology 538 1662
-> 16 0 24 500 topology 530 1662
-> 15 0 25 500 topology 530 1663
-> 16 0 25 500 topology 528 1663
-> 15 0 26 500 topology 538 1664
-> 16 0 26 500 topology 537 1664
-> 15 0 24 500 topology 538 1665
-> 16 0 24 500 topology 512 1665
-> 15 0 25 500 topology 512 1666
-> 16 0 25 500 topology 510 1666
-> 15 0 24 500 topology 538 1667
-> 16 0 24 500 topology 524 1667
-> 15 0 25 500 topology 524 1668
-> 16 0 25 500 topology 522 1668
-> 15 0 24 500 topology 538 1669
-> 16 0 24 500 topology 533 1669
-> 15 0 25 500 topology 533 1670
-> 16 0 25 500 topology 531 1670
-> 15 0 24 500 topology 538 1671
-> 16 0 24 500 topology 503 1671
-> 15 0 25 500 topology 503 1672
-> 16 0 25 500 topology 501 1672
-> 15 0 24 500 topology 538 1673
-> 16 0 24 500 topology 515 1673
-> 15 0 25 500 topology 515 1674
-> 16 0 25 500 topology 513 1674
-> 15 0 24 500 topology 538 1675
-> 16 0 24 500 topology 527 1675
-> 15 0 25 500 topology 527 1676
-> 16 0 25 500 topology 525 1676
-> 15 0 24 500 topology 538 1677
-> 16 0 24 500 topology 536 1677
-> 15 0 25 500 topology 536 1678
-> 16 0 25 500 topology 534 1678
-> 15 0 24 500 topology 538 1679
-> 16 0 24 500 topology 506 1679
-> 15 0 25 500 topology 506 1680
-> 16 0 25 500 topology 504 1680
-> 15 0 24 500 topology 538 1681
-> 16 0 24 500 topology 518 1681
-> 15 0 25 500 topology 518 1682
-> 16 0 25 500 topology 516 1682
-> 15 0 24 500 topology 538 1683
-> 16 0 24 500 topology 509 1683
-> 15 0 25 500 topology 509 1684
-> 16 0 25 500 topology 507 1684
-> 15 0 23 500 topology 528 1685
-> 16 0 23 500 topology 529 1685
-> 15 0 24 500 topology 529 1686
-> 16 0 24 500 topology 538 1686
-> 15 0 24 500 topology 538 1687
-> 16 0 24 500 topology 521 1687
-> 15 0 25 500 topology 521 1688
-> 16 0 25 500 topology 519 1688
-> 15 0 23 500 topology 510 1689
-> 16 0 23 500 topology 511 1689
-> 15 0 24 500 topology 511 1690
-> 16 0 24 500 topology 538 1690
-> 15 0 23 500 topology 522 1691
-> 16 0 23 500 topology 523 1691
-> 15 0 24 500 topology 523 1692
-> 16 0 24 500 topology 538 1692
-> 15 0 23 500 topology 531 1693
-> 16 0 23 500 topology 532 1693
-> 15 0 24 500 topology 532 1694
+> 15 0 23 500 topology 507 1662
+> 16 0 23 500 topology 509 1662
+> 15 0 23 500 topology 519 1663
+> 16 0 23 500 topology 521 1663
+> 15 0 24 500 topology 532 1664
+> 16 0 24 500 topology 538 1664
+> 15 0 24 500 topology 509 1665
+> 16 0 24 500 topology 538 1665
+> 15 0 23 500 topology 507 1666
+> 16 0 23 500 topology 508 1666
+> 15 0 24 500 topology 521 1667
+> 16 0 24 500 topology 538 1667
+> 15 0 23 500 topology 519 1668
+> 16 0 23 500 topology 520 1668
+> 15 0 24 500 topology 511 1669
+> 16 0 24 500 topology 538 1669
+> 15 0 24 500 topology 533 1670
+> 16 0 24 500 topology 538 1670
+> 15 0 23 500 topology 504 1671
+> 16 0 23 500 topology 506 1671
+> 15 0 24 500 topology 523 1672
+> 16 0 24 500 topology 538 1672
+> 15 0 23 500 topology 516 1673
+> 16 0 23 500 topology 518 1673
+> 15 0 24 500 topology 529 1674
+> 16 0 24 500 topology 538 1674
+> 15 0 23 500 topology 531 1675
+> 16 0 23 500 topology 532 1675
+> 15 0 24 500 topology 512 1676
+> 16 0 24 500 topology 538 1676
+> 15 0 23 500 topology 510 1677
+> 16 0 23 500 topology 511 1677
+> 15 0 24 500 topology 524 1678
+> 16 0 24 500 topology 538 1678
+> 15 0 23 500 topology 522 1679
+> 16 0 23 500 topology 523 1679
+> 15 0 24 500 topology 508 1680
+> 16 0 24 500 topology 538 1680
+> 15 0 23 500 topology 501 1681
+> 16 0 23 500 topology 503 1681
+> 15 0 23 500 topology 528 1682
+> 16 0 23 500 topology 530 1682
+> 15 0 24 500 topology 536 1683
+> 16 0 24 500 topology 538 1683
+> 15 0 24 500 topology 520 1684
+> 16 0 24 500 topology 538 1684
+> 15 0 23 500 topology 531 1685
+> 16 0 23 500 topology 533 1685
+> 15 0 23 500 topology 534 1686
+> 16 0 23 500 topology 536 1686
+> 15 0 23 500 topology 513 1687
+> 16 0 23 500 topology 515 1687
+> 15 0 23 500 topology 501 1688
+> 16 0 23 500 topology 502 1688
+> 15 0 24 500 topology 503 1689
+> 16 0 24 500 topology 538 1689
+> 15 0 23 500 topology 525 1690
+> 16 0 23 500 topology 527 1690
+> 15 0 24 500 topology 515 1691
+> 16 0 24 500 topology 538 1691
+> 15 0 23 500 topology 513 1692
+> 16 0 23 500 topology 514 1692
+> 15 0 24 500 topology 527 1693
+> 16 0 24 500 topology 538 1693
+> 15 0 24 500 topology 505 1694
 > 16 0 24 500 topology 538 1694
-> 15 0 23 500 topology 501 1695
-> 16 0 23 500 topology 502 1695
-> 15 0 24 500 topology 502 1696
-> 16 0 24 500 topology 538 1696
-> 15 0 23 500 topology 513 1697
-> 16 0 23 500 topology 514 1697
-> 15 0 24 500 topology 514 1698
-> 16 0 24 500 topology 538 1698
-> 15 0 23 500 topology 525 1699
-> 16 0 23 500 topology 526 1699
-> 15 0 24 500 topology 526 1700
+> 15 0 23 500 topology 525 1695
+> 16 0 23 500 topology 526 1695
+> 15 0 25 500 topology 537 1696
+> 16 0 25 500 topology 538 1696
+> 15 0 24 500 topology 517 1697
+> 16 0 24 500 topology 538 1697
+> 15 0 23 500 topology 510 1698
+> 16 0 23 500 topology 512 1698
+> 15 0 23 500 topology 528 1699
+> 16 0 23 500 topology 529 1699
+> 15 0 24 500 topology 535 1700
 > 16 0 24 500 topology 538 1700
-> 15 0 23 500 topology 534 1701
-> 16 0 23 500 topology 535 1701
-> 15 0 24 500 topology 535 1702
-> 16 0 24 500 topology 538 1702
-> 15 0 23 500 topology 504 1703
-> 16 0 23 500 topology 505 1703
-> 15 0 24 500 topology 505 1704
-> 16 0 24 500 topology 538 1704
-> 15 0 23 500 topology 516 1705
-> 16 0 23 500 topology 517 1705
-> 15 0 24 500 topology 517 1706
-> 16 0 24 500 topology 538 1706
-> 15 0 23 500 topology 507 1707
-> 16 0 23 500 topology 508 1707
-> 15 0 24 500 topology 508 1708
+> 15 0 23 500 topology 522 1701
+> 16 0 23 500 topology 524 1701
+> 15 0 23 500 topology 504 1702
+> 16 0 23 500 topology 505 1702
+> 15 0 24 500 topology 506 1703
+> 16 0 24 500 topology 538 1703
+> 15 0 23 500 topology 534 1704
+> 16 0 23 500 topology 535 1704
+> 15 0 24 500 topology 518 1705
+> 16 0 24 500 topology 538 1705
+> 15 0 23 500 topology 516 1706
+> 16 0 23 500 topology 517 1706
+> 15 0 24 500 topology 502 1707
+> 16 0 24 500 topology 538 1707
+> 15 0 24 500 topology 530 1708
 > 16 0 24 500 topology 538 1708
-> 15 0 27 499 topology 757 1709
-> 16 0 27 499 topology 759 1709
-> 15 0 28 499 topology 759 1710
-> 16 0 28 499 topology 867 1710
-> 15 0 21 499 topology 759 1711
-> 16 0 21 499 topology 865 1711
-> 15 0 28 499 topology 865 1712
-> 16 0 28 499 topology 863 1712
+> 15 0 26 499 topology 865 1709
+> 16 0 26 499 topology 867 1709
+> 15 0 26 499 topology 759 1710
+> 16 0 26 499 topology 867 1710
+> 15 0 26 499 topology 539 1711
+> 16 0 26 499 topology 867 1711
+> 15 0 27 499 topology 537 1712
+> 16 0 27 499 topology 539 1712
 > 15 0 21 499 topology 759 1713
-> 16 0 21 499 topology 539 1713
-> 15 0 28 499 topology 539 1714
-> 16 0 28 499 topology 537 1714
-> 15 0 27 499 topology 867 1715
-> 16 0 27 499 topology 865 1715
-> 15 0 27 499 topology 867 1716
-> 16 0 27 499 topology 539 1716
-> 15 0 21 499 topology 865 1717
-> 16 0 21 499 topology 539 1717
-> 15 0 23 3318 topology 3373 1718
-> 16 0 23 3318 topology 3374 1718
-> 15 0 24 3318 topology 3374 1719
-> 16 0 24 3318 topology 3410 1719
-> 15 0 24 3318 topology 3410 1720
-> 16 0 24 3318 topology 3378 1720
-> 15 0 25 3318 topology 3378 1721
-> 16 0 25 3318 topology 3376 1721
-> 15 0 24 3318 topology 3410 1722
-> 16 0 24 3318 topology 3384 1722
-> 15 0 25 3318 topology 3384 1723
-> 16 0 25 3318 topology 3382 1723
-> 15 0 24 3318 topology 3410 1724
-> 16 0 24 3318 topology 3390 1724
-> 15 0 25 3318 topology 3390 1725
-> 16 0 25 3318 topology 3388 1725
-> 15 0 24 3318 topology 3410 1726
-> 16 0 24 3318 topology 3396 1726
-> 15 0 25 3318 topology 3396 1727
-> 16 0 25 3318 topology 3394 1727
-> 15 0 24 3318 topology 3410 1728
-> 16 0 24 3318 topology 3402 1728
-> 15 0 25 3318 topology 3402 1729
-> 16 0 25 3318 topology 3400 1729
-> 15 0 24 3318 topology 3410 1730
-> 16 0 24 3318 topology 3324 1730
-> 15 0 25 3318 topology 3324 1731
-> 16 0 25 3318 topology 3322 1731
-> 15 0 24 3318 topology 3410 1732
-> 16 0 24 3318 topology 3330 1732
-> 15 0 25 3318 topology 3330 1733
-> 16 0 25 3318 topology 3328 1733
-> 15 0 24 3318 topology 3410 1734
-> 16 0 24 3318 topology 3336 1734
-> 15 0 25 3318 topology 3336 1735
-> 16 0 25 3318 topology 3334 1735
-> 15 0 24 3318 topology 3410 1736
-> 16 0 24 3318 topology 3342 1736
-> 15 0 25 3318 topology 3342 1737
-> 16 0 25 3318 topology 3340 1737
-> 15 0 24 3318 topology 3410 1738
-> 16 0 24 3318 topology 3348 1738
-> 15 0 25 3318 topology 3348 1739
-> 16 0 25 3318 topology 3346 1739
-> 15 0 24 3318 topology 3410 1740
-> 16 0 24 3318 topology 3354 1740
-> 15 0 25 3318 topology 3354 1741
-> 16 0 25 3318 topology 3352 1741
-> 15 0 24 3318 topology 3410 1742
-> 16 0 24 3318 topology 3360 1742
-> 15 0 25 3318 topology 3360 1743
-> 16 0 25 3318 topology 3358 1743
-> 15 0 24 3318 topology 3410 1744
-> 16 0 24 3318 topology 3366 1744
-> 15 0 25 3318 topology 3366 1745
-> 16 0 25 3318 topology 3364 1745
-> 15 0 24 3318 topology 3410 1746
-> 16 0 24 3318 topology 3372 1746
-> 15 0 25 3318 topology 3372 1747
-> 16 0 25 3318 topology 3370 1747
-> 15 0 24 3318 topology 3410 1748
-> 16 0 24 3318 topology 3381 1748
-> 15 0 25 3318 topology 3381 1749
-> 16 0 25 3318 topology 3379 1749
-> 15 0 24 3318 topology 3410 1750
-> 16 0 24 3318 topology 3387 1750
-> 15 0 25 3318 topology 3387 1751
-> 16 0 25 3318 topology 3385 1751
-> 15 0 24 3318 topology 3410 1752
-> 16 0 24 3318 topology 3393 1752
-> 15 0 25 3318 topology 3393 1753
-> 16 0 25 3318 topology 3391 1753
-> 15 0 24 3318 topology 3410 1754
-> 16 0 24 3318 topology 3399 1754
-> 15 0 25 3318 topology 3399 1755
-> 16 0 25 3318 topology 3397 1755
-> 15 0 24 3318 topology 3410 1756
-> 16 0 24 3318 topology 3405 1756
-> 15 0 25 3318 topology 3405 1757
-> 16 0 25 3318 topology 3403 1757
-> 15 0 24 3318 topology 3410 1758
-> 16 0 24 3318 topology 3321 1758
-> 15 0 25 3318 topology 3321 1759
-> 16 0 25 3318 topology 3319 1759
-> 15 0 24 3318 topology 3410 1760
-> 16 0 24 3318 topology 3327 1760
-> 15 0 25 3318 topology 3327 1761
-> 16 0 25 3318 topology 3325 1761
-> 15 0 24 3318 topology 3410 1762
-> 16 0 24 3318 topology 3333 1762
-> 15 0 25 3318 topology 3333 1763
-> 16 0 25 3318 topology 3331 1763
-> 15 0 24 3318 topology 3410 1764
-> 16 0 24 3318 topology 3339 1764
-> 15 0 25 3318 topology 3339 1765
-> 16 0 25 3318 topology 3337 1765
-> 15 0 24 3318 topology 3410 1766
-> 16 0 24 3318 topology 3345 1766
-> 15 0 25 3318 topology 3345 1767
-> 16 0 25 3318 topology 3343 1767
-> 15 0 26 3318 topology 3410 1768
-> 16 0 26 3318 topology 3409 1768
-> 15 0 24 3318 topology 3410 1769
-> 16 0 24 3318 topology 3351 1769
-> 15 0 25 3318 topology 3351 1770
-> 16 0 25 3318 topology 3349 1770
-> 15 0 24 3318 topology 3410 1771
-> 16 0 24 3318 topology 3408 1771
-> 15 0 25 3318 topology 3408 1772
-> 16 0 25 3318 topology 3406 1772
-> 15 0 24 3318 topology 3410 1773
-> 16 0 24 3318 topology 3357 1773
-> 15 0 25 3318 topology 3357 1774
-> 16 0 25 3318 topology 3355 1774
-> 15 0 24 3318 topology 3410 1775
-> 16 0 24 3318 topology 3363 1775
-> 15 0 25 3318 topology 3363 1776
-> 16 0 25 3318 topology 3361 1776
-> 15 0 24 3318 topology 3410 1777
-> 16 0 24 3318 topology 3369 1777
-> 15 0 25 3318 topology 3369 1778
-> 16 0 25 3318 topology 3367 1778
-> 15 0 23 3318 topology 3376 1779
-> 16 0 23 3318 topology 3377 1779
-> 15 0 24 3318 topology 3377 1780
-> 16 0 24 3318 topology 3410 1780
-> 15 0 24 3318 topology 3410 1781
-> 16 0 24 3318 topology 3375 1781
-> 15 0 25 3318 topology 3375 1782
-> 16 0 25 3318 topology 3373 1782
-> 15 0 23 3318 topology 3382 1783
-> 16 0 23 3318 topology 3383 1783
-> 15 0 24 3318 topology 3383 1784
-> 16 0 24 3318 topology 3410 1784
-> 15 0 23 3318 topology 3388 1785
-> 16 0 23 3318 topology 3389 1785
-> 15 0 24 3318 topology 3389 1786
+> 16 0 21 499 topology 865 1713
+> 15 0 21 499 topology 539 1714
+> 16 0 21 499 topology 865 1714
+> 15 0 26 499 topology 865 1715
+> 16 0 26 499 topology 863 1715
+> 15 0 21 499 topology 539 1716
+> 16 0 21 499 topology 759 1716
+> 15 0 26 499 topology 759 1717
+> 16 0 26 499 topology 757 1717
+> 15 0 24 3318 topology 3375 1718
+> 16 0 24 3318 topology 3410 1718
+> 15 0 23 3318 topology 3385 1719
+> 16 0 23 3318 topology 3387 1719
+> 15 0 23 3318 topology 3361 1720
+> 16 0 23 3318 topology 3363 1720
+> 15 0 24 3318 topology 3347 1721
+> 16 0 24 3318 topology 3410 1721
+> 15 0 25 3318 topology 3409 1722
+> 16 0 25 3318 topology 3410 1722
+> 15 0 23 3318 topology 3337 1723
+> 16 0 23 3318 topology 3339 1723
+> 15 0 24 3318 topology 3377 1724
+> 16 0 24 3318 topology 3410 1724
+> 15 0 23 3318 topology 3391 1725
+> 16 0 23 3318 topology 3393 1725
+> 15 0 23 3318 topology 3346 1726
+> 16 0 23 3318 topology 3347 1726
+> 15 0 24 3318 topology 3407 1727
+> 16 0 24 3318 topology 3410 1727
+> 15 0 23 3318 topology 3367 1728
+> 16 0 23 3318 topology 3369 1728
+> 15 0 23 3318 topology 3349 1729
+> 16 0 23 3318 topology 3350 1729
+> 15 0 24 3318 topology 3359 1730
+> 16 0 24 3318 topology 3410 1730
+> 15 0 24 3318 topology 3389 1731
+> 16 0 24 3318 topology 3410 1731
+> 15 0 23 3318 topology 3397 1732
+> 16 0 23 3318 topology 3399 1732
+> 15 0 24 3318 topology 3330 1733
+> 16 0 24 3318 topology 3410 1733
+> 15 0 23 3318 topology 3352 1734
+> 16 0 23 3318 topology 3353 1734
+> 15 0 23 3318 topology 3406 1735
+> 16 0 23 3318 topology 3407 1735
+> 15 0 23 3318 topology 3373 1736
+> 16 0 23 3318 topology 3375 1736
+> 15 0 23 3318 topology 3328 1737
+> 16 0 23 3318 topology 3329 1737
+> 15 0 23 3318 topology 3355 1738
+> 16 0 23 3318 topology 3356 1738
+> 15 0 24 3318 topology 3371 1739
+> 16 0 24 3318 topology 3410 1739
+> 15 0 24 3318 topology 3401 1740
+> 16 0 24 3318 topology 3410 1740
+> 15 0 23 3318 topology 3403 1741
+> 16 0 23 3318 topology 3405 1741
+> 15 0 24 3318 topology 3342 1742
+> 16 0 24 3318 topology 3410 1742
+> 15 0 23 3318 topology 3358 1743
+> 16 0 23 3318 topology 3359 1743
+> 15 0 23 3318 topology 3361 1744
+> 16 0 23 3318 topology 3362 1744
+> 15 0 23 3318 topology 3364 1745
+> 16 0 23 3318 topology 3365 1745
+> 15 0 23 3318 topology 3340 1746
+> 16 0 23 3318 topology 3341 1746
+> 15 0 23 3318 topology 3367 1747
+> 16 0 23 3318 topology 3368 1747
+> 15 0 24 3318 topology 3326 1748
+> 16 0 24 3318 topology 3410 1748
+> 15 0 23 3318 topology 3370 1749
+> 16 0 23 3318 topology 3371 1749
+> 15 0 23 3318 topology 3373 1750
+> 16 0 23 3318 topology 3374 1750
+> 15 0 24 3318 topology 3378 1751
+> 16 0 24 3318 topology 3410 1751
+> 15 0 24 3318 topology 3354 1752
+> 16 0 24 3318 topology 3410 1752
+> 15 0 24 3318 topology 3338 1753
+> 16 0 24 3318 topology 3410 1753
+> 15 0 24 3318 topology 3390 1754
+> 16 0 24 3318 topology 3410 1754
+> 15 0 24 3318 topology 3366 1755
+> 16 0 24 3318 topology 3410 1755
+> 15 0 23 3318 topology 3328 1756
+> 16 0 23 3318 topology 3330 1756
+> 15 0 24 3318 topology 3402 1757
+> 16 0 24 3318 topology 3410 1757
+> 15 0 24 3318 topology 3321 1758
+> 16 0 24 3318 topology 3410 1758
+> 15 0 23 3318 topology 3340 1759
+> 16 0 23 3318 topology 3342 1759
+> 15 0 24 3318 topology 3356 1760
+> 16 0 24 3318 topology 3410 1760
+> 15 0 24 3318 topology 3386 1761
+> 16 0 24 3318 topology 3410 1761
+> 15 0 23 3318 topology 3325 1762
+> 16 0 23 3318 topology 3326 1762
+> 15 0 24 3318 topology 3333 1763
+> 16 0 24 3318 topology 3410 1763
+> 15 0 24 3318 topology 3368 1764
+> 16 0 24 3318 topology 3410 1764
+> 15 0 24 3318 topology 3398 1765
+> 16 0 24 3318 topology 3410 1765
+> 15 0 24 3318 topology 3345 1766
+> 16 0 24 3318 topology 3410 1766
+> 15 0 23 3318 topology 3337 1767
+> 16 0 23 3318 topology 3338 1767
+> 15 0 24 3318 topology 3323 1768
+> 16 0 24 3318 topology 3410 1768
+> 15 0 23 3318 topology 3319 1769
+> 16 0 23 3318 topology 3321 1769
+> 15 0 24 3318 topology 3335 1770
+> 16 0 24 3318 topology 3410 1770
+> 15 0 23 3318 topology 3346 1771
+> 16 0 23 3318 topology 3348 1771
+> 15 0 24 3318 topology 3381 1772
+> 16 0 24 3318 topology 3410 1772
+> 15 0 24 3318 topology 3357 1773
+> 16 0 24 3318 topology 3410 1773
+> 15 0 23 3318 topology 3376 1774
+> 16 0 23 3318 topology 3378 1774
+> 15 0 23 3318 topology 3352 1775
+> 16 0 23 3318 topology 3354 1775
+> 15 0 24 3318 topology 3393 1776
+> 16 0 24 3318 topology 3410 1776
+> 15 0 23 3318 topology 3406 1777
+> 16 0 23 3318 topology 3408 1777
+> 15 0 24 3318 topology 3369 1778
+> 16 0 24 3318 topology 3410 1778
+> 15 0 23 3318 topology 3382 1779
+> 16 0 23 3318 topology 3384 1779
+> 15 0 23 3318 topology 3331 1780
+> 16 0 23 3318 topology 3333 1780
+> 15 0 23 3318 topology 3358 1781
+> 16 0 23 3318 topology 3360 1781
+> 15 0 24 3318 topology 3405 1782
+> 16 0 24 3318 topology 3410 1782
+> 15 0 23 3318 topology 3388 1783
+> 16 0 23 3318 topology 3390 1783
+> 15 0 23 3318 topology 3364 1784
+> 16 0 23 3318 topology 3366 1784
+> 15 0 24 3318 topology 3353 1785
+> 16 0 24 3318 topology 3410 1785
+> 15 0 24 3318 topology 3383 1786
 > 16 0 24 3318 topology 3410 1786
 > 15 0 23 3318 topology 3394 1787
-> 16 0 23 3318 topology 3395 1787
-> 15 0 24 3318 topology 3395 1788
-> 16 0 24 3318 topology 3410 1788
-> 15 0 23 3318 topology 3400 1789
-> 16 0 23 3318 topology 3401 1789
-> 15 0 24 3318 topology 3401 1790
-> 16 0 24 3318 topology 3410 1790
-> 15 0 23 3318 topology 3322 1791
-> 16 0 23 3318 topology 3323 1791
-> 15 0 24 3318 topology 3323 1792
-> 16 0 24 3318 topology 3410 1792
-> 15 0 23 3318 topology 3328 1793
-> 16 0 23 3318 topology 3329 1793
-> 15 0 24 3318 topology 3329 1794
-> 16 0 24 3318 topology 3410 1794
-> 15 0 23 3318 topology 3334 1795
-> 16 0 23 3318 topology 3335 1795
-> 15 0 24 3318 topology 3335 1796
-> 16 0 24 3318 topology 3410 1796
-> 15 0 23 3318 topology 3340 1797
-> 16 0 23 3318 topology 3341 1797
-> 15 0 24 3318 topology 3341 1798
-> 16 0 24 3318 topology 3410 1798
-> 15 0 23 3318 topology 3346 1799
-> 16 0 23 3318 topology 3347 1799
-> 15 0 24 3318 topology 3347 1800
-> 16 0 24 3318 topology 3410 1800
-> 15 0 23 3318 topology 3352 1801
-> 16 0 23 3318 topology 3353 1801
-> 15 0 24 3318 topology 3353 1802
-> 16 0 24 3318 topology 3410 1802
-> 15 0 23 3318 topology 3358 1803
-> 16 0 23 3318 topology 3359 1803
-> 15 0 24 3318 topology 3359 1804
-> 16 0 24 3318 topology 3410 1804
-> 15 0 23 3318 topology 3364 1805
-> 16 0 23 3318 topology 3365 1805
-> 15 0 24 3318 topology 3365 1806
+> 16 0 23 3318 topology 3396 1787
+> 15 0 23 3318 topology 3322 1788
+> 16 0 23 3318 topology 3323 1788
+> 15 0 24 3318 topology 3324 1789
+> 16 0 24 3318 topology 3410 1789
+> 15 0 23 3318 topology 3376 1790
+> 16 0 23 3318 topology 3377 1790
+> 15 0 23 3318 topology 3343 1791
+> 16 0 23 3318 topology 3345 1791
+> 15 0 23 3318 topology 3370 1792
+> 16 0 23 3318 topology 3372 1792
+> 15 0 24 3318 topology 3365 1793
+> 16 0 24 3318 topology 3410 1793
+> 15 0 23 3318 topology 3379 1794
+> 16 0 23 3318 topology 3380 1794
+> 15 0 24 3318 topology 3395 1795
+> 16 0 24 3318 topology 3410 1795
+> 15 0 23 3318 topology 3400 1796
+> 16 0 23 3318 topology 3402 1796
+> 15 0 24 3318 topology 3336 1797
+> 16 0 24 3318 topology 3410 1797
+> 15 0 23 3318 topology 3382 1798
+> 16 0 23 3318 topology 3383 1798
+> 15 0 23 3318 topology 3385 1799
+> 16 0 23 3318 topology 3386 1799
+> 15 0 23 3318 topology 3334 1800
+> 16 0 23 3318 topology 3335 1800
+> 15 0 23 3318 topology 3388 1801
+> 16 0 23 3318 topology 3389 1801
+> 15 0 23 3318 topology 3391 1802
+> 16 0 23 3318 topology 3392 1802
+> 15 0 24 3318 topology 3320 1803
+> 16 0 24 3318 topology 3410 1803
+> 15 0 23 3318 topology 3394 1804
+> 16 0 23 3318 topology 3395 1804
+> 15 0 23 3318 topology 3397 1805
+> 16 0 23 3318 topology 3398 1805
+> 15 0 24 3318 topology 3348 1806
 > 16 0 24 3318 topology 3410 1806
-> 15 0 23 3318 topology 3370 1807
-> 16 0 23 3318 topology 3371 1807
-> 15 0 24 3318 topology 3371 1808
-> 16 0 24 3318 topology 3410 1808
-> 15 0 23 3318 topology 3379 1809
-> 16 0 23 3318 topology 3380 1809
-> 15 0 24 3318 topology 3380 1810
+> 15 0 24 3318 topology 3332 1807
+> 16 0 24 3318 topology 3410 1807
+> 15 0 23 3318 topology 3400 1808
+> 16 0 23 3318 topology 3401 1808
+> 15 0 24 3318 topology 3408 1809
+> 16 0 24 3318 topology 3410 1809
+> 15 0 24 3318 topology 3384 1810
 > 16 0 24 3318 topology 3410 1810
-> 15 0 23 3318 topology 3385 1811
-> 16 0 23 3318 topology 3386 1811
-> 15 0 24 3318 topology 3386 1812
-> 16 0 24 3318 topology 3410 1812
-> 15 0 23 3318 topology 3391 1813
-> 16 0 23 3318 topology 3392 1813
-> 15 0 24 3318 topology 3392 1814
+> 15 0 23 3318 topology 3403 1811
+> 16 0 23 3318 topology 3404 1811
+> 15 0 23 3318 topology 3322 1812
+> 16 0 23 3318 topology 3324 1812
+> 15 0 24 3318 topology 3360 1813
+> 16 0 24 3318 topology 3410 1813
+> 15 0 24 3318 topology 3344 1814
 > 16 0 24 3318 topology 3410 1814
-> 15 0 23 3318 topology 3397 1815
-> 16 0 23 3318 topology 3398 1815
-> 15 0 24 3318 topology 3398 1816
+> 15 0 24 3318 topology 3396 1815
+> 16 0 24 3318 topology 3410 1815
+> 15 0 24 3318 topology 3372 1816
 > 16 0 24 3318 topology 3410 1816
-> 15 0 23 3318 topology 3403 1817
-> 16 0 23 3318 topology 3404 1817
-> 15 0 24 3318 topology 3404 1818
+> 15 0 23 3318 topology 3334 1817
+> 16 0 23 3318 topology 3336 1817
+> 15 0 24 3318 topology 3350 1818
 > 16 0 24 3318 topology 3410 1818
 > 15 0 23 3318 topology 3319 1819
 > 16 0 23 3318 topology 3320 1819
-> 15 0 24 3318 topology 3320 1820
+> 15 0 24 3318 topology 3380 1820
 > 16 0 24 3318 topology 3410 1820
-> 15 0 23 3318 topology 3325 1821
-> 16 0 23 3318 topology 3326 1821
-> 15 0 24 3318 topology 3326 1822
+> 15 0 24 3318 topology 3327 1821
+> 16 0 24 3318 topology 3410 1821
+> 15 0 24 3318 topology 3362 1822
 > 16 0 24 3318 topology 3410 1822
-> 15 0 23 3318 topology 3331 1823
-> 16 0 23 3318 topology 3332 1823
-> 15 0 24 3318 topology 3332 1824
+> 15 0 24 3318 topology 3392 1823
+> 16 0 24 3318 topology 3410 1823
+> 15 0 24 3318 topology 3339 1824
 > 16 0 24 3318 topology 3410 1824
-> 15 0 23 3318 topology 3337 1825
-> 16 0 23 3318 topology 3338 1825
-> 15 0 24 3318 topology 3338 1826
-> 16 0 24 3318 topology 3410 1826
-> 15 0 23 3318 topology 3343 1827
-> 16 0 23 3318 topology 3344 1827
-> 15 0 24 3318 topology 3344 1828
-> 16 0 24 3318 topology 3410 1828
-> 15 0 23 3318 topology 3349 1829
-> 16 0 23 3318 topology 3350 1829
-> 15 0 24 3318 topology 3350 1830
+> 15 0 24 3318 topology 3374 1825
+> 16 0 24 3318 topology 3410 1825
+> 15 0 23 3318 topology 3331 1826
+> 16 0 23 3318 topology 3332 1826
+> 15 0 24 3318 topology 3404 1827
+> 16 0 24 3318 topology 3410 1827
+> 15 0 23 3318 topology 3343 1828
+> 16 0 23 3318 topology 3344 1828
+> 15 0 24 3318 topology 3329 1829
+> 16 0 24 3318 topology 3410 1829
+> 15 0 24 3318 topology 3351 1830
 > 16 0 24 3318 topology 3410 1830
-> 15 0 23 3318 topology 3406 1831
-> 16 0 23 3318 topology 3407 1831
-> 15 0 24 3318 topology 3407 1832
-> 16 0 24 3318 topology 3410 1832
-> 15 0 23 3318 topology 3355 1833
-> 16 0 23 3318 topology 3356 1833
-> 15 0 24 3318 topology 3356 1834
+> 15 0 24 3318 topology 3341 1831
+> 16 0 24 3318 topology 3410 1831
+> 15 0 23 3318 topology 3349 1832
+> 16 0 23 3318 topology 3351 1832
+> 15 0 24 3318 topology 3387 1833
+> 16 0 24 3318 topology 3410 1833
+> 15 0 24 3318 topology 3363 1834
 > 16 0 24 3318 topology 3410 1834
-> 15 0 23 3318 topology 3361 1835
-> 16 0 23 3318 topology 3362 1835
-> 15 0 24 3318 topology 3362 1836
-> 16 0 24 3318 topology 3410 1836
-> 15 0 23 3318 topology 3367 1837
-> 16 0 23 3318 topology 3368 1837
-> 15 0 24 3318 topology 3368 1838
+> 15 0 23 3318 topology 3325 1835
+> 16 0 23 3318 topology 3327 1835
+> 15 0 23 3318 topology 3379 1836
+> 16 0 23 3318 topology 3381 1836
+> 15 0 23 3318 topology 3355 1837
+> 16 0 23 3318 topology 3357 1837
+> 15 0 24 3318 topology 3399 1838
 > 16 0 24 3318 topology 3410 1838
-> 15 0 29 3092 topology 3144 1839
-> 16 0 29 3092 topology 3145 1839
-> 15 0 30 3092 topology 3145 1840
-> 16 0 30 3092 topology 3202 1840
-> 15 0 30 3092 topology 3202 1841
-> 16 0 30 3092 topology 3095 1841
-> 15 0 31 3092 topology 3095 1842
-> 16 0 31 3092 topology 3093 1842
-> 15 0 30 3092 topology 3202 1843
-> 16 0 30 3092 topology 3152 1843
-> 15 0 31 3092 topology 3152 1844
-> 16 0 31 3092 topology 3150 1844
-> 15 0 30 3092 topology 3202 1845
-> 16 0 30 3092 topology 3101 1845
-> 15 0 31 3092 topology 3101 1846
-> 16 0 31 3092 topology 3099 1846
-> 15 0 30 3092 topology 3202 1847
-> 16 0 30 3092 topology 3158 1847
-> 15 0 31 3092 topology 3158 1848
-> 16 0 31 3092 topology 3156 1848
-> 15 0 30 3092 topology 3202 1849
-> 16 0 30 3092 topology 3107 1849
-> 15 0 31 3092 topology 3107 1850
-> 16 0 31 3092 topology 3105 1850
-> 15 0 30 3092 topology 3202 1851
-> 16 0 30 3092 topology 3164 1851
-> 15 0 31 3092 topology 3164 1852
-> 16 0 31 3092 topology 3162 1852
-> 15 0 30 3092 topology 3202 1853
-> 16 0 30 3092 topology 3113 1853
-> 15 0 31 3092 topology 3113 1854
-> 16 0 31 3092 topology 3111 1854
-> 15 0 30 3092 topology 3202 1855
-> 16 0 30 3092 topology 3170 1855
-> 15 0 31 3092 topology 3170 1856
-> 16 0 31 3092 topology 3168 1856
-> 15 0 30 3092 topology 3202 1857
-> 16 0 30 3092 topology 3116 1857
-> 15 0 31 3092 topology 3116 1858
-> 16 0 31 3092 topology 3114 1858
-> 15 0 30 3092 topology 3202 1859
-> 16 0 30 3092 topology 3122 1859
-> 15 0 31 3092 topology 3122 1860
-> 16 0 31 3092 topology 3120 1860
-> 15 0 30 3092 topology 3202 1861
-> 16 0 30 3092 topology 3179 1861
-> 15 0 31 3092 topology 3179 1862
-> 16 0 31 3092 topology 3177 1862
-> 15 0 30 3092 topology 3202 1863
-> 16 0 30 3092 topology 3128 1863
-> 15 0 31 3092 topology 3128 1864
-> 16 0 31 3092 topology 3126 1864
-> 15 0 30 3092 topology 3202 1865
-> 16 0 30 3092 topology 3185 1865
-> 15 0 31 3092 topology 3185 1866
-> 16 0 31 3092 topology 3183 1866
-> 15 0 30 3092 topology 3202 1867
-> 16 0 30 3092 topology 3134 1867
-> 15 0 31 3092 topology 3134 1868
-> 16 0 31 3092 topology 3132 1868
-> 15 0 30 3092 topology 3202 1869
-> 16 0 30 3092 topology 3191 1869
-> 15 0 31 3092 topology 3191 1870
-> 16 0 31 3092 topology 3189 1870
-> 15 0 30 3092 topology 3202 1871
-> 16 0 30 3092 topology 3140 1871
-> 15 0 31 3092 topology 3140 1872
-> 16 0 31 3092 topology 3138 1872
-> 15 0 30 3092 topology 3202 1873
-> 16 0 30 3092 topology 3197 1873
-> 15 0 31 3092 topology 3197 1874
-> 16 0 31 3092 topology 3195 1874
-> 15 0 30 3092 topology 3202 1875
-> 16 0 30 3092 topology 3149 1875
-> 15 0 31 3092 topology 3149 1876
-> 16 0 31 3092 topology 3147 1876
-> 15 0 30 3092 topology 3202 1877
-> 16 0 30 3092 topology 3098 1877
-> 15 0 31 3092 topology 3098 1878
-> 16 0 31 3092 topology 3096 1878
-> 15 0 30 3092 topology 3202 1879
-> 16 0 30 3092 topology 3155 1879
-> 15 0 31 3092 topology 3155 1880
-> 16 0 31 3092 topology 3153 1880
-> 15 0 32 3092 topology 3202 1881
-> 16 0 32 3092 topology 3201 1881
-> 15 0 30 3092 topology 3202 1882
-> 16 0 30 3092 topology 3104 1882
-> 15 0 31 3092 topology 3104 1883
-> 16 0 31 3092 topology 3102 1883
-> 15 0 30 3092 topology 3202 1884
-> 16 0 30 3092 topology 3161 1884
-> 15 0 31 3092 topology 3161 1885
-> 16 0 31 3092 topology 3159 1885
-> 15 0 30 3092 topology 3202 1886
-> 16 0 30 3092 topology 3110 1886
-> 15 0 31 3092 topology 3110 1887
-> 16 0 31 3092 topology 3108 1887
-> 15 0 30 3092 topology 3202 1888
-> 16 0 30 3092 topology 3167 1888
-> 15 0 31 3092 topology 3167 1889
-> 16 0 31 3092 topology 3165 1889
-> 15 0 30 3092 topology 3202 1890
-> 16 0 30 3092 topology 3173 1890
-> 15 0 31 3092 topology 3173 1891
-> 16 0 31 3092 topology 3171 1891
-> 15 0 30 3092 topology 3202 1892
-> 16 0 30 3092 topology 3119 1892
-> 15 0 31 3092 topology 3119 1893
-> 16 0 31 3092 topology 3117 1893
-> 15 0 30 3092 topology 3202 1894
-> 16 0 30 3092 topology 3176 1894
-> 15 0 31 3092 topology 3176 1895
-> 16 0 31 3092 topology 3174 1895
-> 15 0 30 3092 topology 3202 1896
-> 16 0 30 3092 topology 3125 1896
-> 15 0 31 3092 topology 3125 1897
-> 16 0 31 3092 topology 3123 1897
-> 15 0 30 3092 topology 3202 1898
-> 16 0 30 3092 topology 3182 1898
-> 15 0 31 3092 topology 3182 1899
-> 16 0 31 3092 topology 3180 1899
-> 15 0 30 3092 topology 3202 1900
-> 16 0 30 3092 topology 3131 1900
-> 15 0 31 3092 topology 3131 1901
-> 16 0 31 3092 topology 3129 1901
-> 15 0 30 3092 topology 3202 1902
-> 16 0 30 3092 topology 3188 1902
-> 15 0 31 3092 topology 3188 1903
-> 16 0 31 3092 topology 3186 1903
-> 15 0 30 3092 topology 3202 1904
-> 16 0 30 3092 topology 3137 1904
-> 15 0 31 3092 topology 3137 1905
-> 16 0 31 3092 topology 3135 1905
-> 15 0 30 3092 topology 3202 1906
-> 16 0 30 3092 topology 3194 1906
-> 15 0 31 3092 topology 3194 1907
-> 16 0 31 3092 topology 3192 1907
-> 15 0 30 3092 topology 3202 1908
-> 16 0 30 3092 topology 3143 1908
-> 15 0 31 3092 topology 3143 1909
-> 16 0 31 3092 topology 3141 1909
-> 15 0 30 3092 topology 3202 1910
-> 16 0 30 3092 topology 3200 1910
-> 15 0 31 3092 topology 3200 1911
-> 16 0 31 3092 topology 3198 1911
-> 15 0 29 3092 topology 3093 1912
-> 16 0 29 3092 topology 3094 1912
-> 15 0 30 3092 topology 3094 1913
-> 16 0 30 3092 topology 3202 1913
-> 15 0 30 3092 topology 3202 1914
-> 16 0 30 3092 topology 3146 1914
-> 15 0 31 3092 topology 3146 1915
-> 16 0 31 3092 topology 3144 1915
-> 15 0 29 3092 topology 3150 1916
-> 16 0 29 3092 topology 3151 1916
-> 15 0 30 3092 topology 3151 1917
-> 16 0 30 3092 topology 3202 1917
-> 15 0 29 3092 topology 3099 1918
-> 16 0 29 3092 topology 3100 1918
-> 15 0 30 3092 topology 3100 1919
-> 16 0 30 3092 topology 3202 1919
-> 15 0 29 3092 topology 3156 1920
-> 16 0 29 3092 topology 3157 1920
-> 15 0 30 3092 topology 3157 1921
-> 16 0 30 3092 topology 3202 1921
-> 15 0 29 3092 topology 3105 1922
-> 16 0 29 3092 topology 3106 1922
-> 15 0 30 3092 topology 3106 1923
-> 16 0 30 3092 topology 3202 1923
-> 15 0 29 3092 topology 3162 1924
-> 16 0 29 3092 topology 3163 1924
-> 15 0 30 3092 topology 3163 1925
-> 16 0 30 3092 topology 3202 1925
-> 15 0 29 3092 topology 3111 1926
-> 16 0 29 3092 topology 3112 1926
-> 15 0 30 3092 topology 3112 1927
-> 16 0 30 3092 topology 3202 1927
-> 15 0 29 3092 topology 3168 1928
-> 16 0 29 3092 topology 3169 1928
-> 15 0 30 3092 topology 3169 1929
-> 16 0 30 3092 topology 3202 1929
+> 15 0 28 3092 topology 3190 1839
+> 16 0 28 3092 topology 3202 1839
+> 15 0 29 3092 topology 3198 1840
+> 16 0 29 3092 topology 3199 1840
+> 15 0 28 3092 topology 3112 1841
+> 16 0 28 3092 topology 3202 1841
+> 15 0 28 3092 topology 3142 1842
+> 16 0 28 3092 topology 3202 1842
+> 15 0 28 3092 topology 3172 1843
+> 16 0 28 3092 topology 3202 1843
+> 15 0 28 3092 topology 3149 1844
+> 16 0 28 3092 topology 3202 1844
+> 15 0 28 3092 topology 3125 1845
+> 16 0 28 3092 topology 3202 1845
+> 15 0 28 3092 topology 3101 1846
+> 16 0 28 3092 topology 3202 1846
+> 15 0 28 3092 topology 3185 1847
+> 16 0 28 3092 topology 3202 1847
+> 15 0 28 3092 topology 3161 1848
+> 16 0 28 3092 topology 3202 1848
+> 15 0 28 3092 topology 3137 1849
+> 16 0 28 3092 topology 3202 1849
+> 15 0 28 3092 topology 3113 1850
+> 16 0 28 3092 topology 3202 1850
+> 15 0 28 3092 topology 3197 1851
+> 16 0 28 3092 topology 3202 1851
+> 15 0 28 3092 topology 3173 1852
+> 16 0 28 3092 topology 3202 1852
+> 15 0 28 3092 topology 3115 1853
+> 16 0 28 3092 topology 3202 1853
+> 15 0 28 3092 topology 3145 1854
+> 16 0 28 3092 topology 3202 1854
+> 15 0 28 3092 topology 3175 1855
+> 16 0 28 3092 topology 3202 1855
+> 15 0 30 3092 topology 3201 1856
+> 16 0 30 3092 topology 3202 1856
+> 15 0 28 3092 topology 3097 1857
+> 16 0 28 3092 topology 3202 1857
+> 15 0 28 3092 topology 3127 1858
+> 16 0 28 3092 topology 3202 1858
+> 15 0 28 3092 topology 3157 1859
+> 16 0 28 3092 topology 3202 1859
+> 15 0 28 3092 topology 3187 1860
+> 16 0 28 3092 topology 3202 1860
+> 15 0 28 3092 topology 3109 1861
+> 16 0 28 3092 topology 3202 1861
+> 15 0 28 3092 topology 3139 1862
+> 16 0 28 3092 topology 3202 1862
+> 15 0 29 3092 topology 3144 1863
+> 16 0 29 3092 topology 3146 1863
+> 15 0 28 3092 topology 3169 1864
+> 16 0 28 3092 topology 3202 1864
+> 15 0 29 3092 topology 3093 1865
+> 16 0 29 3092 topology 3095 1865
+> 15 0 29 3092 topology 3147 1866
+> 16 0 29 3092 topology 3149 1866
+> 15 0 28 3092 topology 3199 1867
+> 16 0 28 3092 topology 3202 1867
+> 15 0 29 3092 topology 3096 1868
+> 16 0 29 3092 topology 3098 1868
+> 15 0 29 3092 topology 3150 1869
+> 16 0 29 3092 topology 3152 1869
+> 15 0 29 3092 topology 3099 1870
+> 16 0 29 3092 topology 3101 1870
+> 15 0 29 3092 topology 3153 1871
+> 16 0 29 3092 topology 3155 1871
+> 15 0 29 3092 topology 3102 1872
+> 16 0 29 3092 topology 3104 1872
+> 15 0 29 3092 topology 3156 1873
+> 16 0 29 3092 topology 3158 1873
+> 15 0 29 3092 topology 3105 1874
+> 16 0 29 3092 topology 3107 1874
+> 15 0 29 3092 topology 3159 1875
+> 16 0 29 3092 topology 3161 1875
+> 15 0 28 3092 topology 3116 1876
+> 16 0 28 3092 topology 3202 1876
+> 15 0 29 3092 topology 3108 1877
+> 16 0 29 3092 topology 3110 1877
+> 15 0 29 3092 topology 3162 1878
+> 16 0 29 3092 topology 3164 1878
+> 15 0 29 3092 topology 3117 1879
+> 16 0 29 3092 topology 3118 1879
+> 15 0 28 3092 topology 3176 1880
+> 16 0 28 3092 topology 3202 1880
+> 15 0 29 3092 topology 3111 1881
+> 16 0 29 3092 topology 3113 1881
+> 15 0 28 3092 topology 3152 1882
+> 16 0 28 3092 topology 3202 1882
+> 15 0 29 3092 topology 3165 1883
+> 16 0 29 3092 topology 3167 1883
+> 15 0 29 3092 topology 3093 1884
+> 16 0 29 3092 topology 3094 1884
+> 15 0 28 3092 topology 3128 1885
+> 16 0 28 3092 topology 3202 1885
+> 15 0 29 3092 topology 3147 1886
+> 16 0 29 3092 topology 3148 1886
+> 15 0 28 3092 topology 3104 1887
+> 16 0 28 3092 topology 3202 1887
+> 15 0 29 3092 topology 3168 1888
+> 16 0 29 3092 topology 3170 1888
+> 15 0 29 3092 topology 3123 1889
+> 16 0 29 3092 topology 3124 1889
+> 15 0 29 3092 topology 3177 1890
+> 16 0 29 3092 topology 3178 1890
+> 15 0 28 3092 topology 3188 1891
+> 16 0 28 3092 topology 3202 1891
+> 15 0 28 3092 topology 3164 1892
+> 16 0 28 3092 topology 3202 1892
+> 15 0 29 3092 topology 3171 1893
+> 16 0 29 3092 topology 3173 1893
+> 15 0 29 3092 topology 3099 1894
+> 16 0 29 3092 topology 3100 1894
+> 15 0 28 3092 topology 3140 1895
+> 16 0 28 3092 topology 3202 1895
+> 15 0 29 3092 topology 3153 1896
+> 16 0 29 3092 topology 3154 1896
+> 15 0 29 3092 topology 3129 1897
+> 16 0 29 3092 topology 3130 1897
+> 15 0 29 3092 topology 3183 1898
+> 16 0 29 3092 topology 3184 1898
+> 15 0 28 3092 topology 3200 1899
+> 16 0 28 3092 topology 3202 1899
+> 15 0 29 3092 topology 3105 1900
+> 16 0 29 3092 topology 3106 1900
+> 15 0 29 3092 topology 3159 1901
+> 16 0 29 3092 topology 3160 1901
+> 15 0 29 3092 topology 3135 1902
+> 16 0 29 3092 topology 3136 1902
+> 15 0 29 3092 topology 3189 1903
+> 16 0 29 3092 topology 3190 1903
+> 15 0 28 3092 topology 3094 1904
+> 16 0 28 3092 topology 3202 1904
+> 15 0 29 3092 topology 3111 1905
+> 16 0 29 3092 topology 3112 1905
+> 15 0 28 3092 topology 3124 1906
+> 16 0 28 3092 topology 3202 1906
+> 15 0 29 3092 topology 3165 1907
+> 16 0 29 3092 topology 3166 1907
+> 15 0 28 3092 topology 3154 1908
+> 16 0 28 3092 topology 3202 1908
+> 15 0 29 3092 topology 3141 1909
+> 16 0 29 3092 topology 3142 1909
+> 15 0 28 3092 topology 3184 1910
+> 16 0 28 3092 topology 3202 1910
+> 15 0 29 3092 topology 3195 1911
+> 16 0 29 3092 topology 3196 1911
+> 15 0 28 3092 topology 3106 1912
+> 16 0 28 3092 topology 3202 1912
+> 15 0 28 3092 topology 3136 1913
+> 16 0 28 3092 topology 3202 1913
+> 15 0 29 3092 topology 3171 1914
+> 16 0 29 3092 topology 3172 1914
+> 15 0 28 3092 topology 3166 1915
+> 16 0 28 3092 topology 3202 1915
+> 15 0 28 3092 topology 3196 1916
+> 16 0 28 3092 topology 3202 1916
+> 15 0 28 3092 topology 3119 1917
+> 16 0 28 3092 topology 3202 1917
+> 15 0 28 3092 topology 3095 1918
+> 16 0 28 3092 topology 3202 1918
+> 15 0 28 3092 topology 3179 1919
+> 16 0 28 3092 topology 3202 1919
+> 15 0 28 3092 topology 3155 1920
+> 16 0 28 3092 topology 3202 1920
+> 15 0 28 3092 topology 3131 1921
+> 16 0 28 3092 topology 3202 1921
+> 15 0 28 3092 topology 3107 1922
+> 16 0 28 3092 topology 3202 1922
+> 15 0 28 3092 topology 3191 1923
+> 16 0 28 3092 topology 3202 1923
+> 15 0 28 3092 topology 3167 1924
+> 16 0 28 3092 topology 3202 1924
+> 15 0 28 3092 topology 3143 1925
+> 16 0 28 3092 topology 3202 1925
+> 15 0 28 3092 topology 3121 1926
+> 16 0 28 3092 topology 3202 1926
+> 15 0 28 3092 topology 3151 1927
+> 16 0 28 3092 topology 3202 1927
+> 15 0 28 3092 topology 3181 1928
+> 16 0 28 3092 topology 3202 1928
+> 15 0 28 3092 topology 3103 1929
+> 16 0 28 3092 topology 3202 1929
 > 15 0 29 3092 topology 3114 1930
-> 16 0 29 3092 topology 3115 1930
-> 15 0 30 3092 topology 3115 1931
-> 16 0 30 3092 topology 3202 1931
-> 15 0 29 3092 topology 3120 1932
-> 16 0 29 3092 topology 3121 1932
-> 15 0 30 3092 topology 3121 1933
-> 16 0 30 3092 topology 3202 1933
-> 15 0 29 3092 topology 3177 1934
-> 16 0 29 3092 topology 3178 1934
-> 15 0 30 3092 topology 3178 1935
-> 16 0 30 3092 topology 3202 1935
-> 15 0 29 3092 topology 3126 1936
-> 16 0 29 3092 topology 3127 1936
-> 15 0 30 3092 topology 3127 1937
-> 16 0 30 3092 topology 3202 1937
-> 15 0 29 3092 topology 3183 1938
-> 16 0 29 3092 topology 3184 1938
-> 15 0 30 3092 topology 3184 1939
-> 16 0 30 3092 topology 3202 1939
-> 15 0 29 3092 topology 3132 1940
-> 16 0 29 3092 topology 3133 1940
-> 15 0 30 3092 topology 3133 1941
-> 16 0 30 3092 topology 3202 1941
-> 15 0 29 3092 topology 3189 1942
-> 16 0 29 3092 topology 3190 1942
-> 15 0 30 3092 topology 3190 1943
-> 16 0 30 3092 topology 3202 1943
-> 15 0 29 3092 topology 3138 1944
-> 16 0 29 3092 topology 3139 1944
-> 15 0 30 3092 topology 3139 1945
-> 16 0 30 3092 topology 3202 1945
-> 15 0 29 3092 topology 3195 1946
-> 16 0 29 3092 topology 3196 1946
-> 15 0 30 3092 topology 3196 1947
-> 16 0 30 3092 topology 3202 1947
-> 15 0 29 3092 topology 3147 1948
-> 16 0 29 3092 topology 3148 1948
-> 15 0 30 3092 topology 3148 1949
-> 16 0 30 3092 topology 3202 1949
-> 15 0 29 3092 topology 3096 1950
-> 16 0 29 3092 topology 3097 1950
-> 15 0 30 3092 topology 3097 1951
-> 16 0 30 3092 topology 3202 1951
-> 15 0 29 3092 topology 3153 1952
-> 16 0 29 3092 topology 3154 1952
-> 15 0 30 3092 topology 3154 1953
-> 16 0 30 3092 topology 3202 1953
-> 15 0 29 3092 topology 3102 1954
-> 16 0 29 3092 topology 3103 1954
-> 15 0 30 3092 topology 3103 1955
-> 16 0 30 3092 topology 3202 1955
-> 15 0 29 3092 topology 3159 1956
-> 16 0 29 3092 topology 3160 1956
-> 15 0 30 3092 topology 3160 1957
-> 16 0 30 3092 topology 3202 1957
-> 15 0 29 3092 topology 3108 1958
-> 16 0 29 3092 topology 3109 1958
-> 15 0 30 3092 topology 3109 1959
-> 16 0 30 3092 topology 3202 1959
-> 15 0 29 3092 topology 3165 1960
-> 16 0 29 3092 topology 3166 1960
-> 15 0 30 3092 topology 3166 1961
-> 16 0 30 3092 topology 3202 1961
-> 15 0 29 3092 topology 3171 1962
-> 16 0 29 3092 topology 3172 1962
-> 15 0 30 3092 topology 3172 1963
-> 16 0 30 3092 topology 3202 1963
-> 15 0 29 3092 topology 3117 1964
-> 16 0 29 3092 topology 3118 1964
-> 15 0 30 3092 topology 3118 1965
-> 16 0 30 3092 topology 3202 1965
-> 15 0 29 3092 topology 3174 1966
-> 16 0 29 3092 topology 3175 1966
-> 15 0 30 3092 topology 3175 1967
-> 16 0 30 3092 topology 3202 1967
-> 15 0 29 3092 topology 3123 1968
-> 16 0 29 3092 topology 3124 1968
-> 15 0 30 3092 topology 3124 1969
-> 16 0 30 3092 topology 3202 1969
-> 15 0 29 3092 topology 3180 1970
-> 16 0 29 3092 topology 3181 1970
-> 15 0 30 3092 topology 3181 1971
-> 16 0 30 3092 topology 3202 1971
-> 15 0 29 3092 topology 3129 1972
-> 16 0 29 3092 topology 3130 1972
-> 15 0 30 3092 topology 3130 1973
-> 16 0 30 3092 topology 3202 1973
-> 15 0 29 3092 topology 3186 1974
-> 16 0 29 3092 topology 3187 1974
-> 15 0 30 3092 topology 3187 1975
-> 16 0 30 3092 topology 3202 1975
-> 15 0 29 3092 topology 3135 1976
-> 16 0 29 3092 topology 3136 1976
-> 15 0 30 3092 topology 3136 1977
-> 16 0 30 3092 topology 3202 1977
-> 15 0 29 3092 topology 3192 1978
-> 16 0 29 3092 topology 3193 1978
-> 15 0 30 3092 topology 3193 1979
-> 16 0 30 3092 topology 3202 1979
-> 15 0 29 3092 topology 3141 1980
-> 16 0 29 3092 topology 3142 1980
-> 15 0 30 3092 topology 3142 1981
-> 16 0 30 3092 topology 3202 1981
-> 15 0 29 3092 topology 3198 1982
-> 16 0 29 3092 topology 3199 1982
-> 15 0 30 3092 topology 3199 1983
-> 16 0 30 3092 topology 3202 1983
-> 15 0 29 3272 topology 3273 1984
-> 16 0 29 3272 topology 3274 1984
-> 15 0 30 3272 topology 3274 1985
-> 16 0 30 3272 topology 3292 1985
-> 15 0 30 3272 topology 3292 1986
-> 16 0 30 3272 topology 3281 1986
-> 15 0 31 3272 topology 3281 1987
-> 16 0 31 3272 topology 3279 1987
-> 15 0 30 3272 topology 3292 1988
-> 16 0 30 3272 topology 3287 1988
-> 15 0 31 3272 topology 3287 1989
-> 16 0 31 3272 topology 3285 1989
-> 15 0 30 3272 topology 3292 1990
-> 16 0 30 3272 topology 3278 1990
-> 15 0 31 3272 topology 3278 1991
-> 16 0 31 3272 topology 3276 1991
-> 15 0 30 3272 topology 3292 1992
-> 16 0 30 3272 topology 3284 1992
-> 15 0 31 3272 topology 3284 1993
-> 16 0 31 3272 topology 3282 1993
-> 15 0 30 3272 topology 3292 1994
-> 16 0 30 3272 topology 3290 1994
-> 15 0 31 3272 topology 3290 1995
-> 16 0 31 3272 topology 3288 1995
-> 15 0 32 3272 topology 3292 1996
-> 16 0 32 3272 topology 3291 1996
-> 15 0 29 3272 topology 3279 1997
-> 16 0 29 3272 topology 3280 1997
-> 15 0 30 3272 topology 3280 1998
-> 16 0 30 3272 topology 3292 1998
-> 15 0 30 3272 topology 3292 1999
-> 16 0 30 3272 topology 3275 1999
-> 15 0 31 3272 topology 3275 2000
-> 16 0 31 3272 topology 3273 2000
+> 16 0 29 3092 topology 3116 1930
+> 15 0 28 3092 topology 3133 1931
+> 16 0 28 3092 topology 3202 1931
+> 15 0 28 3092 topology 3163 1932
+> 16 0 28 3092 topology 3202 1932
+> 15 0 29 3092 topology 3117 1933
+> 16 0 29 3092 topology 3119 1933
+> 15 0 28 3092 topology 3193 1934
+> 16 0 28 3092 topology 3202 1934
+> 15 0 29 3092 topology 3120 1935
+> 16 0 29 3092 topology 3122 1935
+> 15 0 29 3092 topology 3174 1936
+> 16 0 29 3092 topology 3176 1936
+> 15 0 29 3092 topology 3123 1937
+> 16 0 29 3092 topology 3125 1937
+> 15 0 29 3092 topology 3177 1938
+> 16 0 29 3092 topology 3179 1938
+> 15 0 29 3092 topology 3126 1939
+> 16 0 29 3092 topology 3128 1939
+> 15 0 29 3092 topology 3180 1940
+> 16 0 29 3092 topology 3182 1940
+> 15 0 29 3092 topology 3129 1941
+> 16 0 29 3092 topology 3131 1941
+> 15 0 29 3092 topology 3183 1942
+> 16 0 29 3092 topology 3185 1942
+> 15 0 29 3092 topology 3132 1943
+> 16 0 29 3092 topology 3134 1943
+> 15 0 29 3092 topology 3186 1944
+> 16 0 29 3092 topology 3188 1944
+> 15 0 29 3092 topology 3114 1945
+> 16 0 29 3092 topology 3115 1945
+> 15 0 29 3092 topology 3135 1946
+> 16 0 29 3092 topology 3137 1946
+> 15 0 28 3092 topology 3146 1947
+> 16 0 28 3092 topology 3202 1947
+> 15 0 29 3092 topology 3189 1948
+> 16 0 29 3092 topology 3191 1948
+> 15 0 28 3092 topology 3122 1949
+> 16 0 28 3092 topology 3202 1949
+> 15 0 29 3092 topology 3144 1950
+> 16 0 29 3092 topology 3145 1950
+> 15 0 28 3092 topology 3098 1951
+> 16 0 28 3092 topology 3202 1951
+> 15 0 29 3092 topology 3138 1952
+> 16 0 29 3092 topology 3140 1952
+> 15 0 29 3092 topology 3192 1953
+> 16 0 29 3092 topology 3194 1953
+> 15 0 29 3092 topology 3120 1954
+> 16 0 29 3092 topology 3121 1954
+> 15 0 29 3092 topology 3174 1955
+> 16 0 29 3092 topology 3175 1955
+> 15 0 28 3092 topology 3182 1956
+> 16 0 28 3092 topology 3202 1956
+> 15 0 29 3092 topology 3141 1957
+> 16 0 29 3092 topology 3143 1957
+> 15 0 28 3092 topology 3158 1958
+> 16 0 28 3092 topology 3202 1958
+> 15 0 29 3092 topology 3195 1959
+> 16 0 29 3092 topology 3197 1959
+> 15 0 29 3092 topology 3096 1960
+> 16 0 29 3092 topology 3097 1960
+> 15 0 28 3092 topology 3134 1961
+> 16 0 28 3092 topology 3202 1961
+> 15 0 29 3092 topology 3150 1962
+> 16 0 29 3092 topology 3151 1962
+> 15 0 28 3092 topology 3110 1963
+> 16 0 28 3092 topology 3202 1963
+> 15 0 29 3092 topology 3198 1964
+> 16 0 29 3092 topology 3200 1964
+> 15 0 29 3092 topology 3126 1965
+> 16 0 29 3092 topology 3127 1965
+> 15 0 29 3092 topology 3180 1966
+> 16 0 29 3092 topology 3181 1966
+> 15 0 28 3092 topology 3194 1967
+> 16 0 28 3092 topology 3202 1967
+> 15 0 28 3092 topology 3170 1968
+> 16 0 28 3092 topology 3202 1968
+> 15 0 29 3092 topology 3102 1969
+> 16 0 29 3092 topology 3103 1969
+> 15 0 29 3092 topology 3156 1970
+> 16 0 29 3092 topology 3157 1970
+> 15 0 29 3092 topology 3132 1971
+> 16 0 29 3092 topology 3133 1971
+> 15 0 29 3092 topology 3186 1972
+> 16 0 29 3092 topology 3187 1972
+> 15 0 29 3092 topology 3108 1973
+> 16 0 29 3092 topology 3109 1973
+> 15 0 28 3092 topology 3118 1974
+> 16 0 28 3092 topology 3202 1974
+> 15 0 29 3092 topology 3162 1975
+> 16 0 29 3092 topology 3163 1975
+> 15 0 28 3092 topology 3148 1976
+> 16 0 28 3092 topology 3202 1976
+> 15 0 29 3092 topology 3138 1977
+> 16 0 29 3092 topology 3139 1977
+> 15 0 28 3092 topology 3178 1978
+> 16 0 28 3092 topology 3202 1978
+> 15 0 29 3092 topology 3192 1979
+> 16 0 29 3092 topology 3193 1979
+> 15 0 28 3092 topology 3100 1980
+> 16 0 28 3092 topology 3202 1980
+> 15 0 28 3092 topology 3130 1981
+> 16 0 28 3092 topology 3202 1981
+> 15 0 29 3092 topology 3168 1982
+> 16 0 29 3092 topology 3169 1982
+> 15 0 28 3092 topology 3160 1983
+> 16 0 28 3092 topology 3202 1983
+> 15 0 28 3272 topology 3281 1984
+> 16 0 28 3272 topology 3292 1984
+> 15 0 28 3272 topology 3277 1985
+> 16 0 28 3272 topology 3292 1985
+> 15 0 28 3272 topology 3289 1986
+> 16 0 28 3272 topology 3292 1986
+> 15 0 29 3272 topology 3273 1987
+> 16 0 29 3272 topology 3274 1987
+> 15 0 29 3272 topology 3279 1988
+> 16 0 29 3272 topology 3280 1988
+> 15 0 29 3272 topology 3285 1989
+> 16 0 29 3272 topology 3286 1989
+> 15 0 28 3272 topology 3284 1990
+> 16 0 28 3272 topology 3292 1990
+> 15 0 28 3272 topology 3274 1991
+> 16 0 28 3272 topology 3292 1991
+> 15 0 30 3272 topology 3291 1992
+> 16 0 30 3272 topology 3292 1992
+> 15 0 28 3272 topology 3286 1993
+> 16 0 28 3272 topology 3292 1993
+> 15 0 28 3272 topology 3275 1994
+> 16 0 28 3272 topology 3292 1994
+> 15 0 28 3272 topology 3287 1995
+> 16 0 28 3272 topology 3292 1995
+> 15 0 29 3272 topology 3273 1996
+> 16 0 29 3272 topology 3275 1996
+> 15 0 29 3272 topology 3276 1997
+> 16 0 29 3272 topology 3278 1997
+> 15 0 29 3272 topology 3279 1998
+> 16 0 29 3272 topology 3281 1998
+> 15 0 28 3272 topology 3283 1999
+> 16 0 28 3272 topology 3292 1999
+> 15 0 29 3272 topology 3282 2000
+> 16 0 29 3272 topology 3284 2000
 > 15 0 29 3272 topology 3285 2001
-> 16 0 29 3272 topology 3286 2001
-> 15 0 30 3272 topology 3286 2002
-> 16 0 30 3272 topology 3292 2002
+> 16 0 29 3272 topology 3287 2001
+> 15 0 29 3272 topology 3288 2002
+> 16 0 29 3272 topology 3290 2002
 > 15 0 29 3272 topology 3276 2003
 > 16 0 29 3272 topology 3277 2003
-> 15 0 30 3272 topology 3277 2004
-> 16 0 30 3272 topology 3292 2004
-> 15 0 29 3272 topology 3282 2005
-> 16 0 29 3272 topology 3283 2005
-> 15 0 30 3272 topology 3283 2006
-> 16 0 30 3272 topology 3292 2006
-> 15 0 29 3272 topology 3288 2007
-> 16 0 29 3272 topology 3289 2007
-> 15 0 30 3272 topology 3289 2008
-> 16 0 30 3272 topology 3292 2008
-> 15 0 29 2351 topology 2352 2009
-> 16 0 29 2351 topology 2353 2009
-> 15 0 30 2351 topology 2353 2010
-> 16 0 30 2351 topology 2461 2010
-> 15 0 30 2351 topology 2461 2011
-> 16 0 30 2351 topology 2360 2011
-> 15 0 31 2351 topology 2360 2012
-> 16 0 31 2351 topology 2358 2012
-> 15 0 30 2351 topology 2461 2013
-> 16 0 30 2351 topology 2366 2013
-> 15 0 31 2351 topology 2366 2014
-> 16 0 31 2351 topology 2364 2014
-> 15 0 30 2351 topology 2461 2015
-> 16 0 30 2351 topology 2372 2015
-> 15 0 31 2351 topology 2372 2016
-> 16 0 31 2351 topology 2370 2016
-> 15 0 30 2351 topology 2461 2017
-> 16 0 30 2351 topology 2378 2017
-> 15 0 31 2351 topology 2378 2018
-> 16 0 31 2351 topology 2376 2018
-> 15 0 30 2351 topology 2461 2019
-> 16 0 30 2351 topology 2414 2019
-> 15 0 31 2351 topology 2414 2020
-> 16 0 31 2351 topology 2412 2020
-> 15 0 30 2351 topology 2461 2021
-> 16 0 30 2351 topology 2420 2021
-> 15 0 31 2351 topology 2420 2022
-> 16 0 31 2351 topology 2418 2022
-> 15 0 30 2351 topology 2461 2023
-> 16 0 30 2351 topology 2426 2023
-> 15 0 31 2351 topology 2426 2024
-> 16 0 31 2351 topology 2424 2024
-> 15 0 30 2351 topology 2461 2025
-> 16 0 30 2351 topology 2432 2025
-> 15 0 31 2351 topology 2432 2026
-> 16 0 31 2351 topology 2430 2026
-> 15 0 30 2351 topology 2461 2027
-> 16 0 30 2351 topology 2438 2027
-> 15 0 31 2351 topology 2438 2028
-> 16 0 31 2351 topology 2436 2028
-> 15 0 32 2351 topology 2461 2029
-> 16 0 32 2351 topology 2460 2029
-> 15 0 30 2351 topology 2461 2030
-> 16 0 30 2351 topology 2384 2030
-> 15 0 31 2351 topology 2384 2031
-> 16 0 31 2351 topology 2382 2031
-> 15 0 30 2351 topology 2461 2032
-> 16 0 30 2351 topology 2441 2032
-> 15 0 31 2351 topology 2441 2033
-> 16 0 31 2351 topology 2439 2033
-> 15 0 30 2351 topology 2461 2034
-> 16 0 30 2351 topology 2390 2034
-> 15 0 31 2351 topology 2390 2035
-> 16 0 31 2351 topology 2388 2035
-> 15 0 30 2351 topology 2461 2036
-> 16 0 30 2351 topology 2447 2036
-> 15 0 31 2351 topology 2447 2037
-> 16 0 31 2351 topology 2445 2037
-> 15 0 30 2351 topology 2461 2038
-> 16 0 30 2351 topology 2396 2038
-> 15 0 31 2351 topology 2396 2039
-> 16 0 31 2351 topology 2394 2039
-> 15 0 30 2351 topology 2461 2040
-> 16 0 30 2351 topology 2453 2040
-> 15 0 31 2351 topology 2453 2041
-> 16 0 31 2351 topology 2451 2041
-> 15 0 30 2351 topology 2461 2042
-> 16 0 30 2351 topology 2402 2042
-> 15 0 31 2351 topology 2402 2043
-> 16 0 31 2351 topology 2400 2043
-> 15 0 30 2351 topology 2461 2044
-> 16 0 30 2351 topology 2459 2044
-> 15 0 31 2351 topology 2459 2045
-> 16 0 31 2351 topology 2457 2045
-> 15 0 30 2351 topology 2461 2046
-> 16 0 30 2351 topology 2408 2046
-> 15 0 31 2351 topology 2408 2047
-> 16 0 31 2351 topology 2406 2047
-> 15 0 30 2351 topology 2461 2048
-> 16 0 30 2351 topology 2357 2048
-> 15 0 31 2351 topology 2357 2049
-> 16 0 31 2351 topology 2355 2049
-> 15 0 30 2351 topology 2461 2050
-> 16 0 30 2351 topology 2363 2050
-> 15 0 31 2351 topology 2363 2051
-> 16 0 31 2351 topology 2361 2051
-> 15 0 30 2351 topology 2461 2052
-> 16 0 30 2351 topology 2369 2052
-> 15 0 31 2351 topology 2369 2053
-> 16 0 31 2351 topology 2367 2053
-> 15 0 30 2351 topology 2461 2054
-> 16 0 30 2351 topology 2375 2054
-> 15 0 31 2351 topology 2375 2055
-> 16 0 31 2351 topology 2373 2055
-> 15 0 30 2351 topology 2461 2056
-> 16 0 30 2351 topology 2411 2056
-> 15 0 31 2351 topology 2411 2057
-> 16 0 31 2351 topology 2409 2057
-> 15 0 30 2351 topology 2461 2058
-> 16 0 30 2351 topology 2417 2058
-> 15 0 31 2351 topology 2417 2059
-> 16 0 31 2351 topology 2415 2059
-> 15 0 30 2351 topology 2461 2060
-> 16 0 30 2351 topology 2423 2060
-> 15 0 31 2351 topology 2423 2061
-> 16 0 31 2351 topology 2421 2061
-> 15 0 30 2351 topology 2461 2062
-> 16 0 30 2351 topology 2429 2062
-> 15 0 31 2351 topology 2429 2063
-> 16 0 31 2351 topology 2427 2063
-> 15 0 30 2351 topology 2461 2064
-> 16 0 30 2351 topology 2435 2064
-> 15 0 31 2351 topology 2435 2065
-> 16 0 31 2351 topology 2433 2065
-> 15 0 30 2351 topology 2461 2066
-> 16 0 30 2351 topology 2381 2066
-> 15 0 31 2351 topology 2381 2067
-> 16 0 31 2351 topology 2379 2067
-> 15 0 30 2351 topology 2461 2068
-> 16 0 30 2351 topology 2387 2068
-> 15 0 31 2351 topology 2387 2069
-> 16 0 31 2351 topology 2385 2069
-> 15 0 30 2351 topology 2461 2070
-> 16 0 30 2351 topology 2444 2070
-> 15 0 31 2351 topology 2444 2071
-> 16 0 31 2351 topology 2442 2071
-> 15 0 30 2351 topology 2461 2072
-> 16 0 30 2351 topology 2393 2072
-> 15 0 31 2351 topology 2393 2073
-> 16 0 31 2351 topology 2391 2073
-> 15 0 30 2351 topology 2461 2074
-> 16 0 30 2351 topology 2450 2074
-> 15 0 31 2351 topology 2450 2075
-> 16 0 31 2351 topology 2448 2075
-> 15 0 30 2351 topology 2461 2076
-> 16 0 30 2351 topology 2399 2076
-> 15 0 31 2351 topology 2399 2077
-> 16 0 31 2351 topology 2397 2077
-> 15 0 30 2351 topology 2461 2078
-> 16 0 30 2351 topology 2456 2078
-> 15 0 31 2351 topology 2456 2079
-> 16 0 31 2351 topology 2454 2079
-> 15 0 30 2351 topology 2461 2080
-> 16 0 30 2351 topology 2405 2080
-> 15 0 31 2351 topology 2405 2081
-> 16 0 31 2351 topology 2403 2081
-> 15 0 29 2351 topology 2358 2082
-> 16 0 29 2351 topology 2359 2082
-> 15 0 30 2351 topology 2359 2083
-> 16 0 30 2351 topology 2461 2083
-> 15 0 30 2351 topology 2461 2084
-> 16 0 30 2351 topology 2354 2084
-> 15 0 31 2351 topology 2354 2085
-> 16 0 31 2351 topology 2352 2085
-> 15 0 29 2351 topology 2364 2086
-> 16 0 29 2351 topology 2365 2086
-> 15 0 30 2351 topology 2365 2087
-> 16 0 30 2351 topology 2461 2087
-> 15 0 29 2351 topology 2370 2088
-> 16 0 29 2351 topology 2371 2088
-> 15 0 30 2351 topology 2371 2089
-> 16 0 30 2351 topology 2461 2089
-> 15 0 29 2351 topology 2376 2090
-> 16 0 29 2351 topology 2377 2090
-> 15 0 30 2351 topology 2377 2091
-> 16 0 30 2351 topology 2461 2091
-> 15 0 29 2351 topology 2412 2092
-> 16 0 29 2351 topology 2413 2092
-> 15 0 30 2351 topology 2413 2093
-> 16 0 30 2351 topology 2461 2093
-> 15 0 29 2351 topology 2418 2094
-> 16 0 29 2351 topology 2419 2094
-> 15 0 30 2351 topology 2419 2095
-> 16 0 30 2351 topology 2461 2095
-> 15 0 29 2351 topology 2424 2096
-> 16 0 29 2351 topology 2425 2096
-> 15 0 30 2351 topology 2425 2097
-> 16 0 30 2351 topology 2461 2097
-> 15 0 29 2351 topology 2430 2098
-> 16 0 29 2351 topology 2431 2098
-> 15 0 30 2351 topology 2431 2099
-> 16 0 30 2351 topology 2461 2099
-> 15 0 29 2351 topology 2436 2100
-> 16 0 29 2351 topology 2437 2100
-> 15 0 30 2351 topology 2437 2101
-> 16 0 30 2351 topology 2461 2101
+> 15 0 29 3272 topology 3282 2004
+> 16 0 29 3272 topology 3283 2004
+> 15 0 28 3272 topology 3278 2005
+> 16 0 28 3272 topology 3292 2005
+> 15 0 29 3272 topology 3288 2006
+> 16 0 29 3272 topology 3289 2006
+> 15 0 28 3272 topology 3290 2007
+> 16 0 28 3272 topology 3292 2007
+> 15 0 28 3272 topology 3280 2008
+> 16 0 28 3272 topology 3292 2008
+> 15 0 29 2351 topology 2367 2009
+> 16 0 29 2351 topology 2368 2009
+> 15 0 29 2351 topology 2370 2010
+> 16 0 29 2351 topology 2371 2010
+> 15 0 29 2351 topology 2397 2011
+> 16 0 29 2351 topology 2398 2011
+> 15 0 29 2351 topology 2451 2012
+> 16 0 29 2351 topology 2452 2012
+> 15 0 29 2351 topology 2373 2013
+> 16 0 29 2351 topology 2374 2013
+> 15 0 28 2351 topology 2362 2014
+> 16 0 28 2351 topology 2461 2014
+> 15 0 29 2351 topology 2376 2015
+> 16 0 29 2351 topology 2377 2015
+> 15 0 29 2351 topology 2430 2016
+> 16 0 29 2351 topology 2431 2016
+> 15 0 28 2351 topology 2384 2017
+> 16 0 28 2351 topology 2461 2017
+> 15 0 28 2351 topology 2444 2018
+> 16 0 28 2351 topology 2461 2018
+> 15 0 28 2351 topology 2374 2019
+> 16 0 28 2351 topology 2461 2019
+> 15 0 28 2351 topology 2420 2020
+> 16 0 28 2351 topology 2461 2020
+> 15 0 28 2351 topology 2396 2021
+> 16 0 28 2351 topology 2461 2021
+> 15 0 29 2351 topology 2385 2022
+> 16 0 29 2351 topology 2387 2022
+> 15 0 29 2351 topology 2439 2023
+> 16 0 29 2351 topology 2441 2023
+> 15 0 28 2351 topology 2456 2024
+> 16 0 28 2351 topology 2461 2024
+> 15 0 28 2351 topology 2432 2025
+> 16 0 28 2351 topology 2461 2025
+> 15 0 28 2351 topology 2408 2026
+> 16 0 28 2351 topology 2461 2026
+> 15 0 29 2351 topology 2418 2027
+> 16 0 29 2351 topology 2420 2027
+> 15 0 28 2351 topology 2380 2028
+> 16 0 28 2351 topology 2461 2028
+> 15 0 28 2351 topology 2410 2029
+> 16 0 28 2351 topology 2461 2029
+> 15 0 29 2351 topology 2397 2030
+> 16 0 29 2351 topology 2399 2030
+> 15 0 28 2351 topology 2440 2031
+> 16 0 28 2351 topology 2461 2031
+> 15 0 29 2351 topology 2451 2032
+> 16 0 29 2351 topology 2453 2032
+> 15 0 28 2351 topology 2392 2033
+> 16 0 28 2351 topology 2461 2033
+> 15 0 29 2351 topology 2409 2034
+> 16 0 29 2351 topology 2410 2034
+> 15 0 28 2351 topology 2422 2035
+> 16 0 28 2351 topology 2461 2035
+> 15 0 28 2351 topology 2363 2036
+> 16 0 28 2351 topology 2461 2036
+> 15 0 29 2351 topology 2430 2037
+> 16 0 29 2351 topology 2432 2037
+> 15 0 28 2351 topology 2452 2038
+> 16 0 28 2351 topology 2461 2038
+> 15 0 28 2351 topology 2404 2039
+> 16 0 28 2351 topology 2461 2039
+> 15 0 29 2351 topology 2388 2040
+> 16 0 29 2351 topology 2389 2040
+> 15 0 28 2351 topology 2434 2041
+> 16 0 28 2351 topology 2461 2041
+> 15 0 29 2351 topology 2442 2042
+> 16 0 29 2351 topology 2443 2042
+> 15 0 28 2351 topology 2375 2043
+> 16 0 28 2351 topology 2461 2043
+> 15 0 29 2351 topology 2421 2044
+> 16 0 29 2351 topology 2422 2044
+> 15 0 29 2351 topology 2400 2045
+> 16 0 29 2351 topology 2401 2045
+> 15 0 29 2351 topology 2454 2046
+> 16 0 29 2351 topology 2455 2046
+> 15 0 28 2351 topology 2359 2047
+> 16 0 28 2351 topology 2461 2047
+> 15 0 28 2351 topology 2411 2048
+> 16 0 28 2351 topology 2461 2048
+> 15 0 28 2351 topology 2387 2049
+> 16 0 28 2351 topology 2461 2049
+> 15 0 29 2351 topology 2433 2050
+> 16 0 29 2351 topology 2434 2050
+> 15 0 29 2351 topology 2352 2051
+> 16 0 29 2351 topology 2354 2051
+> 15 0 28 2351 topology 2371 2052
+> 16 0 28 2351 topology 2461 2052
+> 15 0 28 2351 topology 2447 2053
+> 16 0 28 2351 topology 2461 2053
+> 15 0 29 2351 topology 2382 2054
+> 16 0 29 2351 topology 2384 2054
+> 15 0 28 2351 topology 2423 2055
+> 16 0 28 2351 topology 2461 2055
+> 15 0 28 2351 topology 2399 2056
+> 16 0 28 2351 topology 2461 2056
+> 15 0 30 2351 topology 2460 2057
+> 16 0 30 2351 topology 2461 2057
+> 15 0 29 2351 topology 2358 2058
+> 16 0 29 2351 topology 2360 2058
+> 15 0 28 2351 topology 2459 2059
+> 16 0 28 2351 topology 2461 2059
+> 15 0 29 2351 topology 2415 2060
+> 16 0 29 2351 topology 2417 2060
+> 15 0 28 2351 topology 2435 2061
+> 16 0 28 2351 topology 2461 2061
+> 15 0 29 2351 topology 2364 2062
+> 16 0 29 2351 topology 2366 2062
+> 15 0 29 2351 topology 2394 2063
+> 16 0 29 2351 topology 2396 2063
+> 15 0 29 2351 topology 2448 2064
+> 16 0 29 2351 topology 2450 2064
+> 15 0 29 2351 topology 2370 2065
+> 16 0 29 2351 topology 2372 2065
+> 15 0 28 2351 topology 2354 2066
+> 16 0 28 2351 topology 2461 2066
+> 15 0 29 2351 topology 2379 2067
+> 16 0 29 2351 topology 2380 2067
+> 15 0 28 2351 topology 2389 2068
+> 16 0 28 2351 topology 2461 2068
+> 15 0 28 2351 topology 2419 2069
+> 16 0 28 2351 topology 2461 2069
+> 15 0 29 2351 topology 2427 2070
+> 16 0 29 2351 topology 2429 2070
+> 15 0 28 2351 topology 2449 2071
+> 16 0 28 2351 topology 2461 2071
+> 15 0 29 2351 topology 2376 2072
+> 16 0 29 2351 topology 2378 2072
+> 15 0 28 2351 topology 2366 2073
+> 16 0 28 2351 topology 2461 2073
+> 15 0 28 2351 topology 2401 2074
+> 16 0 28 2351 topology 2461 2074
+> 15 0 29 2351 topology 2412 2075
+> 16 0 29 2351 topology 2413 2075
+> 15 0 29 2351 topology 2406 2076
+> 16 0 29 2351 topology 2408 2076
+> 15 0 28 2351 topology 2431 2077
+> 16 0 28 2351 topology 2461 2077
+> 15 0 28 2351 topology 2378 2078
+> 16 0 28 2351 topology 2461 2078
+> 15 0 29 2351 topology 2391 2079
+> 16 0 29 2351 topology 2392 2079
+> 15 0 29 2351 topology 2445 2080
+> 16 0 29 2351 topology 2446 2080
+> 15 0 29 2351 topology 2424 2081
+> 16 0 29 2351 topology 2425 2081
+> 15 0 28 2351 topology 2356 2082
+> 16 0 28 2351 topology 2461 2082
+> 15 0 29 2351 topology 2403 2083
+> 16 0 29 2351 topology 2404 2083
+> 15 0 29 2351 topology 2457 2084
+> 16 0 29 2351 topology 2458 2084
+> 15 0 28 2351 topology 2368 2085
+> 16 0 28 2351 topology 2461 2085
+> 15 0 28 2351 topology 2414 2086
+> 16 0 28 2351 topology 2461 2086
+> 15 0 29 2351 topology 2379 2087
+> 16 0 29 2351 topology 2381 2087
+> 15 0 28 2351 topology 2390 2088
+> 16 0 28 2351 topology 2461 2088
+> 15 0 29 2351 topology 2436 2089
+> 16 0 29 2351 topology 2437 2089
+> 15 0 28 2351 topology 2450 2090
+> 16 0 28 2351 topology 2461 2090
+> 15 0 28 2351 topology 2426 2091
+> 16 0 28 2351 topology 2461 2091
+> 15 0 28 2351 topology 2402 2092
+> 16 0 28 2351 topology 2461 2092
+> 15 0 29 2351 topology 2412 2093
+> 16 0 29 2351 topology 2414 2093
+> 15 0 28 2351 topology 2438 2094
+> 16 0 28 2351 topology 2461 2094
+> 15 0 29 2351 topology 2391 2095
+> 16 0 29 2351 topology 2393 2095
+> 15 0 29 2351 topology 2445 2096
+> 16 0 29 2351 topology 2447 2096
+> 15 0 28 2351 topology 2386 2097
+> 16 0 28 2351 topology 2461 2097
+> 15 0 29 2351 topology 2424 2098
+> 16 0 29 2351 topology 2426 2098
+> 15 0 28 2351 topology 2416 2099
+> 16 0 28 2351 topology 2461 2099
+> 15 0 28 2351 topology 2357 2100
+> 16 0 28 2351 topology 2461 2100
+> 15 0 28 2351 topology 2446 2101
+> 16 0 28 2351 topology 2461 2101
 > 15 0 29 2351 topology 2382 2102
 > 16 0 29 2351 topology 2383 2102
-> 15 0 30 2351 topology 2383 2103
-> 16 0 30 2351 topology 2461 2103
-> 15 0 29 2351 topology 2439 2104
-> 16 0 29 2351 topology 2440 2104
-> 15 0 30 2351 topology 2440 2105
-> 16 0 30 2351 topology 2461 2105
-> 15 0 29 2351 topology 2388 2106
-> 16 0 29 2351 topology 2389 2106
-> 15 0 30 2351 topology 2389 2107
-> 16 0 30 2351 topology 2461 2107
-> 15 0 29 2351 topology 2445 2108
-> 16 0 29 2351 topology 2446 2108
-> 15 0 30 2351 topology 2446 2109
-> 16 0 30 2351 topology 2461 2109
-> 15 0 29 2351 topology 2394 2110
-> 16 0 29 2351 topology 2395 2110
-> 15 0 30 2351 topology 2395 2111
-> 16 0 30 2351 topology 2461 2111
-> 15 0 29 2351 topology 2451 2112
-> 16 0 29 2351 topology 2452 2112
-> 15 0 30 2351 topology 2452 2113
-> 16 0 30 2351 topology 2461 2113
-> 15 0 29 2351 topology 2400 2114
-> 16 0 29 2351 topology 2401 2114
-> 15 0 30 2351 topology 2401 2115
-> 16 0 30 2351 topology 2461 2115
-> 15 0 29 2351 topology 2457 2116
-> 16 0 29 2351 topology 2458 2116
-> 15 0 30 2351 topology 2458 2117
-> 16 0 30 2351 topology 2461 2117
-> 15 0 29 2351 topology 2406 2118
-> 16 0 29 2351 topology 2407 2118
-> 15 0 30 2351 topology 2407 2119
-> 16 0 30 2351 topology 2461 2119
-> 15 0 29 2351 topology 2355 2120
-> 16 0 29 2351 topology 2356 2120
-> 15 0 30 2351 topology 2356 2121
-> 16 0 30 2351 topology 2461 2121
-> 15 0 29 2351 topology 2361 2122
-> 16 0 29 2351 topology 2362 2122
-> 15 0 30 2351 topology 2362 2123
-> 16 0 30 2351 topology 2461 2123
-> 15 0 29 2351 topology 2367 2124
-> 16 0 29 2351 topology 2368 2124
-> 15 0 30 2351 topology 2368 2125
-> 16 0 30 2351 topology 2461 2125
-> 15 0 29 2351 topology 2373 2126
-> 16 0 29 2351 topology 2374 2126
-> 15 0 30 2351 topology 2374 2127
-> 16 0 30 2351 topology 2461 2127
-> 15 0 29 2351 topology 2409 2128
-> 16 0 29 2351 topology 2410 2128
-> 15 0 30 2351 topology 2410 2129
-> 16 0 30 2351 topology 2461 2129
-> 15 0 29 2351 topology 2415 2130
-> 16 0 29 2351 topology 2416 2130
-> 15 0 30 2351 topology 2416 2131
-> 16 0 30 2351 topology 2461 2131
-> 15 0 29 2351 topology 2421 2132
-> 16 0 29 2351 topology 2422 2132
-> 15 0 30 2351 topology 2422 2133
-> 16 0 30 2351 topology 2461 2133
-> 15 0 29 2351 topology 2427 2134
-> 16 0 29 2351 topology 2428 2134
-> 15 0 30 2351 topology 2428 2135
-> 16 0 30 2351 topology 2461 2135
-> 15 0 29 2351 topology 2433 2136
-> 16 0 29 2351 topology 2434 2136
-> 15 0 30 2351 topology 2434 2137
-> 16 0 30 2351 topology 2461 2137
-> 15 0 29 2351 topology 2379 2138
-> 16 0 29 2351 topology 2380 2138
-> 15 0 30 2351 topology 2380 2139
-> 16 0 30 2351 topology 2461 2139
-> 15 0 29 2351 topology 2385 2140
-> 16 0 29 2351 topology 2386 2140
-> 15 0 30 2351 topology 2386 2141
-> 16 0 30 2351 topology 2461 2141
-> 15 0 29 2351 topology 2442 2142
-> 16 0 29 2351 topology 2443 2142
-> 15 0 30 2351 topology 2443 2143
-> 16 0 30 2351 topology 2461 2143
-> 15 0 29 2351 topology 2391 2144
-> 16 0 29 2351 topology 2392 2144
-> 15 0 30 2351 topology 2392 2145
-> 16 0 30 2351 topology 2461 2145
-> 15 0 29 2351 topology 2448 2146
-> 16 0 29 2351 topology 2449 2146
-> 15 0 30 2351 topology 2449 2147
-> 16 0 30 2351 topology 2461 2147
-> 15 0 29 2351 topology 2397 2148
-> 16 0 29 2351 topology 2398 2148
-> 15 0 30 2351 topology 2398 2149
-> 16 0 30 2351 topology 2461 2149
-> 15 0 29 2351 topology 2454 2150
-> 16 0 29 2351 topology 2455 2150
-> 15 0 30 2351 topology 2455 2151
-> 16 0 30 2351 topology 2461 2151
-> 15 0 29 2351 topology 2403 2152
-> 16 0 29 2351 topology 2404 2152
-> 15 0 30 2351 topology 2404 2153
-> 16 0 30 2351 topology 2461 2153
-> 15 0 29 2573 topology 2592 2154
-> 16 0 29 2573 topology 2593 2154
-> 15 0 30 2573 topology 2593 2155
-> 16 0 30 2573 topology 2683 2155
-> 15 0 30 2573 topology 2683 2156
-> 16 0 30 2573 topology 2651 2156
-> 15 0 31 2573 topology 2651 2157
-> 16 0 31 2573 topology 2649 2157
-> 15 0 30 2573 topology 2683 2158
-> 16 0 30 2573 topology 2597 2158
-> 15 0 31 2573 topology 2597 2159
-> 16 0 31 2573 topology 2595 2159
-> 15 0 30 2573 topology 2683 2160
-> 16 0 30 2573 topology 2603 2160
-> 15 0 31 2573 topology 2603 2161
-> 16 0 31 2573 topology 2601 2161
-> 15 0 30 2573 topology 2683 2162
-> 16 0 30 2573 topology 2609 2162
-> 15 0 31 2573 topology 2609 2163
-> 16 0 31 2573 topology 2607 2163
-> 15 0 30 2573 topology 2683 2164
-> 16 0 30 2573 topology 2615 2164
-> 15 0 31 2573 topology 2615 2165
-> 16 0 31 2573 topology 2613 2165
-> 15 0 30 2573 topology 2683 2166
-> 16 0 30 2573 topology 2621 2166
-> 15 0 31 2573 topology 2621 2167
-> 16 0 31 2573 topology 2619 2167
-> 15 0 30 2573 topology 2683 2168
-> 16 0 30 2573 topology 2660 2168
-> 15 0 31 2573 topology 2660 2169
-> 16 0 31 2573 topology 2658 2169
-> 15 0 30 2573 topology 2683 2170
-> 16 0 30 2573 topology 2666 2170
-> 15 0 31 2573 topology 2666 2171
-> 16 0 31 2573 topology 2664 2171
-> 15 0 30 2573 topology 2683 2172
-> 16 0 30 2573 topology 2672 2172
-> 15 0 31 2573 topology 2672 2173
-> 16 0 31 2573 topology 2670 2173
-> 15 0 30 2573 topology 2683 2174
-> 16 0 30 2573 topology 2678 2174
-> 15 0 31 2573 topology 2678 2175
-> 16 0 31 2573 topology 2676 2175
-> 15 0 30 2573 topology 2683 2176
-> 16 0 30 2573 topology 2630 2176
-> 15 0 31 2573 topology 2630 2177
-> 16 0 31 2573 topology 2628 2177
-> 15 0 30 2573 topology 2683 2178
-> 16 0 30 2573 topology 2579 2178
-> 15 0 31 2573 topology 2579 2179
-> 16 0 31 2573 topology 2577 2179
-> 15 0 30 2573 topology 2683 2180
-> 16 0 30 2573 topology 2636 2180
-> 15 0 31 2573 topology 2636 2181
-> 16 0 31 2573 topology 2634 2181
-> 15 0 30 2573 topology 2683 2182
-> 16 0 30 2573 topology 2585 2182
-> 15 0 31 2573 topology 2585 2183
-> 16 0 31 2573 topology 2583 2183
-> 15 0 30 2573 topology 2683 2184
-> 16 0 30 2573 topology 2642 2184
-> 15 0 31 2573 topology 2642 2185
-> 16 0 31 2573 topology 2640 2185
-> 15 0 30 2573 topology 2683 2186
-> 16 0 30 2573 topology 2591 2186
-> 15 0 31 2573 topology 2591 2187
-> 16 0 31 2573 topology 2589 2187
-> 15 0 30 2573 topology 2683 2188
-> 16 0 30 2573 topology 2648 2188
-> 15 0 31 2573 topology 2648 2189
-> 16 0 31 2573 topology 2646 2189
-> 15 0 30 2573 topology 2683 2190
-> 16 0 30 2573 topology 2654 2190
-> 15 0 31 2573 topology 2654 2191
-> 16 0 31 2573 topology 2652 2191
-> 15 0 30 2573 topology 2683 2192
-> 16 0 30 2573 topology 2600 2192
-> 15 0 31 2573 topology 2600 2193
-> 16 0 31 2573 topology 2598 2193
-> 15 0 30 2573 topology 2683 2194
-> 16 0 30 2573 topology 2606 2194
-> 15 0 31 2573 topology 2606 2195
-> 16 0 31 2573 topology 2604 2195
-> 15 0 30 2573 topology 2683 2196
-> 16 0 30 2573 topology 2612 2196
-> 15 0 31 2573 topology 2612 2197
-> 16 0 31 2573 topology 2610 2197
-> 15 0 30 2573 topology 2683 2198
-> 16 0 30 2573 topology 2618 2198
-> 15 0 31 2573 topology 2618 2199
-> 16 0 31 2573 topology 2616 2199
-> 15 0 30 2573 topology 2683 2200
-> 16 0 30 2573 topology 2624 2200
-> 15 0 31 2573 topology 2624 2201
-> 16 0 31 2573 topology 2622 2201
-> 15 0 30 2573 topology 2683 2202
-> 16 0 30 2573 topology 2657 2202
-> 15 0 31 2573 topology 2657 2203
-> 16 0 31 2573 topology 2655 2203
-> 15 0 30 2573 topology 2683 2204
-> 16 0 30 2573 topology 2663 2204
-> 15 0 31 2573 topology 2663 2205
-> 16 0 31 2573 topology 2661 2205
-> 15 0 30 2573 topology 2683 2206
-> 16 0 30 2573 topology 2669 2206
-> 15 0 31 2573 topology 2669 2207
-> 16 0 31 2573 topology 2667 2207
-> 15 0 30 2573 topology 2683 2208
-> 16 0 30 2573 topology 2675 2208
-> 15 0 31 2573 topology 2675 2209
-> 16 0 31 2573 topology 2673 2209
-> 15 0 32 2573 topology 2683 2210
-> 16 0 32 2573 topology 2682 2210
-> 15 0 30 2573 topology 2683 2211
-> 16 0 30 2573 topology 2681 2211
-> 15 0 31 2573 topology 2681 2212
-> 16 0 31 2573 topology 2679 2212
-> 15 0 30 2573 topology 2683 2213
-> 16 0 30 2573 topology 2627 2213
-> 15 0 31 2573 topology 2627 2214
-> 16 0 31 2573 topology 2625 2214
-> 15 0 30 2573 topology 2683 2215
-> 16 0 30 2573 topology 2576 2215
-> 15 0 31 2573 topology 2576 2216
-> 16 0 31 2573 topology 2574 2216
-> 15 0 30 2573 topology 2683 2217
-> 16 0 30 2573 topology 2633 2217
-> 15 0 31 2573 topology 2633 2218
-> 16 0 31 2573 topology 2631 2218
-> 15 0 30 2573 topology 2683 2219
-> 16 0 30 2573 topology 2582 2219
-> 15 0 31 2573 topology 2582 2220
-> 16 0 31 2573 topology 2580 2220
-> 15 0 30 2573 topology 2683 2221
-> 16 0 30 2573 topology 2639 2221
-> 15 0 31 2573 topology 2639 2222
-> 16 0 31 2573 topology 2637 2222
-> 15 0 30 2573 topology 2683 2223
-> 16 0 30 2573 topology 2588 2223
-> 15 0 31 2573 topology 2588 2224
-> 16 0 31 2573 topology 2586 2224
-> 15 0 30 2573 topology 2683 2225
-> 16 0 30 2573 topology 2645 2225
-> 15 0 31 2573 topology 2645 2226
-> 16 0 31 2573 topology 2643 2226
-> 15 0 29 2573 topology 2649 2227
-> 16 0 29 2573 topology 2650 2227
-> 15 0 30 2573 topology 2650 2228
-> 16 0 30 2573 topology 2683 2228
-> 15 0 30 2573 topology 2683 2229
-> 16 0 30 2573 topology 2594 2229
-> 15 0 31 2573 topology 2594 2230
-> 16 0 31 2573 topology 2592 2230
-> 15 0 29 2573 topology 2595 2231
-> 16 0 29 2573 topology 2596 2231
-> 15 0 30 2573 topology 2596 2232
-> 16 0 30 2573 topology 2683 2232
-> 15 0 29 2573 topology 2601 2233
-> 16 0 29 2573 topology 2602 2233
-> 15 0 30 2573 topology 2602 2234
-> 16 0 30 2573 topology 2683 2234
-> 15 0 29 2573 topology 2607 2235
-> 16 0 29 2573 topology 2608 2235
-> 15 0 30 2573 topology 2608 2236
-> 16 0 30 2573 topology 2683 2236
+> 15 0 28 2351 topology 2398 2103
+> 16 0 28 2351 topology 2461 2103
+> 15 0 29 2351 topology 2403 2104
+> 16 0 29 2351 topology 2405 2104
+> 15 0 29 2351 topology 2457 2105
+> 16 0 29 2351 topology 2459 2105
+> 15 0 28 2351 topology 2428 2106
+> 16 0 28 2351 topology 2461 2106
+> 15 0 28 2351 topology 2369 2107
+> 16 0 28 2351 topology 2461 2107
+> 15 0 28 2351 topology 2458 2108
+> 16 0 28 2351 topology 2461 2108
+> 15 0 29 2351 topology 2415 2109
+> 16 0 29 2351 topology 2416 2109
+> 15 0 29 2351 topology 2436 2110
+> 16 0 29 2351 topology 2438 2110
+> 15 0 29 2351 topology 2394 2111
+> 16 0 29 2351 topology 2395 2111
+> 15 0 29 2351 topology 2448 2112
+> 16 0 29 2351 topology 2449 2112
+> 15 0 28 2351 topology 2353 2113
+> 16 0 28 2351 topology 2461 2113
+> 15 0 29 2351 topology 2427 2114
+> 16 0 29 2351 topology 2428 2114
+> 15 0 28 2351 topology 2381 2115
+> 16 0 28 2351 topology 2461 2115
+> 15 0 28 2351 topology 2365 2116
+> 16 0 28 2351 topology 2461 2116
+> 15 0 29 2351 topology 2406 2117
+> 16 0 29 2351 topology 2407 2117
+> 15 0 28 2351 topology 2441 2118
+> 16 0 28 2351 topology 2461 2118
+> 15 0 28 2351 topology 2417 2119
+> 16 0 28 2351 topology 2461 2119
+> 15 0 28 2351 topology 2393 2120
+> 16 0 28 2351 topology 2461 2120
+> 15 0 29 2351 topology 2355 2121
+> 16 0 29 2351 topology 2357 2121
+> 15 0 28 2351 topology 2377 2122
+> 16 0 28 2351 topology 2461 2122
+> 15 0 29 2351 topology 2409 2123
+> 16 0 29 2351 topology 2411 2123
+> 15 0 28 2351 topology 2453 2124
+> 16 0 28 2351 topology 2461 2124
+> 15 0 28 2351 topology 2429 2125
+> 16 0 28 2351 topology 2461 2125
+> 15 0 28 2351 topology 2405 2126
+> 16 0 28 2351 topology 2461 2126
+> 15 0 29 2351 topology 2361 2127
+> 16 0 29 2351 topology 2363 2127
+> 15 0 29 2351 topology 2388 2128
+> 16 0 29 2351 topology 2390 2128
+> 15 0 29 2351 topology 2442 2129
+> 16 0 29 2351 topology 2444 2129
+> 15 0 29 2351 topology 2367 2130
+> 16 0 29 2351 topology 2369 2130
+> 15 0 29 2351 topology 2421 2131
+> 16 0 29 2351 topology 2423 2131
+> 15 0 28 2351 topology 2383 2132
+> 16 0 28 2351 topology 2461 2132
+> 15 0 28 2351 topology 2413 2133
+> 16 0 28 2351 topology 2461 2133
+> 15 0 29 2351 topology 2352 2134
+> 16 0 29 2351 topology 2353 2134
+> 15 0 28 2351 topology 2443 2135
+> 16 0 28 2351 topology 2461 2135
+> 15 0 29 2351 topology 2373 2136
+> 16 0 29 2351 topology 2375 2136
+> 15 0 29 2351 topology 2400 2137
+> 16 0 29 2351 topology 2402 2137
+> 15 0 29 2351 topology 2454 2138
+> 16 0 29 2351 topology 2456 2138
+> 15 0 29 2351 topology 2355 2139
+> 16 0 29 2351 topology 2356 2139
+> 15 0 28 2351 topology 2360 2140
+> 16 0 28 2351 topology 2461 2140
+> 15 0 28 2351 topology 2395 2141
+> 16 0 28 2351 topology 2461 2141
+> 15 0 28 2351 topology 2425 2142
+> 16 0 28 2351 topology 2461 2142
+> 15 0 29 2351 topology 2358 2143
+> 16 0 29 2351 topology 2359 2143
+> 15 0 29 2351 topology 2385 2144
+> 16 0 29 2351 topology 2386 2144
+> 15 0 29 2351 topology 2439 2145
+> 16 0 29 2351 topology 2440 2145
+> 15 0 28 2351 topology 2455 2146
+> 16 0 28 2351 topology 2461 2146
+> 15 0 29 2351 topology 2433 2147
+> 16 0 29 2351 topology 2435 2147
+> 15 0 29 2351 topology 2361 2148
+> 16 0 29 2351 topology 2362 2148
+> 15 0 28 2351 topology 2372 2149
+> 16 0 28 2351 topology 2461 2149
+> 15 0 28 2351 topology 2407 2150
+> 16 0 28 2351 topology 2461 2150
+> 15 0 28 2351 topology 2437 2151
+> 16 0 28 2351 topology 2461 2151
+> 15 0 29 2351 topology 2364 2152
+> 16 0 29 2351 topology 2365 2152
+> 15 0 29 2351 topology 2418 2153
+> 16 0 29 2351 topology 2419 2153
+> 15 0 28 2573 topology 2672 2154
+> 16 0 28 2573 topology 2683 2154
+> 15 0 28 2573 topology 2575 2155
+> 16 0 28 2573 topology 2683 2155
+> 15 0 28 2573 topology 2605 2156
+> 16 0 28 2573 topology 2683 2156
+> 15 0 29 2573 topology 2607 2157
+> 16 0 29 2573 topology 2609 2157
+> 15 0 28 2573 topology 2635 2158
+> 16 0 28 2573 topology 2683 2158
+> 15 0 29 2573 topology 2670 2159
+> 16 0 29 2573 topology 2671 2159
+> 15 0 28 2573 topology 2587 2160
+> 16 0 28 2573 topology 2683 2160
+> 15 0 29 2573 topology 2586 2161
+> 16 0 29 2573 topology 2588 2161
+> 15 0 28 2573 topology 2617 2162
+> 16 0 28 2573 topology 2683 2162
+> 15 0 29 2573 topology 2640 2163
+> 16 0 29 2573 topology 2642 2163
+> 15 0 28 2573 topology 2647 2164
+> 16 0 28 2573 topology 2683 2164
+> 15 0 29 2573 topology 2676 2165
+> 16 0 29 2573 topology 2677 2165
+> 15 0 28 2573 topology 2656 2166
+> 16 0 28 2573 topology 2683 2166
+> 15 0 29 2573 topology 2625 2167
+> 16 0 29 2573 topology 2626 2167
+> 15 0 29 2573 topology 2619 2168
+> 16 0 29 2573 topology 2621 2168
+> 15 0 28 2573 topology 2668 2169
+> 16 0 28 2573 topology 2683 2169
+> 15 0 29 2573 topology 2604 2170
+> 16 0 29 2573 topology 2605 2170
+> 15 0 29 2573 topology 2652 2171
+> 16 0 29 2573 topology 2654 2171
+> 15 0 28 2573 topology 2680 2172
+> 16 0 28 2573 topology 2683 2172
+> 15 0 29 2573 topology 2583 2173
+> 16 0 29 2573 topology 2584 2173
+> 15 0 29 2573 topology 2637 2174
+> 16 0 29 2573 topology 2638 2174
+> 15 0 28 2573 topology 2600 2175
+> 16 0 28 2573 topology 2683 2175
+> 15 0 28 2573 topology 2576 2176
+> 16 0 28 2573 topology 2683 2176
+> 15 0 29 2573 topology 2616 2177
+> 16 0 29 2573 topology 2617 2177
+> 15 0 28 2573 topology 2636 2178
+> 16 0 28 2573 topology 2683 2178
+> 15 0 28 2573 topology 2612 2179
+> 16 0 28 2573 topology 2683 2179
+> 15 0 28 2573 topology 2588 2180
+> 16 0 28 2573 topology 2683 2180
+> 15 0 29 2573 topology 2649 2181
+> 16 0 29 2573 topology 2650 2181
+> 15 0 28 2573 topology 2648 2182
+> 16 0 28 2573 topology 2683 2182
+> 15 0 28 2573 topology 2624 2183
+> 16 0 28 2573 topology 2683 2183
+> 15 0 29 2573 topology 2625 2184
+> 16 0 29 2573 topology 2627 2184
+> 15 0 28 2573 topology 2663 2185
+> 16 0 28 2573 topology 2683 2185
+> 15 0 29 2573 topology 2604 2186
+> 16 0 29 2573 topology 2606 2186
+> 15 0 28 2573 topology 2602 2187
+> 16 0 28 2573 topology 2683 2187
+> 15 0 28 2573 topology 2675 2188
+> 16 0 28 2573 topology 2683 2188
+> 15 0 28 2573 topology 2632 2189
+> 16 0 28 2573 topology 2683 2189
+> 15 0 28 2573 topology 2584 2190
+> 16 0 28 2573 topology 2683 2190
+> 15 0 29 2573 topology 2583 2191
+> 16 0 29 2573 topology 2585 2191
+> 15 0 29 2573 topology 2637 2192
+> 16 0 29 2573 topology 2639 2192
+> 15 0 28 2573 topology 2614 2193
+> 16 0 28 2573 topology 2683 2193
+> 15 0 28 2573 topology 2644 2194
+> 16 0 28 2573 topology 2683 2194
+> 15 0 29 2573 topology 2595 2195
+> 16 0 29 2573 topology 2596 2195
+> 15 0 29 2573 topology 2616 2196
+> 16 0 29 2573 topology 2618 2196
+> 15 0 29 2573 topology 2574 2197
+> 16 0 29 2573 topology 2575 2197
+> 15 0 29 2573 topology 2628 2198
+> 16 0 29 2573 topology 2629 2198
+> 15 0 28 2573 topology 2665 2199
+> 16 0 28 2573 topology 2683 2199
+> 15 0 29 2573 topology 2649 2200
+> 16 0 29 2573 topology 2651 2200
+> 15 0 29 2573 topology 2655 2201
+> 16 0 29 2573 topology 2657 2201
+> 15 0 29 2573 topology 2658 2202
+> 16 0 29 2573 topology 2660 2202
+> 15 0 29 2573 topology 2607 2203
+> 16 0 29 2573 topology 2608 2203
+> 15 0 28 2573 topology 2677 2204
+> 16 0 28 2573 topology 2683 2204
+> 15 0 29 2573 topology 2661 2205
+> 16 0 29 2573 topology 2663 2205
+> 15 0 29 2573 topology 2664 2206
+> 16 0 29 2573 topology 2666 2206
+> 15 0 29 2573 topology 2586 2207
+> 16 0 29 2573 topology 2587 2207
+> 15 0 28 2573 topology 2627 2208
+> 16 0 28 2573 topology 2683 2208
+> 15 0 29 2573 topology 2640 2209
+> 16 0 29 2573 topology 2641 2209
+> 15 0 28 2573 topology 2603 2210
+> 16 0 28 2573 topology 2683 2210
+> 15 0 29 2573 topology 2667 2211
+> 16 0 29 2573 topology 2669 2211
+> 15 0 28 2573 topology 2579 2212
+> 16 0 28 2573 topology 2683 2212
+> 15 0 29 2573 topology 2670 2213
+> 16 0 29 2573 topology 2672 2213
+> 15 0 29 2573 topology 2619 2214
+> 16 0 29 2573 topology 2620 2214
+> 15 0 28 2573 topology 2639 2215
+> 16 0 28 2573 topology 2683 2215
+> 15 0 28 2573 topology 2615 2216
+> 16 0 28 2573 topology 2683 2216
+> 15 0 29 2573 topology 2673 2217
+> 16 0 29 2573 topology 2675 2217
+> 15 0 28 2573 topology 2591 2218
+> 16 0 28 2573 topology 2683 2218
+> 15 0 29 2573 topology 2655 2219
+> 16 0 29 2573 topology 2656 2219
+> 15 0 29 2573 topology 2676 2220
+> 16 0 29 2573 topology 2678 2220
+> 15 0 28 2573 topology 2651 2221
+> 16 0 28 2573 topology 2683 2221
+> 15 0 29 2573 topology 2652 2222
+> 16 0 29 2573 topology 2653 2222
+> 15 0 29 2573 topology 2679 2223
+> 16 0 29 2573 topology 2681 2223
+> 15 0 29 2573 topology 2661 2224
+> 16 0 29 2573 topology 2662 2224
+> 15 0 29 2573 topology 2601 2225
+> 16 0 29 2573 topology 2603 2225
+> 15 0 28 2573 topology 2666 2226
+> 16 0 28 2573 topology 2683 2226
+> 15 0 28 2573 topology 2599 2227
+> 16 0 28 2573 topology 2683 2227
+> 15 0 28 2573 topology 2629 2228
+> 16 0 28 2573 topology 2683 2228
+> 15 0 29 2573 topology 2667 2229
+> 16 0 29 2573 topology 2668 2229
+> 15 0 29 2573 topology 2580 2230
+> 16 0 29 2573 topology 2582 2230
+> 15 0 29 2573 topology 2634 2231
+> 16 0 29 2573 topology 2636 2231
+> 15 0 28 2573 topology 2678 2232
+> 16 0 28 2573 topology 2683 2232
+> 15 0 28 2573 topology 2581 2233
+> 16 0 28 2573 topology 2683 2233
+> 15 0 28 2573 topology 2611 2234
+> 16 0 28 2573 topology 2683 2234
+> 15 0 28 2573 topology 2641 2235
+> 16 0 28 2573 topology 2683 2235
+> 15 0 29 2573 topology 2673 2236
+> 16 0 29 2573 topology 2674 2236
 > 15 0 29 2573 topology 2613 2237
-> 16 0 29 2573 topology 2614 2237
-> 15 0 30 2573 topology 2614 2238
-> 16 0 30 2573 topology 2683 2238
-> 15 0 29 2573 topology 2619 2239
-> 16 0 29 2573 topology 2620 2239
-> 15 0 30 2573 topology 2620 2240
-> 16 0 30 2573 topology 2683 2240
-> 15 0 29 2573 topology 2658 2241
-> 16 0 29 2573 topology 2659 2241
-> 15 0 30 2573 topology 2659 2242
-> 16 0 30 2573 topology 2683 2242
-> 15 0 29 2573 topology 2664 2243
-> 16 0 29 2573 topology 2665 2243
-> 15 0 30 2573 topology 2665 2244
-> 16 0 30 2573 topology 2683 2244
-> 15 0 29 2573 topology 2670 2245
-> 16 0 29 2573 topology 2671 2245
-> 15 0 30 2573 topology 2671 2246
-> 16 0 30 2573 topology 2683 2246
-> 15 0 29 2573 topology 2676 2247
-> 16 0 29 2573 topology 2677 2247
-> 15 0 30 2573 topology 2677 2248
-> 16 0 30 2573 topology 2683 2248
-> 15 0 29 2573 topology 2628 2249
-> 16 0 29 2573 topology 2629 2249
-> 15 0 30 2573 topology 2629 2250
-> 16 0 30 2573 topology 2683 2250
-> 15 0 29 2573 topology 2577 2251
-> 16 0 29 2573 topology 2578 2251
-> 15 0 30 2573 topology 2578 2252
-> 16 0 30 2573 topology 2683 2252
-> 15 0 29 2573 topology 2634 2253
-> 16 0 29 2573 topology 2635 2253
-> 15 0 30 2573 topology 2635 2254
-> 16 0 30 2573 topology 2683 2254
-> 15 0 29 2573 topology 2583 2255
-> 16 0 29 2573 topology 2584 2255
-> 15 0 30 2573 topology 2584 2256
-> 16 0 30 2573 topology 2683 2256
-> 15 0 29 2573 topology 2640 2257
-> 16 0 29 2573 topology 2641 2257
-> 15 0 30 2573 topology 2641 2258
-> 16 0 30 2573 topology 2683 2258
-> 15 0 29 2573 topology 2589 2259
-> 16 0 29 2573 topology 2590 2259
-> 15 0 30 2573 topology 2590 2260
-> 16 0 30 2573 topology 2683 2260
-> 15 0 29 2573 topology 2646 2261
-> 16 0 29 2573 topology 2647 2261
-> 15 0 30 2573 topology 2647 2262
-> 16 0 30 2573 topology 2683 2262
-> 15 0 29 2573 topology 2652 2263
-> 16 0 29 2573 topology 2653 2263
-> 15 0 30 2573 topology 2653 2264
-> 16 0 30 2573 topology 2683 2264
-> 15 0 29 2573 topology 2598 2265
-> 16 0 29 2573 topology 2599 2265
-> 15 0 30 2573 topology 2599 2266
-> 16 0 30 2573 topology 2683 2266
-> 15 0 29 2573 topology 2604 2267
-> 16 0 29 2573 topology 2605 2267
-> 15 0 30 2573 topology 2605 2268
-> 16 0 30 2573 topology 2683 2268
-> 15 0 29 2573 topology 2610 2269
-> 16 0 29 2573 topology 2611 2269
-> 15 0 30 2573 topology 2611 2270
-> 16 0 30 2573 topology 2683 2270
-> 15 0 29 2573 topology 2616 2271
-> 16 0 29 2573 topology 2617 2271
-> 15 0 30 2573 topology 2617 2272
-> 16 0 30 2573 topology 2683 2272
-> 15 0 29 2573 topology 2622 2273
-> 16 0 29 2573 topology 2623 2273
-> 15 0 30 2573 topology 2623 2274
-> 16 0 30 2573 topology 2683 2274
-> 15 0 29 2573 topology 2655 2275
-> 16 0 29 2573 topology 2656 2275
-> 15 0 30 2573 topology 2656 2276
-> 16 0 30 2573 topology 2683 2276
-> 15 0 29 2573 topology 2661 2277
-> 16 0 29 2573 topology 2662 2277
-> 15 0 30 2573 topology 2662 2278
-> 16 0 30 2573 topology 2683 2278
-> 15 0 29 2573 topology 2667 2279
-> 16 0 29 2573 topology 2668 2279
-> 15 0 30 2573 topology 2668 2280
-> 16 0 30 2573 topology 2683 2280
-> 15 0 29 2573 topology 2673 2281
-> 16 0 29 2573 topology 2674 2281
-> 15 0 30 2573 topology 2674 2282
-> 16 0 30 2573 topology 2683 2282
-> 15 0 29 2573 topology 2679 2283
-> 16 0 29 2573 topology 2680 2283
-> 15 0 30 2573 topology 2680 2284
-> 16 0 30 2573 topology 2683 2284
-> 15 0 29 2573 topology 2625 2285
-> 16 0 29 2573 topology 2626 2285
-> 15 0 30 2573 topology 2626 2286
-> 16 0 30 2573 topology 2683 2286
-> 15 0 29 2573 topology 2574 2287
-> 16 0 29 2573 topology 2575 2287
-> 15 0 30 2573 topology 2575 2288
-> 16 0 30 2573 topology 2683 2288
-> 15 0 29 2573 topology 2631 2289
-> 16 0 29 2573 topology 2632 2289
-> 15 0 30 2573 topology 2632 2290
-> 16 0 30 2573 topology 2683 2290
-> 15 0 29 2573 topology 2580 2291
-> 16 0 29 2573 topology 2581 2291
-> 15 0 30 2573 topology 2581 2292
-> 16 0 30 2573 topology 2683 2292
-> 15 0 29 2573 topology 2637 2293
-> 16 0 29 2573 topology 2638 2293
-> 15 0 30 2573 topology 2638 2294
-> 16 0 30 2573 topology 2683 2294
-> 15 0 29 2573 topology 2586 2295
-> 16 0 29 2573 topology 2587 2295
-> 15 0 30 2573 topology 2587 2296
-> 16 0 30 2573 topology 2683 2296
-> 15 0 29 2573 topology 2643 2297
-> 16 0 29 2573 topology 2644 2297
-> 15 0 30 2573 topology 2644 2298
-> 16 0 30 2573 topology 2683 2298
-> 15 0 29 2795 topology 2814 2299
-> 16 0 29 2795 topology 2815 2299
-> 15 0 30 2795 topology 2815 2300
-> 16 0 30 2795 topology 2905 2300
-> 15 0 30 2795 topology 2905 2301
-> 16 0 30 2795 topology 2873 2301
-> 15 0 31 2795 topology 2873 2302
-> 16 0 31 2795 topology 2871 2302
-> 15 0 30 2795 topology 2905 2303
-> 16 0 30 2795 topology 2822 2303
-> 15 0 31 2795 topology 2822 2304
-> 16 0 31 2795 topology 2820 2304
-> 15 0 30 2795 topology 2905 2305
-> 16 0 30 2795 topology 2879 2305
-> 15 0 31 2795 topology 2879 2306
-> 16 0 31 2795 topology 2877 2306
-> 15 0 30 2795 topology 2905 2307
-> 16 0 30 2795 topology 2828 2307
-> 15 0 31 2795 topology 2828 2308
-> 16 0 31 2795 topology 2826 2308
-> 15 0 30 2795 topology 2905 2309
-> 16 0 30 2795 topology 2885 2309
-> 15 0 31 2795 topology 2885 2310
-> 16 0 31 2795 topology 2883 2310
-> 15 0 30 2795 topology 2905 2311
-> 16 0 30 2795 topology 2834 2311
-> 15 0 31 2795 topology 2834 2312
-> 16 0 31 2795 topology 2832 2312
-> 15 0 30 2795 topology 2905 2313
-> 16 0 30 2795 topology 2891 2313
-> 15 0 31 2795 topology 2891 2314
-> 16 0 31 2795 topology 2889 2314
-> 15 0 30 2795 topology 2905 2315
-> 16 0 30 2795 topology 2840 2315
-> 15 0 31 2795 topology 2840 2316
-> 16 0 31 2795 topology 2838 2316
-> 15 0 30 2795 topology 2905 2317
-> 16 0 30 2795 topology 2897 2317
-> 15 0 31 2795 topology 2897 2318
-> 16 0 31 2795 topology 2895 2318
-> 15 0 30 2795 topology 2905 2319
-> 16 0 30 2795 topology 2843 2319
-> 15 0 31 2795 topology 2843 2320
-> 16 0 31 2795 topology 2841 2320
-> 15 0 30 2795 topology 2905 2321
-> 16 0 30 2795 topology 2849 2321
-> 15 0 31 2795 topology 2849 2322
-> 16 0 31 2795 topology 2847 2322
-> 15 0 32 2795 topology 2905 2323
-> 16 0 32 2795 topology 2904 2323
-> 15 0 30 2795 topology 2905 2324
-> 16 0 30 2795 topology 2798 2324
-> 15 0 31 2795 topology 2798 2325
-> 16 0 31 2795 topology 2796 2325
-> 15 0 30 2795 topology 2905 2326
-> 16 0 30 2795 topology 2855 2326
-> 15 0 31 2795 topology 2855 2327
-> 16 0 31 2795 topology 2853 2327
-> 15 0 30 2795 topology 2905 2328
-> 16 0 30 2795 topology 2804 2328
-> 15 0 31 2795 topology 2804 2329
-> 16 0 31 2795 topology 2802 2329
-> 15 0 30 2795 topology 2905 2330
-> 16 0 30 2795 topology 2861 2330
-> 15 0 31 2795 topology 2861 2331
-> 16 0 31 2795 topology 2859 2331
-> 15 0 30 2795 topology 2905 2332
-> 16 0 30 2795 topology 2810 2332
-> 15 0 31 2795 topology 2810 2333
-> 16 0 31 2795 topology 2808 2333
-> 15 0 30 2795 topology 2905 2334
-> 16 0 30 2795 topology 2867 2334
-> 15 0 31 2795 topology 2867 2335
-> 16 0 31 2795 topology 2865 2335
-> 15 0 30 2795 topology 2905 2336
-> 16 0 30 2795 topology 2813 2336
-> 15 0 31 2795 topology 2813 2337
-> 16 0 31 2795 topology 2811 2337
-> 15 0 30 2795 topology 2905 2338
-> 16 0 30 2795 topology 2819 2338
-> 15 0 31 2795 topology 2819 2339
-> 16 0 31 2795 topology 2817 2339
-> 15 0 30 2795 topology 2905 2340
-> 16 0 30 2795 topology 2876 2340
-> 15 0 31 2795 topology 2876 2341
-> 16 0 31 2795 topology 2874 2341
-> 15 0 30 2795 topology 2905 2342
-> 16 0 30 2795 topology 2825 2342
-> 15 0 31 2795 topology 2825 2343
-> 16 0 31 2795 topology 2823 2343
-> 15 0 30 2795 topology 2905 2344
-> 16 0 30 2795 topology 2882 2344
-> 15 0 31 2795 topology 2882 2345
-> 16 0 31 2795 topology 2880 2345
-> 15 0 30 2795 topology 2905 2346
-> 16 0 30 2795 topology 2831 2346
-> 15 0 31 2795 topology 2831 2347
-> 16 0 31 2795 topology 2829 2347
-> 15 0 30 2795 topology 2905 2348
-> 16 0 30 2795 topology 2888 2348
-> 15 0 31 2795 topology 2888 2349
-> 16 0 31 2795 topology 2886 2349
-> 15 0 30 2795 topology 2905 2350
-> 16 0 30 2795 topology 2837 2350
-> 15 0 31 2795 topology 2837 2351
-> 16 0 31 2795 topology 2835 2351
-> 15 0 30 2795 topology 2905 2352
-> 16 0 30 2795 topology 2894 2352
-> 15 0 31 2795 topology 2894 2353
-> 16 0 31 2795 topology 2892 2353
-> 15 0 30 2795 topology 2905 2354
-> 16 0 30 2795 topology 2900 2354
-> 15 0 31 2795 topology 2900 2355
-> 16 0 31 2795 topology 2898 2355
-> 15 0 30 2795 topology 2905 2356
-> 16 0 30 2795 topology 2846 2356
-> 15 0 31 2795 topology 2846 2357
-> 16 0 31 2795 topology 2844 2357
-> 15 0 30 2795 topology 2905 2358
-> 16 0 30 2795 topology 2903 2358
-> 15 0 31 2795 topology 2903 2359
-> 16 0 31 2795 topology 2901 2359
-> 15 0 30 2795 topology 2905 2360
-> 16 0 30 2795 topology 2852 2360
-> 15 0 31 2795 topology 2852 2361
-> 16 0 31 2795 topology 2850 2361
-> 15 0 30 2795 topology 2905 2362
-> 16 0 30 2795 topology 2801 2362
-> 15 0 31 2795 topology 2801 2363
-> 16 0 31 2795 topology 2799 2363
-> 15 0 30 2795 topology 2905 2364
-> 16 0 30 2795 topology 2858 2364
-> 15 0 31 2795 topology 2858 2365
-> 16 0 31 2795 topology 2856 2365
-> 15 0 30 2795 topology 2905 2366
-> 16 0 30 2795 topology 2807 2366
-> 15 0 31 2795 topology 2807 2367
-> 16 0 31 2795 topology 2805 2367
-> 15 0 30 2795 topology 2905 2368
-> 16 0 30 2795 topology 2864 2368
-> 15 0 31 2795 topology 2864 2369
-> 16 0 31 2795 topology 2862 2369
-> 15 0 30 2795 topology 2905 2370
-> 16 0 30 2795 topology 2870 2370
-> 15 0 31 2795 topology 2870 2371
-> 16 0 31 2795 topology 2868 2371
-> 15 0 29 2795 topology 2871 2372
-> 16 0 29 2795 topology 2872 2372
-> 15 0 30 2795 topology 2872 2373
-> 16 0 30 2795 topology 2905 2373
-> 15 0 30 2795 topology 2905 2374
-> 16 0 30 2795 topology 2816 2374
-> 15 0 31 2795 topology 2816 2375
-> 16 0 31 2795 topology 2814 2375
-> 15 0 29 2795 topology 2820 2376
-> 16 0 29 2795 topology 2821 2376
-> 15 0 30 2795 topology 2821 2377
-> 16 0 30 2795 topology 2905 2377
-> 15 0 29 2795 topology 2877 2378
-> 16 0 29 2795 topology 2878 2378
-> 15 0 30 2795 topology 2878 2379
-> 16 0 30 2795 topology 2905 2379
-> 15 0 29 2795 topology 2826 2380
-> 16 0 29 2795 topology 2827 2380
-> 15 0 30 2795 topology 2827 2381
-> 16 0 30 2795 topology 2905 2381
-> 15 0 29 2795 topology 2883 2382
-> 16 0 29 2795 topology 2884 2382
-> 15 0 30 2795 topology 2884 2383
-> 16 0 30 2795 topology 2905 2383
-> 15 0 29 2795 topology 2832 2384
-> 16 0 29 2795 topology 2833 2384
-> 15 0 30 2795 topology 2833 2385
-> 16 0 30 2795 topology 2905 2385
-> 15 0 29 2795 topology 2889 2386
-> 16 0 29 2795 topology 2890 2386
-> 15 0 30 2795 topology 2890 2387
-> 16 0 30 2795 topology 2905 2387
+> 16 0 29 2573 topology 2615 2237
+> 15 0 28 2573 topology 2593 2238
+> 16 0 28 2573 topology 2683 2238
+> 15 0 28 2573 topology 2623 2239
+> 16 0 28 2573 topology 2683 2239
+> 15 0 29 2573 topology 2598 2240
+> 16 0 29 2573 topology 2599 2240
+> 15 0 28 2573 topology 2653 2241
+> 16 0 28 2573 topology 2683 2241
+> 15 0 29 2573 topology 2679 2242
+> 16 0 29 2573 topology 2680 2242
+> 15 0 29 2573 topology 2592 2243
+> 16 0 29 2573 topology 2594 2243
+> 15 0 29 2573 topology 2646 2244
+> 16 0 29 2573 topology 2648 2244
+> 15 0 28 2573 topology 2662 2245
+> 16 0 28 2573 topology 2683 2245
+> 15 0 29 2573 topology 2577 2246
+> 16 0 29 2573 topology 2578 2246
+> 15 0 29 2573 topology 2631 2247
+> 16 0 29 2573 topology 2632 2247
+> 15 0 28 2573 topology 2674 2248
+> 16 0 28 2573 topology 2683 2248
+> 15 0 29 2573 topology 2610 2249
+> 16 0 29 2573 topology 2611 2249
+> 15 0 28 2573 topology 2630 2250
+> 16 0 28 2573 topology 2683 2250
+> 15 0 29 2573 topology 2589 2251
+> 16 0 29 2573 topology 2590 2251
+> 15 0 28 2573 topology 2606 2252
+> 16 0 28 2573 topology 2683 2252
+> 15 0 29 2573 topology 2643 2253
+> 16 0 29 2573 topology 2644 2253
+> 15 0 28 2573 topology 2582 2254
+> 16 0 28 2573 topology 2683 2254
+> 15 0 28 2573 topology 2642 2255
+> 16 0 28 2573 topology 2683 2255
+> 15 0 28 2573 topology 2618 2256
+> 16 0 28 2573 topology 2683 2256
+> 15 0 29 2573 topology 2622 2257
+> 16 0 29 2573 topology 2623 2257
+> 15 0 28 2573 topology 2594 2258
+> 16 0 28 2573 topology 2683 2258
+> 15 0 28 2573 topology 2657 2259
+> 16 0 28 2573 topology 2683 2259
+> 15 0 29 2573 topology 2598 2260
+> 16 0 29 2573 topology 2600 2260
+> 15 0 28 2573 topology 2654 2261
+> 16 0 28 2573 topology 2683 2261
+> 15 0 28 2573 topology 2596 2262
+> 16 0 28 2573 topology 2683 2262
+> 15 0 28 2573 topology 2669 2263
+> 16 0 28 2573 topology 2683 2263
+> 15 0 29 2573 topology 2577 2264
+> 16 0 29 2573 topology 2579 2264
+> 15 0 28 2573 topology 2626 2265
+> 16 0 28 2573 topology 2683 2265
+> 15 0 29 2573 topology 2631 2266
+> 16 0 29 2573 topology 2633 2266
+> 15 0 28 2573 topology 2578 2267
+> 16 0 28 2573 topology 2683 2267
+> 15 0 28 2573 topology 2608 2268
+> 16 0 28 2573 topology 2683 2268
+> 15 0 28 2573 topology 2681 2269
+> 16 0 28 2573 topology 2683 2269
+> 15 0 29 2573 topology 2610 2270
+> 16 0 29 2573 topology 2612 2270
+> 15 0 28 2573 topology 2638 2271
+> 16 0 28 2573 topology 2683 2271
+> 15 0 28 2573 topology 2590 2272
+> 16 0 28 2573 topology 2683 2272
+> 15 0 28 2573 topology 2620 2273
+> 16 0 28 2573 topology 2683 2273
+> 15 0 29 2573 topology 2589 2274
+> 16 0 29 2573 topology 2591 2274
+> 15 0 29 2573 topology 2643 2275
+> 16 0 29 2573 topology 2645 2275
+> 15 0 28 2573 topology 2650 2276
+> 16 0 28 2573 topology 2683 2276
+> 15 0 28 2573 topology 2659 2277
+> 16 0 28 2573 topology 2683 2277
+> 15 0 29 2573 topology 2601 2278
+> 16 0 29 2573 topology 2602 2278
+> 15 0 29 2573 topology 2622 2279
+> 16 0 29 2573 topology 2624 2279
+> 15 0 28 2573 topology 2671 2280
+> 16 0 28 2573 topology 2683 2280
+> 15 0 29 2573 topology 2580 2281
+> 16 0 29 2573 topology 2581 2281
+> 15 0 29 2573 topology 2634 2282
+> 16 0 29 2573 topology 2635 2282
+> 15 0 30 2573 topology 2682 2283
+> 16 0 30 2573 topology 2683 2283
+> 15 0 28 2573 topology 2597 2284
+> 16 0 28 2573 topology 2683 2284
+> 15 0 29 2573 topology 2613 2285
+> 16 0 29 2573 topology 2614 2285
+> 15 0 28 2573 topology 2633 2286
+> 16 0 28 2573 topology 2683 2286
+> 15 0 28 2573 topology 2609 2287
+> 16 0 28 2573 topology 2683 2287
+> 15 0 28 2573 topology 2585 2288
+> 16 0 28 2573 topology 2683 2288
+> 15 0 29 2573 topology 2592 2289
+> 16 0 29 2573 topology 2593 2289
+> 15 0 29 2573 topology 2646 2290
+> 16 0 29 2573 topology 2647 2290
+> 15 0 28 2573 topology 2645 2291
+> 16 0 28 2573 topology 2683 2291
+> 15 0 29 2573 topology 2595 2292
+> 16 0 29 2573 topology 2597 2292
+> 15 0 28 2573 topology 2621 2293
+> 16 0 28 2573 topology 2683 2293
+> 15 0 29 2573 topology 2658 2294
+> 16 0 29 2573 topology 2659 2294
+> 15 0 28 2573 topology 2660 2295
+> 16 0 28 2573 topology 2683 2295
+> 15 0 29 2573 topology 2574 2296
+> 16 0 29 2573 topology 2576 2296
+> 15 0 29 2573 topology 2628 2297
+> 16 0 29 2573 topology 2630 2297
+> 15 0 29 2573 topology 2664 2298
+> 16 0 29 2573 topology 2665 2298
+> 15 0 29 2795 topology 2796 2299
+> 16 0 29 2795 topology 2798 2299
+> 15 0 29 2795 topology 2850 2300
+> 16 0 29 2795 topology 2852 2300
+> 15 0 29 2795 topology 2799 2301
+> 16 0 29 2795 topology 2801 2301
+> 15 0 29 2795 topology 2853 2302
+> 16 0 29 2795 topology 2855 2302
+> 15 0 29 2795 topology 2802 2303
+> 16 0 29 2795 topology 2804 2303
+> 15 0 29 2795 topology 2856 2304
+> 16 0 29 2795 topology 2858 2304
+> 15 0 29 2795 topology 2811 2305
+> 16 0 29 2795 topology 2812 2305
+> 15 0 28 2795 topology 2816 2306
+> 16 0 28 2795 topology 2905 2306
+> 15 0 29 2795 topology 2805 2307
+> 16 0 29 2795 topology 2807 2307
+> 15 0 29 2795 topology 2859 2308
+> 16 0 29 2795 topology 2861 2308
+> 15 0 29 2795 topology 2841 2309
+> 16 0 29 2795 topology 2842 2309
+> 15 0 28 2795 topology 2876 2310
+> 16 0 28 2795 topology 2905 2310
+> 15 0 29 2795 topology 2808 2311
+> 16 0 29 2795 topology 2810 2311
+> 15 0 28 2795 topology 2852 2312
+> 16 0 28 2795 topology 2905 2312
+> 15 0 29 2795 topology 2862 2313
+> 16 0 29 2795 topology 2864 2313
+> 15 0 29 2795 topology 2817 2314
+> 16 0 29 2795 topology 2818 2314
+> 15 0 28 2795 topology 2828 2315
+> 16 0 28 2795 topology 2905 2315
+> 15 0 29 2795 topology 2871 2316
+> 16 0 29 2795 topology 2872 2316
+> 15 0 28 2795 topology 2804 2317
+> 16 0 28 2795 topology 2905 2317
+> 15 0 29 2795 topology 2865 2318
+> 16 0 29 2795 topology 2867 2318
+> 15 0 29 2795 topology 2847 2319
+> 16 0 29 2795 topology 2848 2319
+> 15 0 28 2795 topology 2888 2320
+> 16 0 28 2795 topology 2905 2320
+> 15 0 29 2795 topology 2901 2321
+> 16 0 29 2795 topology 2902 2321
+> 15 0 28 2795 topology 2864 2322
+> 16 0 28 2795 topology 2905 2322
+> 15 0 29 2795 topology 2868 2323
+> 16 0 29 2795 topology 2870 2323
+> 15 0 29 2795 topology 2823 2324
+> 16 0 29 2795 topology 2824 2324
+> 15 0 28 2795 topology 2840 2325
+> 16 0 28 2795 topology 2905 2325
+> 15 0 29 2795 topology 2877 2326
+> 16 0 29 2795 topology 2878 2326
+> 15 0 29 2795 topology 2799 2327
+> 16 0 29 2795 topology 2800 2327
+> 15 0 29 2795 topology 2853 2328
+> 16 0 29 2795 topology 2854 2328
+> 15 0 28 2795 topology 2900 2329
+> 16 0 28 2795 topology 2905 2329
+> 15 0 29 2795 topology 2829 2330
+> 16 0 29 2795 topology 2830 2330
+> 15 0 29 2795 topology 2883 2331
+> 16 0 29 2795 topology 2884 2331
+> 15 0 29 2795 topology 2805 2332
+> 16 0 29 2795 topology 2806 2332
+> 15 0 28 2795 topology 2818 2333
+> 16 0 28 2795 topology 2905 2333
+> 15 0 29 2795 topology 2859 2334
+> 16 0 29 2795 topology 2860 2334
+> 15 0 28 2795 topology 2848 2335
+> 16 0 28 2795 topology 2905 2335
+> 15 0 29 2795 topology 2835 2336
+> 16 0 29 2795 topology 2836 2336
+> 15 0 28 2795 topology 2878 2337
+> 16 0 28 2795 topology 2905 2337
+> 15 0 29 2795 topology 2889 2338
+> 16 0 29 2795 topology 2890 2338
+> 15 0 28 2795 topology 2800 2339
+> 16 0 28 2795 topology 2905 2339
+> 15 0 28 2795 topology 2830 2340
+> 16 0 28 2795 topology 2905 2340
+> 15 0 29 2795 topology 2865 2341
+> 16 0 29 2795 topology 2866 2341
+> 15 0 28 2795 topology 2860 2342
+> 16 0 28 2795 topology 2905 2342
+> 15 0 28 2795 topology 2890 2343
+> 16 0 28 2795 topology 2905 2343
+> 15 0 29 2795 topology 2895 2344
+> 16 0 29 2795 topology 2896 2344
+> 15 0 28 2795 topology 2843 2345
+> 16 0 28 2795 topology 2905 2345
+> 15 0 28 2795 topology 2819 2346
+> 16 0 28 2795 topology 2905 2346
+> 15 0 28 2795 topology 2903 2347
+> 16 0 28 2795 topology 2905 2347
+> 15 0 28 2795 topology 2879 2348
+> 16 0 28 2795 topology 2905 2348
+> 15 0 28 2795 topology 2855 2349
+> 16 0 28 2795 topology 2905 2349
+> 15 0 28 2795 topology 2831 2350
+> 16 0 28 2795 topology 2905 2350
+> 15 0 28 2795 topology 2807 2351
+> 16 0 28 2795 topology 2905 2351
+> 15 0 28 2795 topology 2891 2352
+> 16 0 28 2795 topology 2905 2352
+> 15 0 28 2795 topology 2867 2353
+> 16 0 28 2795 topology 2905 2353
+> 15 0 28 2795 topology 2815 2354
+> 16 0 28 2795 topology 2905 2354
+> 15 0 28 2795 topology 2845 2355
+> 16 0 28 2795 topology 2905 2355
+> 15 0 28 2795 topology 2875 2356
+> 16 0 28 2795 topology 2905 2356
+> 15 0 28 2795 topology 2797 2357
+> 16 0 28 2795 topology 2905 2357
+> 15 0 30 2795 topology 2904 2358
+> 16 0 30 2795 topology 2905 2358
+> 15 0 28 2795 topology 2827 2359
+> 16 0 28 2795 topology 2905 2359
+> 15 0 28 2795 topology 2857 2360
+> 16 0 28 2795 topology 2905 2360
+> 15 0 29 2795 topology 2811 2361
+> 16 0 29 2795 topology 2813 2361
+> 15 0 28 2795 topology 2887 2362
+> 16 0 28 2795 topology 2905 2362
+> 15 0 28 2795 topology 2809 2363
+> 16 0 28 2795 topology 2905 2363
+> 15 0 29 2795 topology 2814 2364
+> 16 0 29 2795 topology 2816 2364
+> 15 0 28 2795 topology 2839 2365
+> 16 0 28 2795 topology 2905 2365
+> 15 0 28 2795 topology 2869 2366
+> 16 0 28 2795 topology 2905 2366
+> 15 0 29 2795 topology 2817 2367
+> 16 0 29 2795 topology 2819 2367
+> 15 0 29 2795 topology 2871 2368
+> 16 0 29 2795 topology 2873 2368
+> 15 0 28 2795 topology 2899 2369
+> 16 0 28 2795 topology 2905 2369
+> 15 0 29 2795 topology 2820 2370
+> 16 0 29 2795 topology 2822 2370
+> 15 0 29 2795 topology 2874 2371
+> 16 0 29 2795 topology 2876 2371
+> 15 0 29 2795 topology 2823 2372
+> 16 0 29 2795 topology 2825 2372
+> 15 0 29 2795 topology 2877 2373
+> 16 0 29 2795 topology 2879 2373
+> 15 0 29 2795 topology 2826 2374
+> 16 0 29 2795 topology 2828 2374
+> 15 0 29 2795 topology 2880 2375
+> 16 0 29 2795 topology 2882 2375
+> 15 0 29 2795 topology 2829 2376
+> 16 0 29 2795 topology 2831 2376
+> 15 0 29 2795 topology 2883 2377
+> 16 0 29 2795 topology 2885 2377
+> 15 0 29 2795 topology 2832 2378
+> 16 0 29 2795 topology 2834 2378
+> 15 0 28 2795 topology 2846 2379
+> 16 0 28 2795 topology 2905 2379
+> 15 0 29 2795 topology 2886 2380
+> 16 0 29 2795 topology 2888 2380
+> 15 0 29 2795 topology 2814 2381
+> 16 0 29 2795 topology 2815 2381
+> 15 0 28 2795 topology 2822 2382
+> 16 0 28 2795 topology 2905 2382
+> 15 0 28 2795 topology 2798 2383
+> 16 0 28 2795 topology 2905 2383
+> 15 0 29 2795 topology 2835 2384
+> 16 0 29 2795 topology 2837 2384
+> 15 0 29 2795 topology 2889 2385
+> 16 0 29 2795 topology 2891 2385
+> 15 0 29 2795 topology 2844 2386
+> 16 0 29 2795 topology 2845 2386
+> 15 0 28 2795 topology 2882 2387
+> 16 0 28 2795 topology 2905 2387
 > 15 0 29 2795 topology 2838 2388
-> 16 0 29 2795 topology 2839 2388
-> 15 0 30 2795 topology 2839 2389
-> 16 0 30 2795 topology 2905 2389
-> 15 0 29 2795 topology 2895 2390
-> 16 0 29 2795 topology 2896 2390
-> 15 0 30 2795 topology 2896 2391
-> 16 0 30 2795 topology 2905 2391
-> 15 0 29 2795 topology 2841 2392
-> 16 0 29 2795 topology 2842 2392
-> 15 0 30 2795 topology 2842 2393
-> 16 0 30 2795 topology 2905 2393
-> 15 0 29 2795 topology 2847 2394
-> 16 0 29 2795 topology 2848 2394
-> 15 0 30 2795 topology 2848 2395
-> 16 0 30 2795 topology 2905 2395
+> 16 0 29 2795 topology 2840 2388
+> 15 0 28 2795 topology 2858 2389
+> 16 0 28 2795 topology 2905 2389
+> 15 0 29 2795 topology 2892 2390
+> 16 0 29 2795 topology 2894 2390
+> 15 0 29 2795 topology 2820 2391
+> 16 0 29 2795 topology 2821 2391
+> 15 0 28 2795 topology 2834 2392
+> 16 0 28 2795 topology 2905 2392
+> 15 0 29 2795 topology 2874 2393
+> 16 0 29 2795 topology 2875 2393
+> 15 0 28 2795 topology 2810 2394
+> 16 0 28 2795 topology 2905 2394
+> 15 0 29 2795 topology 2895 2395
+> 16 0 29 2795 topology 2897 2395
 > 15 0 29 2795 topology 2796 2396
 > 16 0 29 2795 topology 2797 2396
-> 15 0 30 2795 topology 2797 2397
-> 16 0 30 2795 topology 2905 2397
-> 15 0 29 2795 topology 2853 2398
-> 16 0 29 2795 topology 2854 2398
-> 15 0 30 2795 topology 2854 2399
-> 16 0 30 2795 topology 2905 2399
-> 15 0 29 2795 topology 2802 2400
-> 16 0 29 2795 topology 2803 2400
-> 15 0 30 2795 topology 2803 2401
-> 16 0 30 2795 topology 2905 2401
-> 15 0 29 2795 topology 2859 2402
-> 16 0 29 2795 topology 2860 2402
-> 15 0 30 2795 topology 2860 2403
-> 16 0 30 2795 topology 2905 2403
-> 15 0 29 2795 topology 2808 2404
-> 16 0 29 2795 topology 2809 2404
-> 15 0 30 2795 topology 2809 2405
-> 16 0 30 2795 topology 2905 2405
-> 15 0 29 2795 topology 2865 2406
-> 16 0 29 2795 topology 2866 2406
-> 15 0 30 2795 topology 2866 2407
-> 16 0 30 2795 topology 2905 2407
-> 15 0 29 2795 topology 2811 2408
-> 16 0 29 2795 topology 2812 2408
-> 15 0 30 2795 topology 2812 2409
-> 16 0 30 2795 topology 2905 2409
-> 15 0 29 2795 topology 2817 2410
-> 16 0 29 2795 topology 2818 2410
-> 15 0 30 2795 topology 2818 2411
-> 16 0 30 2795 topology 2905 2411
-> 15 0 29 2795 topology 2874 2412
-> 16 0 29 2795 topology 2875 2412
-> 15 0 30 2795 topology 2875 2413
-> 16 0 30 2795 topology 2905 2413
-> 15 0 29 2795 topology 2823 2414
-> 16 0 29 2795 topology 2824 2414
-> 15 0 30 2795 topology 2824 2415
-> 16 0 30 2795 topology 2905 2415
-> 15 0 29 2795 topology 2880 2416
-> 16 0 29 2795 topology 2881 2416
-> 15 0 30 2795 topology 2881 2417
-> 16 0 30 2795 topology 2905 2417
-> 15 0 29 2795 topology 2829 2418
-> 16 0 29 2795 topology 2830 2418
-> 15 0 30 2795 topology 2830 2419
-> 16 0 30 2795 topology 2905 2419
-> 15 0 29 2795 topology 2886 2420
-> 16 0 29 2795 topology 2887 2420
-> 15 0 30 2795 topology 2887 2421
-> 16 0 30 2795 topology 2905 2421
-> 15 0 29 2795 topology 2835 2422
-> 16 0 29 2795 topology 2836 2422
-> 15 0 30 2795 topology 2836 2423
-> 16 0 30 2795 topology 2905 2423
-> 15 0 29 2795 topology 2892 2424
-> 16 0 29 2795 topology 2893 2424
-> 15 0 30 2795 topology 2893 2425
-> 16 0 30 2795 topology 2905 2425
-> 15 0 29 2795 topology 2898 2426
-> 16 0 29 2795 topology 2899 2426
-> 15 0 30 2795 topology 2899 2427
-> 16 0 30 2795 topology 2905 2427
-> 15 0 29 2795 topology 2844 2428
-> 16 0 29 2795 topology 2845 2428
-> 15 0 30 2795 topology 2845 2429
-> 16 0 30 2795 topology 2905 2429
-> 15 0 29 2795 topology 2901 2430
-> 16 0 29 2795 topology 2902 2430
-> 15 0 30 2795 topology 2902 2431
-> 16 0 30 2795 topology 2905 2431
-> 15 0 29 2795 topology 2850 2432
-> 16 0 29 2795 topology 2851 2432
-> 15 0 30 2795 topology 2851 2433
-> 16 0 30 2795 topology 2905 2433
-> 15 0 29 2795 topology 2799 2434
-> 16 0 29 2795 topology 2800 2434
-> 15 0 30 2795 topology 2800 2435
-> 16 0 30 2795 topology 2905 2435
-> 15 0 29 2795 topology 2856 2436
-> 16 0 29 2795 topology 2857 2436
-> 15 0 30 2795 topology 2857 2437
-> 16 0 30 2795 topology 2905 2437
-> 15 0 29 2795 topology 2805 2438
-> 16 0 29 2795 topology 2806 2438
-> 15 0 30 2795 topology 2806 2439
-> 16 0 30 2795 topology 2905 2439
-> 15 0 29 2795 topology 2862 2440
-> 16 0 29 2795 topology 2863 2440
-> 15 0 30 2795 topology 2863 2441
-> 16 0 30 2795 topology 2905 2441
-> 15 0 29 2795 topology 2868 2442
-> 16 0 29 2795 topology 2869 2442
-> 15 0 30 2795 topology 2869 2443
-> 16 0 30 2795 topology 2905 2443
-> 15 0 29 2981 topology 3021 2444
-> 16 0 29 2981 topology 3022 2444
-> 15 0 30 2981 topology 3022 2445
-> 16 0 30 2981 topology 3091 2445
-> 15 0 30 2981 topology 3091 2446
-> 16 0 30 2981 topology 3029 2446
-> 15 0 31 2981 topology 3029 2447
-> 16 0 31 2981 topology 3027 2447
-> 15 0 30 2981 topology 3091 2448
-> 16 0 30 2981 topology 3086 2448
-> 15 0 31 2981 topology 3086 2449
-> 16 0 31 2981 topology 3084 2449
-> 15 0 30 2981 topology 3091 2450
-> 16 0 30 2981 topology 3035 2450
-> 15 0 31 2981 topology 3035 2451
-> 16 0 31 2981 topology 3033 2451
-> 15 0 30 2981 topology 3091 2452
-> 16 0 30 2981 topology 2984 2452
-> 15 0 31 2981 topology 2984 2453
-> 16 0 31 2981 topology 2982 2453
-> 15 0 30 2981 topology 3091 2454
-> 16 0 30 2981 topology 3041 2454
-> 15 0 31 2981 topology 3041 2455
-> 16 0 31 2981 topology 3039 2455
-> 15 0 30 2981 topology 3091 2456
-> 16 0 30 2981 topology 2990 2456
-> 15 0 31 2981 topology 2990 2457
-> 16 0 31 2981 topology 2988 2457
-> 15 0 30 2981 topology 3091 2458
-> 16 0 30 2981 topology 3047 2458
-> 15 0 31 2981 topology 3047 2459
-> 16 0 31 2981 topology 3045 2459
-> 15 0 30 2981 topology 3091 2460
-> 16 0 30 2981 topology 2993 2460
-> 15 0 31 2981 topology 2993 2461
-> 16 0 31 2981 topology 2991 2461
-> 15 0 30 2981 topology 3091 2462
-> 16 0 30 2981 topology 2999 2462
-> 15 0 31 2981 topology 2999 2463
-> 16 0 31 2981 topology 2997 2463
-> 15 0 30 2981 topology 3091 2464
-> 16 0 30 2981 topology 3056 2464
-> 15 0 31 2981 topology 3056 2465
-> 16 0 31 2981 topology 3054 2465
-> 15 0 30 2981 topology 3091 2466
-> 16 0 30 2981 topology 3005 2466
-> 15 0 31 2981 topology 3005 2467
-> 16 0 31 2981 topology 3003 2467
-> 15 0 30 2981 topology 3091 2468
-> 16 0 30 2981 topology 3062 2468
-> 15 0 31 2981 topology 3062 2469
-> 16 0 31 2981 topology 3060 2469
-> 15 0 30 2981 topology 3091 2470
-> 16 0 30 2981 topology 3011 2470
-> 15 0 31 2981 topology 3011 2471
-> 16 0 31 2981 topology 3009 2471
-> 15 0 30 2981 topology 3091 2472
-> 16 0 30 2981 topology 3068 2472
-> 15 0 31 2981 topology 3068 2473
-> 16 0 31 2981 topology 3066 2473
-> 15 0 30 2981 topology 3091 2474
-> 16 0 30 2981 topology 3017 2474
-> 15 0 31 2981 topology 3017 2475
-> 16 0 31 2981 topology 3015 2475
-> 15 0 30 2981 topology 3091 2476
-> 16 0 30 2981 topology 3074 2476
-> 15 0 31 2981 topology 3074 2477
-> 16 0 31 2981 topology 3072 2477
-> 15 0 30 2981 topology 3091 2478
-> 16 0 30 2981 topology 3080 2478
-> 15 0 31 2981 topology 3080 2479
-> 16 0 31 2981 topology 3078 2479
-> 15 0 30 2981 topology 3091 2480
-> 16 0 30 2981 topology 3026 2480
-> 15 0 31 2981 topology 3026 2481
-> 16 0 31 2981 topology 3024 2481
-> 15 0 30 2981 topology 3091 2482
-> 16 0 30 2981 topology 3083 2482
-> 15 0 31 2981 topology 3083 2483
-> 16 0 31 2981 topology 3081 2483
-> 15 0 30 2981 topology 3091 2484
-> 16 0 30 2981 topology 3032 2484
-> 15 0 31 2981 topology 3032 2485
-> 16 0 31 2981 topology 3030 2485
-> 15 0 30 2981 topology 3091 2486
-> 16 0 30 2981 topology 3089 2486
-> 15 0 31 2981 topology 3089 2487
-> 16 0 31 2981 topology 3087 2487
-> 15 0 30 2981 topology 3091 2488
-> 16 0 30 2981 topology 3038 2488
-> 15 0 31 2981 topology 3038 2489
-> 16 0 31 2981 topology 3036 2489
-> 15 0 30 2981 topology 3091 2490
-> 16 0 30 2981 topology 2987 2490
-> 15 0 31 2981 topology 2987 2491
-> 16 0 31 2981 topology 2985 2491
-> 15 0 30 2981 topology 3091 2492
-> 16 0 30 2981 topology 3044 2492
-> 15 0 31 2981 topology 3044 2493
-> 16 0 31 2981 topology 3042 2493
-> 15 0 30 2981 topology 3091 2494
-> 16 0 30 2981 topology 3050 2494
-> 15 0 31 2981 topology 3050 2495
-> 16 0 31 2981 topology 3048 2495
-> 15 0 30 2981 topology 3091 2496
-> 16 0 30 2981 topology 2996 2496
-> 15 0 31 2981 topology 2996 2497
-> 16 0 31 2981 topology 2994 2497
-> 15 0 30 2981 topology 3091 2498
-> 16 0 30 2981 topology 3053 2498
-> 15 0 31 2981 topology 3053 2499
-> 16 0 31 2981 topology 3051 2499
-> 15 0 30 2981 topology 3091 2500
-> 16 0 30 2981 topology 3002 2500
-> 15 0 31 2981 topology 3002 2501
-> 16 0 31 2981 topology 3000 2501
-> 15 0 30 2981 topology 3091 2502
-> 16 0 30 2981 topology 3059 2502
-> 15 0 31 2981 topology 3059 2503
-> 16 0 31 2981 topology 3057 2503
-> 15 0 30 2981 topology 3091 2504
-> 16 0 30 2981 topology 3008 2504
-> 15 0 31 2981 topology 3008 2505
-> 16 0 31 2981 topology 3006 2505
-> 15 0 30 2981 topology 3091 2506
-> 16 0 30 2981 topology 3065 2506
-> 15 0 31 2981 topology 3065 2507
-> 16 0 31 2981 topology 3063 2507
-> 15 0 30 2981 topology 3091 2508
-> 16 0 30 2981 topology 3014 2508
-> 15 0 31 2981 topology 3014 2509
-> 16 0 31 2981 topology 3012 2509
-> 15 0 32 2981 topology 3091 2510
-> 16 0 32 2981 topology 3090 2510
-> 15 0 30 2981 topology 3091 2511
-> 16 0 30 2981 topology 3071 2511
-> 15 0 31 2981 topology 3071 2512
-> 16 0 31 2981 topology 3069 2512
-> 15 0 30 2981 topology 3091 2513
-> 16 0 30 2981 topology 3020 2513
-> 15 0 31 2981 topology 3020 2514
-> 16 0 31 2981 topology 3018 2514
-> 15 0 30 2981 topology 3091 2515
-> 16 0 30 2981 topology 3077 2515
-> 15 0 31 2981 topology 3077 2516
-> 16 0 31 2981 topology 3075 2516
-> 15 0 29 2981 topology 3027 2517
-> 16 0 29 2981 topology 3028 2517
-> 15 0 30 2981 topology 3028 2518
-> 16 0 30 2981 topology 3091 2518
-> 15 0 30 2981 topology 3091 2519
-> 16 0 30 2981 topology 3023 2519
-> 15 0 31 2981 topology 3023 2520
-> 16 0 31 2981 topology 3021 2520
-> 15 0 29 2981 topology 3084 2521
-> 16 0 29 2981 topology 3085 2521
-> 15 0 30 2981 topology 3085 2522
-> 16 0 30 2981 topology 3091 2522
-> 15 0 29 2981 topology 3033 2523
-> 16 0 29 2981 topology 3034 2523
-> 15 0 30 2981 topology 3034 2524
-> 16 0 30 2981 topology 3091 2524
-> 15 0 29 2981 topology 2982 2525
-> 16 0 29 2981 topology 2983 2525
-> 15 0 30 2981 topology 2983 2526
-> 16 0 30 2981 topology 3091 2526
-> 15 0 29 2981 topology 3039 2527
-> 16 0 29 2981 topology 3040 2527
-> 15 0 30 2981 topology 3040 2528
-> 16 0 30 2981 topology 3091 2528
-> 15 0 29 2981 topology 2988 2529
-> 16 0 29 2981 topology 2989 2529
-> 15 0 30 2981 topology 2989 2530
-> 16 0 30 2981 topology 3091 2530
-> 15 0 29 2981 topology 3045 2531
-> 16 0 29 2981 topology 3046 2531
-> 15 0 30 2981 topology 3046 2532
-> 16 0 30 2981 topology 3091 2532
-> 15 0 29 2981 topology 2991 2533
-> 16 0 29 2981 topology 2992 2533
-> 15 0 30 2981 topology 2992 2534
-> 16 0 30 2981 topology 3091 2534
-> 15 0 29 2981 topology 2997 2535
-> 16 0 29 2981 topology 2998 2535
-> 15 0 30 2981 topology 2998 2536
-> 16 0 30 2981 topology 3091 2536
-> 15 0 29 2981 topology 3054 2537
-> 16 0 29 2981 topology 3055 2537
-> 15 0 30 2981 topology 3055 2538
-> 16 0 30 2981 topology 3091 2538
-> 15 0 29 2981 topology 3003 2539
-> 16 0 29 2981 topology 3004 2539
-> 15 0 30 2981 topology 3004 2540
-> 16 0 30 2981 topology 3091 2540
-> 15 0 29 2981 topology 3060 2541
-> 16 0 29 2981 topology 3061 2541
-> 15 0 30 2981 topology 3061 2542
-> 16 0 30 2981 topology 3091 2542
-> 15 0 29 2981 topology 3009 2543
-> 16 0 29 2981 topology 3010 2543
-> 15 0 30 2981 topology 3010 2544
-> 16 0 30 2981 topology 3091 2544
-> 15 0 29 2981 topology 3066 2545
-> 16 0 29 2981 topology 3067 2545
-> 15 0 30 2981 topology 3067 2546
-> 16 0 30 2981 topology 3091 2546
-> 15 0 29 2981 topology 3015 2547
-> 16 0 29 2981 topology 3016 2547
-> 15 0 30 2981 topology 3016 2548
-> 16 0 30 2981 topology 3091 2548
-> 15 0 29 2981 topology 3072 2549
-> 16 0 29 2981 topology 3073 2549
-> 15 0 30 2981 topology 3073 2550
-> 16 0 30 2981 topology 3091 2550
-> 15 0 29 2981 topology 3078 2551
-> 16 0 29 2981 topology 3079 2551
-> 15 0 30 2981 topology 3079 2552
-> 16 0 30 2981 topology 3091 2552
-> 15 0 29 2981 topology 3024 2553
-> 16 0 29 2981 topology 3025 2553
-> 15 0 30 2981 topology 3025 2554
-> 16 0 30 2981 topology 3091 2554
-> 15 0 29 2981 topology 3081 2555
-> 16 0 29 2981 topology 3082 2555
-> 15 0 30 2981 topology 3082 2556
-> 16 0 30 2981 topology 3091 2556
-> 15 0 29 2981 topology 3030 2557
-> 16 0 29 2981 topology 3031 2557
-> 15 0 30 2981 topology 3031 2558
-> 16 0 30 2981 topology 3091 2558
-> 15 0 29 2981 topology 3087 2559
-> 16 0 29 2981 topology 3088 2559
-> 15 0 30 2981 topology 3088 2560
-> 16 0 30 2981 topology 3091 2560
-> 15 0 29 2981 topology 3036 2561
-> 16 0 29 2981 topology 3037 2561
-> 15 0 30 2981 topology 3037 2562
-> 16 0 30 2981 topology 3091 2562
-> 15 0 29 2981 topology 2985 2563
-> 16 0 29 2981 topology 2986 2563
-> 15 0 30 2981 topology 2986 2564
-> 16 0 30 2981 topology 3091 2564
-> 15 0 29 2981 topology 3042 2565
-> 16 0 29 2981 topology 3043 2565
-> 15 0 30 2981 topology 3043 2566
-> 16 0 30 2981 topology 3091 2566
-> 15 0 29 2981 topology 3048 2567
-> 16 0 29 2981 topology 3049 2567
-> 15 0 30 2981 topology 3049 2568
-> 16 0 30 2981 topology 3091 2568
-> 15 0 29 2981 topology 2994 2569
-> 16 0 29 2981 topology 2995 2569
-> 15 0 30 2981 topology 2995 2570
-> 16 0 30 2981 topology 3091 2570
-> 15 0 29 2981 topology 3051 2571
-> 16 0 29 2981 topology 3052 2571
-> 15 0 30 2981 topology 3052 2572
-> 16 0 30 2981 topology 3091 2572
-> 15 0 29 2981 topology 3000 2573
-> 16 0 29 2981 topology 3001 2573
-> 15 0 30 2981 topology 3001 2574
-> 16 0 30 2981 topology 3091 2574
-> 15 0 29 2981 topology 3057 2575
-> 16 0 29 2981 topology 3058 2575
-> 15 0 30 2981 topology 3058 2576
-> 16 0 30 2981 topology 3091 2576
-> 15 0 29 2981 topology 3006 2577
-> 16 0 29 2981 topology 3007 2577
-> 15 0 30 2981 topology 3007 2578
-> 16 0 30 2981 topology 3091 2578
-> 15 0 29 2981 topology 3063 2579
-> 16 0 29 2981 topology 3064 2579
-> 15 0 30 2981 topology 3064 2580
-> 16 0 30 2981 topology 3091 2580
-> 15 0 29 2981 topology 3012 2581
-> 16 0 29 2981 topology 3013 2581
-> 15 0 30 2981 topology 3013 2582
-> 16 0 30 2981 topology 3091 2582
-> 15 0 29 2981 topology 3069 2583
-> 16 0 29 2981 topology 3070 2583
-> 15 0 30 2981 topology 3070 2584
-> 16 0 30 2981 topology 3091 2584
-> 15 0 29 2981 topology 3018 2585
-> 16 0 29 2981 topology 3019 2585
-> 15 0 30 2981 topology 3019 2586
-> 16 0 30 2981 topology 3091 2586
-> 15 0 29 2981 topology 3075 2587
-> 16 0 29 2981 topology 3076 2587
-> 15 0 30 2981 topology 3076 2588
-> 16 0 30 2981 topology 3091 2588
-> 15 0 29 3293 topology 3306 2589
-> 16 0 29 3293 topology 3307 2589
-> 15 0 30 3293 topology 3307 2590
-> 16 0 30 3293 topology 3313 2590
-> 15 0 30 3293 topology 3313 2591
-> 16 0 30 3293 topology 3296 2591
-> 15 0 31 3293 topology 3296 2592
-> 16 0 31 3293 topology 3294 2592
-> 15 0 30 3293 topology 3313 2593
-> 16 0 30 3293 topology 3302 2593
-> 15 0 31 3293 topology 3302 2594
-> 16 0 31 3293 topology 3300 2594
-> 15 0 30 3293 topology 3313 2595
-> 16 0 30 3293 topology 3305 2595
-> 15 0 31 3293 topology 3305 2596
-> 16 0 31 3293 topology 3303 2596
-> 15 0 30 3293 topology 3313 2597
-> 16 0 30 3293 topology 3311 2597
-> 15 0 31 3293 topology 3311 2598
-> 16 0 31 3293 topology 3309 2598
-> 15 0 32 3293 topology 3313 2599
-> 16 0 32 3293 topology 3312 2599
-> 15 0 30 3293 topology 3313 2600
-> 16 0 30 3293 topology 3299 2600
-> 15 0 31 3293 topology 3299 2601
-> 16 0 31 3293 topology 3297 2601
-> 15 0 29 3293 topology 3294 2602
-> 16 0 29 3293 topology 3295 2602
-> 15 0 30 3293 topology 3295 2603
-> 16 0 30 3293 topology 3313 2603
-> 15 0 30 3293 topology 3313 2604
-> 16 0 30 3293 topology 3308 2604
-> 15 0 31 3293 topology 3308 2605
-> 16 0 31 3293 topology 3306 2605
-> 15 0 29 3293 topology 3300 2606
-> 16 0 29 3293 topology 3301 2606
-> 15 0 30 3293 topology 3301 2607
-> 16 0 30 3293 topology 3313 2607
-> 15 0 29 3293 topology 3303 2608
-> 16 0 29 3293 topology 3304 2608
-> 15 0 30 3293 topology 3304 2609
-> 16 0 30 3293 topology 3313 2609
-> 15 0 29 3293 topology 3309 2610
-> 16 0 29 3293 topology 3310 2610
-> 15 0 30 3293 topology 3310 2611
-> 16 0 30 3293 topology 3313 2611
-> 15 0 29 3293 topology 3297 2612
-> 16 0 29 3293 topology 3298 2612
-> 15 0 30 3293 topology 3298 2613
-> 16 0 30 3293 topology 3313 2613
-> 15 0 29 3203 topology 3210 2614
-> 16 0 29 3203 topology 3211 2614
-> 15 0 30 3203 topology 3211 2615
-> 16 0 30 3203 topology 3271 2615
-> 15 0 30 3203 topology 3271 2616
-> 16 0 30 3203 topology 3218 2616
-> 15 0 31 3203 topology 3218 2617
-> 16 0 31 3203 topology 3216 2617
-> 15 0 30 3203 topology 3271 2618
-> 16 0 30 3203 topology 3224 2618
-> 15 0 31 3203 topology 3224 2619
-> 16 0 31 3203 topology 3222 2619
-> 15 0 30 3203 topology 3271 2620
-> 16 0 30 3203 topology 3230 2620
-> 15 0 31 3203 topology 3230 2621
-> 16 0 31 3203 topology 3228 2621
-> 15 0 30 3203 topology 3271 2622
-> 16 0 30 3203 topology 3236 2622
-> 15 0 31 3203 topology 3236 2623
-> 16 0 31 3203 topology 3234 2623
-> 15 0 30 3203 topology 3271 2624
-> 16 0 30 3203 topology 3242 2624
-> 15 0 31 3203 topology 3242 2625
-> 16 0 31 3203 topology 3240 2625
-> 15 0 30 3203 topology 3271 2626
-> 16 0 30 3203 topology 3248 2626
-> 15 0 31 3203 topology 3248 2627
-> 16 0 31 3203 topology 3246 2627
-> 15 0 30 3203 topology 3271 2628
-> 16 0 30 3203 topology 3254 2628
-> 15 0 31 3203 topology 3254 2629
-> 16 0 31 3203 topology 3252 2629
-> 15 0 30 3203 topology 3271 2630
-> 16 0 30 3203 topology 3260 2630
-> 15 0 31 3203 topology 3260 2631
-> 16 0 31 3203 topology 3258 2631
-> 15 0 30 3203 topology 3271 2632
-> 16 0 30 3203 topology 3266 2632
-> 15 0 31 3203 topology 3266 2633
-> 16 0 31 3203 topology 3264 2633
-> 15 0 30 3203 topology 3271 2634
-> 16 0 30 3203 topology 3206 2634
-> 15 0 31 3203 topology 3206 2635
-> 16 0 31 3203 topology 3204 2635
-> 15 0 30 3203 topology 3271 2636
-> 16 0 30 3203 topology 3269 2636
-> 15 0 31 3203 topology 3269 2637
-> 16 0 31 3203 topology 3267 2637
-> 15 0 32 3203 topology 3271 2638
-> 16 0 32 3203 topology 3270 2638
-> 15 0 30 3203 topology 3271 2639
-> 16 0 30 3203 topology 3209 2639
-> 15 0 31 3203 topology 3209 2640
-> 16 0 31 3203 topology 3207 2640
-> 15 0 30 3203 topology 3271 2641
-> 16 0 30 3203 topology 3215 2641
-> 15 0 31 3203 topology 3215 2642
-> 16 0 31 3203 topology 3213 2642
-> 15 0 30 3203 topology 3271 2643
-> 16 0 30 3203 topology 3221 2643
-> 15 0 31 3203 topology 3221 2644
-> 16 0 31 3203 topology 3219 2644
-> 15 0 30 3203 topology 3271 2645
-> 16 0 30 3203 topology 3227 2645
-> 15 0 31 3203 topology 3227 2646
-> 16 0 31 3203 topology 3225 2646
-> 15 0 30 3203 topology 3271 2647
-> 16 0 30 3203 topology 3233 2647
-> 15 0 31 3203 topology 3233 2648
-> 16 0 31 3203 topology 3231 2648
-> 15 0 30 3203 topology 3271 2649
-> 16 0 30 3203 topology 3239 2649
-> 15 0 31 3203 topology 3239 2650
-> 16 0 31 3203 topology 3237 2650
-> 15 0 30 3203 topology 3271 2651
-> 16 0 30 3203 topology 3245 2651
-> 15 0 31 3203 topology 3245 2652
-> 16 0 31 3203 topology 3243 2652
-> 15 0 30 3203 topology 3271 2653
-> 16 0 30 3203 topology 3251 2653
-> 15 0 31 3203 topology 3251 2654
-> 16 0 31 3203 topology 3249 2654
-> 15 0 30 3203 topology 3271 2655
-> 16 0 30 3203 topology 3257 2655
-> 15 0 31 3203 topology 3257 2656
-> 16 0 31 3203 topology 3255 2656
-> 15 0 30 3203 topology 3271 2657
-> 16 0 30 3203 topology 3263 2657
-> 15 0 31 3203 topology 3263 2658
-> 16 0 31 3203 topology 3261 2658
-> 15 0 29 3203 topology 3216 2659
-> 16 0 29 3203 topology 3217 2659
-> 15 0 30 3203 topology 3217 2660
-> 16 0 30 3203 topology 3271 2660
-> 15 0 30 3203 topology 3271 2661
-> 16 0 30 3203 topology 3212 2661
-> 15 0 31 3203 topology 3212 2662
-> 16 0 31 3203 topology 3210 2662
-> 15 0 29 3203 topology 3222 2663
-> 16 0 29 3203 topology 3223 2663
-> 15 0 30 3203 topology 3223 2664
-> 16 0 30 3203 topology 3271 2664
-> 15 0 29 3203 topology 3228 2665
-> 16 0 29 3203 topology 3229 2665
-> 15 0 30 3203 topology 3229 2666
-> 16 0 30 3203 topology 3271 2666
-> 15 0 29 3203 topology 3234 2667
-> 16 0 29 3203 topology 3235 2667
-> 15 0 30 3203 topology 3235 2668
-> 16 0 30 3203 topology 3271 2668
-> 15 0 29 3203 topology 3240 2669
-> 16 0 29 3203 topology 3241 2669
-> 15 0 30 3203 topology 3241 2670
-> 16 0 30 3203 topology 3271 2670
-> 15 0 29 3203 topology 3246 2671
-> 16 0 29 3203 topology 3247 2671
-> 15 0 30 3203 topology 3247 2672
-> 16 0 30 3203 topology 3271 2672
-> 15 0 29 3203 topology 3252 2673
-> 16 0 29 3203 topology 3253 2673
-> 15 0 30 3203 topology 3253 2674
-> 16 0 30 3203 topology 3271 2674
-> 15 0 29 3203 topology 3258 2675
-> 16 0 29 3203 topology 3259 2675
-> 15 0 30 3203 topology 3259 2676
-> 16 0 30 3203 topology 3271 2676
-> 15 0 29 3203 topology 3264 2677
-> 16 0 29 3203 topology 3265 2677
-> 15 0 30 3203 topology 3265 2678
-> 16 0 30 3203 topology 3271 2678
-> 15 0 29 3203 topology 3204 2679
-> 16 0 29 3203 topology 3205 2679
-> 15 0 30 3203 topology 3205 2680
-> 16 0 30 3203 topology 3271 2680
-> 15 0 29 3203 topology 3267 2681
-> 16 0 29 3203 topology 3268 2681
-> 15 0 30 3203 topology 3268 2682
-> 16 0 30 3203 topology 3271 2682
-> 15 0 29 3203 topology 3207 2683
-> 16 0 29 3203 topology 3208 2683
-> 15 0 30 3203 topology 3208 2684
-> 16 0 30 3203 topology 3271 2684
-> 15 0 29 3203 topology 3213 2685
-> 16 0 29 3203 topology 3214 2685
-> 15 0 30 3203 topology 3214 2686
-> 16 0 30 3203 topology 3271 2686
-> 15 0 29 3203 topology 3219 2687
-> 16 0 29 3203 topology 3220 2687
-> 15 0 30 3203 topology 3220 2688
-> 16 0 30 3203 topology 3271 2688
-> 15 0 29 3203 topology 3225 2689
-> 16 0 29 3203 topology 3226 2689
-> 15 0 30 3203 topology 3226 2690
-> 16 0 30 3203 topology 3271 2690
+> 15 0 29 2795 topology 2850 2397
+> 16 0 29 2795 topology 2851 2397
+> 15 0 28 2795 topology 2894 2398
+> 16 0 28 2795 topology 2905 2398
+> 15 0 28 2795 topology 2870 2399
+> 16 0 28 2795 topology 2905 2399
+> 15 0 29 2795 topology 2898 2400
+> 16 0 29 2795 topology 2900 2400
+> 15 0 29 2795 topology 2826 2401
+> 16 0 29 2795 topology 2827 2401
+> 15 0 29 2795 topology 2880 2402
+> 16 0 29 2795 topology 2881 2402
+> 15 0 29 2795 topology 2802 2403
+> 16 0 29 2795 topology 2803 2403
+> 15 0 28 2795 topology 2812 2404
+> 16 0 28 2795 topology 2905 2404
+> 15 0 29 2795 topology 2856 2405
+> 16 0 29 2795 topology 2857 2405
+> 15 0 28 2795 topology 2842 2406
+> 16 0 28 2795 topology 2905 2406
+> 15 0 29 2795 topology 2832 2407
+> 16 0 29 2795 topology 2833 2407
+> 15 0 28 2795 topology 2872 2408
+> 16 0 28 2795 topology 2905 2408
+> 15 0 29 2795 topology 2886 2409
+> 16 0 29 2795 topology 2887 2409
+> 15 0 28 2795 topology 2902 2410
+> 16 0 28 2795 topology 2905 2410
+> 15 0 29 2795 topology 2808 2411
+> 16 0 29 2795 topology 2809 2411
+> 15 0 28 2795 topology 2824 2412
+> 16 0 28 2795 topology 2905 2412
+> 15 0 29 2795 topology 2862 2413
+> 16 0 29 2795 topology 2863 2413
+> 15 0 28 2795 topology 2854 2414
+> 16 0 28 2795 topology 2905 2414
+> 15 0 29 2795 topology 2838 2415
+> 16 0 29 2795 topology 2839 2415
+> 15 0 28 2795 topology 2884 2416
+> 16 0 28 2795 topology 2905 2416
+> 15 0 29 2795 topology 2892 2417
+> 16 0 29 2795 topology 2893 2417
+> 15 0 28 2795 topology 2806 2418
+> 16 0 28 2795 topology 2905 2418
+> 15 0 28 2795 topology 2836 2419
+> 16 0 28 2795 topology 2905 2419
+> 15 0 29 2795 topology 2868 2420
+> 16 0 29 2795 topology 2869 2420
+> 15 0 28 2795 topology 2866 2421
+> 16 0 28 2795 topology 2905 2421
+> 15 0 28 2795 topology 2896 2422
+> 16 0 28 2795 topology 2905 2422
+> 15 0 29 2795 topology 2898 2423
+> 16 0 29 2795 topology 2899 2423
+> 15 0 28 2795 topology 2813 2424
+> 16 0 28 2795 topology 2905 2424
+> 15 0 28 2795 topology 2873 2425
+> 16 0 28 2795 topology 2905 2425
+> 15 0 28 2795 topology 2849 2426
+> 16 0 28 2795 topology 2905 2426
+> 15 0 28 2795 topology 2825 2427
+> 16 0 28 2795 topology 2905 2427
+> 15 0 28 2795 topology 2801 2428
+> 16 0 28 2795 topology 2905 2428
+> 15 0 28 2795 topology 2885 2429
+> 16 0 28 2795 topology 2905 2429
+> 15 0 28 2795 topology 2861 2430
+> 16 0 28 2795 topology 2905 2430
+> 15 0 28 2795 topology 2837 2431
+> 16 0 28 2795 topology 2905 2431
+> 15 0 28 2795 topology 2897 2432
+> 16 0 28 2795 topology 2905 2432
+> 15 0 28 2795 topology 2821 2433
+> 16 0 28 2795 topology 2905 2433
+> 15 0 28 2795 topology 2851 2434
+> 16 0 28 2795 topology 2905 2434
+> 15 0 28 2795 topology 2881 2435
+> 16 0 28 2795 topology 2905 2435
+> 15 0 28 2795 topology 2803 2436
+> 16 0 28 2795 topology 2905 2436
+> 15 0 28 2795 topology 2833 2437
+> 16 0 28 2795 topology 2905 2437
+> 15 0 28 2795 topology 2863 2438
+> 16 0 28 2795 topology 2905 2438
+> 15 0 29 2795 topology 2841 2439
+> 16 0 29 2795 topology 2843 2439
+> 15 0 28 2795 topology 2893 2440
+> 16 0 28 2795 topology 2905 2440
+> 15 0 29 2795 topology 2844 2441
+> 16 0 29 2795 topology 2846 2441
+> 15 0 29 2795 topology 2847 2442
+> 16 0 29 2795 topology 2849 2442
+> 15 0 29 2795 topology 2901 2443
+> 16 0 29 2795 topology 2903 2443
+> 15 0 29 2981 topology 3033 2444
+> 16 0 29 2981 topology 3035 2444
+> 15 0 29 2981 topology 3087 2445
+> 16 0 29 2981 topology 3089 2445
+> 15 0 29 2981 topology 2982 2446
+> 16 0 29 2981 topology 2984 2446
+> 15 0 29 2981 topology 3036 2447
+> 16 0 29 2981 topology 3038 2447
+> 15 0 29 2981 topology 2991 2448
+> 16 0 29 2981 topology 2992 2448
+> 15 0 29 2981 topology 2985 2449
+> 16 0 29 2981 topology 2987 2449
+> 15 0 29 2981 topology 3039 2450
+> 16 0 29 2981 topology 3041 2450
+> 15 0 29 2981 topology 3021 2451
+> 16 0 29 2981 topology 3022 2451
+> 15 0 29 2981 topology 2988 2452
+> 16 0 29 2981 topology 2990 2452
+> 15 0 29 2981 topology 3042 2453
+> 16 0 29 2981 topology 3044 2453
+> 15 0 29 2981 topology 2997 2454
+> 16 0 29 2981 topology 2998 2454
+> 15 0 28 2981 topology 3023 2455
+> 16 0 28 2981 topology 3091 2455
+> 15 0 29 2981 topology 3051 2456
+> 16 0 29 2981 topology 3052 2456
+> 15 0 28 2981 topology 2999 2457
+> 16 0 28 2981 topology 3091 2457
+> 15 0 29 2981 topology 3045 2458
+> 16 0 29 2981 topology 3047 2458
+> 15 0 29 2981 topology 3027 2459
+> 16 0 29 2981 topology 3028 2459
+> 15 0 29 2981 topology 3081 2460
+> 16 0 29 2981 topology 3082 2460
+> 15 0 28 2981 topology 3083 2461
+> 16 0 28 2981 topology 3091 2461
+> 15 0 29 2981 topology 3048 2462
+> 16 0 29 2981 topology 3050 2462
+> 15 0 28 2981 topology 3059 2463
+> 16 0 28 2981 topology 3091 2463
+> 15 0 29 2981 topology 3003 2464
+> 16 0 29 2981 topology 3004 2464
+> 15 0 28 2981 topology 3035 2465
+> 16 0 28 2981 topology 3091 2465
+> 15 0 29 2981 topology 3057 2466
+> 16 0 29 2981 topology 3058 2466
+> 15 0 28 2981 topology 3011 2467
+> 16 0 28 2981 topology 3091 2467
+> 15 0 28 2981 topology 2987 2468
+> 16 0 28 2981 topology 3091 2468
+> 15 0 29 2981 topology 3033 2469
+> 16 0 29 2981 topology 3034 2469
+> 15 0 29 2981 topology 3087 2470
+> 16 0 29 2981 topology 3088 2470
+> 15 0 28 2981 topology 3071 2471
+> 16 0 28 2981 topology 3091 2471
+> 15 0 29 2981 topology 3009 2472
+> 16 0 29 2981 topology 3010 2472
+> 15 0 28 2981 topology 3047 2473
+> 16 0 28 2981 topology 3091 2473
+> 15 0 29 2981 topology 3063 2474
+> 16 0 29 2981 topology 3064 2474
+> 15 0 29 2981 topology 2985 2475
+> 16 0 29 2981 topology 2986 2475
+> 15 0 29 2981 topology 3039 2476
+> 16 0 29 2981 topology 3040 2476
+> 15 0 29 2981 topology 3015 2477
+> 16 0 29 2981 topology 3016 2477
+> 15 0 29 2981 topology 3069 2478
+> 16 0 29 2981 topology 3070 2478
+> 15 0 28 2981 topology 2995 2479
+> 16 0 28 2981 topology 3091 2479
+> 15 0 28 2981 topology 3025 2480
+> 16 0 28 2981 topology 3091 2480
+> 15 0 29 2981 topology 3045 2481
+> 16 0 29 2981 topology 3046 2481
+> 15 0 28 2981 topology 3055 2482
+> 16 0 28 2981 topology 3091 2482
+> 15 0 29 2981 topology 3075 2483
+> 16 0 29 2981 topology 3076 2483
+> 15 0 28 2981 topology 3085 2484
+> 16 0 28 2981 topology 3091 2484
+> 15 0 28 2981 topology 3007 2485
+> 16 0 28 2981 topology 3091 2485
+> 15 0 28 2981 topology 3037 2486
+> 16 0 28 2981 topology 3091 2486
+> 15 0 28 2981 topology 3067 2487
+> 16 0 28 2981 topology 3091 2487
+> 15 0 28 2981 topology 2989 2488
+> 16 0 28 2981 topology 3091 2488
+> 15 0 28 2981 topology 3019 2489
+> 16 0 28 2981 topology 3091 2489
+> 15 0 28 2981 topology 3049 2490
+> 16 0 28 2981 topology 3091 2490
+> 15 0 28 2981 topology 3079 2491
+> 16 0 28 2981 topology 3091 2491
+> 15 0 28 2981 topology 3026 2492
+> 16 0 28 2981 topology 3091 2492
+> 15 0 28 2981 topology 3002 2493
+> 16 0 28 2981 topology 3091 2493
+> 15 0 28 2981 topology 3086 2494
+> 16 0 28 2981 topology 3091 2494
+> 15 0 28 2981 topology 3062 2495
+> 16 0 28 2981 topology 3091 2495
+> 15 0 28 2981 topology 3038 2496
+> 16 0 28 2981 topology 3091 2496
+> 15 0 28 2981 topology 3014 2497
+> 16 0 28 2981 topology 3091 2497
+> 15 0 28 2981 topology 2990 2498
+> 16 0 28 2981 topology 3091 2498
+> 15 0 28 2981 topology 3074 2499
+> 16 0 28 2981 topology 3091 2499
+> 15 0 28 2981 topology 3050 2500
+> 16 0 28 2981 topology 3091 2500
+> 15 0 28 2981 topology 2992 2501
+> 16 0 28 2981 topology 3091 2501
+> 15 0 28 2981 topology 3022 2502
+> 16 0 28 2981 topology 3091 2502
+> 15 0 28 2981 topology 3052 2503
+> 16 0 28 2981 topology 3091 2503
+> 15 0 29 2981 topology 2991 2504
+> 16 0 29 2981 topology 2993 2504
+> 15 0 28 2981 topology 3082 2505
+> 16 0 28 2981 topology 3091 2505
+> 15 0 28 2981 topology 3004 2506
+> 16 0 28 2981 topology 3091 2506
+> 15 0 29 2981 topology 2994 2507
+> 16 0 29 2981 topology 2996 2507
+> 15 0 28 2981 topology 3034 2508
+> 16 0 28 2981 topology 3091 2508
+> 15 0 28 2981 topology 3064 2509
+> 16 0 28 2981 topology 3091 2509
+> 15 0 28 2981 topology 2986 2510
+> 16 0 28 2981 topology 3091 2510
+> 15 0 29 2981 topology 2997 2511
+> 16 0 29 2981 topology 2999 2511
+> 15 0 29 2981 topology 3051 2512
+> 16 0 29 2981 topology 3053 2512
+> 15 0 28 2981 topology 3016 2513
+> 16 0 28 2981 topology 3091 2513
+> 15 0 29 2981 topology 3000 2514
+> 16 0 29 2981 topology 3002 2514
+> 15 0 28 2981 topology 3046 2515
+> 16 0 28 2981 topology 3091 2515
+> 15 0 29 2981 topology 3054 2516
+> 16 0 29 2981 topology 3056 2516
+> 15 0 28 2981 topology 3076 2517
+> 16 0 28 2981 topology 3091 2517
+> 15 0 29 2981 topology 3003 2518
+> 16 0 29 2981 topology 3005 2518
+> 15 0 29 2981 topology 3057 2519
+> 16 0 29 2981 topology 3059 2519
+> 15 0 29 2981 topology 3006 2520
+> 16 0 29 2981 topology 3008 2520
+> 15 0 29 2981 topology 3060 2521
+> 16 0 29 2981 topology 3062 2521
+> 15 0 29 2981 topology 3009 2522
+> 16 0 29 2981 topology 3011 2522
+> 15 0 29 2981 topology 3063 2523
+> 16 0 29 2981 topology 3065 2523
+> 15 0 29 2981 topology 3012 2524
+> 16 0 29 2981 topology 3014 2524
+> 15 0 29 2981 topology 3066 2525
+> 16 0 29 2981 topology 3068 2525
+> 15 0 29 2981 topology 2994 2526
+> 16 0 29 2981 topology 2995 2526
+> 15 0 28 2981 topology 2993 2527
+> 16 0 28 2981 topology 3091 2527
+> 15 0 29 2981 topology 3015 2528
+> 16 0 29 2981 topology 3017 2528
+> 15 0 29 2981 topology 3069 2529
+> 16 0 29 2981 topology 3071 2529
+> 15 0 29 2981 topology 3024 2530
+> 16 0 29 2981 topology 3025 2530
+> 15 0 29 2981 topology 3018 2531
+> 16 0 29 2981 topology 3020 2531
+> 15 0 28 2981 topology 3053 2532
+> 16 0 28 2981 topology 3091 2532
+> 15 0 29 2981 topology 3072 2533
+> 16 0 29 2981 topology 3074 2533
+> 15 0 29 2981 topology 3000 2534
+> 16 0 29 2981 topology 3001 2534
+> 15 0 28 2981 topology 3029 2535
+> 16 0 28 2981 topology 3091 2535
+> 15 0 29 2981 topology 3054 2536
+> 16 0 29 2981 topology 3055 2536
+> 15 0 28 2981 topology 3005 2537
+> 16 0 28 2981 topology 3091 2537
+> 15 0 29 2981 topology 3075 2538
+> 16 0 29 2981 topology 3077 2538
+> 15 0 29 2981 topology 3030 2539
+> 16 0 29 2981 topology 3031 2539
+> 15 0 29 2981 topology 3084 2540
+> 16 0 29 2981 topology 3085 2540
+> 15 0 28 2981 topology 3089 2541
+> 16 0 28 2981 topology 3091 2541
+> 15 0 28 2981 topology 3065 2542
+> 16 0 28 2981 topology 3091 2542
+> 15 0 29 2981 topology 3078 2543
+> 16 0 29 2981 topology 3080 2543
+> 15 0 29 2981 topology 3006 2544
+> 16 0 29 2981 topology 3007 2544
+> 15 0 28 2981 topology 3041 2545
+> 16 0 28 2981 topology 3091 2545
+> 15 0 29 2981 topology 3060 2546
+> 16 0 29 2981 topology 3061 2546
+> 15 0 28 2981 topology 3017 2547
+> 16 0 28 2981 topology 3091 2547
+> 15 0 29 2981 topology 2982 2548
+> 16 0 29 2981 topology 2983 2548
+> 15 0 29 2981 topology 3036 2549
+> 16 0 29 2981 topology 3037 2549
+> 15 0 28 2981 topology 3077 2550
+> 16 0 28 2981 topology 3091 2550
+> 15 0 29 2981 topology 3012 2551
+> 16 0 29 2981 topology 3013 2551
+> 15 0 29 2981 topology 3066 2552
+> 16 0 29 2981 topology 3067 2552
+> 15 0 29 2981 topology 2988 2553
+> 16 0 29 2981 topology 2989 2553
+> 15 0 29 2981 topology 3042 2554
+> 16 0 29 2981 topology 3043 2554
+> 15 0 29 2981 topology 3018 2555
+> 16 0 29 2981 topology 3019 2555
+> 15 0 29 2981 topology 3072 2556
+> 16 0 29 2981 topology 3073 2556
+> 15 0 28 2981 topology 3001 2557
+> 16 0 28 2981 topology 3091 2557
+> 15 0 28 2981 topology 3031 2558
+> 16 0 28 2981 topology 3091 2558
+> 15 0 29 2981 topology 3048 2559
+> 16 0 29 2981 topology 3049 2559
+> 15 0 28 2981 topology 3061 2560
+> 16 0 28 2981 topology 3091 2560
+> 15 0 28 2981 topology 2983 2561
+> 16 0 28 2981 topology 3091 2561
+> 15 0 29 2981 topology 3078 2562
+> 16 0 29 2981 topology 3079 2562
+> 15 0 28 2981 topology 3013 2563
+> 16 0 28 2981 topology 3091 2563
+> 15 0 28 2981 topology 3043 2564
+> 16 0 28 2981 topology 3091 2564
+> 15 0 28 2981 topology 3073 2565
+> 16 0 28 2981 topology 3091 2565
+> 15 0 28 2981 topology 2996 2566
+> 16 0 28 2981 topology 3091 2566
+> 15 0 28 2981 topology 3056 2567
+> 16 0 28 2981 topology 3091 2567
+> 15 0 28 2981 topology 3032 2568
+> 16 0 28 2981 topology 3091 2568
+> 15 0 28 2981 topology 3008 2569
+> 16 0 28 2981 topology 3091 2569
+> 15 0 28 2981 topology 2984 2570
+> 16 0 28 2981 topology 3091 2570
+> 15 0 28 2981 topology 3068 2571
+> 16 0 28 2981 topology 3091 2571
+> 15 0 28 2981 topology 3044 2572
+> 16 0 28 2981 topology 3091 2572
+> 15 0 28 2981 topology 3020 2573
+> 16 0 28 2981 topology 3091 2573
+> 15 0 28 2981 topology 3080 2574
+> 16 0 28 2981 topology 3091 2574
+> 15 0 28 2981 topology 2998 2575
+> 16 0 28 2981 topology 3091 2575
+> 15 0 28 2981 topology 3028 2576
+> 16 0 28 2981 topology 3091 2576
+> 15 0 28 2981 topology 3058 2577
+> 16 0 28 2981 topology 3091 2577
+> 15 0 29 2981 topology 3021 2578
+> 16 0 29 2981 topology 3023 2578
+> 15 0 28 2981 topology 3088 2579
+> 16 0 28 2981 topology 3091 2579
+> 15 0 28 2981 topology 3010 2580
+> 16 0 28 2981 topology 3091 2580
+> 15 0 30 2981 topology 3090 2581
+> 16 0 30 2981 topology 3091 2581
+> 15 0 29 2981 topology 3024 2582
+> 16 0 29 2981 topology 3026 2582
+> 15 0 28 2981 topology 3040 2583
+> 16 0 28 2981 topology 3091 2583
+> 15 0 28 2981 topology 3070 2584
+> 16 0 28 2981 topology 3091 2584
+> 15 0 29 2981 topology 3027 2585
+> 16 0 29 2981 topology 3029 2585
+> 15 0 29 2981 topology 3081 2586
+> 16 0 29 2981 topology 3083 2586
+> 15 0 29 2981 topology 3030 2587
+> 16 0 29 2981 topology 3032 2587
+> 15 0 29 2981 topology 3084 2588
+> 16 0 29 2981 topology 3086 2588
+> 15 0 29 3293 topology 3294 2589
+> 16 0 29 3293 topology 3295 2589
+> 15 0 29 3293 topology 3300 2590
+> 16 0 29 3293 topology 3301 2590
+> 15 0 28 3293 topology 3302 2591
+> 16 0 28 3293 topology 3313 2591
+> 15 0 28 3293 topology 3304 2592
+> 16 0 28 3293 topology 3313 2592
+> 15 0 28 3293 topology 3298 2593
+> 16 0 28 3293 topology 3313 2593
+> 15 0 28 3293 topology 3305 2594
+> 16 0 28 3293 topology 3313 2594
+> 15 0 29 3293 topology 3303 2595
+> 16 0 29 3293 topology 3305 2595
+> 15 0 29 3293 topology 3306 2596
+> 16 0 29 3293 topology 3308 2596
+> 15 0 30 3293 topology 3312 2597
+> 16 0 30 3293 topology 3313 2597
+> 15 0 29 3293 topology 3309 2598
+> 16 0 29 3293 topology 3311 2598
+> 15 0 28 3293 topology 3295 2599
+> 16 0 28 3293 topology 3313 2599
+> 15 0 29 3293 topology 3303 2600
+> 16 0 29 3293 topology 3304 2600
+> 15 0 29 3293 topology 3309 2601
+> 16 0 29 3293 topology 3310 2601
+> 15 0 28 3293 topology 3308 2602
+> 16 0 28 3293 topology 3313 2602
+> 15 0 28 3293 topology 3296 2603
+> 16 0 28 3293 topology 3313 2603
+> 15 0 29 3293 topology 3297 2604
+> 16 0 29 3293 topology 3298 2604
+> 15 0 28 3293 topology 3310 2605
+> 16 0 28 3293 topology 3313 2605
+> 15 0 28 3293 topology 3311 2606
+> 16 0 28 3293 topology 3313 2606
+> 15 0 28 3293 topology 3299 2607
+> 16 0 28 3293 topology 3313 2607
+> 15 0 28 3293 topology 3307 2608
+> 16 0 28 3293 topology 3313 2608
+> 15 0 28 3293 topology 3301 2609
+> 16 0 28 3293 topology 3313 2609
+> 15 0 29 3293 topology 3294 2610
+> 16 0 29 3293 topology 3296 2610
+> 15 0 29 3293 topology 3297 2611
+> 16 0 29 3293 topology 3299 2611
+> 15 0 29 3293 topology 3306 2612
+> 16 0 29 3293 topology 3307 2612
+> 15 0 29 3293 topology 3300 2613
+> 16 0 29 3293 topology 3302 2613
+> 15 0 28 3203 topology 3242 2614
+> 16 0 28 3203 topology 3271 2614
+> 15 0 28 3203 topology 3254 2615
+> 16 0 28 3203 topology 3271 2615
+> 15 0 28 3203 topology 3266 2616
+> 16 0 28 3203 topology 3271 2616
+> 15 0 28 3203 topology 3215 2617
+> 16 0 28 3203 topology 3271 2617
+> 15 0 28 3203 topology 3238 2618
+> 16 0 28 3203 topology 3271 2618
+> 15 0 28 3203 topology 3227 2619
+> 16 0 28 3203 topology 3271 2619
+> 15 0 28 3203 topology 3268 2620
+> 16 0 28 3203 topology 3271 2620
+> 15 0 29 3203 topology 3237 2621
+> 16 0 29 3203 topology 3239 2621
+> 15 0 28 3203 topology 3250 2622
+> 16 0 28 3203 topology 3271 2622
+> 15 0 29 3203 topology 3240 2623
+> 16 0 29 3203 topology 3242 2623
+> 15 0 29 3203 topology 3243 2624
+> 16 0 29 3203 topology 3245 2624
+> 15 0 28 3203 topology 3262 2625
+> 16 0 28 3203 topology 3271 2625
+> 15 0 29 3203 topology 3246 2626
+> 16 0 29 3203 topology 3248 2626
+> 15 0 28 3203 topology 3217 2627
+> 16 0 28 3203 topology 3271 2627
+> 15 0 29 3203 topology 3249 2628
+> 16 0 29 3203 topology 3251 2628
+> 15 0 29 3203 topology 3252 2629
+> 16 0 29 3203 topology 3254 2629
+> 15 0 28 3203 topology 3229 2630
+> 16 0 28 3203 topology 3271 2630
+> 15 0 29 3203 topology 3255 2631
+> 16 0 29 3203 topology 3257 2631
+> 15 0 29 3203 topology 3237 2632
+> 16 0 29 3203 topology 3238 2632
+> 15 0 29 3203 topology 3258 2633
+> 16 0 29 3203 topology 3260 2633
+> 15 0 29 3203 topology 3267 2634
+> 16 0 29 3203 topology 3268 2634
+> 15 0 29 3203 topology 3261 2635
+> 16 0 29 3203 topology 3263 2635
+> 15 0 28 3203 topology 3269 2636
+> 16 0 28 3203 topology 3271 2636
+> 15 0 29 3203 topology 3243 2637
+> 16 0 29 3203 topology 3244 2637
+> 15 0 28 3203 topology 3245 2638
+> 16 0 28 3203 topology 3271 2638
+> 15 0 29 3203 topology 3264 2639
+> 16 0 29 3203 topology 3266 2639
+> 15 0 29 3203 topology 3249 2640
+> 16 0 29 3203 topology 3250 2640
+> 15 0 28 3203 topology 3257 2641
+> 16 0 28 3203 topology 3271 2641
+> 15 0 29 3203 topology 3255 2642
+> 16 0 29 3203 topology 3256 2642
+> 15 0 28 3203 topology 3218 2643
+> 16 0 28 3203 topology 3271 2643
+> 15 0 29 3203 topology 3261 2644
+> 16 0 29 3203 topology 3262 2644
+> 15 0 28 3203 topology 3230 2645
+> 16 0 28 3203 topology 3271 2645
+> 15 0 28 3203 topology 3206 2646
+> 16 0 28 3203 topology 3271 2646
+> 15 0 29 3203 topology 3210 2647
+> 16 0 29 3203 topology 3211 2647
+> 15 0 28 3203 topology 3247 2648
+> 16 0 28 3203 topology 3271 2648
+> 15 0 29 3203 topology 3204 2649
+> 16 0 29 3203 topology 3206 2649
+> 15 0 29 3203 topology 3216 2650
+> 16 0 29 3203 topology 3217 2650
+> 15 0 28 3203 topology 3259 2651
+> 16 0 28 3203 topology 3271 2651
+> 15 0 30 3203 topology 3270 2652
+> 16 0 30 3203 topology 3271 2652
+> 15 0 28 3203 topology 3214 2653
+> 16 0 28 3203 topology 3271 2653
+> 15 0 29 3203 topology 3222 2654
+> 16 0 29 3203 topology 3223 2654
+> 15 0 28 3203 topology 3226 2655
+> 16 0 28 3203 topology 3271 2655
+> 15 0 29 3203 topology 3228 2656
+> 16 0 29 3203 topology 3229 2656
+> 15 0 29 3203 topology 3204 2657
+> 16 0 29 3203 topology 3205 2657
+> 15 0 29 3203 topology 3234 2658
+> 16 0 29 3203 topology 3235 2658
+> 15 0 28 3203 topology 3248 2659
+> 16 0 28 3203 topology 3271 2659
+> 15 0 28 3203 topology 3260 2660
+> 16 0 28 3203 topology 3271 2660
+> 15 0 28 3203 topology 3209 2661
+> 16 0 28 3203 topology 3271 2661
+> 15 0 28 3203 topology 3221 2662
+> 16 0 28 3203 topology 3271 2662
+> 15 0 28 3203 topology 3244 2663
+> 16 0 28 3203 topology 3271 2663
+> 15 0 28 3203 topology 3233 2664
+> 16 0 28 3203 topology 3271 2664
+> 15 0 28 3203 topology 3256 2665
+> 16 0 28 3203 topology 3271 2665
+> 15 0 29 3203 topology 3267 2666
+> 16 0 29 3203 topology 3269 2666
+> 15 0 28 3203 topology 3211 2667
+> 16 0 28 3203 topology 3271 2667
+> 15 0 28 3203 topology 3223 2668
+> 16 0 28 3203 topology 3271 2668
+> 15 0 28 3203 topology 3205 2669
+> 16 0 28 3203 topology 3271 2669
+> 15 0 28 3203 topology 3235 2670
+> 16 0 28 3203 topology 3271 2670
+> 15 0 28 3203 topology 3239 2671
+> 16 0 28 3203 topology 3271 2671
+> 15 0 29 3203 topology 3240 2672
+> 16 0 29 3203 topology 3241 2672
+> 15 0 29 3203 topology 3207 2673
+> 16 0 29 3203 topology 3209 2673
+> 15 0 29 3203 topology 3210 2674
+> 16 0 29 3203 topology 3212 2674
+> 15 0 29 3203 topology 3246 2675
+> 16 0 29 3203 topology 3247 2675
+> 15 0 28 3203 topology 3251 2676
+> 16 0 28 3203 topology 3271 2676
+> 15 0 29 3203 topology 3213 2677
+> 16 0 29 3203 topology 3215 2677
+> 15 0 29 3203 topology 3216 2678
+> 16 0 29 3203 topology 3218 2678
+> 15 0 29 3203 topology 3252 2679
+> 16 0 29 3203 topology 3253 2679
+> 15 0 28 3203 topology 3263 2680
+> 16 0 28 3203 topology 3271 2680
+> 15 0 28 3203 topology 3212 2681
+> 16 0 28 3203 topology 3271 2681
+> 15 0 29 3203 topology 3219 2682
+> 16 0 29 3203 topology 3221 2682
+> 15 0 29 3203 topology 3222 2683
+> 16 0 29 3203 topology 3224 2683
+> 15 0 29 3203 topology 3258 2684
+> 16 0 29 3203 topology 3259 2684
+> 15 0 28 3203 topology 3224 2685
+> 16 0 28 3203 topology 3271 2685
+> 15 0 29 3203 topology 3225 2686
+> 16 0 29 3203 topology 3227 2686
+> 15 0 29 3203 topology 3207 2687
+> 16 0 29 3203 topology 3208 2687
+> 15 0 28 3203 topology 3241 2688
+> 16 0 28 3203 topology 3271 2688
+> 15 0 29 3203 topology 3228 2689
+> 16 0 29 3203 topology 3230 2689
+> 15 0 29 3203 topology 3264 2690
+> 16 0 29 3203 topology 3265 2690
 > 15 0 29 3203 topology 3231 2691
-> 16 0 29 3203 topology 3232 2691
-> 15 0 30 3203 topology 3232 2692
-> 16 0 30 3203 topology 3271 2692
-> 15 0 29 3203 topology 3237 2693
-> 16 0 29 3203 topology 3238 2693
-> 15 0 30 3203 topology 3238 2694
-> 16 0 30 3203 topology 3271 2694
-> 15 0 29 3203 topology 3243 2695
-> 16 0 29 3203 topology 3244 2695
-> 15 0 30 3203 topology 3244 2696
-> 16 0 30 3203 topology 3271 2696
-> 15 0 29 3203 topology 3249 2697
-> 16 0 29 3203 topology 3250 2697
-> 15 0 30 3203 topology 3250 2698
-> 16 0 30 3203 topology 3271 2698
-> 15 0 29 3203 topology 3255 2699
-> 16 0 29 3203 topology 3256 2699
-> 15 0 30 3203 topology 3256 2700
-> 16 0 30 3203 topology 3271 2700
-> 15 0 29 3203 topology 3261 2701
-> 16 0 29 3203 topology 3262 2701
-> 15 0 30 3203 topology 3262 2702
-> 16 0 30 3203 topology 3271 2702
-> 15 0 33 2462 topology 2571 2703
-> 16 0 33 2462 topology 2572 2703
-> 15 0 30 2462 topology 2572 2704
-> 16 0 30 2462 topology 2474 2704
-> 15 0 31 2462 topology 2474 2705
-> 16 0 31 2462 topology 2472 2705
-> 15 0 30 2462 topology 2572 2706
-> 16 0 30 2462 topology 2480 2706
-> 15 0 31 2462 topology 2480 2707
-> 16 0 31 2462 topology 2478 2707
-> 15 0 30 2462 topology 2572 2708
-> 16 0 30 2462 topology 2537 2708
-> 15 0 31 2462 topology 2537 2709
-> 16 0 31 2462 topology 2535 2709
-> 15 0 30 2462 topology 2572 2710
-> 16 0 30 2462 topology 2486 2710
-> 15 0 31 2462 topology 2486 2711
-> 16 0 31 2462 topology 2484 2711
-> 15 0 30 2462 topology 2572 2712
-> 16 0 30 2462 topology 2543 2712
-> 15 0 31 2462 topology 2543 2713
-> 16 0 31 2462 topology 2541 2713
-> 15 0 30 2462 topology 2572 2714
-> 16 0 30 2462 topology 2492 2714
-> 15 0 31 2462 topology 2492 2715
-> 16 0 31 2462 topology 2490 2715
-> 15 0 30 2462 topology 2572 2716
-> 16 0 30 2462 topology 2549 2716
-> 15 0 31 2462 topology 2549 2717
-> 16 0 31 2462 topology 2547 2717
-> 15 0 30 2462 topology 2572 2718
-> 16 0 30 2462 topology 2498 2718
-> 15 0 31 2462 topology 2498 2719
-> 16 0 31 2462 topology 2496 2719
-> 15 0 30 2462 topology 2572 2720
-> 16 0 30 2462 topology 2555 2720
-> 15 0 31 2462 topology 2555 2721
-> 16 0 31 2462 topology 2553 2721
-> 15 0 30 2462 topology 2572 2722
-> 16 0 30 2462 topology 2561 2722
-> 15 0 31 2462 topology 2561 2723
-> 16 0 31 2462 topology 2559 2723
-> 15 0 30 2462 topology 2572 2724
-> 16 0 30 2462 topology 2507 2724
-> 15 0 31 2462 topology 2507 2725
-> 16 0 31 2462 topology 2505 2725
-> 15 0 30 2462 topology 2572 2726
-> 16 0 30 2462 topology 2564 2726
-> 15 0 31 2462 topology 2564 2727
-> 16 0 31 2462 topology 2562 2727
-> 15 0 30 2462 topology 2572 2728
-> 16 0 30 2462 topology 2513 2728
-> 15 0 31 2462 topology 2513 2729
-> 16 0 31 2462 topology 2511 2729
-> 15 0 30 2462 topology 2572 2730
-> 16 0 30 2462 topology 2570 2730
-> 15 0 31 2462 topology 2570 2731
-> 16 0 31 2462 topology 2568 2731
-> 15 0 30 2462 topology 2572 2732
-> 16 0 30 2462 topology 2519 2732
-> 15 0 31 2462 topology 2519 2733
-> 16 0 31 2462 topology 2517 2733
-> 15 0 30 2462 topology 2572 2734
-> 16 0 30 2462 topology 2468 2734
-> 15 0 31 2462 topology 2468 2735
-> 16 0 31 2462 topology 2466 2735
-> 15 0 30 2462 topology 2572 2736
-> 16 0 30 2462 topology 2525 2736
-> 15 0 31 2462 topology 2525 2737
-> 16 0 31 2462 topology 2523 2737
-> 15 0 30 2462 topology 2572 2738
-> 16 0 30 2462 topology 2531 2738
-> 15 0 31 2462 topology 2531 2739
-> 16 0 31 2462 topology 2529 2739
-> 15 0 30 2462 topology 2572 2740
-> 16 0 30 2462 topology 2477 2740
-> 15 0 31 2462 topology 2477 2741
-> 16 0 31 2462 topology 2475 2741
-> 15 0 30 2462 topology 2572 2742
-> 16 0 30 2462 topology 2534 2742
-> 15 0 31 2462 topology 2534 2743
-> 16 0 31 2462 topology 2532 2743
-> 15 0 30 2462 topology 2572 2744
-> 16 0 30 2462 topology 2483 2744
-> 15 0 31 2462 topology 2483 2745
-> 16 0 31 2462 topology 2481 2745
-> 15 0 30 2462 topology 2572 2746
-> 16 0 30 2462 topology 2540 2746
-> 15 0 31 2462 topology 2540 2747
-> 16 0 31 2462 topology 2538 2747
-> 15 0 30 2462 topology 2572 2748
-> 16 0 30 2462 topology 2489 2748
-> 15 0 31 2462 topology 2489 2749
-> 16 0 31 2462 topology 2487 2749
-> 15 0 30 2462 topology 2572 2750
-> 16 0 30 2462 topology 2546 2750
-> 15 0 31 2462 topology 2546 2751
-> 16 0 31 2462 topology 2544 2751
-> 15 0 30 2462 topology 2572 2752
-> 16 0 30 2462 topology 2495 2752
-> 15 0 31 2462 topology 2495 2753
-> 16 0 31 2462 topology 2493 2753
-> 15 0 30 2462 topology 2572 2754
-> 16 0 30 2462 topology 2552 2754
-> 15 0 31 2462 topology 2552 2755
-> 16 0 31 2462 topology 2550 2755
-> 15 0 30 2462 topology 2572 2756
-> 16 0 30 2462 topology 2501 2756
-> 15 0 31 2462 topology 2501 2757
-> 16 0 31 2462 topology 2499 2757
-> 15 0 30 2462 topology 2572 2758
-> 16 0 30 2462 topology 2558 2758
-> 15 0 31 2462 topology 2558 2759
-> 16 0 31 2462 topology 2556 2759
-> 15 0 30 2462 topology 2572 2760
-> 16 0 30 2462 topology 2504 2760
-> 15 0 31 2462 topology 2504 2761
-> 16 0 31 2462 topology 2502 2761
-> 15 0 30 2462 topology 2572 2762
-> 16 0 30 2462 topology 2510 2762
-> 15 0 31 2462 topology 2510 2763
-> 16 0 31 2462 topology 2508 2763
-> 15 0 30 2462 topology 2572 2764
-> 16 0 30 2462 topology 2567 2764
-> 15 0 31 2462 topology 2567 2765
-> 16 0 31 2462 topology 2565 2765
-> 15 0 30 2462 topology 2572 2766
-> 16 0 30 2462 topology 2516 2766
-> 15 0 31 2462 topology 2516 2767
-> 16 0 31 2462 topology 2514 2767
-> 15 0 30 2462 topology 2572 2768
-> 16 0 30 2462 topology 2465 2768
-> 15 0 31 2462 topology 2465 2769
-> 16 0 31 2462 topology 2463 2769
-> 15 0 30 2462 topology 2572 2770
-> 16 0 30 2462 topology 2522 2770
-> 15 0 31 2462 topology 2522 2771
-> 16 0 31 2462 topology 2520 2771
-> 15 0 30 2462 topology 2572 2772
-> 16 0 30 2462 topology 2471 2772
-> 15 0 31 2462 topology 2471 2773
-> 16 0 31 2462 topology 2469 2773
-> 15 0 30 2462 topology 2572 2774
-> 16 0 30 2462 topology 2528 2774
-> 15 0 31 2462 topology 2528 2775
-> 16 0 31 2462 topology 2526 2775
-> 15 0 29 2462 topology 2472 2776
-> 16 0 29 2462 topology 2473 2776
-> 15 0 30 2462 topology 2473 2777
-> 16 0 30 2462 topology 2572 2777
+> 16 0 29 3203 topology 3233 2691
+> 15 0 28 3203 topology 3236 2692
+> 16 0 28 3203 topology 3271 2692
+> 15 0 29 3203 topology 3213 2693
+> 16 0 29 3203 topology 3214 2693
+> 15 0 28 3203 topology 3253 2694
+> 16 0 28 3203 topology 3271 2694
+> 15 0 29 3203 topology 3234 2695
+> 16 0 29 3203 topology 3236 2695
+> 15 0 28 3203 topology 3208 2696
+> 16 0 28 3203 topology 3271 2696
+> 15 0 29 3203 topology 3219 2697
+> 16 0 29 3203 topology 3220 2697
+> 15 0 28 3203 topology 3265 2698
+> 16 0 28 3203 topology 3271 2698
+> 15 0 28 3203 topology 3220 2699
+> 16 0 28 3203 topology 3271 2699
+> 15 0 29 3203 topology 3225 2700
+> 16 0 29 3203 topology 3226 2700
+> 15 0 28 3203 topology 3232 2701
+> 16 0 28 3203 topology 3271 2701
+> 15 0 29 3203 topology 3231 2702
+> 16 0 29 3203 topology 3232 2702
+> 15 0 28 2462 topology 2521 2703
+> 16 0 28 2462 topology 2572 2703
+> 15 0 28 2462 topology 2551 2704
+> 16 0 28 2462 topology 2572 2704
+> 15 0 29 2462 topology 2505 2705
+> 16 0 29 2462 topology 2506 2705
+> 15 0 29 2462 topology 2499 2706
+> 16 0 29 2462 topology 2501 2706
+> 15 0 29 2462 topology 2553 2707
+> 16 0 29 2462 topology 2555 2707
+> 15 0 29 2462 topology 2484 2708
+> 16 0 29 2462 topology 2485 2708
+> 15 0 29 2462 topology 2538 2709
+> 16 0 29 2462 topology 2539 2709
+> 15 0 29 2462 topology 2463 2710
+> 16 0 29 2462 topology 2464 2710
+> 15 0 29 2462 topology 2517 2711
+> 16 0 29 2462 topology 2518 2711
+> 15 0 28 2462 topology 2504 2712
+> 16 0 28 2462 topology 2572 2712
+> 15 0 28 2462 topology 2480 2713
+> 16 0 28 2462 topology 2572 2713
+> 15 0 29 2462 topology 2496 2714
+> 16 0 29 2462 topology 2497 2714
+> 15 0 29 2462 topology 2550 2715
+> 16 0 29 2462 topology 2551 2715
+> 15 0 28 2462 topology 2564 2716
+> 16 0 28 2462 topology 2572 2716
+> 15 0 28 2462 topology 2540 2717
+> 16 0 28 2462 topology 2572 2717
+> 15 0 29 2462 topology 2472 2718
+> 16 0 29 2462 topology 2474 2718
+> 15 0 28 2462 topology 2516 2719
+> 16 0 28 2462 topology 2572 2719
+> 15 0 28 2462 topology 2492 2720
+> 16 0 28 2462 topology 2572 2720
+> 15 0 29 2462 topology 2529 2721
+> 16 0 29 2462 topology 2530 2721
+> 15 0 28 2462 topology 2468 2722
+> 16 0 28 2462 topology 2572 2722
+> 15 0 28 2462 topology 2552 2723
+> 16 0 28 2462 topology 2572 2723
+> 15 0 29 2462 topology 2505 2724
+> 16 0 29 2462 topology 2507 2724
+> 15 0 28 2462 topology 2528 2725
+> 16 0 28 2462 topology 2572 2725
+> 15 0 29 2462 topology 2484 2726
+> 16 0 29 2462 topology 2486 2726
+> 15 0 29 2462 topology 2538 2727
+> 16 0 29 2462 topology 2540 2727
+> 15 0 28 2462 topology 2476 2728
+> 16 0 28 2462 topology 2572 2728
+> 15 0 28 2462 topology 2506 2729
+> 16 0 28 2462 topology 2572 2729
+> 15 0 28 2462 topology 2536 2730
+> 16 0 28 2462 topology 2572 2730
+> 15 0 29 2462 topology 2463 2731
+> 16 0 29 2462 topology 2465 2731
+> 15 0 29 2462 topology 2517 2732
+> 16 0 29 2462 topology 2519 2732
+> 15 0 28 2462 topology 2566 2733
+> 16 0 28 2462 topology 2572 2733
+> 15 0 28 2462 topology 2488 2734
+> 16 0 28 2462 topology 2572 2734
+> 15 0 28 2462 topology 2518 2735
+> 16 0 28 2462 topology 2572 2735
+> 15 0 29 2462 topology 2475 2736
+> 16 0 29 2462 topology 2476 2736
+> 15 0 28 2462 topology 2548 2737
+> 16 0 28 2462 topology 2572 2737
+> 15 0 28 2462 topology 2470 2738
+> 16 0 28 2462 topology 2572 2738
+> 15 0 29 2462 topology 2496 2739
+> 16 0 29 2462 topology 2498 2739
+> 15 0 29 2462 topology 2550 2740
+> 16 0 29 2462 topology 2552 2740
+> 15 0 28 2462 topology 2500 2741
+> 16 0 28 2462 topology 2572 2741
+> 15 0 28 2462 topology 2530 2742
+> 16 0 28 2462 topology 2572 2742
+> 15 0 29 2462 topology 2508 2743
+> 16 0 29 2462 topology 2509 2743
+> 15 0 28 2462 topology 2560 2744
+> 16 0 28 2462 topology 2572 2744
+> 15 0 29 2462 topology 2562 2745
+> 16 0 29 2462 topology 2563 2745
+> 15 0 29 2462 topology 2529 2746
+> 16 0 29 2462 topology 2531 2746
+> 15 0 29 2462 topology 2487 2747
+> 16 0 29 2462 topology 2488 2747
+> 15 0 29 2462 topology 2541 2748
+> 16 0 29 2462 topology 2542 2748
+> 15 0 29 2462 topology 2466 2749
+> 16 0 29 2462 topology 2467 2749
+> 15 0 29 2462 topology 2520 2750
+> 16 0 29 2462 topology 2521 2750
+> 15 0 28 2462 topology 2507 2751
+> 16 0 28 2462 topology 2572 2751
+> 15 0 28 2462 topology 2483 2752
+> 16 0 28 2462 topology 2572 2752
+> 15 0 29 2462 topology 2499 2753
+> 16 0 29 2462 topology 2500 2753
+> 15 0 29 2462 topology 2553 2754
+> 16 0 29 2462 topology 2554 2754
+> 15 0 28 2462 topology 2567 2755
+> 16 0 28 2462 topology 2572 2755
+> 15 0 28 2462 topology 2543 2756
+> 16 0 28 2462 topology 2572 2756
+> 15 0 28 2462 topology 2519 2757
+> 16 0 28 2462 topology 2572 2757
+> 15 0 28 2462 topology 2495 2758
+> 16 0 28 2462 topology 2572 2758
+> 15 0 29 2462 topology 2502 2759
+> 16 0 29 2462 topology 2504 2759
+> 15 0 28 2462 topology 2471 2760
+> 16 0 28 2462 topology 2572 2760
+> 15 0 28 2462 topology 2555 2761
+> 16 0 28 2462 topology 2572 2761
+> 15 0 28 2462 topology 2531 2762
+> 16 0 28 2462 topology 2572 2762
+> 15 0 29 2462 topology 2481 2763
+> 16 0 29 2462 topology 2483 2763
+> 15 0 29 2462 topology 2535 2764
+> 16 0 29 2462 topology 2537 2764
+> 15 0 28 2462 topology 2473 2765
+> 16 0 28 2462 topology 2572 2765
+> 15 0 28 2462 topology 2503 2766
+> 16 0 28 2462 topology 2572 2766
+> 15 0 29 2462 topology 2514 2767
+> 16 0 29 2462 topology 2516 2767
+> 15 0 28 2462 topology 2533 2768
+> 16 0 28 2462 topology 2572 2768
+> 15 0 29 2462 topology 2568 2769
+> 16 0 29 2462 topology 2570 2769
+> 15 0 28 2462 topology 2563 2770
+> 16 0 28 2462 topology 2572 2770
+> 15 0 28 2462 topology 2485 2771
+> 16 0 28 2462 topology 2572 2771
+> 15 0 28 2462 topology 2515 2772
+> 16 0 28 2462 topology 2572 2772
+> 15 0 29 2462 topology 2493 2773
+> 16 0 29 2462 topology 2495 2773
+> 15 0 28 2462 topology 2545 2774
+> 16 0 28 2462 topology 2572 2774
+> 15 0 29 2462 topology 2547 2775
+> 16 0 29 2462 topology 2549 2775
+> 15 0 28 2462 topology 2467 2776
+> 16 0 28 2462 topology 2572 2776
+> 15 0 28 2462 topology 2497 2777
+> 16 0 28 2462 topology 2572 2777
 > 15 0 29 2462 topology 2478 2778
 > 16 0 29 2462 topology 2479 2778
-> 15 0 30 2462 topology 2479 2779
-> 16 0 30 2462 topology 2572 2779
-> 15 0 29 2462 topology 2535 2780
-> 16 0 29 2462 topology 2536 2780
-> 15 0 30 2462 topology 2536 2781
-> 16 0 30 2462 topology 2572 2781
-> 15 0 29 2462 topology 2484 2782
-> 16 0 29 2462 topology 2485 2782
-> 15 0 30 2462 topology 2485 2783
-> 16 0 30 2462 topology 2572 2783
-> 15 0 29 2462 topology 2541 2784
-> 16 0 29 2462 topology 2542 2784
-> 15 0 30 2462 topology 2542 2785
-> 16 0 30 2462 topology 2572 2785
+> 15 0 28 2462 topology 2527 2779
+> 16 0 28 2462 topology 2572 2779
+> 15 0 29 2462 topology 2532 2780
+> 16 0 29 2462 topology 2533 2780
+> 15 0 29 2462 topology 2526 2781
+> 16 0 29 2462 topology 2528 2781
+> 15 0 28 2462 topology 2557 2782
+> 16 0 28 2462 topology 2572 2782
+> 15 0 29 2462 topology 2511 2783
+> 16 0 29 2462 topology 2512 2783
+> 15 0 29 2462 topology 2565 2784
+> 16 0 29 2462 topology 2566 2784
+> 15 0 29 2462 topology 2559 2785
+> 16 0 29 2462 topology 2561 2785
 > 15 0 29 2462 topology 2490 2786
 > 16 0 29 2462 topology 2491 2786
-> 15 0 30 2462 topology 2491 2787
-> 16 0 30 2462 topology 2572 2787
-> 15 0 29 2462 topology 2547 2788
-> 16 0 29 2462 topology 2548 2788
-> 15 0 30 2462 topology 2548 2789
-> 16 0 30 2462 topology 2572 2789
-> 15 0 29 2462 topology 2496 2790
-> 16 0 29 2462 topology 2497 2790
-> 15 0 30 2462 topology 2497 2791
-> 16 0 30 2462 topology 2572 2791
-> 15 0 29 2462 topology 2553 2792
-> 16 0 29 2462 topology 2554 2792
-> 15 0 30 2462 topology 2554 2793
+> 15 0 29 2462 topology 2544 2787
+> 16 0 29 2462 topology 2545 2787
+> 15 0 28 2462 topology 2474 2788
+> 16 0 28 2462 topology 2572 2788
+> 15 0 29 2462 topology 2469 2789
+> 16 0 29 2462 topology 2470 2789
+> 15 0 29 2462 topology 2523 2790
+> 16 0 29 2462 topology 2524 2790
+> 15 0 28 2462 topology 2534 2791
+> 16 0 28 2462 topology 2572 2791
+> 15 0 28 2462 topology 2510 2792
+> 16 0 28 2462 topology 2572 2792
+> 15 0 30 2462 topology 2571 2793
 > 16 0 30 2462 topology 2572 2793
-> 15 0 29 2462 topology 2559 2794
-> 16 0 29 2462 topology 2560 2794
-> 15 0 30 2462 topology 2560 2795
-> 16 0 30 2462 topology 2572 2795
-> 15 0 29 2462 topology 2505 2796
-> 16 0 29 2462 topology 2506 2796
-> 15 0 30 2462 topology 2506 2797
-> 16 0 30 2462 topology 2572 2797
-> 15 0 29 2462 topology 2562 2798
-> 16 0 29 2462 topology 2563 2798
-> 15 0 30 2462 topology 2563 2799
-> 16 0 30 2462 topology 2572 2799
-> 15 0 29 2462 topology 2511 2800
-> 16 0 29 2462 topology 2512 2800
-> 15 0 30 2462 topology 2512 2801
-> 16 0 30 2462 topology 2572 2801
-> 15 0 29 2462 topology 2568 2802
-> 16 0 29 2462 topology 2569 2802
-> 15 0 30 2462 topology 2569 2803
-> 16 0 30 2462 topology 2572 2803
-> 15 0 29 2462 topology 2517 2804
-> 16 0 29 2462 topology 2518 2804
-> 15 0 30 2462 topology 2518 2805
-> 16 0 30 2462 topology 2572 2805
-> 15 0 29 2462 topology 2466 2806
-> 16 0 29 2462 topology 2467 2806
-> 15 0 30 2462 topology 2467 2807
-> 16 0 30 2462 topology 2572 2807
-> 15 0 29 2462 topology 2523 2808
-> 16 0 29 2462 topology 2524 2808
-> 15 0 30 2462 topology 2524 2809
-> 16 0 30 2462 topology 2572 2809
-> 15 0 29 2462 topology 2529 2810
-> 16 0 29 2462 topology 2530 2810
-> 15 0 30 2462 topology 2530 2811
-> 16 0 30 2462 topology 2572 2811
-> 15 0 29 2462 topology 2475 2812
-> 16 0 29 2462 topology 2476 2812
-> 15 0 30 2462 topology 2476 2813
-> 16 0 30 2462 topology 2572 2813
-> 15 0 29 2462 topology 2532 2814
-> 16 0 29 2462 topology 2533 2814
-> 15 0 30 2462 topology 2533 2815
-> 16 0 30 2462 topology 2572 2815
-> 15 0 29 2462 topology 2481 2816
-> 16 0 29 2462 topology 2482 2816
-> 15 0 30 2462 topology 2482 2817
-> 16 0 30 2462 topology 2572 2817
-> 15 0 29 2462 topology 2538 2818
-> 16 0 29 2462 topology 2539 2818
-> 15 0 30 2462 topology 2539 2819
-> 16 0 30 2462 topology 2572 2819
-> 15 0 29 2462 topology 2487 2820
-> 16 0 29 2462 topology 2488 2820
-> 15 0 30 2462 topology 2488 2821
-> 16 0 30 2462 topology 2572 2821
-> 15 0 29 2462 topology 2544 2822
-> 16 0 29 2462 topology 2545 2822
-> 15 0 30 2462 topology 2545 2823
-> 16 0 30 2462 topology 2572 2823
-> 15 0 29 2462 topology 2493 2824
-> 16 0 29 2462 topology 2494 2824
-> 15 0 30 2462 topology 2494 2825
-> 16 0 30 2462 topology 2572 2825
-> 15 0 29 2462 topology 2550 2826
-> 16 0 29 2462 topology 2551 2826
-> 15 0 30 2462 topology 2551 2827
-> 16 0 30 2462 topology 2572 2827
-> 15 0 29 2462 topology 2499 2828
-> 16 0 29 2462 topology 2500 2828
-> 15 0 30 2462 topology 2500 2829
-> 16 0 30 2462 topology 2572 2829
-> 15 0 29 2462 topology 2556 2830
-> 16 0 29 2462 topology 2557 2830
-> 15 0 30 2462 topology 2557 2831
-> 16 0 30 2462 topology 2572 2831
-> 15 0 29 2462 topology 2502 2832
-> 16 0 29 2462 topology 2503 2832
-> 15 0 30 2462 topology 2503 2833
-> 16 0 30 2462 topology 2572 2833
-> 15 0 29 2462 topology 2508 2834
-> 16 0 29 2462 topology 2509 2834
-> 15 0 30 2462 topology 2509 2835
-> 16 0 30 2462 topology 2572 2835
-> 15 0 29 2462 topology 2565 2836
-> 16 0 29 2462 topology 2566 2836
-> 15 0 30 2462 topology 2566 2837
-> 16 0 30 2462 topology 2572 2837
-> 15 0 29 2462 topology 2514 2838
-> 16 0 29 2462 topology 2515 2838
-> 15 0 30 2462 topology 2515 2839
-> 16 0 30 2462 topology 2572 2839
-> 15 0 29 2462 topology 2463 2840
-> 16 0 29 2462 topology 2464 2840
-> 15 0 30 2462 topology 2464 2841
-> 16 0 30 2462 topology 2572 2841
-> 15 0 29 2462 topology 2520 2842
-> 16 0 29 2462 topology 2521 2842
-> 15 0 30 2462 topology 2521 2843
-> 16 0 30 2462 topology 2572 2843
-> 15 0 29 2462 topology 2469 2844
-> 16 0 29 2462 topology 2470 2844
-> 15 0 30 2462 topology 2470 2845
-> 16 0 30 2462 topology 2572 2845
-> 15 0 29 2462 topology 2526 2846
-> 16 0 29 2462 topology 2527 2846
-> 15 0 30 2462 topology 2527 2847
-> 16 0 30 2462 topology 2572 2847
-> 15 0 29 2684 topology 2691 2848
-> 16 0 29 2684 topology 2692 2848
-> 15 0 30 2684 topology 2692 2849
-> 16 0 30 2684 topology 2794 2849
-> 15 0 30 2684 topology 2794 2850
-> 16 0 30 2684 topology 2750 2850
-> 15 0 31 2684 topology 2750 2851
-> 16 0 31 2684 topology 2748 2851
-> 15 0 30 2684 topology 2794 2852
-> 16 0 30 2684 topology 2699 2852
-> 15 0 31 2684 topology 2699 2853
-> 16 0 31 2684 topology 2697 2853
-> 15 0 30 2684 topology 2794 2854
-> 16 0 30 2684 topology 2756 2854
-> 15 0 31 2684 topology 2756 2855
-> 16 0 31 2684 topology 2754 2855
-> 15 0 30 2684 topology 2794 2856
-> 16 0 30 2684 topology 2705 2856
-> 15 0 31 2684 topology 2705 2857
-> 16 0 31 2684 topology 2703 2857
-> 15 0 30 2684 topology 2794 2858
-> 16 0 30 2684 topology 2762 2858
-> 15 0 31 2684 topology 2762 2859
-> 16 0 31 2684 topology 2760 2859
-> 15 0 30 2684 topology 2794 2860
-> 16 0 30 2684 topology 2711 2860
-> 15 0 31 2684 topology 2711 2861
-> 16 0 31 2684 topology 2709 2861
-> 15 0 30 2684 topology 2794 2862
-> 16 0 30 2684 topology 2768 2862
-> 15 0 31 2684 topology 2768 2863
-> 16 0 31 2684 topology 2766 2863
-> 15 0 30 2684 topology 2794 2864
-> 16 0 30 2684 topology 2717 2864
-> 15 0 31 2684 topology 2717 2865
-> 16 0 31 2684 topology 2715 2865
-> 15 0 30 2684 topology 2794 2866
-> 16 0 30 2684 topology 2774 2866
-> 15 0 31 2684 topology 2774 2867
-> 16 0 31 2684 topology 2772 2867
-> 15 0 30 2684 topology 2794 2868
-> 16 0 30 2684 topology 2720 2868
-> 15 0 31 2684 topology 2720 2869
-> 16 0 31 2684 topology 2718 2869
-> 15 0 30 2684 topology 2794 2870
-> 16 0 30 2684 topology 2726 2870
-> 15 0 31 2684 topology 2726 2871
-> 16 0 31 2684 topology 2724 2871
-> 15 0 30 2684 topology 2794 2872
-> 16 0 30 2684 topology 2783 2872
-> 15 0 31 2684 topology 2783 2873
-> 16 0 31 2684 topology 2781 2873
-> 15 0 30 2684 topology 2794 2874
-> 16 0 30 2684 topology 2732 2874
-> 15 0 31 2684 topology 2732 2875
-> 16 0 31 2684 topology 2730 2875
-> 15 0 30 2684 topology 2794 2876
-> 16 0 30 2684 topology 2789 2876
-> 15 0 31 2684 topology 2789 2877
-> 16 0 31 2684 topology 2787 2877
-> 15 0 30 2684 topology 2794 2878
-> 16 0 30 2684 topology 2738 2878
-> 15 0 31 2684 topology 2738 2879
-> 16 0 31 2684 topology 2736 2879
-> 15 0 30 2684 topology 2794 2880
-> 16 0 30 2684 topology 2687 2880
-> 15 0 31 2684 topology 2687 2881
-> 16 0 31 2684 topology 2685 2881
-> 15 0 30 2684 topology 2794 2882
-> 16 0 30 2684 topology 2744 2882
-> 15 0 31 2684 topology 2744 2883
-> 16 0 31 2684 topology 2742 2883
-> 15 0 30 2684 topology 2794 2884
-> 16 0 30 2684 topology 2690 2884
-> 15 0 31 2684 topology 2690 2885
-> 16 0 31 2684 topology 2688 2885
-> 15 0 30 2684 topology 2794 2886
-> 16 0 30 2684 topology 2696 2886
-> 15 0 31 2684 topology 2696 2887
-> 16 0 31 2684 topology 2694 2887
-> 15 0 30 2684 topology 2794 2888
-> 16 0 30 2684 topology 2753 2888
-> 15 0 31 2684 topology 2753 2889
-> 16 0 31 2684 topology 2751 2889
-> 15 0 30 2684 topology 2794 2890
-> 16 0 30 2684 topology 2702 2890
-> 15 0 31 2684 topology 2702 2891
-> 16 0 31 2684 topology 2700 2891
-> 15 0 30 2684 topology 2794 2892
-> 16 0 30 2684 topology 2759 2892
-> 15 0 31 2684 topology 2759 2893
-> 16 0 31 2684 topology 2757 2893
-> 15 0 30 2684 topology 2794 2894
-> 16 0 30 2684 topology 2708 2894
-> 15 0 31 2684 topology 2708 2895
-> 16 0 31 2684 topology 2706 2895
-> 15 0 32 2684 topology 2794 2896
-> 16 0 32 2684 topology 2793 2896
-> 15 0 30 2684 topology 2794 2897
-> 16 0 30 2684 topology 2765 2897
-> 15 0 31 2684 topology 2765 2898
-> 16 0 31 2684 topology 2763 2898
-> 15 0 30 2684 topology 2794 2899
-> 16 0 30 2684 topology 2714 2899
-> 15 0 31 2684 topology 2714 2900
-> 16 0 31 2684 topology 2712 2900
-> 15 0 30 2684 topology 2794 2901
-> 16 0 30 2684 topology 2771 2901
-> 15 0 31 2684 topology 2771 2902
-> 16 0 31 2684 topology 2769 2902
-> 15 0 30 2684 topology 2794 2903
-> 16 0 30 2684 topology 2777 2903
-> 15 0 31 2684 topology 2777 2904
-> 16 0 31 2684 topology 2775 2904
-> 15 0 30 2684 topology 2794 2905
-> 16 0 30 2684 topology 2723 2905
-> 15 0 31 2684 topology 2723 2906
-> 16 0 31 2684 topology 2721 2906
-> 15 0 30 2684 topology 2794 2907
-> 16 0 30 2684 topology 2780 2907
-> 15 0 31 2684 topology 2780 2908
-> 16 0 31 2684 topology 2778 2908
-> 15 0 30 2684 topology 2794 2909
-> 16 0 30 2684 topology 2729 2909
-> 15 0 31 2684 topology 2729 2910
-> 16 0 31 2684 topology 2727 2910
-> 15 0 30 2684 topology 2794 2911
-> 16 0 30 2684 topology 2786 2911
-> 15 0 31 2684 topology 2786 2912
-> 16 0 31 2684 topology 2784 2912
-> 15 0 30 2684 topology 2794 2913
-> 16 0 30 2684 topology 2735 2913
-> 15 0 31 2684 topology 2735 2914
-> 16 0 31 2684 topology 2733 2914
-> 15 0 30 2684 topology 2794 2915
-> 16 0 30 2684 topology 2792 2915
-> 15 0 31 2684 topology 2792 2916
-> 16 0 31 2684 topology 2790 2916
-> 15 0 30 2684 topology 2794 2917
-> 16 0 30 2684 topology 2741 2917
-> 15 0 31 2684 topology 2741 2918
-> 16 0 31 2684 topology 2739 2918
-> 15 0 30 2684 topology 2794 2919
-> 16 0 30 2684 topology 2747 2919
-> 15 0 31 2684 topology 2747 2920
-> 16 0 31 2684 topology 2745 2920
-> 15 0 29 2684 topology 2748 2921
-> 16 0 29 2684 topology 2749 2921
-> 15 0 30 2684 topology 2749 2922
-> 16 0 30 2684 topology 2794 2922
-> 15 0 30 2684 topology 2794 2923
-> 16 0 30 2684 topology 2693 2923
-> 15 0 31 2684 topology 2693 2924
-> 16 0 31 2684 topology 2691 2924
-> 15 0 29 2684 topology 2697 2925
-> 16 0 29 2684 topology 2698 2925
-> 15 0 30 2684 topology 2698 2926
-> 16 0 30 2684 topology 2794 2926
-> 15 0 29 2684 topology 2754 2927
-> 16 0 29 2684 topology 2755 2927
-> 15 0 30 2684 topology 2755 2928
-> 16 0 30 2684 topology 2794 2928
-> 15 0 29 2684 topology 2703 2929
-> 16 0 29 2684 topology 2704 2929
-> 15 0 30 2684 topology 2704 2930
-> 16 0 30 2684 topology 2794 2930
-> 15 0 29 2684 topology 2760 2931
-> 16 0 29 2684 topology 2761 2931
-> 15 0 30 2684 topology 2761 2932
-> 16 0 30 2684 topology 2794 2932
-> 15 0 29 2684 topology 2709 2933
-> 16 0 29 2684 topology 2710 2933
-> 15 0 30 2684 topology 2710 2934
-> 16 0 30 2684 topology 2794 2934
-> 15 0 29 2684 topology 2766 2935
-> 16 0 29 2684 topology 2767 2935
-> 15 0 30 2684 topology 2767 2936
-> 16 0 30 2684 topology 2794 2936
-> 15 0 29 2684 topology 2715 2937
-> 16 0 29 2684 topology 2716 2937
-> 15 0 30 2684 topology 2716 2938
-> 16 0 30 2684 topology 2794 2938
-> 15 0 29 2684 topology 2772 2939
-> 16 0 29 2684 topology 2773 2939
-> 15 0 30 2684 topology 2773 2940
-> 16 0 30 2684 topology 2794 2940
-> 15 0 29 2684 topology 2718 2941
-> 16 0 29 2684 topology 2719 2941
-> 15 0 30 2684 topology 2719 2942
-> 16 0 30 2684 topology 2794 2942
-> 15 0 29 2684 topology 2724 2943
-> 16 0 29 2684 topology 2725 2943
-> 15 0 30 2684 topology 2725 2944
-> 16 0 30 2684 topology 2794 2944
-> 15 0 29 2684 topology 2781 2945
-> 16 0 29 2684 topology 2782 2945
-> 15 0 30 2684 topology 2782 2946
-> 16 0 30 2684 topology 2794 2946
-> 15 0 29 2684 topology 2730 2947
-> 16 0 29 2684 topology 2731 2947
-> 15 0 30 2684 topology 2731 2948
-> 16 0 30 2684 topology 2794 2948
-> 15 0 29 2684 topology 2787 2949
-> 16 0 29 2684 topology 2788 2949
-> 15 0 30 2684 topology 2788 2950
-> 16 0 30 2684 topology 2794 2950
-> 15 0 29 2684 topology 2736 2951
-> 16 0 29 2684 topology 2737 2951
-> 15 0 30 2684 topology 2737 2952
-> 16 0 30 2684 topology 2794 2952
-> 15 0 29 2684 topology 2685 2953
-> 16 0 29 2684 topology 2686 2953
-> 15 0 30 2684 topology 2686 2954
-> 16 0 30 2684 topology 2794 2954
-> 15 0 29 2684 topology 2742 2955
-> 16 0 29 2684 topology 2743 2955
-> 15 0 30 2684 topology 2743 2956
-> 16 0 30 2684 topology 2794 2956
-> 15 0 29 2684 topology 2688 2957
-> 16 0 29 2684 topology 2689 2957
-> 15 0 30 2684 topology 2689 2958
-> 16 0 30 2684 topology 2794 2958
-> 15 0 29 2684 topology 2694 2959
-> 16 0 29 2684 topology 2695 2959
-> 15 0 30 2684 topology 2695 2960
-> 16 0 30 2684 topology 2794 2960
-> 15 0 29 2684 topology 2751 2961
-> 16 0 29 2684 topology 2752 2961
-> 15 0 30 2684 topology 2752 2962
-> 16 0 30 2684 topology 2794 2962
-> 15 0 29 2684 topology 2700 2963
-> 16 0 29 2684 topology 2701 2963
-> 15 0 30 2684 topology 2701 2964
-> 16 0 30 2684 topology 2794 2964
-> 15 0 29 2684 topology 2757 2965
-> 16 0 29 2684 topology 2758 2965
-> 15 0 30 2684 topology 2758 2966
-> 16 0 30 2684 topology 2794 2966
-> 15 0 29 2684 topology 2706 2967
-> 16 0 29 2684 topology 2707 2967
-> 15 0 30 2684 topology 2707 2968
-> 16 0 30 2684 topology 2794 2968
-> 15 0 29 2684 topology 2763 2969
-> 16 0 29 2684 topology 2764 2969
-> 15 0 30 2684 topology 2764 2970
-> 16 0 30 2684 topology 2794 2970
-> 15 0 29 2684 topology 2712 2971
-> 16 0 29 2684 topology 2713 2971
-> 15 0 30 2684 topology 2713 2972
-> 16 0 30 2684 topology 2794 2972
-> 15 0 29 2684 topology 2769 2973
-> 16 0 29 2684 topology 2770 2973
-> 15 0 30 2684 topology 2770 2974
-> 16 0 30 2684 topology 2794 2974
-> 15 0 29 2684 topology 2775 2975
-> 16 0 29 2684 topology 2776 2975
-> 15 0 30 2684 topology 2776 2976
-> 16 0 30 2684 topology 2794 2976
-> 15 0 29 2684 topology 2721 2977
-> 16 0 29 2684 topology 2722 2977
-> 15 0 30 2684 topology 2722 2978
-> 16 0 30 2684 topology 2794 2978
-> 15 0 29 2684 topology 2778 2979
-> 16 0 29 2684 topology 2779 2979
-> 15 0 30 2684 topology 2779 2980
-> 16 0 30 2684 topology 2794 2980
-> 15 0 29 2684 topology 2727 2981
-> 16 0 29 2684 topology 2728 2981
-> 15 0 30 2684 topology 2728 2982
-> 16 0 30 2684 topology 2794 2982
-> 15 0 29 2684 topology 2784 2983
-> 16 0 29 2684 topology 2785 2983
-> 15 0 30 2684 topology 2785 2984
-> 16 0 30 2684 topology 2794 2984
-> 15 0 29 2684 topology 2733 2985
-> 16 0 29 2684 topology 2734 2985
-> 15 0 30 2684 topology 2734 2986
-> 16 0 30 2684 topology 2794 2986
-> 15 0 29 2684 topology 2790 2987
-> 16 0 29 2684 topology 2791 2987
-> 15 0 30 2684 topology 2791 2988
-> 16 0 30 2684 topology 2794 2988
-> 15 0 29 2684 topology 2739 2989
-> 16 0 29 2684 topology 2740 2989
-> 15 0 30 2684 topology 2740 2990
-> 16 0 30 2684 topology 2794 2990
-> 15 0 29 2684 topology 2745 2991
-> 16 0 29 2684 topology 2746 2991
-> 15 0 30 2684 topology 2746 2992
-> 16 0 30 2684 topology 2794 2992
-> 15 0 29 2906 topology 2961 2993
-> 16 0 29 2906 topology 2962 2993
-> 15 0 30 2906 topology 2962 2994
-> 16 0 30 2906 topology 2980 2994
-> 15 0 30 2906 topology 2980 2995
-> 16 0 30 2906 topology 2969 2995
-> 15 0 31 2906 topology 2969 2996
-> 16 0 31 2906 topology 2967 2996
-> 15 0 30 2906 topology 2980 2997
-> 16 0 30 2906 topology 2975 2997
-> 15 0 31 2906 topology 2975 2998
-> 16 0 31 2906 topology 2973 2998
-> 15 0 32 2906 topology 2980 2999
-> 16 0 32 2906 topology 2979 2999
-> 15 0 30 2906 topology 2980 3000
-> 16 0 30 2906 topology 2909 3000
-> 15 0 31 2906 topology 2909 3001
-> 16 0 31 2906 topology 2907 3001
-> 15 0 30 2906 topology 2980 3002
-> 16 0 30 2906 topology 2915 3002
-> 15 0 31 2906 topology 2915 3003
-> 16 0 31 2906 topology 2913 3003
-> 15 0 30 2906 topology 2980 3004
-> 16 0 30 2906 topology 2921 3004
-> 15 0 31 2906 topology 2921 3005
-> 16 0 31 2906 topology 2919 3005
-> 15 0 30 2906 topology 2980 3006
-> 16 0 30 2906 topology 2927 3006
-> 15 0 31 2906 topology 2927 3007
-> 16 0 31 2906 topology 2925 3007
-> 15 0 30 2906 topology 2980 3008
-> 16 0 30 2906 topology 2933 3008
-> 15 0 31 2906 topology 2933 3009
-> 16 0 31 2906 topology 2931 3009
-> 15 0 30 2906 topology 2980 3010
-> 16 0 30 2906 topology 2939 3010
-> 15 0 31 2906 topology 2939 3011
-> 16 0 31 2906 topology 2937 3011
-> 15 0 30 2906 topology 2980 3012
-> 16 0 30 2906 topology 2945 3012
-> 15 0 31 2906 topology 2945 3013
-> 16 0 31 2906 topology 2943 3013
-> 15 0 30 2906 topology 2980 3014
-> 16 0 30 2906 topology 2951 3014
-> 15 0 31 2906 topology 2951 3015
-> 16 0 31 2906 topology 2949 3015
-> 15 0 30 2906 topology 2980 3016
-> 16 0 30 2906 topology 2957 3016
-> 15 0 31 2906 topology 2957 3017
-> 16 0 31 2906 topology 2955 3017
-> 15 0 30 2906 topology 2980 3018
-> 16 0 30 2906 topology 2960 3018
-> 15 0 31 2906 topology 2960 3019
-> 16 0 31 2906 topology 2958 3019
-> 15 0 30 2906 topology 2980 3020
-> 16 0 30 2906 topology 2966 3020
-> 15 0 31 2906 topology 2966 3021
-> 16 0 31 2906 topology 2964 3021
-> 15 0 30 2906 topology 2980 3022
-> 16 0 30 2906 topology 2972 3022
-> 15 0 31 2906 topology 2972 3023
-> 16 0 31 2906 topology 2970 3023
-> 15 0 30 2906 topology 2980 3024
-> 16 0 30 2906 topology 2978 3024
-> 15 0 31 2906 topology 2978 3025
-> 16 0 31 2906 topology 2976 3025
-> 15 0 30 2906 topology 2980 3026
-> 16 0 30 2906 topology 2912 3026
-> 15 0 31 2906 topology 2912 3027
-> 16 0 31 2906 topology 2910 3027
-> 15 0 30 2906 topology 2980 3028
-> 16 0 30 2906 topology 2918 3028
-> 15 0 31 2906 topology 2918 3029
-> 16 0 31 2906 topology 2916 3029
-> 15 0 30 2906 topology 2980 3030
-> 16 0 30 2906 topology 2924 3030
-> 15 0 31 2906 topology 2924 3031
-> 16 0 31 2906 topology 2922 3031
-> 15 0 30 2906 topology 2980 3032
-> 16 0 30 2906 topology 2930 3032
-> 15 0 31 2906 topology 2930 3033
-> 16 0 31 2906 topology 2928 3033
-> 15 0 30 2906 topology 2980 3034
-> 16 0 30 2906 topology 2936 3034
-> 15 0 31 2906 topology 2936 3035
-> 16 0 31 2906 topology 2934 3035
-> 15 0 30 2906 topology 2980 3036
-> 16 0 30 2906 topology 2942 3036
-> 15 0 31 2906 topology 2942 3037
-> 16 0 31 2906 topology 2940 3037
-> 15 0 30 2906 topology 2980 3038
-> 16 0 30 2906 topology 2948 3038
-> 15 0 31 2906 topology 2948 3039
-> 16 0 31 2906 topology 2946 3039
-> 15 0 30 2906 topology 2980 3040
-> 16 0 30 2906 topology 2954 3040
-> 15 0 31 2906 topology 2954 3041
-> 16 0 31 2906 topology 2952 3041
-> 15 0 29 2906 topology 2967 3042
-> 16 0 29 2906 topology 2968 3042
-> 15 0 30 2906 topology 2968 3043
-> 16 0 30 2906 topology 2980 3043
-> 15 0 30 2906 topology 2980 3044
-> 16 0 30 2906 topology 2963 3044
-> 15 0 31 2906 topology 2963 3045
-> 16 0 31 2906 topology 2961 3045
-> 15 0 29 2906 topology 2973 3046
-> 16 0 29 2906 topology 2974 3046
-> 15 0 30 2906 topology 2974 3047
-> 16 0 30 2906 topology 2980 3047
-> 15 0 29 2906 topology 2907 3048
-> 16 0 29 2906 topology 2908 3048
-> 15 0 30 2906 topology 2908 3049
-> 16 0 30 2906 topology 2980 3049
-> 15 0 29 2906 topology 2913 3050
-> 16 0 29 2906 topology 2914 3050
-> 15 0 30 2906 topology 2914 3051
-> 16 0 30 2906 topology 2980 3051
-> 15 0 29 2906 topology 2919 3052
-> 16 0 29 2906 topology 2920 3052
-> 15 0 30 2906 topology 2920 3053
-> 16 0 30 2906 topology 2980 3053
-> 15 0 29 2906 topology 2925 3054
-> 16 0 29 2906 topology 2926 3054
-> 15 0 30 2906 topology 2926 3055
-> 16 0 30 2906 topology 2980 3055
-> 15 0 29 2906 topology 2931 3056
-> 16 0 29 2906 topology 2932 3056
-> 15 0 30 2906 topology 2932 3057
-> 16 0 30 2906 topology 2980 3057
-> 15 0 29 2906 topology 2937 3058
-> 16 0 29 2906 topology 2938 3058
-> 15 0 30 2906 topology 2938 3059
-> 16 0 30 2906 topology 2980 3059
-> 15 0 29 2906 topology 2943 3060
-> 16 0 29 2906 topology 2944 3060
-> 15 0 30 2906 topology 2944 3061
-> 16 0 30 2906 topology 2980 3061
-> 15 0 29 2906 topology 2949 3062
-> 16 0 29 2906 topology 2950 3062
-> 15 0 30 2906 topology 2950 3063
-> 16 0 30 2906 topology 2980 3063
-> 15 0 29 2906 topology 2955 3064
-> 16 0 29 2906 topology 2956 3064
-> 15 0 30 2906 topology 2956 3065
-> 16 0 30 2906 topology 2980 3065
-> 15 0 29 2906 topology 2958 3066
-> 16 0 29 2906 topology 2959 3066
-> 15 0 30 2906 topology 2959 3067
-> 16 0 30 2906 topology 2980 3067
-> 15 0 29 2906 topology 2964 3068
-> 16 0 29 2906 topology 2965 3068
-> 15 0 30 2906 topology 2965 3069
-> 16 0 30 2906 topology 2980 3069
-> 15 0 29 2906 topology 2970 3070
-> 16 0 29 2906 topology 2971 3070
-> 15 0 30 2906 topology 2971 3071
-> 16 0 30 2906 topology 2980 3071
-> 15 0 29 2906 topology 2976 3072
-> 16 0 29 2906 topology 2977 3072
-> 15 0 30 2906 topology 2977 3073
-> 16 0 30 2906 topology 2980 3073
-> 15 0 29 2906 topology 2910 3074
-> 16 0 29 2906 topology 2911 3074
-> 15 0 30 2906 topology 2911 3075
-> 16 0 30 2906 topology 2980 3075
+> 15 0 28 2462 topology 2486 2794
+> 16 0 28 2462 topology 2572 2794
+> 15 0 28 2462 topology 2570 2795
+> 16 0 28 2462 topology 2572 2795
+> 15 0 28 2462 topology 2546 2796
+> 16 0 28 2462 topology 2572 2796
+> 15 0 29 2462 topology 2556 2797
+> 16 0 29 2462 topology 2557 2797
+> 15 0 28 2462 topology 2522 2798
+> 16 0 28 2462 topology 2572 2798
+> 15 0 28 2462 topology 2498 2799
+> 16 0 28 2462 topology 2572 2799
+> 15 0 29 2462 topology 2478 2800
+> 16 0 29 2462 topology 2480 2800
+> 15 0 29 2462 topology 2532 2801
+> 16 0 29 2462 topology 2534 2801
+> 15 0 28 2462 topology 2558 2802
+> 16 0 28 2462 topology 2572 2802
+> 15 0 29 2462 topology 2511 2803
+> 16 0 29 2462 topology 2513 2803
+> 15 0 29 2462 topology 2565 2804
+> 16 0 29 2462 topology 2567 2804
+> 15 0 28 2462 topology 2482 2805
+> 16 0 28 2462 topology 2572 2805
+> 15 0 29 2462 topology 2490 2806
+> 16 0 29 2462 topology 2492 2806
+> 15 0 28 2462 topology 2512 2807
+> 16 0 28 2462 topology 2572 2807
+> 15 0 29 2462 topology 2544 2808
+> 16 0 29 2462 topology 2546 2808
+> 15 0 28 2462 topology 2542 2809
+> 16 0 28 2462 topology 2572 2809
+> 15 0 28 2462 topology 2464 2810
+> 16 0 28 2462 topology 2572 2810
+> 15 0 28 2462 topology 2494 2811
+> 16 0 28 2462 topology 2572 2811
+> 15 0 29 2462 topology 2502 2812
+> 16 0 29 2462 topology 2503 2812
+> 15 0 29 2462 topology 2469 2813
+> 16 0 29 2462 topology 2471 2813
+> 15 0 28 2462 topology 2524 2814
+> 16 0 28 2462 topology 2572 2814
+> 15 0 29 2462 topology 2523 2815
+> 16 0 29 2462 topology 2525 2815
+> 15 0 28 2462 topology 2554 2816
+> 16 0 28 2462 topology 2572 2816
+> 15 0 29 2462 topology 2481 2817
+> 16 0 29 2462 topology 2482 2817
+> 15 0 29 2462 topology 2535 2818
+> 16 0 29 2462 topology 2536 2818
+> 15 0 29 2462 topology 2556 2819
+> 16 0 29 2462 topology 2558 2819
+> 15 0 29 2462 topology 2514 2820
+> 16 0 29 2462 topology 2515 2820
+> 15 0 29 2462 topology 2568 2821
+> 16 0 29 2462 topology 2569 2821
+> 15 0 29 2462 topology 2493 2822
+> 16 0 29 2462 topology 2494 2822
+> 15 0 29 2462 topology 2547 2823
+> 16 0 29 2462 topology 2548 2823
+> 15 0 28 2462 topology 2477 2824
+> 16 0 28 2462 topology 2572 2824
+> 15 0 28 2462 topology 2537 2825
+> 16 0 28 2462 topology 2572 2825
+> 15 0 28 2462 topology 2513 2826
+> 16 0 28 2462 topology 2572 2826
+> 15 0 29 2462 topology 2526 2827
+> 16 0 29 2462 topology 2527 2827
+> 15 0 28 2462 topology 2489 2828
+> 16 0 28 2462 topology 2572 2828
+> 15 0 28 2462 topology 2465 2829
+> 16 0 28 2462 topology 2572 2829
+> 15 0 29 2462 topology 2475 2830
+> 16 0 29 2462 topology 2477 2830
+> 15 0 28 2462 topology 2549 2831
+> 16 0 28 2462 topology 2572 2831
+> 15 0 28 2462 topology 2525 2832
+> 16 0 28 2462 topology 2572 2832
+> 15 0 29 2462 topology 2559 2833
+> 16 0 29 2462 topology 2560 2833
+> 15 0 28 2462 topology 2501 2834
+> 16 0 28 2462 topology 2572 2834
+> 15 0 29 2462 topology 2508 2835
+> 16 0 29 2462 topology 2510 2835
+> 15 0 28 2462 topology 2561 2836
+> 16 0 28 2462 topology 2572 2836
+> 15 0 29 2462 topology 2562 2837
+> 16 0 29 2462 topology 2564 2837
+> 15 0 28 2462 topology 2479 2838
+> 16 0 28 2462 topology 2572 2838
+> 15 0 29 2462 topology 2487 2839
+> 16 0 29 2462 topology 2489 2839
+> 15 0 29 2462 topology 2541 2840
+> 16 0 29 2462 topology 2543 2840
+> 15 0 28 2462 topology 2509 2841
+> 16 0 28 2462 topology 2572 2841
+> 15 0 28 2462 topology 2539 2842
+> 16 0 28 2462 topology 2572 2842
+> 15 0 29 2462 topology 2472 2843
+> 16 0 29 2462 topology 2473 2843
+> 15 0 28 2462 topology 2569 2844
+> 16 0 28 2462 topology 2572 2844
+> 15 0 29 2462 topology 2466 2845
+> 16 0 29 2462 topology 2468 2845
+> 15 0 28 2462 topology 2491 2846
+> 16 0 28 2462 topology 2572 2846
+> 15 0 29 2462 topology 2520 2847
+> 16 0 29 2462 topology 2522 2847
+> 15 0 28 2684 topology 2750 2848
+> 16 0 28 2684 topology 2794 2848
+> 15 0 28 2684 topology 2726 2849
+> 16 0 28 2684 topology 2794 2849
+> 15 0 28 2684 topology 2702 2850
+> 16 0 28 2684 topology 2794 2850
+> 15 0 28 2684 topology 2786 2851
+> 16 0 28 2684 topology 2794 2851
+> 15 0 28 2684 topology 2762 2852
+> 16 0 28 2684 topology 2794 2852
+> 15 0 28 2684 topology 2738 2853
+> 16 0 28 2684 topology 2794 2853
+> 15 0 28 2684 topology 2714 2854
+> 16 0 28 2684 topology 2794 2854
+> 15 0 28 2684 topology 2774 2855
+> 16 0 28 2684 topology 2794 2855
+> 15 0 28 2684 topology 2698 2856
+> 16 0 28 2684 topology 2794 2856
+> 15 0 29 2684 topology 2688 2857
+> 16 0 29 2684 topology 2690 2857
+> 15 0 28 2684 topology 2728 2858
+> 16 0 28 2684 topology 2794 2858
+> 15 0 28 2684 topology 2758 2859
+> 16 0 28 2684 topology 2794 2859
+> 15 0 29 2684 topology 2691 2860
+> 16 0 29 2684 topology 2693 2860
+> 15 0 28 2684 topology 2788 2861
+> 16 0 28 2684 topology 2794 2861
+> 15 0 28 2684 topology 2710 2862
+> 16 0 28 2684 topology 2794 2862
+> 15 0 29 2684 topology 2694 2863
+> 16 0 29 2684 topology 2696 2863
+> 15 0 28 2684 topology 2740 2864
+> 16 0 28 2684 topology 2794 2864
+> 15 0 29 2684 topology 2748 2865
+> 16 0 29 2684 topology 2750 2865
+> 15 0 30 2684 topology 2793 2866
+> 16 0 30 2684 topology 2794 2866
+> 15 0 28 2684 topology 2770 2867
+> 16 0 28 2684 topology 2794 2867
+> 15 0 29 2684 topology 2697 2868
+> 16 0 29 2684 topology 2699 2868
+> 15 0 29 2684 topology 2751 2869
+> 16 0 29 2684 topology 2753 2869
+> 15 0 29 2684 topology 2700 2870
+> 16 0 29 2684 topology 2702 2870
+> 15 0 29 2684 topology 2754 2871
+> 16 0 29 2684 topology 2756 2871
+> 15 0 29 2684 topology 2703 2872
+> 16 0 29 2684 topology 2705 2872
+> 15 0 29 2684 topology 2757 2873
+> 16 0 29 2684 topology 2759 2873
+> 15 0 29 2684 topology 2706 2874
+> 16 0 29 2684 topology 2708 2874
+> 15 0 29 2684 topology 2760 2875
+> 16 0 29 2684 topology 2762 2875
+> 15 0 29 2684 topology 2688 2876
+> 16 0 29 2684 topology 2689 2876
+> 15 0 29 2684 topology 2709 2877
+> 16 0 29 2684 topology 2711 2877
+> 15 0 29 2684 topology 2763 2878
+> 16 0 29 2684 topology 2765 2878
+> 15 0 29 2684 topology 2718 2879
+> 16 0 29 2684 topology 2719 2879
+> 15 0 28 2684 topology 2693 2880
+> 16 0 28 2684 topology 2794 2880
+> 15 0 29 2684 topology 2712 2881
+> 16 0 29 2684 topology 2714 2881
+> 15 0 29 2684 topology 2766 2882
+> 16 0 29 2684 topology 2768 2882
+> 15 0 29 2684 topology 2694 2883
+> 16 0 29 2684 topology 2695 2883
+> 15 0 29 2684 topology 2748 2884
+> 16 0 29 2684 topology 2749 2884
+> 15 0 29 2684 topology 2715 2885
+> 16 0 29 2684 topology 2717 2885
+> 15 0 28 2684 topology 2753 2886
+> 16 0 28 2684 topology 2794 2886
+> 15 0 29 2684 topology 2769 2887
+> 16 0 29 2684 topology 2771 2887
+> 15 0 29 2684 topology 2724 2888
+> 16 0 29 2684 topology 2725 2888
+> 15 0 28 2684 topology 2729 2889
+> 16 0 28 2684 topology 2794 2889
+> 15 0 29 2684 topology 2778 2890
+> 16 0 29 2684 topology 2779 2890
+> 15 0 28 2684 topology 2705 2891
+> 16 0 28 2684 topology 2794 2891
+> 15 0 29 2684 topology 2772 2892
+> 16 0 29 2684 topology 2774 2892
+> 15 0 29 2684 topology 2700 2893
+> 16 0 29 2684 topology 2701 2893
+> 15 0 29 2684 topology 2754 2894
+> 16 0 29 2684 topology 2755 2894
+> 15 0 28 2684 topology 2789 2895
+> 16 0 28 2684 topology 2794 2895
+> 15 0 28 2684 topology 2765 2896
+> 16 0 28 2684 topology 2794 2896
+> 15 0 29 2684 topology 2775 2897
+> 16 0 29 2684 topology 2777 2897
+> 15 0 29 2684 topology 2730 2898
+> 16 0 29 2684 topology 2731 2898
+> 15 0 28 2684 topology 2741 2899
+> 16 0 28 2684 topology 2794 2899
+> 15 0 29 2684 topology 2784 2900
+> 16 0 29 2684 topology 2785 2900
+> 15 0 28 2684 topology 2717 2901
+> 16 0 28 2684 topology 2794 2901
+> 15 0 29 2684 topology 2706 2902
+> 16 0 29 2684 topology 2707 2902
+> 15 0 29 2684 topology 2760 2903
+> 16 0 29 2684 topology 2761 2903
+> 15 0 28 2684 topology 2777 2904
+> 16 0 28 2684 topology 2794 2904
+> 15 0 29 2684 topology 2736 2905
+> 16 0 29 2684 topology 2737 2905
+> 15 0 29 2684 topology 2790 2906
+> 16 0 29 2684 topology 2791 2906
+> 15 0 29 2684 topology 2712 2907
+> 16 0 29 2684 topology 2713 2907
+> 15 0 29 2684 topology 2766 2908
+> 16 0 29 2684 topology 2767 2908
+> 15 0 28 2684 topology 2695 2909
+> 16 0 28 2684 topology 2794 2909
+> 15 0 28 2684 topology 2725 2910
+> 16 0 28 2684 topology 2794 2910
+> 15 0 29 2684 topology 2742 2911
+> 16 0 29 2684 topology 2743 2911
+> 15 0 28 2684 topology 2755 2912
+> 16 0 28 2684 topology 2794 2912
+> 15 0 29 2684 topology 2772 2913
+> 16 0 29 2684 topology 2773 2913
+> 15 0 28 2684 topology 2785 2914
+> 16 0 28 2684 topology 2794 2914
+> 15 0 28 2684 topology 2707 2915
+> 16 0 28 2684 topology 2794 2915
+> 15 0 28 2684 topology 2737 2916
+> 16 0 28 2684 topology 2794 2916
+> 15 0 28 2684 topology 2767 2917
+> 16 0 28 2684 topology 2794 2917
+> 15 0 28 2684 topology 2720 2918
+> 16 0 28 2684 topology 2794 2918
+> 15 0 28 2684 topology 2696 2919
+> 16 0 28 2684 topology 2794 2919
+> 15 0 28 2684 topology 2780 2920
+> 16 0 28 2684 topology 2794 2920
+> 15 0 28 2684 topology 2756 2921
+> 16 0 28 2684 topology 2794 2921
+> 15 0 28 2684 topology 2732 2922
+> 16 0 28 2684 topology 2794 2922
+> 15 0 28 2684 topology 2708 2923
+> 16 0 28 2684 topology 2794 2923
+> 15 0 28 2684 topology 2792 2924
+> 16 0 28 2684 topology 2794 2924
+> 15 0 28 2684 topology 2768 2925
+> 16 0 28 2684 topology 2794 2925
+> 15 0 28 2684 topology 2744 2926
+> 16 0 28 2684 topology 2794 2926
+> 15 0 28 2684 topology 2692 2927
+> 16 0 28 2684 topology 2794 2927
+> 15 0 28 2684 topology 2722 2928
+> 16 0 28 2684 topology 2794 2928
+> 15 0 28 2684 topology 2752 2929
+> 16 0 28 2684 topology 2794 2929
+> 15 0 28 2684 topology 2782 2930
+> 16 0 28 2684 topology 2794 2930
+> 15 0 28 2684 topology 2704 2931
+> 16 0 28 2684 topology 2794 2931
+> 15 0 29 2684 topology 2718 2932
+> 16 0 29 2684 topology 2720 2932
+> 15 0 28 2684 topology 2734 2933
+> 16 0 28 2684 topology 2794 2933
+> 15 0 28 2684 topology 2764 2934
+> 16 0 28 2684 topology 2794 2934
+> 15 0 28 2684 topology 2686 2935
+> 16 0 28 2684 topology 2794 2935
+> 15 0 29 2684 topology 2721 2936
+> 16 0 29 2684 topology 2723 2936
+> 15 0 28 2684 topology 2716 2937
+> 16 0 28 2684 topology 2794 2937
+> 15 0 29 2684 topology 2724 2938
+> 16 0 29 2684 topology 2726 2938
+> 15 0 28 2684 topology 2746 2939
+> 16 0 28 2684 topology 2794 2939
+> 15 0 29 2684 topology 2778 2940
+> 16 0 29 2684 topology 2780 2940
+> 15 0 28 2684 topology 2776 2941
+> 16 0 28 2684 topology 2794 2941
+> 15 0 29 2684 topology 2727 2942
+> 16 0 29 2684 topology 2729 2942
+> 15 0 29 2684 topology 2781 2943
+> 16 0 29 2684 topology 2783 2943
+> 15 0 29 2684 topology 2730 2944
+> 16 0 29 2684 topology 2732 2944
+> 15 0 29 2684 topology 2784 2945
+> 16 0 29 2684 topology 2786 2945
+> 15 0 29 2684 topology 2733 2946
+> 16 0 29 2684 topology 2735 2946
+> 15 0 29 2684 topology 2787 2947
+> 16 0 29 2684 topology 2789 2947
+> 15 0 29 2684 topology 2736 2948
+> 16 0 29 2684 topology 2738 2948
+> 15 0 29 2684 topology 2790 2949
+> 16 0 29 2684 topology 2792 2949
+> 15 0 29 2684 topology 2691 2950
+> 16 0 29 2684 topology 2692 2950
+> 15 0 29 2684 topology 2685 2951
+> 16 0 29 2684 topology 2687 2951
+> 15 0 29 2684 topology 2739 2952
+> 16 0 29 2684 topology 2741 2952
+> 15 0 29 2684 topology 2721 2953
+> 16 0 29 2684 topology 2722 2953
+> 15 0 28 2684 topology 2723 2954
+> 16 0 28 2684 topology 2794 2954
+> 15 0 28 2684 topology 2699 2955
+> 16 0 28 2684 topology 2794 2955
+> 15 0 29 2684 topology 2742 2956
+> 16 0 29 2684 topology 2744 2956
+> 15 0 29 2684 topology 2697 2957
+> 16 0 29 2684 topology 2698 2957
+> 15 0 29 2684 topology 2751 2958
+> 16 0 29 2684 topology 2752 2958
+> 15 0 28 2684 topology 2783 2959
+> 16 0 28 2684 topology 2794 2959
+> 15 0 29 2684 topology 2745 2960
+> 16 0 29 2684 topology 2747 2960
+> 15 0 28 2684 topology 2759 2961
+> 16 0 28 2684 topology 2794 2961
+> 15 0 29 2684 topology 2727 2962
+> 16 0 29 2684 topology 2728 2962
+> 15 0 28 2684 topology 2735 2963
+> 16 0 28 2684 topology 2794 2963
+> 15 0 29 2684 topology 2781 2964
+> 16 0 29 2684 topology 2782 2964
+> 15 0 28 2684 topology 2711 2965
+> 16 0 28 2684 topology 2794 2965
+> 15 0 28 2684 topology 2687 2966
+> 16 0 28 2684 topology 2794 2966
+> 15 0 29 2684 topology 2703 2967
+> 16 0 29 2684 topology 2704 2967
+> 15 0 29 2684 topology 2757 2968
+> 16 0 29 2684 topology 2758 2968
+> 15 0 28 2684 topology 2771 2969
+> 16 0 28 2684 topology 2794 2969
+> 15 0 29 2684 topology 2733 2970
+> 16 0 29 2684 topology 2734 2970
+> 15 0 28 2684 topology 2747 2971
+> 16 0 28 2684 topology 2794 2971
+> 15 0 29 2684 topology 2787 2972
+> 16 0 29 2684 topology 2788 2972
+> 15 0 29 2684 topology 2709 2973
+> 16 0 29 2684 topology 2710 2973
+> 15 0 29 2684 topology 2763 2974
+> 16 0 29 2684 topology 2764 2974
+> 15 0 28 2684 topology 2689 2975
+> 16 0 28 2684 topology 2794 2975
+> 15 0 29 2684 topology 2685 2976
+> 16 0 29 2684 topology 2686 2976
+> 15 0 28 2684 topology 2719 2977
+> 16 0 28 2684 topology 2794 2977
+> 15 0 29 2684 topology 2739 2978
+> 16 0 29 2684 topology 2740 2978
+> 15 0 28 2684 topology 2749 2979
+> 16 0 28 2684 topology 2794 2979
+> 15 0 29 2684 topology 2715 2980
+> 16 0 29 2684 topology 2716 2980
+> 15 0 29 2684 topology 2769 2981
+> 16 0 29 2684 topology 2770 2981
+> 15 0 28 2684 topology 2779 2982
+> 16 0 28 2684 topology 2794 2982
+> 15 0 28 2684 topology 2701 2983
+> 16 0 28 2684 topology 2794 2983
+> 15 0 28 2684 topology 2731 2984
+> 16 0 28 2684 topology 2794 2984
+> 15 0 29 2684 topology 2745 2985
+> 16 0 29 2684 topology 2746 2985
+> 15 0 28 2684 topology 2761 2986
+> 16 0 28 2684 topology 2794 2986
+> 15 0 29 2684 topology 2775 2987
+> 16 0 29 2684 topology 2776 2987
+> 15 0 28 2684 topology 2791 2988
+> 16 0 28 2684 topology 2794 2988
+> 15 0 28 2684 topology 2713 2989
+> 16 0 28 2684 topology 2794 2989
+> 15 0 28 2684 topology 2743 2990
+> 16 0 28 2684 topology 2794 2990
+> 15 0 28 2684 topology 2773 2991
+> 16 0 28 2684 topology 2794 2991
+> 15 0 28 2684 topology 2690 2992
+> 16 0 28 2684 topology 2794 2992
+> 15 0 28 2906 topology 2933 2993
+> 16 0 28 2906 topology 2980 2993
+> 15 0 28 2906 topology 2969 2994
+> 16 0 28 2906 topology 2980 2994
+> 15 0 28 2906 topology 2945 2995
+> 16 0 28 2906 topology 2980 2995
+> 15 0 28 2906 topology 2957 2996
+> 16 0 28 2906 topology 2980 2996
+> 15 0 28 2906 topology 2918 2997
+> 16 0 28 2906 topology 2980 2997
+> 15 0 29 2906 topology 2928 2998
+> 16 0 29 2906 topology 2930 2998
+> 15 0 28 2906 topology 2935 2999
+> 16 0 28 2906 topology 2980 2999
+> 15 0 28 2906 topology 2965 3000
+> 16 0 28 2906 topology 2980 3000
+> 15 0 29 2906 topology 2931 3001
+> 16 0 29 2906 topology 2933 3001
+> 15 0 29 2906 topology 2934 3002
+> 16 0 29 2906 topology 2936 3002
+> 15 0 28 2906 topology 2947 3003
+> 16 0 28 2906 topology 2980 3003
+> 15 0 28 2906 topology 2977 3004
+> 16 0 28 2906 topology 2980 3004
+> 15 0 29 2906 topology 2937 3005
+> 16 0 29 2906 topology 2939 3005
+> 15 0 29 2906 topology 2940 3006
+> 16 0 29 2906 topology 2942 3006
+> 15 0 29 2906 topology 2943 3007
+> 16 0 29 2906 topology 2945 3007
+> 15 0 28 2906 topology 2914 3008
+> 16 0 28 2906 topology 2980 3008
+> 15 0 29 2906 topology 2946 3009
+> 16 0 29 2906 topology 2948 3009
+> 15 0 29 2906 topology 2928 3010
+> 16 0 29 2906 topology 2929 3010
+> 15 0 29 2906 topology 2949 3011
+> 16 0 29 2906 topology 2951 3011
+> 15 0 28 2906 topology 2926 3012
+> 16 0 28 2906 topology 2980 3012
+> 15 0 29 2906 topology 2958 3013
+> 16 0 29 2906 topology 2959 3013
+> 15 0 29 2906 topology 2952 3014
+> 16 0 29 2906 topology 2954 3014
+> 15 0 29 2906 topology 2934 3015
+> 16 0 29 2906 topology 2935 3015
+> 15 0 29 2906 topology 2955 3016
+> 16 0 29 2906 topology 2957 3016
+> 15 0 28 2906 topology 2960 3017
+> 16 0 28 2906 topology 2980 3017
+> 15 0 28 2906 topology 2936 3018
+> 16 0 28 2906 topology 2980 3018
+> 15 0 29 2906 topology 2964 3019
+> 16 0 29 2906 topology 2965 3019
+> 15 0 29 2906 topology 2940 3020
+> 16 0 29 2906 topology 2941 3020
+> 15 0 28 2906 topology 2972 3021
+> 16 0 28 2906 topology 2980 3021
+> 15 0 28 2906 topology 2948 3022
+> 16 0 28 2906 topology 2980 3022
+> 15 0 29 2906 topology 2970 3023
+> 16 0 29 2906 topology 2971 3023
+> 15 0 29 2906 topology 2946 3024
+> 16 0 29 2906 topology 2947 3024
+> 15 0 29 2906 topology 2976 3025
+> 16 0 29 2906 topology 2977 3025
+> 15 0 28 2906 topology 2909 3026
+> 16 0 28 2906 topology 2980 3026
+> 15 0 29 2906 topology 2952 3027
+> 16 0 29 2906 topology 2953 3027
+> 15 0 28 2906 topology 2932 3028
+> 16 0 28 2906 topology 2980 3028
+> 15 0 28 2906 topology 2921 3029
+> 16 0 28 2906 topology 2980 3029
+> 15 0 28 2906 topology 2962 3030
+> 16 0 28 2906 topology 2980 3030
+> 15 0 29 2906 topology 2907 3031
+> 16 0 29 2906 topology 2908 3031
+> 15 0 28 2906 topology 2944 3032
+> 16 0 28 2906 topology 2980 3032
+> 15 0 28 2906 topology 2974 3033
+> 16 0 28 2906 topology 2980 3033
+> 15 0 29 2906 topology 2913 3034
+> 16 0 29 2906 topology 2914 3034
+> 15 0 28 2906 topology 2956 3035
+> 16 0 28 2906 topology 2980 3035
+> 15 0 28 2906 topology 2911 3036
+> 16 0 28 2906 topology 2980 3036
+> 15 0 29 2906 topology 2919 3037
+> 16 0 29 2906 topology 2920 3037
+> 15 0 28 2906 topology 2923 3038
+> 16 0 28 2906 topology 2980 3038
+> 15 0 29 2906 topology 2925 3039
+> 16 0 29 2906 topology 2926 3039
+> 15 0 28 2906 topology 2963 3040
+> 16 0 28 2906 topology 2980 3040
+> 15 0 28 2906 topology 2939 3041
+> 16 0 28 2906 topology 2980 3041
+> 15 0 28 2906 topology 2975 3042
+> 16 0 28 2906 topology 2980 3042
+> 15 0 28 2906 topology 2951 3043
+> 16 0 28 2906 topology 2980 3043
+> 15 0 28 2906 topology 2912 3044
+> 16 0 28 2906 topology 2980 3044
+> 15 0 28 2906 topology 2929 3045
+> 16 0 28 2906 topology 2980 3045
+> 15 0 28 2906 topology 2959 3046
+> 16 0 28 2906 topology 2980 3046
+> 15 0 28 2906 topology 2924 3047
+> 16 0 28 2906 topology 2980 3047
+> 15 0 28 2906 topology 2941 3048
+> 16 0 28 2906 topology 2980 3048
+> 15 0 29 2906 topology 2958 3049
+> 16 0 29 2906 topology 2960 3049
+> 15 0 28 2906 topology 2971 3050
+> 16 0 28 2906 topology 2980 3050
+> 15 0 29 2906 topology 2961 3051
+> 16 0 29 2906 topology 2963 3051
+> 15 0 28 2906 topology 2953 3052
+> 16 0 28 2906 topology 2980 3052
+> 15 0 29 2906 topology 2964 3053
+> 16 0 29 2906 topology 2966 3053
+> 15 0 30 2906 topology 2979 3054
+> 16 0 30 2906 topology 2980 3054
+> 15 0 29 2906 topology 2967 3055
+> 16 0 29 2906 topology 2969 3055
+> 15 0 28 2906 topology 2908 3056
+> 16 0 28 2906 topology 2980 3056
+> 15 0 29 2906 topology 2970 3057
+> 16 0 29 2906 topology 2972 3057
+> 15 0 29 2906 topology 2973 3058
+> 16 0 29 2906 topology 2975 3058
+> 15 0 28 2906 topology 2920 3059
+> 16 0 28 2906 topology 2980 3059
+> 15 0 29 2906 topology 2976 3060
+> 16 0 29 2906 topology 2978 3060
+> 15 0 29 2906 topology 2931 3061
+> 16 0 29 2906 topology 2932 3061
+> 15 0 28 2906 topology 2930 3062
+> 16 0 28 2906 topology 2980 3062
+> 15 0 29 2906 topology 2961 3063
+> 16 0 29 2906 topology 2962 3063
+> 15 0 29 2906 topology 2937 3064
+> 16 0 29 2906 topology 2938 3064
+> 15 0 28 2906 topology 2966 3065
+> 16 0 28 2906 topology 2980 3065
+> 15 0 28 2906 topology 2942 3066
+> 16 0 28 2906 topology 2980 3066
+> 15 0 29 2906 topology 2967 3067
+> 16 0 29 2906 topology 2968 3067
+> 15 0 29 2906 topology 2907 3068
+> 16 0 29 2906 topology 2909 3068
+> 15 0 29 2906 topology 2943 3069
+> 16 0 29 2906 topology 2944 3069
+> 15 0 29 2906 topology 2910 3070
+> 16 0 29 2906 topology 2912 3070
+> 15 0 28 2906 topology 2978 3071
+> 16 0 28 2906 topology 2980 3071
+> 15 0 28 2906 topology 2954 3072
+> 16 0 28 2906 topology 2980 3072
+> 15 0 29 2906 topology 2973 3073
+> 16 0 29 2906 topology 2974 3073
+> 15 0 29 2906 topology 2913 3074
+> 16 0 29 2906 topology 2915 3074
+> 15 0 29 2906 topology 2949 3075
+> 16 0 29 2906 topology 2950 3075
 > 15 0 29 2906 topology 2916 3076
-> 16 0 29 2906 topology 2917 3076
-> 15 0 30 2906 topology 2917 3077
-> 16 0 30 2906 topology 2980 3077
-> 15 0 29 2906 topology 2922 3078
-> 16 0 29 2906 topology 2923 3078
-> 15 0 30 2906 topology 2923 3079
-> 16 0 30 2906 topology 2980 3079
-> 15 0 29 2906 topology 2928 3080
-> 16 0 29 2906 topology 2929 3080
-> 15 0 30 2906 topology 2929 3081
-> 16 0 30 2906 topology 2980 3081
-> 15 0 29 2906 topology 2934 3082
-> 16 0 29 2906 topology 2935 3082
-> 15 0 30 2906 topology 2935 3083
-> 16 0 30 2906 topology 2980 3083
-> 15 0 29 2906 topology 2940 3084
-> 16 0 29 2906 topology 2941 3084
-> 15 0 30 2906 topology 2941 3085
-> 16 0 30 2906 topology 2980 3085
-> 15 0 29 2906 topology 2946 3086
-> 16 0 29 2906 topology 2947 3086
-> 15 0 30 2906 topology 2947 3087
-> 16 0 30 2906 topology 2980 3087
-> 15 0 29 2906 topology 2952 3088
-> 16 0 29 2906 topology 2953 3088
-> 15 0 30 2906 topology 2953 3089
-> 16 0 30 2906 topology 2980 3089
-> 15 0 34 2350 topology 3201 3090
-> 16 0 34 2350 topology 3316 3090
-> 15 0 35 2350 topology 3316 3091
-> 16 0 35 2350 topology 3291 3091
-> 15 0 35 2350 topology 3316 3092
-> 16 0 35 2350 topology 2460 3092
-> 15 0 35 2350 topology 3316 3093
-> 16 0 35 2350 topology 2682 3093
-> 15 0 35 2350 topology 3316 3094
-> 16 0 35 2350 topology 2904 3094
-> 15 0 35 2350 topology 3316 3095
-> 16 0 35 2350 topology 3090 3095
-> 15 0 35 2350 topology 3316 3096
-> 16 0 35 2350 topology 3312 3096
-> 15 0 35 2350 topology 3316 3097
-> 16 0 35 2350 topology 3270 3097
-> 15 0 35 2350 topology 3316 3098
-> 16 0 35 2350 topology 3315 3098
-> 15 0 35 2350 topology 3316 3099
-> 16 0 35 2350 topology 2571 3099
-> 15 0 35 2350 topology 3316 3100
-> 16 0 35 2350 topology 2793 3100
-> 15 0 35 2350 topology 3316 3101
-> 16 0 35 2350 topology 2979 3101
-> 15 0 27 2349 topology 3409 3102
-> 16 0 27 2349 topology 3411 3102
-> 15 0 28 2349 topology 3411 3103
-> 16 0 28 2349 topology 3413 3103
-> 15 0 21 2349 topology 3411 3104
-> 16 0 21 2349 topology 3317 3104
-> 15 0 36 2349 topology 3317 3105
-> 16 0 36 2349 topology 3315 3105
-> 15 0 27 2349 topology 3413 3106
-> 16 0 27 2349 topology 3317 3106
-> 15 0 29 1608 topology 1636 3107
-> 16 0 29 1608 topology 1637 3107
-> 15 0 30 1608 topology 1637 3108
-> 16 0 30 1608 topology 1727 3108
-> 15 0 32 1608 topology 1727 3109
-> 16 0 32 1608 topology 1726 3109
-> 15 0 30 1608 topology 1727 3110
-> 16 0 30 1608 topology 1644 3110
-> 15 0 31 1608 topology 1644 3111
-> 16 0 31 1608 topology 1642 3111
-> 15 0 30 1608 topology 1727 3112
-> 16 0 30 1608 topology 1701 3112
-> 15 0 31 1608 topology 1701 3113
-> 16 0 31 1608 topology 1699 3113
-> 15 0 30 1608 topology 1727 3114
-> 16 0 30 1608 topology 1650 3114
-> 15 0 31 1608 topology 1650 3115
-> 16 0 31 1608 topology 1648 3115
-> 15 0 30 1608 topology 1727 3116
-> 16 0 30 1608 topology 1707 3116
-> 15 0 31 1608 topology 1707 3117
-> 16 0 31 1608 topology 1705 3117
-> 15 0 30 1608 topology 1727 3118
-> 16 0 30 1608 topology 1656 3118
-> 15 0 31 1608 topology 1656 3119
-> 16 0 31 1608 topology 1654 3119
-> 15 0 30 1608 topology 1727 3120
-> 16 0 30 1608 topology 1713 3120
-> 15 0 31 1608 topology 1713 3121
-> 16 0 31 1608 topology 1711 3121
-> 15 0 30 1608 topology 1727 3122
-> 16 0 30 1608 topology 1662 3122
-> 15 0 31 1608 topology 1662 3123
-> 16 0 31 1608 topology 1660 3123
-> 15 0 30 1608 topology 1727 3124
-> 16 0 30 1608 topology 1719 3124
-> 15 0 31 1608 topology 1719 3125
-> 16 0 31 1608 topology 1717 3125
-> 15 0 30 1608 topology 1727 3126
-> 16 0 30 1608 topology 1725 3126
-> 15 0 31 1608 topology 1725 3127
-> 16 0 31 1608 topology 1723 3127
-> 15 0 30 1608 topology 1727 3128
-> 16 0 30 1608 topology 1671 3128
-> 15 0 31 1608 topology 1671 3129
-> 16 0 31 1608 topology 1669 3129
-> 15 0 30 1608 topology 1727 3130
-> 16 0 30 1608 topology 1677 3130
-> 15 0 31 1608 topology 1677 3131
-> 16 0 31 1608 topology 1675 3131
-> 15 0 30 1608 topology 1727 3132
-> 16 0 30 1608 topology 1683 3132
-> 15 0 31 1608 topology 1683 3133
-> 16 0 31 1608 topology 1681 3133
-> 15 0 30 1608 topology 1727 3134
-> 16 0 30 1608 topology 1689 3134
-> 15 0 31 1608 topology 1689 3135
-> 16 0 31 1608 topology 1687 3135
-> 15 0 30 1608 topology 1727 3136
-> 16 0 30 1608 topology 1695 3136
-> 15 0 31 1608 topology 1695 3137
-> 16 0 31 1608 topology 1693 3137
-> 15 0 30 1608 topology 1727 3138
-> 16 0 30 1608 topology 1611 3138
-> 15 0 31 1608 topology 1611 3139
-> 16 0 31 1608 topology 1609 3139
-> 15 0 30 1608 topology 1727 3140
-> 16 0 30 1608 topology 1617 3140
-> 15 0 31 1608 topology 1617 3141
-> 16 0 31 1608 topology 1615 3141
-> 15 0 30 1608 topology 1727 3142
-> 16 0 30 1608 topology 1623 3142
-> 15 0 31 1608 topology 1623 3143
-> 16 0 31 1608 topology 1621 3143
-> 15 0 30 1608 topology 1727 3144
-> 16 0 30 1608 topology 1629 3144
-> 15 0 31 1608 topology 1629 3145
-> 16 0 31 1608 topology 1627 3145
-> 15 0 30 1608 topology 1727 3146
-> 16 0 30 1608 topology 1635 3146
-> 15 0 31 1608 topology 1635 3147
-> 16 0 31 1608 topology 1633 3147
-> 15 0 30 1608 topology 1727 3148
-> 16 0 30 1608 topology 1641 3148
-> 15 0 31 1608 topology 1641 3149
-> 16 0 31 1608 topology 1639 3149
-> 15 0 30 1608 topology 1727 3150
-> 16 0 30 1608 topology 1698 3150
-> 15 0 31 1608 topology 1698 3151
-> 16 0 31 1608 topology 1696 3151
-> 15 0 30 1608 topology 1727 3152
-> 16 0 30 1608 topology 1647 3152
-> 15 0 31 1608 topology 1647 3153
-> 16 0 31 1608 topology 1645 3153
-> 15 0 30 1608 topology 1727 3154
-> 16 0 30 1608 topology 1704 3154
-> 15 0 31 1608 topology 1704 3155
-> 16 0 31 1608 topology 1702 3155
-> 15 0 30 1608 topology 1727 3156
-> 16 0 30 1608 topology 1653 3156
-> 15 0 31 1608 topology 1653 3157
-> 16 0 31 1608 topology 1651 3157
-> 15 0 30 1608 topology 1727 3158
-> 16 0 30 1608 topology 1710 3158
-> 15 0 31 1608 topology 1710 3159
-> 16 0 31 1608 topology 1708 3159
-> 15 0 30 1608 topology 1727 3160
-> 16 0 30 1608 topology 1659 3160
-> 15 0 31 1608 topology 1659 3161
-> 16 0 31 1608 topology 1657 3161
-> 15 0 30 1608 topology 1727 3162
-> 16 0 30 1608 topology 1716 3162
-> 15 0 31 1608 topology 1716 3163
-> 16 0 31 1608 topology 1714 3163
-> 15 0 30 1608 topology 1727 3164
-> 16 0 30 1608 topology 1665 3164
-> 15 0 31 1608 topology 1665 3165
-> 16 0 31 1608 topology 1663 3165
-> 15 0 30 1608 topology 1727 3166
-> 16 0 30 1608 topology 1722 3166
-> 15 0 31 1608 topology 1722 3167
-> 16 0 31 1608 topology 1720 3167
-> 15 0 30 1608 topology 1727 3168
-> 16 0 30 1608 topology 1668 3168
-> 15 0 31 1608 topology 1668 3169
-> 16 0 31 1608 topology 1666 3169
-> 15 0 30 1608 topology 1727 3170
-> 16 0 30 1608 topology 1674 3170
-> 15 0 31 1608 topology 1674 3171
-> 16 0 31 1608 topology 1672 3171
-> 15 0 30 1608 topology 1727 3172
-> 16 0 30 1608 topology 1680 3172
-> 15 0 31 1608 topology 1680 3173
-> 16 0 31 1608 topology 1678 3173
-> 15 0 30 1608 topology 1727 3174
-> 16 0 30 1608 topology 1686 3174
-> 15 0 31 1608 topology 1686 3175
-> 16 0 31 1608 topology 1684 3175
-> 15 0 30 1608 topology 1727 3176
-> 16 0 30 1608 topology 1692 3176
-> 15 0 31 1608 topology 1692 3177
-> 16 0 31 1608 topology 1690 3177
-> 15 0 30 1608 topology 1727 3178
-> 16 0 30 1608 topology 1614 3178
-> 15 0 31 1608 topology 1614 3179
-> 16 0 31 1608 topology 1612 3179
-> 15 0 30 1608 topology 1727 3180
-> 16 0 30 1608 topology 1620 3180
-> 15 0 31 1608 topology 1620 3181
-> 16 0 31 1608 topology 1618 3181
-> 15 0 30 1608 topology 1727 3182
-> 16 0 30 1608 topology 1626 3182
-> 15 0 31 1608 topology 1626 3183
-> 16 0 31 1608 topology 1624 3183
-> 15 0 30 1608 topology 1727 3184
-> 16 0 30 1608 topology 1632 3184
-> 15 0 31 1608 topology 1632 3185
-> 16 0 31 1608 topology 1630 3185
-> 15 0 30 1608 topology 1727 3186
-> 16 0 30 1608 topology 1638 3186
-> 15 0 31 1608 topology 1638 3187
-> 16 0 31 1608 topology 1636 3187
-> 15 0 29 1608 topology 1642 3188
-> 16 0 29 1608 topology 1643 3188
-> 15 0 30 1608 topology 1643 3189
-> 16 0 30 1608 topology 1727 3189
-> 15 0 29 1608 topology 1699 3190
-> 16 0 29 1608 topology 1700 3190
-> 15 0 30 1608 topology 1700 3191
-> 16 0 30 1608 topology 1727 3191
-> 15 0 29 1608 topology 1648 3192
-> 16 0 29 1608 topology 1649 3192
-> 15 0 30 1608 topology 1649 3193
-> 16 0 30 1608 topology 1727 3193
-> 15 0 29 1608 topology 1705 3194
-> 16 0 29 1608 topology 1706 3194
-> 15 0 30 1608 topology 1706 3195
-> 16 0 30 1608 topology 1727 3195
-> 15 0 29 1608 topology 1654 3196
-> 16 0 29 1608 topology 1655 3196
-> 15 0 30 1608 topology 1655 3197
-> 16 0 30 1608 topology 1727 3197
-> 15 0 29 1608 topology 1711 3198
-> 16 0 29 1608 topology 1712 3198
-> 15 0 30 1608 topology 1712 3199
-> 16 0 30 1608 topology 1727 3199
-> 15 0 29 1608 topology 1660 3200
-> 16 0 29 1608 topology 1661 3200
-> 15 0 30 1608 topology 1661 3201
-> 16 0 30 1608 topology 1727 3201
-> 15 0 29 1608 topology 1717 3202
-> 16 0 29 1608 topology 1718 3202
-> 15 0 30 1608 topology 1718 3203
-> 16 0 30 1608 topology 1727 3203
-> 15 0 29 1608 topology 1723 3204
-> 16 0 29 1608 topology 1724 3204
-> 15 0 30 1608 topology 1724 3205
-> 16 0 30 1608 topology 1727 3205
-> 15 0 29 1608 topology 1669 3206
-> 16 0 29 1608 topology 1670 3206
-> 15 0 30 1608 topology 1670 3207
-> 16 0 30 1608 topology 1727 3207
-> 15 0 29 1608 topology 1675 3208
-> 16 0 29 1608 topology 1676 3208
-> 15 0 30 1608 topology 1676 3209
-> 16 0 30 1608 topology 1727 3209
-> 15 0 29 1608 topology 1681 3210
-> 16 0 29 1608 topology 1682 3210
-> 15 0 30 1608 topology 1682 3211
-> 16 0 30 1608 topology 1727 3211
-> 15 0 29 1608 topology 1687 3212
-> 16 0 29 1608 topology 1688 3212
-> 15 0 30 1608 topology 1688 3213
-> 16 0 30 1608 topology 1727 3213
-> 15 0 29 1608 topology 1693 3214
-> 16 0 29 1608 topology 1694 3214
-> 15 0 30 1608 topology 1694 3215
-> 16 0 30 1608 topology 1727 3215
-> 15 0 29 1608 topology 1609 3216
-> 16 0 29 1608 topology 1610 3216
-> 15 0 30 1608 topology 1610 3217
-> 16 0 30 1608 topology 1727 3217
-> 15 0 29 1608 topology 1615 3218
-> 16 0 29 1608 topology 1616 3218
-> 15 0 30 1608 topology 1616 3219
-> 16 0 30 1608 topology 1727 3219
-> 15 0 29 1608 topology 1621 3220
-> 16 0 29 1608 topology 1622 3220
-> 15 0 30 1608 topology 1622 3221
-> 16 0 30 1608 topology 1727 3221
-> 15 0 29 1608 topology 1627 3222
-> 16 0 29 1608 topology 1628 3222
-> 15 0 30 1608 topology 1628 3223
-> 16 0 30 1608 topology 1727 3223
-> 15 0 29 1608 topology 1633 3224
-> 16 0 29 1608 topology 1634 3224
-> 15 0 30 1608 topology 1634 3225
-> 16 0 30 1608 topology 1727 3225
-> 15 0 29 1608 topology 1639 3226
-> 16 0 29 1608 topology 1640 3226
-> 15 0 30 1608 topology 1640 3227
-> 16 0 30 1608 topology 1727 3227
-> 15 0 29 1608 topology 1696 3228
-> 16 0 29 1608 topology 1697 3228
-> 15 0 30 1608 topology 1697 3229
-> 16 0 30 1608 topology 1727 3229
-> 15 0 29 1608 topology 1645 3230
-> 16 0 29 1608 topology 1646 3230
-> 15 0 30 1608 topology 1646 3231
-> 16 0 30 1608 topology 1727 3231
-> 15 0 29 1608 topology 1702 3232
-> 16 0 29 1608 topology 1703 3232
-> 15 0 30 1608 topology 1703 3233
-> 16 0 30 1608 topology 1727 3233
-> 15 0 29 1608 topology 1651 3234
-> 16 0 29 1608 topology 1652 3234
-> 15 0 30 1608 topology 1652 3235
-> 16 0 30 1608 topology 1727 3235
-> 15 0 29 1608 topology 1708 3236
-> 16 0 29 1608 topology 1709 3236
-> 15 0 30 1608 topology 1709 3237
-> 16 0 30 1608 topology 1727 3237
-> 15 0 29 1608 topology 1657 3238
-> 16 0 29 1608 topology 1658 3238
-> 15 0 30 1608 topology 1658 3239
-> 16 0 30 1608 topology 1727 3239
-> 15 0 29 1608 topology 1714 3240
-> 16 0 29 1608 topology 1715 3240
-> 15 0 30 1608 topology 1715 3241
-> 16 0 30 1608 topology 1727 3241
-> 15 0 29 1608 topology 1663 3242
-> 16 0 29 1608 topology 1664 3242
-> 15 0 30 1608 topology 1664 3243
-> 16 0 30 1608 topology 1727 3243
-> 15 0 29 1608 topology 1720 3244
-> 16 0 29 1608 topology 1721 3244
-> 15 0 30 1608 topology 1721 3245
-> 16 0 30 1608 topology 1727 3245
-> 15 0 29 1608 topology 1666 3246
-> 16 0 29 1608 topology 1667 3246
-> 15 0 30 1608 topology 1667 3247
-> 16 0 30 1608 topology 1727 3247
-> 15 0 29 1608 topology 1672 3248
-> 16 0 29 1608 topology 1673 3248
-> 15 0 30 1608 topology 1673 3249
-> 16 0 30 1608 topology 1727 3249
-> 15 0 29 1608 topology 1678 3250
-> 16 0 29 1608 topology 1679 3250
-> 15 0 30 1608 topology 1679 3251
-> 16 0 30 1608 topology 1727 3251
-> 15 0 29 1608 topology 1684 3252
-> 16 0 29 1608 topology 1685 3252
-> 15 0 30 1608 topology 1685 3253
-> 16 0 30 1608 topology 1727 3253
-> 15 0 29 1608 topology 1690 3254
-> 16 0 29 1608 topology 1691 3254
-> 15 0 30 1608 topology 1691 3255
-> 16 0 30 1608 topology 1727 3255
-> 15 0 29 1608 topology 1612 3256
-> 16 0 29 1608 topology 1613 3256
-> 15 0 30 1608 topology 1613 3257
-> 16 0 30 1608 topology 1727 3257
-> 15 0 29 1608 topology 1618 3258
-> 16 0 29 1608 topology 1619 3258
-> 15 0 30 1608 topology 1619 3259
-> 16 0 30 1608 topology 1727 3259
-> 15 0 29 1608 topology 1624 3260
-> 16 0 29 1608 topology 1625 3260
-> 15 0 30 1608 topology 1625 3261
-> 16 0 30 1608 topology 1727 3261
-> 15 0 29 1608 topology 1630 3262
-> 16 0 29 1608 topology 1631 3262
-> 15 0 30 1608 topology 1631 3263
-> 16 0 30 1608 topology 1727 3263
-> 15 0 29 1728 topology 1759 3264
-> 16 0 29 1728 topology 1760 3264
-> 15 0 30 1728 topology 1760 3265
-> 16 0 30 1728 topology 1835 3265
-> 15 0 30 1728 topology 1835 3266
-> 16 0 30 1728 topology 1767 3266
-> 15 0 31 1728 topology 1767 3267
-> 16 0 31 1728 topology 1765 3267
-> 15 0 30 1728 topology 1835 3268
-> 16 0 30 1728 topology 1824 3268
-> 15 0 31 1728 topology 1824 3269
-> 16 0 31 1728 topology 1822 3269
-> 15 0 30 1728 topology 1835 3270
-> 16 0 30 1728 topology 1773 3270
-> 15 0 31 1728 topology 1773 3271
-> 16 0 31 1728 topology 1771 3271
-> 15 0 30 1728 topology 1835 3272
-> 16 0 30 1728 topology 1830 3272
-> 15 0 31 1728 topology 1830 3273
-> 16 0 31 1728 topology 1828 3273
-> 15 0 30 1728 topology 1835 3274
-> 16 0 30 1728 topology 1779 3274
-> 15 0 31 1728 topology 1779 3275
-> 16 0 31 1728 topology 1777 3275
-> 15 0 30 1728 topology 1835 3276
-> 16 0 30 1728 topology 1785 3276
-> 15 0 31 1728 topology 1785 3277
-> 16 0 31 1728 topology 1783 3277
-> 15 0 32 1728 topology 1835 3278
-> 16 0 32 1728 topology 1834 3278
-> 15 0 30 1728 topology 1835 3279
-> 16 0 30 1728 topology 1731 3279
-> 15 0 31 1728 topology 1731 3280
-> 16 0 31 1728 topology 1729 3280
-> 15 0 30 1728 topology 1835 3281
-> 16 0 30 1728 topology 1737 3281
-> 15 0 31 1728 topology 1737 3282
-> 16 0 31 1728 topology 1735 3282
-> 15 0 30 1728 topology 1835 3283
-> 16 0 30 1728 topology 1794 3283
-> 15 0 31 1728 topology 1794 3284
-> 16 0 31 1728 topology 1792 3284
-> 15 0 30 1728 topology 1835 3285
-> 16 0 30 1728 topology 1743 3285
-> 15 0 31 1728 topology 1743 3286
-> 16 0 31 1728 topology 1741 3286
-> 15 0 30 1728 topology 1835 3287
-> 16 0 30 1728 topology 1800 3287
-> 15 0 31 1728 topology 1800 3288
-> 16 0 31 1728 topology 1798 3288
-> 15 0 30 1728 topology 1835 3289
-> 16 0 30 1728 topology 1749 3289
-> 15 0 31 1728 topology 1749 3290
-> 16 0 31 1728 topology 1747 3290
-> 15 0 30 1728 topology 1835 3291
-> 16 0 30 1728 topology 1806 3291
-> 15 0 31 1728 topology 1806 3292
-> 16 0 31 1728 topology 1804 3292
-> 15 0 30 1728 topology 1835 3293
-> 16 0 30 1728 topology 1755 3293
-> 15 0 31 1728 topology 1755 3294
-> 16 0 31 1728 topology 1753 3294
-> 15 0 30 1728 topology 1835 3295
-> 16 0 30 1728 topology 1812 3295
-> 15 0 31 1728 topology 1812 3296
-> 16 0 31 1728 topology 1810 3296
-> 15 0 30 1728 topology 1835 3297
-> 16 0 30 1728 topology 1818 3297
-> 15 0 31 1728 topology 1818 3298
-> 16 0 31 1728 topology 1816 3298
-> 15 0 30 1728 topology 1835 3299
-> 16 0 30 1728 topology 1764 3299
-> 15 0 31 1728 topology 1764 3300
-> 16 0 31 1728 topology 1762 3300
-> 15 0 30 1728 topology 1835 3301
-> 16 0 30 1728 topology 1821 3301
-> 15 0 31 1728 topology 1821 3302
-> 16 0 31 1728 topology 1819 3302
-> 15 0 30 1728 topology 1835 3303
-> 16 0 30 1728 topology 1770 3303
-> 15 0 31 1728 topology 1770 3304
-> 16 0 31 1728 topology 1768 3304
-> 15 0 30 1728 topology 1835 3305
-> 16 0 30 1728 topology 1827 3305
-> 15 0 31 1728 topology 1827 3306
-> 16 0 31 1728 topology 1825 3306
-> 15 0 30 1728 topology 1835 3307
-> 16 0 30 1728 topology 1776 3307
-> 15 0 31 1728 topology 1776 3308
-> 16 0 31 1728 topology 1774 3308
-> 15 0 30 1728 topology 1835 3309
-> 16 0 30 1728 topology 1833 3309
-> 15 0 31 1728 topology 1833 3310
-> 16 0 31 1728 topology 1831 3310
-> 15 0 30 1728 topology 1835 3311
-> 16 0 30 1728 topology 1782 3311
-> 15 0 31 1728 topology 1782 3312
-> 16 0 31 1728 topology 1780 3312
-> 15 0 30 1728 topology 1835 3313
-> 16 0 30 1728 topology 1788 3313
-> 15 0 31 1728 topology 1788 3314
-> 16 0 31 1728 topology 1786 3314
-> 15 0 30 1728 topology 1835 3315
-> 16 0 30 1728 topology 1734 3315
-> 15 0 31 1728 topology 1734 3316
-> 16 0 31 1728 topology 1732 3316
-> 15 0 30 1728 topology 1835 3317
-> 16 0 30 1728 topology 1791 3317
-> 15 0 31 1728 topology 1791 3318
-> 16 0 31 1728 topology 1789 3318
-> 15 0 30 1728 topology 1835 3319
-> 16 0 30 1728 topology 1740 3319
-> 15 0 31 1728 topology 1740 3320
-> 16 0 31 1728 topology 1738 3320
-> 15 0 30 1728 topology 1835 3321
-> 16 0 30 1728 topology 1797 3321
-> 15 0 31 1728 topology 1797 3322
-> 16 0 31 1728 topology 1795 3322
-> 15 0 30 1728 topology 1835 3323
-> 16 0 30 1728 topology 1746 3323
-> 15 0 31 1728 topology 1746 3324
-> 16 0 31 1728 topology 1744 3324
-> 15 0 30 1728 topology 1835 3325
-> 16 0 30 1728 topology 1803 3325
-> 15 0 31 1728 topology 1803 3326
-> 16 0 31 1728 topology 1801 3326
-> 15 0 30 1728 topology 1835 3327
-> 16 0 30 1728 topology 1752 3327
-> 15 0 31 1728 topology 1752 3328
-> 16 0 31 1728 topology 1750 3328
-> 15 0 30 1728 topology 1835 3329
-> 16 0 30 1728 topology 1809 3329
-> 15 0 31 1728 topology 1809 3330
-> 16 0 31 1728 topology 1807 3330
-> 15 0 30 1728 topology 1835 3331
-> 16 0 30 1728 topology 1758 3331
-> 15 0 31 1728 topology 1758 3332
-> 16 0 31 1728 topology 1756 3332
-> 15 0 30 1728 topology 1835 3333
-> 16 0 30 1728 topology 1815 3333
-> 15 0 31 1728 topology 1815 3334
-> 16 0 31 1728 topology 1813 3334
-> 15 0 29 1728 topology 1765 3335
-> 16 0 29 1728 topology 1766 3335
-> 15 0 30 1728 topology 1766 3336
+> 16 0 29 2906 topology 2918 3076
+> 15 0 28 2906 topology 2915 3077
+> 16 0 28 2906 topology 2980 3077
+> 15 0 29 2906 topology 2919 3078
+> 16 0 29 2906 topology 2921 3078
+> 15 0 29 2906 topology 2955 3079
+> 16 0 29 2906 topology 2956 3079
+> 15 0 29 2906 topology 2922 3080
+> 16 0 29 2906 topology 2924 3080
+> 15 0 28 2906 topology 2938 3081
+> 16 0 28 2906 topology 2980 3081
+> 15 0 29 2906 topology 2925 3082
+> 16 0 29 2906 topology 2927 3082
+> 15 0 28 2906 topology 2927 3083
+> 16 0 28 2906 topology 2980 3083
+> 15 0 28 2906 topology 2968 3084
+> 16 0 28 2906 topology 2980 3084
+> 15 0 29 2906 topology 2910 3085
+> 16 0 29 2906 topology 2911 3085
+> 15 0 28 2906 topology 2950 3086
+> 16 0 28 2906 topology 2980 3086
+> 15 0 29 2906 topology 2916 3087
+> 16 0 29 2906 topology 2917 3087
+> 15 0 28 2906 topology 2917 3088
+> 16 0 28 2906 topology 2980 3088
+> 15 0 29 2906 topology 2922 3089
+> 16 0 29 2906 topology 2923 3089
+> 15 0 31 2350 topology 3316 3090
+> 16 0 31 2350 topology 2793 3090
+> 15 0 31 2350 topology 3316 3091
+> 16 0 31 2350 topology 3201 3091
+> 15 0 31 2350 topology 3316 3092
+> 16 0 31 2350 topology 3312 3092
+> 15 0 31 2350 topology 3316 3093
+> 16 0 31 2350 topology 2904 3093
+> 15 0 31 2350 topology 3316 3094
+> 16 0 31 2350 topology 2571 3094
+> 15 0 31 2350 topology 3316 3095
+> 16 0 31 2350 topology 3315 3095
+> 15 0 31 2350 topology 3316 3096
+> 16 0 31 2350 topology 3270 3096
+> 15 0 31 2350 topology 3316 3097
+> 16 0 31 2350 topology 2979 3097
+> 15 0 32 2350 topology 2460 3098
+> 16 0 32 2350 topology 3316 3098
+> 15 0 31 2350 topology 3316 3099
+> 16 0 31 2350 topology 2682 3099
+> 15 0 31 2350 topology 3316 3100
+> 16 0 31 2350 topology 3090 3100
+> 15 0 31 2350 topology 3316 3101
+> 16 0 31 2350 topology 3291 3101
+> 15 0 26 2349 topology 3317 3102
+> 16 0 26 2349 topology 3413 3102
+> 15 0 26 2349 topology 3411 3103
+> 16 0 26 2349 topology 3409 3103
+> 15 0 21 2349 topology 3317 3104
+> 16 0 21 2349 topology 3411 3104
+> 15 0 33 2349 topology 3315 3105
+> 16 0 33 2349 topology 3317 3105
+> 15 0 26 2349 topology 3411 3106
+> 16 0 26 2349 topology 3413 3106
+> 15 0 28 1608 topology 1641 3107
+> 16 0 28 1608 topology 1727 3107
+> 15 0 28 1608 topology 1701 3108
+> 16 0 28 1608 topology 1727 3108
+> 15 0 28 1608 topology 1631 3109
+> 16 0 28 1608 topology 1727 3109
+> 15 0 28 1608 topology 1677 3110
+> 16 0 28 1608 topology 1727 3110
+> 15 0 28 1608 topology 1653 3111
+> 16 0 28 1608 topology 1727 3111
+> 15 0 29 1608 topology 1633 3112
+> 16 0 29 1608 topology 1634 3112
+> 15 0 28 1608 topology 1713 3113
+> 16 0 28 1608 topology 1727 3113
+> 15 0 28 1608 topology 1689 3114
+> 16 0 28 1608 topology 1727 3114
+> 15 0 29 1608 topology 1609 3115
+> 16 0 29 1608 topology 1611 3115
+> 15 0 29 1608 topology 1636 3116
+> 16 0 29 1608 topology 1638 3116
+> 15 0 28 1608 topology 1665 3117
+> 16 0 28 1608 topology 1727 3117
+> 15 0 29 1608 topology 1639 3118
+> 16 0 29 1608 topology 1641 3118
+> 15 0 28 1608 topology 1725 3119
+> 16 0 28 1608 topology 1727 3119
+> 15 0 28 1608 topology 1637 3120
+> 16 0 28 1608 topology 1727 3120
+> 15 0 29 1608 topology 1642 3121
+> 16 0 29 1608 topology 1644 3121
+> 15 0 29 1608 topology 1696 3122
+> 16 0 29 1608 topology 1698 3122
+> 15 0 28 1608 topology 1667 3123
+> 16 0 28 1608 topology 1727 3123
+> 15 0 29 1608 topology 1645 3124
+> 16 0 29 1608 topology 1647 3124
+> 15 0 28 1608 topology 1697 3125
+> 16 0 28 1608 topology 1727 3125
+> 15 0 29 1608 topology 1699 3126
+> 16 0 29 1608 topology 1701 3126
+> 15 0 29 1608 topology 1621 3127
+> 16 0 29 1608 topology 1623 3127
+> 15 0 28 1608 topology 1649 3128
+> 16 0 28 1608 topology 1727 3128
+> 15 0 29 1608 topology 1648 3129
+> 16 0 29 1608 topology 1650 3129
+> 15 0 29 1608 topology 1702 3130
+> 16 0 29 1608 topology 1704 3130
+> 15 0 28 1608 topology 1679 3131
+> 16 0 28 1608 topology 1727 3131
+> 15 0 28 1608 topology 1620 3132
+> 16 0 28 1608 topology 1727 3132
+> 15 0 29 1608 topology 1651 3133
+> 16 0 29 1608 topology 1653 3133
+> 15 0 29 1608 topology 1705 3134
+> 16 0 29 1608 topology 1707 3134
+> 15 0 28 1608 topology 1709 3135
+> 16 0 28 1608 topology 1727 3135
+> 15 0 29 1608 topology 1654 3136
+> 16 0 29 1608 topology 1656 3136
+> 15 0 28 1608 topology 1661 3137
+> 16 0 28 1608 topology 1727 3137
+> 15 0 29 1608 topology 1708 3138
+> 16 0 29 1608 topology 1710 3138
+> 15 0 29 1608 topology 1636 3139
+> 16 0 29 1608 topology 1637 3139
+> 15 0 28 1608 topology 1691 3140
+> 16 0 28 1608 topology 1727 3140
+> 15 0 28 1608 topology 1632 3141
+> 16 0 28 1608 topology 1727 3141
+> 15 0 29 1608 topology 1657 3142
+> 16 0 29 1608 topology 1659 3142
+> 15 0 29 1608 topology 1711 3143
+> 16 0 29 1608 topology 1713 3143
+> 15 0 28 1608 topology 1721 3144
+> 16 0 28 1608 topology 1727 3144
+> 15 0 29 1608 topology 1612 3145
+> 16 0 29 1608 topology 1613 3145
+> 15 0 29 1608 topology 1666 3146
+> 16 0 29 1608 topology 1667 3146
+> 15 0 30 1608 topology 1726 3147
+> 16 0 30 1608 topology 1727 3147
+> 15 0 29 1608 topology 1633 3148
+> 16 0 29 1608 topology 1635 3148
+> 15 0 29 1608 topology 1660 3149
+> 16 0 29 1608 topology 1662 3149
+> 15 0 29 1608 topology 1714 3150
+> 16 0 29 1608 topology 1716 3150
+> 15 0 29 1608 topology 1642 3151
+> 16 0 29 1608 topology 1643 3151
+> 15 0 29 1608 topology 1696 3152
+> 16 0 29 1608 topology 1697 3152
+> 15 0 29 1608 topology 1663 3153
+> 16 0 29 1608 topology 1665 3153
+> 15 0 29 1608 topology 1717 3154
+> 16 0 29 1608 topology 1719 3154
+> 15 0 29 1608 topology 1672 3155
+> 16 0 29 1608 topology 1673 3155
+> 15 0 29 1608 topology 1720 3156
+> 16 0 29 1608 topology 1722 3156
+> 15 0 29 1608 topology 1648 3157
+> 16 0 29 1608 topology 1649 3157
+> 15 0 29 1608 topology 1702 3158
+> 16 0 29 1608 topology 1703 3158
+> 15 0 28 1608 topology 1616 3159
+> 16 0 28 1608 topology 1727 3159
+> 15 0 29 1608 topology 1723 3160
+> 16 0 29 1608 topology 1725 3160
+> 15 0 29 1608 topology 1624 3161
+> 16 0 29 1608 topology 1625 3161
+> 15 0 29 1608 topology 1678 3162
+> 16 0 29 1608 topology 1679 3162
+> 15 0 28 1608 topology 1668 3163
+> 16 0 28 1608 topology 1727 3163
+> 15 0 28 1608 topology 1644 3164
+> 16 0 28 1608 topology 1727 3164
+> 15 0 29 1608 topology 1654 3165
+> 16 0 29 1608 topology 1655 3165
+> 15 0 29 1608 topology 1708 3166
+> 16 0 29 1608 topology 1709 3166
+> 15 0 28 1608 topology 1628 3167
+> 16 0 28 1608 topology 1727 3167
+> 15 0 29 1608 topology 1684 3168
+> 16 0 29 1608 topology 1685 3168
+> 15 0 28 1608 topology 1704 3169
+> 16 0 28 1608 topology 1727 3169
+> 15 0 28 1608 topology 1680 3170
+> 16 0 28 1608 topology 1727 3170
+> 15 0 28 1608 topology 1656 3171
+> 16 0 28 1608 topology 1727 3171
+> 15 0 29 1608 topology 1660 3172
+> 16 0 29 1608 topology 1661 3172
+> 15 0 29 1608 topology 1714 3173
+> 16 0 29 1608 topology 1715 3173
+> 15 0 29 1608 topology 1690 3174
+> 16 0 29 1608 topology 1691 3174
+> 15 0 28 1608 topology 1716 3175
+> 16 0 28 1608 topology 1727 3175
+> 15 0 28 1608 topology 1692 3176
+> 16 0 28 1608 topology 1727 3176
+> 15 0 29 1608 topology 1720 3177
+> 16 0 29 1608 topology 1721 3177
+> 15 0 29 1608 topology 1618 3178
+> 16 0 29 1608 topology 1620 3178
+> 15 0 28 1608 topology 1611 3179
+> 16 0 28 1608 topology 1727 3179
+> 15 0 28 1608 topology 1646 3180
+> 16 0 28 1608 topology 1727 3180
+> 15 0 28 1608 topology 1676 3181
+> 16 0 28 1608 topology 1727 3181
+> 15 0 28 1608 topology 1706 3182
+> 16 0 28 1608 topology 1727 3182
+> 15 0 28 1608 topology 1623 3183
+> 16 0 28 1608 topology 1727 3183
+> 15 0 28 1608 topology 1658 3184
+> 16 0 28 1608 topology 1727 3184
+> 15 0 28 1608 topology 1688 3185
+> 16 0 28 1608 topology 1727 3185
+> 15 0 28 1608 topology 1718 3186
+> 16 0 28 1608 topology 1727 3186
+> 15 0 29 1608 topology 1630 3187
+> 16 0 29 1608 topology 1632 3187
+> 15 0 28 1608 topology 1635 3188
+> 16 0 28 1608 topology 1727 3188
+> 15 0 29 1608 topology 1615 3189
+> 16 0 29 1608 topology 1616 3189
+> 15 0 28 1608 topology 1613 3190
+> 16 0 28 1608 topology 1727 3190
+> 15 0 28 1608 topology 1625 3191
+> 16 0 28 1608 topology 1727 3191
+> 15 0 29 1608 topology 1627 3192
+> 16 0 29 1608 topology 1628 3192
+> 15 0 28 1608 topology 1671 3193
+> 16 0 28 1608 topology 1727 3193
+> 15 0 28 1608 topology 1647 3194
+> 16 0 28 1608 topology 1727 3194
+> 15 0 28 1608 topology 1707 3195
+> 16 0 28 1608 topology 1727 3195
+> 15 0 28 1608 topology 1683 3196
+> 16 0 28 1608 topology 1727 3196
+> 15 0 28 1608 topology 1659 3197
+> 16 0 28 1608 topology 1727 3197
+> 15 0 28 1608 topology 1719 3198
+> 16 0 28 1608 topology 1727 3198
+> 15 0 28 1608 topology 1695 3199
+> 16 0 28 1608 topology 1727 3199
+> 15 0 29 1608 topology 1666 3200
+> 16 0 29 1608 topology 1668 3200
+> 15 0 29 1608 topology 1615 3201
+> 16 0 29 1608 topology 1617 3201
+> 15 0 29 1608 topology 1669 3202
+> 16 0 29 1608 topology 1671 3202
+> 15 0 28 1608 topology 1643 3203
+> 16 0 28 1608 topology 1727 3203
+> 15 0 29 1608 topology 1672 3204
+> 16 0 29 1608 topology 1674 3204
+> 15 0 28 1608 topology 1673 3205
+> 16 0 28 1608 topology 1727 3205
+> 15 0 28 1608 topology 1614 3206
+> 16 0 28 1608 topology 1727 3206
+> 15 0 29 1608 topology 1675 3207
+> 16 0 29 1608 topology 1677 3207
+> 15 0 28 1608 topology 1703 3208
+> 16 0 28 1608 topology 1727 3208
+> 15 0 28 1608 topology 1655 3209
+> 16 0 28 1608 topology 1727 3209
+> 15 0 29 1608 topology 1678 3210
+> 16 0 29 1608 topology 1680 3210
+> 15 0 28 1608 topology 1685 3211
+> 16 0 28 1608 topology 1727 3211
+> 15 0 28 1608 topology 1626 3212
+> 16 0 28 1608 topology 1727 3212
+> 15 0 29 1608 topology 1627 3213
+> 16 0 29 1608 topology 1629 3213
+> 15 0 29 1608 topology 1681 3214
+> 16 0 29 1608 topology 1683 3214
+> 15 0 28 1608 topology 1715 3215
+> 16 0 28 1608 topology 1727 3215
+> 15 0 29 1608 topology 1684 3216
+> 16 0 29 1608 topology 1686 3216
+> 15 0 29 1608 topology 1639 3217
+> 16 0 29 1608 topology 1640 3217
+> 15 0 29 1608 topology 1687 3218
+> 16 0 29 1608 topology 1689 3218
+> 15 0 29 1608 topology 1669 3219
+> 16 0 29 1608 topology 1670 3219
+> 15 0 29 1608 topology 1690 3220
+> 16 0 29 1608 topology 1692 3220
+> 15 0 29 1608 topology 1618 3221
+> 16 0 29 1608 topology 1619 3221
+> 15 0 29 1608 topology 1645 3222
+> 16 0 29 1608 topology 1646 3222
+> 15 0 29 1608 topology 1699 3223
+> 16 0 29 1608 topology 1700 3223
+> 15 0 28 1608 topology 1610 3224
+> 16 0 28 1608 topology 1727 3224
+> 15 0 29 1608 topology 1693 3225
+> 16 0 29 1608 topology 1695 3225
+> 15 0 29 1608 topology 1675 3226
+> 16 0 29 1608 topology 1676 3226
+> 15 0 28 1608 topology 1638 3227
+> 16 0 28 1608 topology 1727 3227
+> 15 0 29 1608 topology 1651 3228
+> 16 0 29 1608 topology 1652 3228
+> 15 0 29 1608 topology 1705 3229
+> 16 0 29 1608 topology 1706 3229
+> 15 0 28 1608 topology 1622 3230
+> 16 0 28 1608 topology 1727 3230
+> 15 0 29 1608 topology 1681 3231
+> 16 0 29 1608 topology 1682 3231
+> 15 0 28 1608 topology 1698 3232
+> 16 0 28 1608 topology 1727 3232
+> 15 0 28 1608 topology 1674 3233
+> 16 0 28 1608 topology 1727 3233
+> 15 0 29 1608 topology 1630 3234
+> 16 0 29 1608 topology 1631 3234
+> 15 0 28 1608 topology 1650 3235
+> 16 0 28 1608 topology 1727 3235
+> 15 0 29 1608 topology 1657 3236
+> 16 0 29 1608 topology 1658 3236
+> 15 0 29 1608 topology 1711 3237
+> 16 0 29 1608 topology 1712 3237
+> 15 0 28 1608 topology 1634 3238
+> 16 0 28 1608 topology 1727 3238
+> 15 0 29 1608 topology 1687 3239
+> 16 0 29 1608 topology 1688 3239
+> 15 0 28 1608 topology 1710 3240
+> 16 0 28 1608 topology 1727 3240
+> 15 0 28 1608 topology 1686 3241
+> 16 0 28 1608 topology 1727 3241
+> 15 0 28 1608 topology 1662 3242
+> 16 0 28 1608 topology 1727 3242
+> 15 0 29 1608 topology 1663 3243
+> 16 0 29 1608 topology 1664 3243
+> 15 0 29 1608 topology 1717 3244
+> 16 0 29 1608 topology 1718 3244
+> 15 0 29 1608 topology 1693 3245
+> 16 0 29 1608 topology 1694 3245
+> 15 0 28 1608 topology 1722 3246
+> 16 0 28 1608 topology 1727 3246
+> 15 0 29 1608 topology 1612 3247
+> 16 0 29 1608 topology 1614 3247
+> 15 0 29 1608 topology 1723 3248
+> 16 0 29 1608 topology 1724 3248
+> 15 0 28 1608 topology 1640 3249
+> 16 0 28 1608 topology 1727 3249
+> 15 0 28 1608 topology 1670 3250
+> 16 0 28 1608 topology 1727 3250
+> 15 0 28 1608 topology 1700 3251
+> 16 0 28 1608 topology 1727 3251
+> 15 0 28 1608 topology 1617 3252
+> 16 0 28 1608 topology 1727 3252
+> 15 0 28 1608 topology 1652 3253
+> 16 0 28 1608 topology 1727 3253
+> 15 0 29 1608 topology 1624 3254
+> 16 0 29 1608 topology 1626 3254
+> 15 0 28 1608 topology 1682 3255
+> 16 0 28 1608 topology 1727 3255
+> 15 0 28 1608 topology 1712 3256
+> 16 0 28 1608 topology 1727 3256
+> 15 0 29 1608 topology 1609 3257
+> 16 0 29 1608 topology 1610 3257
+> 15 0 28 1608 topology 1629 3258
+> 16 0 28 1608 topology 1727 3258
+> 15 0 28 1608 topology 1664 3259
+> 16 0 28 1608 topology 1727 3259
+> 15 0 28 1608 topology 1694 3260
+> 16 0 28 1608 topology 1727 3260
+> 15 0 28 1608 topology 1724 3261
+> 16 0 28 1608 topology 1727 3261
+> 15 0 29 1608 topology 1621 3262
+> 16 0 29 1608 topology 1622 3262
+> 15 0 28 1608 topology 1619 3263
+> 16 0 28 1608 topology 1727 3263
+> 15 0 28 1728 topology 1764 3264
+> 16 0 28 1728 topology 1835 3264
+> 15 0 28 1728 topology 1740 3265
+> 16 0 28 1728 topology 1835 3265
+> 15 0 28 1728 topology 1824 3266
+> 16 0 28 1728 topology 1835 3266
+> 15 0 28 1728 topology 1800 3267
+> 16 0 28 1728 topology 1835 3267
+> 15 0 28 1728 topology 1776 3268
+> 16 0 28 1728 topology 1835 3268
+> 15 0 28 1728 topology 1752 3269
+> 16 0 28 1728 topology 1835 3269
+> 15 0 28 1728 topology 1812 3270
+> 16 0 28 1728 topology 1835 3270
+> 15 0 28 1728 topology 1788 3271
+> 16 0 28 1728 topology 1835 3271
+> 15 0 29 1728 topology 1729 3272
+> 16 0 29 1728 topology 1731 3272
+> 15 0 28 1728 topology 1730 3273
+> 16 0 28 1728 topology 1835 3273
+> 15 0 29 1728 topology 1732 3274
+> 16 0 29 1728 topology 1734 3274
+> 15 0 28 1728 topology 1760 3275
+> 16 0 28 1728 topology 1835 3275
+> 15 0 29 1728 topology 1735 3276
+> 16 0 29 1728 topology 1737 3276
+> 15 0 28 1728 topology 1790 3277
+> 16 0 28 1728 topology 1835 3277
+> 15 0 29 1728 topology 1789 3278
+> 16 0 29 1728 topology 1791 3278
+> 15 0 28 1728 topology 1820 3279
+> 16 0 28 1728 topology 1835 3279
+> 15 0 29 1728 topology 1738 3280
+> 16 0 29 1728 topology 1740 3280
+> 15 0 28 1728 topology 1742 3281
+> 16 0 28 1728 topology 1835 3281
+> 15 0 29 1728 topology 1792 3282
+> 16 0 29 1728 topology 1794 3282
+> 15 0 28 1728 topology 1772 3283
+> 16 0 28 1728 topology 1835 3283
+> 15 0 29 1728 topology 1741 3284
+> 16 0 29 1728 topology 1743 3284
+> 15 0 29 1728 topology 1795 3285
+> 16 0 29 1728 topology 1797 3285
+> 15 0 28 1728 topology 1802 3286
+> 16 0 28 1728 topology 1835 3286
+> 15 0 28 1728 topology 1832 3287
+> 16 0 28 1728 topology 1835 3287
+> 15 0 29 1728 topology 1744 3288
+> 16 0 29 1728 topology 1746 3288
+> 15 0 28 1728 topology 1754 3289
+> 16 0 28 1728 topology 1835 3289
+> 15 0 29 1728 topology 1798 3290
+> 16 0 29 1728 topology 1800 3290
+> 15 0 28 1728 topology 1784 3291
+> 16 0 28 1728 topology 1835 3291
+> 15 0 29 1728 topology 1747 3292
+> 16 0 29 1728 topology 1749 3292
+> 15 0 29 1728 topology 1801 3293
+> 16 0 29 1728 topology 1803 3293
+> 15 0 28 1728 topology 1814 3294
+> 16 0 28 1728 topology 1835 3294
+> 15 0 29 1728 topology 1729 3295
+> 16 0 29 1728 topology 1730 3295
+> 15 0 29 1728 topology 1750 3296
+> 16 0 29 1728 topology 1752 3296
+> 15 0 29 1728 topology 1804 3297
+> 16 0 29 1728 topology 1806 3297
+> 15 0 29 1728 topology 1759 3298
+> 16 0 29 1728 topology 1760 3298
+> 15 0 29 1728 topology 1753 3299
+> 16 0 29 1728 topology 1755 3299
+> 15 0 29 1728 topology 1807 3300
+> 16 0 29 1728 topology 1809 3300
+> 15 0 29 1728 topology 1735 3301
+> 16 0 29 1728 topology 1736 3301
+> 15 0 29 1728 topology 1789 3302
+> 16 0 29 1728 topology 1790 3302
+> 15 0 29 1728 topology 1756 3303
+> 16 0 29 1728 topology 1758 3303
+> 15 0 29 1728 topology 1810 3304
+> 16 0 29 1728 topology 1812 3304
+> 15 0 29 1728 topology 1765 3305
+> 16 0 29 1728 topology 1766 3305
+> 15 0 29 1728 topology 1819 3306
+> 16 0 29 1728 topology 1820 3306
+> 15 0 29 1728 topology 1813 3307
+> 16 0 29 1728 topology 1815 3307
+> 15 0 28 1728 topology 1731 3308
+> 16 0 28 1728 topology 1835 3308
+> 15 0 29 1728 topology 1741 3309
+> 16 0 29 1728 topology 1742 3309
+> 15 0 29 1728 topology 1795 3310
+> 16 0 29 1728 topology 1796 3310
+> 15 0 29 1728 topology 1816 3311
+> 16 0 29 1728 topology 1818 3311
+> 15 0 29 1728 topology 1771 3312
+> 16 0 29 1728 topology 1772 3312
+> 15 0 28 1728 topology 1791 3313
+> 16 0 28 1728 topology 1835 3313
+> 15 0 29 1728 topology 1825 3314
+> 16 0 29 1728 topology 1826 3314
+> 15 0 28 1728 topology 1767 3315
+> 16 0 28 1728 topology 1835 3315
+> 15 0 28 1728 topology 1743 3316
+> 16 0 28 1728 topology 1835 3316
+> 15 0 29 1728 topology 1747 3317
+> 16 0 29 1728 topology 1748 3317
+> 15 0 29 1728 topology 1801 3318
+> 16 0 29 1728 topology 1802 3318
+> 15 0 28 1728 topology 1827 3319
+> 16 0 28 1728 topology 1835 3319
+> 15 0 29 1728 topology 1777 3320
+> 16 0 29 1728 topology 1778 3320
+> 15 0 28 1728 topology 1803 3321
+> 16 0 28 1728 topology 1835 3321
+> 15 0 29 1728 topology 1831 3322
+> 16 0 29 1728 topology 1832 3322
+> 15 0 28 1728 topology 1779 3323
+> 16 0 28 1728 topology 1835 3323
+> 15 0 29 1728 topology 1753 3324
+> 16 0 29 1728 topology 1754 3324
+> 15 0 28 1728 topology 1755 3325
+> 16 0 28 1728 topology 1835 3325
+> 15 0 29 1728 topology 1807 3326
+> 16 0 29 1728 topology 1808 3326
+> 15 0 29 1728 topology 1783 3327
+> 16 0 29 1728 topology 1784 3327
+> 15 0 28 1728 topology 1815 3328
+> 16 0 28 1728 topology 1835 3328
+> 15 0 29 1728 topology 1813 3329
+> 16 0 29 1728 topology 1814 3329
+> 15 0 28 1728 topology 1739 3330
+> 16 0 28 1728 topology 1835 3330
+> 15 0 28 1728 topology 1769 3331
+> 16 0 28 1728 topology 1835 3331
+> 15 0 28 1728 topology 1799 3332
+> 16 0 28 1728 topology 1835 3332
+> 15 0 28 1728 topology 1829 3333
+> 16 0 28 1728 topology 1835 3333
+> 15 0 28 1728 topology 1751 3334
+> 16 0 28 1728 topology 1835 3334
+> 15 0 28 1728 topology 1781 3335
+> 16 0 28 1728 topology 1835 3335
+> 15 0 30 1728 topology 1834 3336
 > 16 0 30 1728 topology 1835 3336
-> 15 0 30 1728 topology 1835 3337
-> 16 0 30 1728 topology 1761 3337
-> 15 0 31 1728 topology 1761 3338
-> 16 0 31 1728 topology 1759 3338
-> 15 0 29 1728 topology 1822 3339
-> 16 0 29 1728 topology 1823 3339
-> 15 0 30 1728 topology 1823 3340
-> 16 0 30 1728 topology 1835 3340
-> 15 0 29 1728 topology 1771 3341
-> 16 0 29 1728 topology 1772 3341
-> 15 0 30 1728 topology 1772 3342
-> 16 0 30 1728 topology 1835 3342
-> 15 0 29 1728 topology 1828 3343
-> 16 0 29 1728 topology 1829 3343
-> 15 0 30 1728 topology 1829 3344
-> 16 0 30 1728 topology 1835 3344
-> 15 0 29 1728 topology 1777 3345
-> 16 0 29 1728 topology 1778 3345
-> 15 0 30 1728 topology 1778 3346
-> 16 0 30 1728 topology 1835 3346
-> 15 0 29 1728 topology 1783 3347
-> 16 0 29 1728 topology 1784 3347
-> 15 0 30 1728 topology 1784 3348
-> 16 0 30 1728 topology 1835 3348
-> 15 0 29 1728 topology 1729 3349
-> 16 0 29 1728 topology 1730 3349
-> 15 0 30 1728 topology 1730 3350
-> 16 0 30 1728 topology 1835 3350
-> 15 0 29 1728 topology 1735 3351
-> 16 0 29 1728 topology 1736 3351
-> 15 0 30 1728 topology 1736 3352
-> 16 0 30 1728 topology 1835 3352
-> 15 0 29 1728 topology 1792 3353
-> 16 0 29 1728 topology 1793 3353
-> 15 0 30 1728 topology 1793 3354
-> 16 0 30 1728 topology 1835 3354
-> 15 0 29 1728 topology 1741 3355
-> 16 0 29 1728 topology 1742 3355
-> 15 0 30 1728 topology 1742 3356
-> 16 0 30 1728 topology 1835 3356
-> 15 0 29 1728 topology 1798 3357
-> 16 0 29 1728 topology 1799 3357
-> 15 0 30 1728 topology 1799 3358
-> 16 0 30 1728 topology 1835 3358
-> 15 0 29 1728 topology 1747 3359
-> 16 0 29 1728 topology 1748 3359
-> 15 0 30 1728 topology 1748 3360
-> 16 0 30 1728 topology 1835 3360
-> 15 0 29 1728 topology 1804 3361
-> 16 0 29 1728 topology 1805 3361
-> 15 0 30 1728 topology 1805 3362
-> 16 0 30 1728 topology 1835 3362
-> 15 0 29 1728 topology 1753 3363
-> 16 0 29 1728 topology 1754 3363
-> 15 0 30 1728 topology 1754 3364
-> 16 0 30 1728 topology 1835 3364
-> 15 0 29 1728 topology 1810 3365
-> 16 0 29 1728 topology 1811 3365
-> 15 0 30 1728 topology 1811 3366
-> 16 0 30 1728 topology 1835 3366
-> 15 0 29 1728 topology 1816 3367
-> 16 0 29 1728 topology 1817 3367
-> 15 0 30 1728 topology 1817 3368
-> 16 0 30 1728 topology 1835 3368
-> 15 0 29 1728 topology 1762 3369
-> 16 0 29 1728 topology 1763 3369
-> 15 0 30 1728 topology 1763 3370
-> 16 0 30 1728 topology 1835 3370
-> 15 0 29 1728 topology 1819 3371
-> 16 0 29 1728 topology 1820 3371
-> 15 0 30 1728 topology 1820 3372
-> 16 0 30 1728 topology 1835 3372
+> 15 0 28 1728 topology 1811 3337
+> 16 0 28 1728 topology 1835 3337
+> 15 0 28 1728 topology 1734 3338
+> 16 0 28 1728 topology 1835 3338
+> 15 0 28 1728 topology 1794 3339
+> 16 0 28 1728 topology 1835 3339
+> 15 0 28 1728 topology 1770 3340
+> 16 0 28 1728 topology 1835 3340
+> 15 0 28 1728 topology 1746 3341
+> 16 0 28 1728 topology 1835 3341
+> 15 0 28 1728 topology 1830 3342
+> 16 0 28 1728 topology 1835 3342
+> 15 0 28 1728 topology 1806 3343
+> 16 0 28 1728 topology 1835 3343
+> 15 0 28 1728 topology 1782 3344
+> 16 0 28 1728 topology 1835 3344
+> 15 0 28 1728 topology 1758 3345
+> 16 0 28 1728 topology 1835 3345
+> 15 0 28 1728 topology 1818 3346
+> 16 0 28 1728 topology 1835 3346
+> 15 0 29 1728 topology 1759 3347
+> 16 0 29 1728 topology 1761 3347
+> 15 0 28 1728 topology 1736 3348
+> 16 0 28 1728 topology 1835 3348
+> 15 0 29 1728 topology 1762 3349
+> 16 0 29 1728 topology 1764 3349
+> 15 0 28 1728 topology 1766 3350
+> 16 0 28 1728 topology 1835 3350
+> 15 0 29 1728 topology 1765 3351
+> 16 0 29 1728 topology 1767 3351
+> 15 0 28 1728 topology 1796 3352
+> 16 0 28 1728 topology 1835 3352
+> 15 0 29 1728 topology 1819 3353
+> 16 0 29 1728 topology 1821 3353
+> 15 0 28 1728 topology 1826 3354
+> 16 0 28 1728 topology 1835 3354
+> 15 0 28 1728 topology 1748 3355
+> 16 0 28 1728 topology 1835 3355
+> 15 0 29 1728 topology 1768 3356
+> 16 0 29 1728 topology 1770 3356
+> 15 0 29 1728 topology 1822 3357
+> 16 0 29 1728 topology 1824 3357
+> 15 0 28 1728 topology 1778 3358
+> 16 0 28 1728 topology 1835 3358
+> 15 0 29 1728 topology 1771 3359
+> 16 0 29 1728 topology 1773 3359
+> 15 0 28 1728 topology 1808 3360
+> 16 0 28 1728 topology 1835 3360
+> 15 0 29 1728 topology 1825 3361
+> 16 0 29 1728 topology 1827 3361
+> 15 0 29 1728 topology 1774 3362
+> 16 0 29 1728 topology 1776 3362
+> 15 0 29 1728 topology 1828 3363
+> 16 0 29 1728 topology 1830 3363
+> 15 0 29 1728 topology 1777 3364
+> 16 0 29 1728 topology 1779 3364
+> 15 0 29 1728 topology 1831 3365
+> 16 0 29 1728 topology 1833 3365
+> 15 0 29 1728 topology 1732 3366
+> 16 0 29 1728 topology 1733 3366
+> 15 0 29 1728 topology 1780 3367
+> 16 0 29 1728 topology 1782 3367
+> 15 0 29 1728 topology 1762 3368
+> 16 0 29 1728 topology 1763 3368
+> 15 0 29 1728 topology 1783 3369
+> 16 0 29 1728 topology 1785 3369
+> 15 0 29 1728 topology 1738 3370
+> 16 0 29 1728 topology 1739 3370
+> 15 0 29 1728 topology 1792 3371
+> 16 0 29 1728 topology 1793 3371
+> 15 0 29 1728 topology 1786 3372
+> 16 0 29 1728 topology 1788 3372
 > 15 0 29 1728 topology 1768 3373
 > 16 0 29 1728 topology 1769 3373
-> 15 0 30 1728 topology 1769 3374
-> 16 0 30 1728 topology 1835 3374
-> 15 0 29 1728 topology 1825 3375
-> 16 0 29 1728 topology 1826 3375
-> 15 0 30 1728 topology 1826 3376
-> 16 0 30 1728 topology 1835 3376
-> 15 0 29 1728 topology 1774 3377
-> 16 0 29 1728 topology 1775 3377
-> 15 0 30 1728 topology 1775 3378
-> 16 0 30 1728 topology 1835 3378
-> 15 0 29 1728 topology 1831 3379
-> 16 0 29 1728 topology 1832 3379
-> 15 0 30 1728 topology 1832 3380
-> 16 0 30 1728 topology 1835 3380
-> 15 0 29 1728 topology 1780 3381
-> 16 0 29 1728 topology 1781 3381
-> 15 0 30 1728 topology 1781 3382
-> 16 0 30 1728 topology 1835 3382
-> 15 0 29 1728 topology 1786 3383
-> 16 0 29 1728 topology 1787 3383
-> 15 0 30 1728 topology 1787 3384
-> 16 0 30 1728 topology 1835 3384
-> 15 0 29 1728 topology 1732 3385
-> 16 0 29 1728 topology 1733 3385
-> 15 0 30 1728 topology 1733 3386
-> 16 0 30 1728 topology 1835 3386
-> 15 0 29 1728 topology 1789 3387
-> 16 0 29 1728 topology 1790 3387
-> 15 0 30 1728 topology 1790 3388
-> 16 0 30 1728 topology 1835 3388
-> 15 0 29 1728 topology 1738 3389
-> 16 0 29 1728 topology 1739 3389
-> 15 0 30 1728 topology 1739 3390
-> 16 0 30 1728 topology 1835 3390
-> 15 0 29 1728 topology 1795 3391
-> 16 0 29 1728 topology 1796 3391
-> 15 0 30 1728 topology 1796 3392
-> 16 0 30 1728 topology 1835 3392
-> 15 0 29 1728 topology 1744 3393
-> 16 0 29 1728 topology 1745 3393
-> 15 0 30 1728 topology 1745 3394
-> 16 0 30 1728 topology 1835 3394
-> 15 0 29 1728 topology 1801 3395
-> 16 0 29 1728 topology 1802 3395
-> 15 0 30 1728 topology 1802 3396
-> 16 0 30 1728 topology 1835 3396
-> 15 0 29 1728 topology 1750 3397
-> 16 0 29 1728 topology 1751 3397
-> 15 0 30 1728 topology 1751 3398
-> 16 0 30 1728 topology 1835 3398
-> 15 0 29 1728 topology 1807 3399
-> 16 0 29 1728 topology 1808 3399
-> 15 0 30 1728 topology 1808 3400
-> 16 0 30 1728 topology 1835 3400
-> 15 0 29 1728 topology 1756 3401
-> 16 0 29 1728 topology 1757 3401
-> 15 0 30 1728 topology 1757 3402
-> 16 0 30 1728 topology 1835 3402
-> 15 0 29 1728 topology 1813 3403
-> 16 0 29 1728 topology 1814 3403
-> 15 0 30 1728 topology 1814 3404
-> 16 0 30 1728 topology 1835 3404
-> 15 0 29 1836 topology 1882 3405
-> 16 0 29 1836 topology 1883 3405
-> 15 0 30 1836 topology 1883 3406
-> 16 0 30 1836 topology 1928 3406
-> 15 0 30 1836 topology 1928 3407
-> 16 0 30 1836 topology 1890 3407
-> 15 0 31 1836 topology 1890 3408
-> 16 0 31 1836 topology 1888 3408
-> 15 0 30 1836 topology 1928 3409
-> 16 0 30 1836 topology 1839 3409
-> 15 0 31 1836 topology 1839 3410
-> 16 0 31 1836 topology 1837 3410
-> 15 0 30 1836 topology 1928 3411
-> 16 0 30 1836 topology 1896 3411
-> 15 0 31 1836 topology 1896 3412
-> 16 0 31 1836 topology 1894 3412
-> 15 0 30 1836 topology 1928 3413
-> 16 0 30 1836 topology 1845 3413
-> 15 0 31 1836 topology 1845 3414
-> 16 0 31 1836 topology 1843 3414
-> 15 0 30 1836 topology 1928 3415
-> 16 0 30 1836 topology 1902 3415
-> 15 0 31 1836 topology 1902 3416
-> 16 0 31 1836 topology 1900 3416
-> 15 0 30 1836 topology 1928 3417
-> 16 0 30 1836 topology 1851 3417
-> 15 0 31 1836 topology 1851 3418
-> 16 0 31 1836 topology 1849 3418
-> 15 0 30 1836 topology 1928 3419
-> 16 0 30 1836 topology 1908 3419
-> 15 0 31 1836 topology 1908 3420
-> 16 0 31 1836 topology 1906 3420
-> 15 0 30 1836 topology 1928 3421
-> 16 0 30 1836 topology 1917 3421
-> 15 0 31 1836 topology 1917 3422
-> 16 0 31 1836 topology 1915 3422
-> 15 0 30 1836 topology 1928 3423
-> 16 0 30 1836 topology 1923 3423
-> 15 0 31 1836 topology 1923 3424
-> 16 0 31 1836 topology 1921 3424
-> 15 0 30 1836 topology 1928 3425
-> 16 0 30 1836 topology 1854 3425
-> 15 0 31 1836 topology 1854 3426
-> 16 0 31 1836 topology 1852 3426
-> 15 0 30 1836 topology 1928 3427
-> 16 0 30 1836 topology 1860 3427
-> 15 0 31 1836 topology 1860 3428
-> 16 0 31 1836 topology 1858 3428
-> 15 0 30 1836 topology 1928 3429
-> 16 0 30 1836 topology 1866 3429
-> 15 0 31 1836 topology 1866 3430
-> 16 0 31 1836 topology 1864 3430
-> 15 0 30 1836 topology 1928 3431
-> 16 0 30 1836 topology 1872 3431
-> 15 0 31 1836 topology 1872 3432
-> 16 0 31 1836 topology 1870 3432
-> 15 0 30 1836 topology 1928 3433
-> 16 0 30 1836 topology 1878 3433
-> 15 0 31 1836 topology 1878 3434
-> 16 0 31 1836 topology 1876 3434
-> 15 0 32 1836 topology 1928 3435
-> 16 0 32 1836 topology 1927 3435
-> 15 0 30 1836 topology 1928 3436
-> 16 0 30 1836 topology 1887 3436
-> 15 0 31 1836 topology 1887 3437
-> 16 0 31 1836 topology 1885 3437
-> 15 0 30 1836 topology 1928 3438
-> 16 0 30 1836 topology 1893 3438
-> 15 0 31 1836 topology 1893 3439
-> 16 0 31 1836 topology 1891 3439
-> 15 0 30 1836 topology 1928 3440
-> 16 0 30 1836 topology 1842 3440
-> 15 0 31 1836 topology 1842 3441
-> 16 0 31 1836 topology 1840 3441
-> 15 0 30 1836 topology 1928 3442
-> 16 0 30 1836 topology 1899 3442
-> 15 0 31 1836 topology 1899 3443
-> 16 0 31 1836 topology 1897 3443
-> 15 0 30 1836 topology 1928 3444
-> 16 0 30 1836 topology 1848 3444
-> 15 0 31 1836 topology 1848 3445
-> 16 0 31 1836 topology 1846 3445
-> 15 0 30 1836 topology 1928 3446
-> 16 0 30 1836 topology 1905 3446
-> 15 0 31 1836 topology 1905 3447
-> 16 0 31 1836 topology 1903 3447
-> 15 0 30 1836 topology 1928 3448
-> 16 0 30 1836 topology 1914 3448
-> 15 0 31 1836 topology 1914 3449
-> 16 0 31 1836 topology 1912 3449
-> 15 0 30 1836 topology 1928 3450
-> 16 0 30 1836 topology 1911 3450
-> 15 0 31 1836 topology 1911 3451
-> 16 0 31 1836 topology 1909 3451
-> 15 0 30 1836 topology 1928 3452
-> 16 0 30 1836 topology 1920 3452
-> 15 0 31 1836 topology 1920 3453
-> 16 0 31 1836 topology 1918 3453
-> 15 0 30 1836 topology 1928 3454
-> 16 0 30 1836 topology 1926 3454
-> 15 0 31 1836 topology 1926 3455
-> 16 0 31 1836 topology 1924 3455
-> 15 0 30 1836 topology 1928 3456
-> 16 0 30 1836 topology 1857 3456
-> 15 0 31 1836 topology 1857 3457
-> 16 0 31 1836 topology 1855 3457
-> 15 0 30 1836 topology 1928 3458
-> 16 0 30 1836 topology 1863 3458
-> 15 0 31 1836 topology 1863 3459
-> 16 0 31 1836 topology 1861 3459
-> 15 0 30 1836 topology 1928 3460
-> 16 0 30 1836 topology 1869 3460
-> 15 0 31 1836 topology 1869 3461
-> 16 0 31 1836 topology 1867 3461
-> 15 0 30 1836 topology 1928 3462
-> 16 0 30 1836 topology 1875 3462
-> 15 0 31 1836 topology 1875 3463
-> 16 0 31 1836 topology 1873 3463
-> 15 0 30 1836 topology 1928 3464
-> 16 0 30 1836 topology 1881 3464
-> 15 0 31 1836 topology 1881 3465
-> 16 0 31 1836 topology 1879 3465
-> 15 0 29 1836 topology 1888 3466
-> 16 0 29 1836 topology 1889 3466
-> 15 0 30 1836 topology 1889 3467
-> 16 0 30 1836 topology 1928 3467
-> 15 0 30 1836 topology 1928 3468
-> 16 0 30 1836 topology 1884 3468
-> 15 0 31 1836 topology 1884 3469
-> 16 0 31 1836 topology 1882 3469
-> 15 0 29 1836 topology 1837 3470
-> 16 0 29 1836 topology 1838 3470
-> 15 0 30 1836 topology 1838 3471
-> 16 0 30 1836 topology 1928 3471
-> 15 0 29 1836 topology 1894 3472
-> 16 0 29 1836 topology 1895 3472
-> 15 0 30 1836 topology 1895 3473
-> 16 0 30 1836 topology 1928 3473
-> 15 0 29 1836 topology 1843 3474
-> 16 0 29 1836 topology 1844 3474
-> 15 0 30 1836 topology 1844 3475
-> 16 0 30 1836 topology 1928 3475
-> 15 0 29 1836 topology 1900 3476
-> 16 0 29 1836 topology 1901 3476
-> 15 0 30 1836 topology 1901 3477
-> 16 0 30 1836 topology 1928 3477
-> 15 0 29 1836 topology 1849 3478
-> 16 0 29 1836 topology 1850 3478
-> 15 0 30 1836 topology 1850 3479
-> 16 0 30 1836 topology 1928 3479
-> 15 0 29 1836 topology 1906 3480
-> 16 0 29 1836 topology 1907 3480
-> 15 0 30 1836 topology 1907 3481
-> 16 0 30 1836 topology 1928 3481
-> 15 0 29 1836 topology 1915 3482
-> 16 0 29 1836 topology 1916 3482
-> 15 0 30 1836 topology 1916 3483
-> 16 0 30 1836 topology 1928 3483
-> 15 0 29 1836 topology 1921 3484
-> 16 0 29 1836 topology 1922 3484
-> 15 0 30 1836 topology 1922 3485
-> 16 0 30 1836 topology 1928 3485
-> 15 0 29 1836 topology 1852 3486
-> 16 0 29 1836 topology 1853 3486
-> 15 0 30 1836 topology 1853 3487
-> 16 0 30 1836 topology 1928 3487
-> 15 0 29 1836 topology 1858 3488
-> 16 0 29 1836 topology 1859 3488
-> 15 0 30 1836 topology 1859 3489
-> 16 0 30 1836 topology 1928 3489
-> 15 0 29 1836 topology 1864 3490
-> 16 0 29 1836 topology 1865 3490
-> 15 0 30 1836 topology 1865 3491
-> 16 0 30 1836 topology 1928 3491
-> 15 0 29 1836 topology 1870 3492
-> 16 0 29 1836 topology 1871 3492
-> 15 0 30 1836 topology 1871 3493
-> 16 0 30 1836 topology 1928 3493
-> 15 0 29 1836 topology 1876 3494
-> 16 0 29 1836 topology 1877 3494
-> 15 0 30 1836 topology 1877 3495
-> 16 0 30 1836 topology 1928 3495
-> 15 0 29 1836 topology 1885 3496
-> 16 0 29 1836 topology 1886 3496
-> 15 0 30 1836 topology 1886 3497
-> 16 0 30 1836 topology 1928 3497
-> 15 0 29 1836 topology 1891 3498
-> 16 0 29 1836 topology 1892 3498
-> 15 0 30 1836 topology 1892 3499
-> 16 0 30 1836 topology 1928 3499
-> 15 0 29 1836 topology 1840 3500
-> 16 0 29 1836 topology 1841 3500
-> 15 0 30 1836 topology 1841 3501
-> 16 0 30 1836 topology 1928 3501
-> 15 0 29 1836 topology 1897 3502
-> 16 0 29 1836 topology 1898 3502
-> 15 0 30 1836 topology 1898 3503
-> 16 0 30 1836 topology 1928 3503
-> 15 0 29 1836 topology 1846 3504
-> 16 0 29 1836 topology 1847 3504
-> 15 0 30 1836 topology 1847 3505
-> 16 0 30 1836 topology 1928 3505
-> 15 0 29 1836 topology 1903 3506
-> 16 0 29 1836 topology 1904 3506
-> 15 0 30 1836 topology 1904 3507
-> 16 0 30 1836 topology 1928 3507
-> 15 0 29 1836 topology 1912 3508
-> 16 0 29 1836 topology 1913 3508
-> 15 0 30 1836 topology 1913 3509
-> 16 0 30 1836 topology 1928 3509
-> 15 0 29 1836 topology 1909 3510
-> 16 0 29 1836 topology 1910 3510
-> 15 0 30 1836 topology 1910 3511
-> 16 0 30 1836 topology 1928 3511
-> 15 0 29 1836 topology 1918 3512
-> 16 0 29 1836 topology 1919 3512
-> 15 0 30 1836 topology 1919 3513
-> 16 0 30 1836 topology 1928 3513
-> 15 0 29 1836 topology 1924 3514
-> 16 0 29 1836 topology 1925 3514
-> 15 0 30 1836 topology 1925 3515
-> 16 0 30 1836 topology 1928 3515
-> 15 0 29 1836 topology 1855 3516
-> 16 0 29 1836 topology 1856 3516
-> 15 0 30 1836 topology 1856 3517
-> 16 0 30 1836 topology 1928 3517
-> 15 0 29 1836 topology 1861 3518
-> 16 0 29 1836 topology 1862 3518
-> 15 0 30 1836 topology 1862 3519
-> 16 0 30 1836 topology 1928 3519
-> 15 0 29 1836 topology 1867 3520
-> 16 0 29 1836 topology 1868 3520
-> 15 0 30 1836 topology 1868 3521
-> 16 0 30 1836 topology 1928 3521
-> 15 0 29 1836 topology 1873 3522
-> 16 0 29 1836 topology 1874 3522
-> 15 0 30 1836 topology 1874 3523
-> 16 0 30 1836 topology 1928 3523
-> 15 0 29 1836 topology 1879 3524
-> 16 0 29 1836 topology 1880 3524
-> 15 0 30 1836 topology 1880 3525
-> 16 0 30 1836 topology 1928 3525
-> 15 0 29 1929 topology 1975 3526
-> 16 0 29 1929 topology 1976 3526
-> 15 0 30 1929 topology 1976 3527
-> 16 0 30 1929 topology 2051 3527
-> 15 0 30 1929 topology 2051 3528
-> 16 0 30 1929 topology 2040 3528
-> 15 0 31 1929 topology 2040 3529
-> 16 0 31 1929 topology 2038 3529
-> 15 0 30 1929 topology 2051 3530
-> 16 0 30 1929 topology 1989 3530
-> 15 0 31 1929 topology 1989 3531
-> 16 0 31 1929 topology 1987 3531
-> 15 0 30 1929 topology 2051 3532
-> 16 0 30 1929 topology 1938 3532
-> 15 0 31 1929 topology 1938 3533
-> 16 0 31 1929 topology 1936 3533
-> 15 0 30 1929 topology 2051 3534
-> 16 0 30 1929 topology 2001 3534
-> 15 0 31 1929 topology 2001 3535
-> 16 0 31 1929 topology 1999 3535
-> 15 0 30 1929 topology 2051 3536
-> 16 0 30 1929 topology 1953 3536
-> 15 0 31 1929 topology 1953 3537
-> 16 0 31 1929 topology 1951 3537
-> 15 0 30 1929 topology 2051 3538
-> 16 0 30 1929 topology 2016 3538
-> 15 0 31 1929 topology 2016 3539
-> 16 0 31 1929 topology 2014 3539
-> 15 0 30 1929 topology 2051 3540
-> 16 0 30 1929 topology 1965 3540
-> 15 0 31 1929 topology 1965 3541
-> 16 0 31 1929 topology 1963 3541
-> 15 0 30 1929 topology 2051 3542
-> 16 0 30 1929 topology 2028 3542
-> 15 0 31 1929 topology 2028 3543
-> 16 0 31 1929 topology 2026 3543
-> 15 0 30 1929 topology 2051 3544
-> 16 0 30 1929 topology 1980 3544
-> 15 0 31 1929 topology 1980 3545
-> 16 0 31 1929 topology 1978 3545
-> 15 0 30 1929 topology 2051 3546
-> 16 0 30 1929 topology 2043 3546
-> 15 0 31 1929 topology 2043 3547
-> 16 0 31 1929 topology 2041 3547
-> 15 0 30 1929 topology 2051 3548
-> 16 0 30 1929 topology 1992 3548
-> 15 0 31 1929 topology 1992 3549
-> 16 0 31 1929 topology 1990 3549
-> 15 0 30 1929 topology 2051 3550
-> 16 0 30 1929 topology 1941 3550
-> 15 0 31 1929 topology 1941 3551
-> 16 0 31 1929 topology 1939 3551
-> 15 0 30 1929 topology 2051 3552
-> 16 0 30 1929 topology 2004 3552
-> 15 0 31 1929 topology 2004 3553
-> 16 0 31 1929 topology 2002 3553
-> 15 0 30 1929 topology 2051 3554
-> 16 0 30 1929 topology 2007 3554
-> 15 0 31 1929 topology 2007 3555
-> 16 0 31 1929 topology 2005 3555
-> 15 0 30 1929 topology 2051 3556
-> 16 0 30 1929 topology 1956 3556
-> 15 0 31 1929 topology 1956 3557
-> 16 0 31 1929 topology 1954 3557
-> 15 0 30 1929 topology 2051 3558
-> 16 0 30 1929 topology 2019 3558
-> 15 0 31 1929 topology 2019 3559
-> 16 0 31 1929 topology 2017 3559
-> 15 0 30 1929 topology 2051 3560
-> 16 0 30 1929 topology 1968 3560
-> 15 0 31 1929 topology 1968 3561
-> 16 0 31 1929 topology 1966 3561
-> 15 0 30 1929 topology 2051 3562
-> 16 0 30 1929 topology 2031 3562
-> 15 0 31 1929 topology 2031 3563
-> 16 0 31 1929 topology 2029 3563
-> 15 0 30 1929 topology 2051 3564
-> 16 0 30 1929 topology 1983 3564
-> 15 0 31 1929 topology 1983 3565
-> 16 0 31 1929 topology 1981 3565
-> 15 0 30 1929 topology 2051 3566
-> 16 0 30 1929 topology 1932 3566
-> 15 0 31 1929 topology 1932 3567
-> 16 0 31 1929 topology 1930 3567
-> 15 0 30 1929 topology 2051 3568
-> 16 0 30 1929 topology 2046 3568
-> 15 0 31 1929 topology 2046 3569
-> 16 0 31 1929 topology 2044 3569
-> 15 0 30 1929 topology 2051 3570
-> 16 0 30 1929 topology 1995 3570
-> 15 0 31 1929 topology 1995 3571
-> 16 0 31 1929 topology 1993 3571
-> 15 0 30 1929 topology 2051 3572
-> 16 0 30 1929 topology 1944 3572
-> 15 0 31 1929 topology 1944 3573
-> 16 0 31 1929 topology 1942 3573
-> 15 0 30 1929 topology 2051 3574
-> 16 0 30 1929 topology 1947 3574
-> 15 0 31 1929 topology 1947 3575
-> 16 0 31 1929 topology 1945 3575
-> 15 0 30 1929 topology 2051 3576
-> 16 0 30 1929 topology 2010 3576
-> 15 0 31 1929 topology 2010 3577
-> 16 0 31 1929 topology 2008 3577
-> 15 0 30 1929 topology 2051 3578
-> 16 0 30 1929 topology 1959 3578
-> 15 0 31 1929 topology 1959 3579
-> 16 0 31 1929 topology 1957 3579
-> 15 0 30 1929 topology 2051 3580
-> 16 0 30 1929 topology 2022 3580
-> 15 0 31 1929 topology 2022 3581
-> 16 0 31 1929 topology 2020 3581
-> 15 0 30 1929 topology 2051 3582
-> 16 0 30 1929 topology 1971 3582
-> 15 0 31 1929 topology 1971 3583
-> 16 0 31 1929 topology 1969 3583
-> 15 0 30 1929 topology 2051 3584
-> 16 0 30 1929 topology 2034 3584
-> 15 0 31 1929 topology 2034 3585
-> 16 0 31 1929 topology 2032 3585
-> 15 0 30 1929 topology 2051 3586
-> 16 0 30 1929 topology 2037 3586
-> 15 0 31 1929 topology 2037 3587
-> 16 0 31 1929 topology 2035 3587
-> 15 0 30 1929 topology 2051 3588
-> 16 0 30 1929 topology 1986 3588
-> 15 0 31 1929 topology 1986 3589
-> 16 0 31 1929 topology 1984 3589
-> 15 0 30 1929 topology 2051 3590
-> 16 0 30 1929 topology 1935 3590
-> 15 0 31 1929 topology 1935 3591
-> 16 0 31 1929 topology 1933 3591
-> 15 0 30 1929 topology 2051 3592
-> 16 0 30 1929 topology 2049 3592
-> 15 0 31 1929 topology 2049 3593
-> 16 0 31 1929 topology 2047 3593
-> 15 0 30 1929 topology 2051 3594
-> 16 0 30 1929 topology 1998 3594
-> 15 0 31 1929 topology 1998 3595
-> 16 0 31 1929 topology 1996 3595
-> 15 0 32 1929 topology 2051 3596
-> 16 0 32 1929 topology 2050 3596
-> 15 0 30 1929 topology 2051 3597
-> 16 0 30 1929 topology 1950 3597
-> 15 0 31 1929 topology 1950 3598
-> 16 0 31 1929 topology 1948 3598
-> 15 0 30 1929 topology 2051 3599
-> 16 0 30 1929 topology 2013 3599
-> 15 0 31 1929 topology 2013 3600
-> 16 0 31 1929 topology 2011 3600
-> 15 0 30 1929 topology 2051 3601
-> 16 0 30 1929 topology 1962 3601
-> 15 0 31 1929 topology 1962 3602
-> 16 0 31 1929 topology 1960 3602
-> 15 0 30 1929 topology 2051 3603
-> 16 0 30 1929 topology 2025 3603
-> 15 0 31 1929 topology 2025 3604
-> 16 0 31 1929 topology 2023 3604
-> 15 0 30 1929 topology 2051 3605
-> 16 0 30 1929 topology 1974 3605
-> 15 0 31 1929 topology 1974 3606
-> 16 0 31 1929 topology 1972 3606
-> 15 0 29 1929 topology 2038 3607
-> 16 0 29 1929 topology 2039 3607
-> 15 0 30 1929 topology 2039 3608
-> 16 0 30 1929 topology 2051 3608
-> 15 0 30 1929 topology 2051 3609
-> 16 0 30 1929 topology 1977 3609
-> 15 0 31 1929 topology 1977 3610
-> 16 0 31 1929 topology 1975 3610
+> 15 0 29 1728 topology 1822 3374
+> 16 0 29 1728 topology 1823 3374
+> 15 0 28 1728 topology 1761 3375
+> 16 0 28 1728 topology 1835 3375
+> 15 0 28 1728 topology 1737 3376
+> 16 0 28 1728 topology 1835 3376
+> 15 0 29 1728 topology 1744 3377
+> 16 0 29 1728 topology 1745 3377
+> 15 0 29 1728 topology 1798 3378
+> 16 0 29 1728 topology 1799 3378
+> 15 0 28 1728 topology 1821 3379
+> 16 0 28 1728 topology 1835 3379
+> 15 0 29 1728 topology 1774 3380
+> 16 0 29 1728 topology 1775 3380
+> 15 0 28 1728 topology 1797 3381
+> 16 0 28 1728 topology 1835 3381
+> 15 0 29 1728 topology 1828 3382
+> 16 0 29 1728 topology 1829 3382
+> 15 0 28 1728 topology 1773 3383
+> 16 0 28 1728 topology 1835 3383
+> 15 0 28 1728 topology 1749 3384
+> 16 0 28 1728 topology 1835 3384
+> 15 0 29 1728 topology 1750 3385
+> 16 0 29 1728 topology 1751 3385
+> 15 0 29 1728 topology 1804 3386
+> 16 0 29 1728 topology 1805 3386
+> 15 0 28 1728 topology 1833 3387
+> 16 0 28 1728 topology 1835 3387
+> 15 0 29 1728 topology 1780 3388
+> 16 0 29 1728 topology 1781 3388
+> 15 0 28 1728 topology 1809 3389
+> 16 0 28 1728 topology 1835 3389
+> 15 0 28 1728 topology 1785 3390
+> 16 0 28 1728 topology 1835 3390
+> 15 0 29 1728 topology 1756 3391
+> 16 0 29 1728 topology 1757 3391
+> 15 0 29 1728 topology 1810 3392
+> 16 0 29 1728 topology 1811 3392
+> 15 0 29 1728 topology 1786 3393
+> 16 0 29 1728 topology 1787 3393
+> 15 0 28 1728 topology 1733 3394
+> 16 0 28 1728 topology 1835 3394
+> 15 0 29 1728 topology 1816 3395
+> 16 0 29 1728 topology 1817 3395
+> 15 0 28 1728 topology 1763 3396
+> 16 0 28 1728 topology 1835 3396
+> 15 0 28 1728 topology 1793 3397
+> 16 0 28 1728 topology 1835 3397
+> 15 0 28 1728 topology 1823 3398
+> 16 0 28 1728 topology 1835 3398
+> 15 0 28 1728 topology 1745 3399
+> 16 0 28 1728 topology 1835 3399
+> 15 0 28 1728 topology 1775 3400
+> 16 0 28 1728 topology 1835 3400
+> 15 0 28 1728 topology 1805 3401
+> 16 0 28 1728 topology 1835 3401
+> 15 0 28 1728 topology 1757 3402
+> 16 0 28 1728 topology 1835 3402
+> 15 0 28 1728 topology 1787 3403
+> 16 0 28 1728 topology 1835 3403
+> 15 0 28 1728 topology 1817 3404
+> 16 0 28 1728 topology 1835 3404
+> 15 0 28 1836 topology 1880 3405
+> 16 0 28 1836 topology 1928 3405
+> 15 0 28 1836 topology 1910 3406
+> 16 0 28 1836 topology 1928 3406
+> 15 0 28 1836 topology 1919 3407
+> 16 0 28 1836 topology 1928 3407
+> 15 0 29 1836 topology 1912 3408
+> 16 0 29 1836 topology 1914 3408
+> 15 0 28 1836 topology 1887 3409
+> 16 0 28 1836 topology 1928 3409
+> 15 0 28 1836 topology 1863 3410
+> 16 0 28 1836 topology 1928 3410
+> 15 0 28 1836 topology 1839 3411
+> 16 0 28 1836 topology 1928 3411
+> 15 0 28 1836 topology 1899 3412
+> 16 0 28 1836 topology 1928 3412
+> 15 0 28 1836 topology 1875 3413
+> 16 0 28 1836 topology 1928 3413
+> 15 0 28 1836 topology 1851 3414
+> 16 0 28 1836 topology 1928 3414
+> 15 0 29 1836 topology 1924 3415
+> 16 0 29 1836 topology 1926 3415
+> 15 0 28 1836 topology 1914 3416
+> 16 0 28 1836 topology 1928 3416
+> 15 0 28 1836 topology 1911 3417
+> 16 0 28 1836 topology 1928 3417
+> 15 0 28 1836 topology 1853 3418
+> 16 0 28 1836 topology 1928 3418
+> 15 0 28 1836 topology 1926 3419
+> 16 0 28 1836 topology 1928 3419
+> 15 0 28 1836 topology 1883 3420
+> 16 0 28 1836 topology 1928 3420
+> 15 0 29 1836 topology 1915 3421
+> 16 0 29 1836 topology 1916 3421
+> 15 0 29 1836 topology 1882 3422
+> 16 0 29 1836 topology 1884 3422
+> 15 0 28 1836 topology 1865 3423
+> 16 0 28 1836 topology 1928 3423
+> 15 0 29 1836 topology 1885 3424
+> 16 0 29 1836 topology 1887 3424
+> 15 0 28 1836 topology 1895 3425
+> 16 0 28 1836 topology 1928 3425
+> 15 0 28 1836 topology 1847 3426
+> 16 0 28 1836 topology 1928 3426
+> 15 0 29 1836 topology 1888 3427
+> 16 0 29 1836 topology 1890 3427
+> 15 0 28 1836 topology 1877 3428
+> 16 0 28 1836 topology 1928 3428
+> 15 0 29 1836 topology 1837 3429
+> 16 0 29 1836 topology 1839 3429
+> 15 0 29 1836 topology 1891 3430
+> 16 0 29 1836 topology 1893 3430
+> 15 0 28 1836 topology 1907 3431
+> 16 0 28 1836 topology 1928 3431
+> 15 0 28 1836 topology 1916 3432
+> 16 0 28 1836 topology 1928 3432
+> 15 0 29 1836 topology 1840 3433
+> 16 0 29 1836 topology 1842 3433
+> 15 0 29 1836 topology 1894 3434
+> 16 0 29 1836 topology 1896 3434
+> 15 0 29 1836 topology 1843 3435
+> 16 0 29 1836 topology 1845 3435
+> 15 0 29 1836 topology 1897 3436
+> 16 0 29 1836 topology 1899 3436
+> 15 0 29 1836 topology 1852 3437
+> 16 0 29 1836 topology 1853 3437
+> 15 0 29 1836 topology 1846 3438
+> 16 0 29 1836 topology 1848 3438
+> 15 0 29 1836 topology 1900 3439
+> 16 0 29 1836 topology 1902 3439
+> 15 0 29 1836 topology 1882 3440
+> 16 0 29 1836 topology 1883 3440
+> 15 0 29 1836 topology 1849 3441
+> 16 0 29 1836 topology 1851 3441
+> 15 0 29 1836 topology 1903 3442
+> 16 0 29 1836 topology 1905 3442
+> 15 0 29 1836 topology 1858 3443
+> 16 0 29 1836 topology 1859 3443
+> 15 0 28 1836 topology 1854 3444
+> 16 0 28 1836 topology 1928 3444
+> 15 0 29 1836 topology 1906 3445
+> 16 0 29 1836 topology 1908 3445
+> 15 0 29 1836 topology 1888 3446
+> 16 0 29 1836 topology 1889 3446
+> 15 0 29 1836 topology 1909 3447
+> 16 0 29 1836 topology 1911 3447
+> 15 0 29 1836 topology 1915 3448
+> 16 0 29 1836 topology 1917 3448
+> 15 0 29 1836 topology 1864 3449
+> 16 0 29 1836 topology 1865 3449
+> 15 0 28 1836 topology 1890 3450
+> 16 0 28 1836 topology 1928 3450
+> 15 0 28 1836 topology 1866 3451
+> 16 0 28 1836 topology 1928 3451
+> 15 0 29 1836 topology 1840 3452
+> 16 0 29 1836 topology 1841 3452
+> 15 0 28 1836 topology 1842 3453
+> 16 0 28 1836 topology 1928 3453
+> 15 0 29 1836 topology 1894 3454
+> 16 0 29 1836 topology 1895 3454
+> 15 0 29 1836 topology 1870 3455
+> 16 0 29 1836 topology 1871 3455
+> 15 0 28 1836 topology 1902 3456
+> 16 0 28 1836 topology 1928 3456
+> 15 0 28 1836 topology 1878 3457
+> 16 0 28 1836 topology 1928 3457
+> 15 0 29 1836 topology 1846 3458
+> 16 0 29 1836 topology 1847 3458
+> 15 0 29 1836 topology 1900 3459
+> 16 0 29 1836 topology 1901 3459
+> 15 0 28 1836 topology 1917 3460
+> 16 0 28 1836 topology 1928 3460
+> 15 0 29 1836 topology 1876 3461
+> 16 0 29 1836 topology 1877 3461
+> 15 0 29 1836 topology 1906 3462
+> 16 0 29 1836 topology 1907 3462
+> 15 0 29 1836 topology 1912 3463
+> 16 0 29 1836 topology 1913 3463
+> 15 0 28 1836 topology 1862 3464
+> 16 0 28 1836 topology 1928 3464
+> 15 0 28 1836 topology 1892 3465
+> 16 0 28 1836 topology 1928 3465
+> 15 0 28 1836 topology 1844 3466
+> 16 0 28 1836 topology 1928 3466
+> 15 0 28 1836 topology 1874 3467
+> 16 0 28 1836 topology 1928 3467
+> 15 0 28 1836 topology 1904 3468
+> 16 0 28 1836 topology 1928 3468
+> 15 0 29 1836 topology 1924 3469
+> 16 0 29 1836 topology 1925 3469
+> 15 0 28 1836 topology 1913 3470
+> 16 0 28 1836 topology 1928 3470
+> 15 0 28 1836 topology 1925 3471
+> 16 0 28 1836 topology 1928 3471
+> 15 0 28 1836 topology 1857 3472
+> 16 0 28 1836 topology 1928 3472
+> 15 0 28 1836 topology 1893 3473
+> 16 0 28 1836 topology 1928 3473
+> 15 0 29 1836 topology 1918 3474
+> 16 0 29 1836 topology 1920 3474
+> 15 0 28 1836 topology 1869 3475
+> 16 0 28 1836 topology 1928 3475
+> 15 0 28 1836 topology 1845 3476
+> 16 0 28 1836 topology 1928 3476
+> 15 0 28 1836 topology 1905 3477
+> 16 0 28 1836 topology 1928 3477
+> 15 0 28 1836 topology 1881 3478
+> 16 0 28 1836 topology 1928 3478
+> 15 0 28 1836 topology 1920 3479
+> 16 0 28 1836 topology 1928 3479
+> 15 0 29 1836 topology 1852 3480
+> 16 0 29 1836 topology 1854 3480
+> 15 0 28 1836 topology 1859 3481
+> 16 0 28 1836 topology 1928 3481
+> 15 0 29 1836 topology 1855 3482
+> 16 0 29 1836 topology 1857 3482
+> 15 0 28 1836 topology 1889 3483
+> 16 0 28 1836 topology 1928 3483
+> 15 0 30 1836 topology 1927 3484
+> 16 0 30 1836 topology 1928 3484
+> 15 0 28 1836 topology 1841 3485
+> 16 0 28 1836 topology 1928 3485
+> 15 0 29 1836 topology 1858 3486
+> 16 0 29 1836 topology 1860 3486
+> 15 0 28 1836 topology 1871 3487
+> 16 0 28 1836 topology 1928 3487
+> 15 0 29 1836 topology 1921 3488
+> 16 0 29 1836 topology 1922 3488
+> 15 0 29 1836 topology 1861 3489
+> 16 0 29 1836 topology 1863 3489
+> 15 0 28 1836 topology 1901 3490
+> 16 0 28 1836 topology 1928 3490
+> 15 0 29 1836 topology 1864 3491
+> 16 0 29 1836 topology 1866 3491
+> 15 0 29 1836 topology 1867 3492
+> 16 0 29 1836 topology 1869 3492
+> 15 0 28 1836 topology 1922 3493
+> 16 0 28 1836 topology 1928 3493
+> 15 0 29 1836 topology 1870 3494
+> 16 0 29 1836 topology 1872 3494
+> 15 0 29 1836 topology 1873 3495
+> 16 0 29 1836 topology 1875 3495
+> 15 0 29 1836 topology 1855 3496
+> 16 0 29 1836 topology 1856 3496
+> 15 0 29 1836 topology 1876 3497
+> 16 0 29 1836 topology 1878 3497
+> 15 0 29 1836 topology 1885 3498
+> 16 0 29 1836 topology 1886 3498
+> 15 0 29 1836 topology 1879 3499
+> 16 0 29 1836 topology 1881 3499
+> 15 0 29 1836 topology 1861 3500
+> 16 0 29 1836 topology 1862 3500
+> 15 0 28 1836 topology 1884 3501
+> 16 0 28 1836 topology 1928 3501
+> 15 0 28 1836 topology 1860 3502
+> 16 0 28 1836 topology 1928 3502
+> 15 0 29 1836 topology 1837 3503
+> 16 0 29 1836 topology 1838 3503
+> 15 0 29 1836 topology 1891 3504
+> 16 0 29 1836 topology 1892 3504
+> 15 0 29 1836 topology 1867 3505
+> 16 0 29 1836 topology 1868 3505
+> 15 0 28 1836 topology 1896 3506
+> 16 0 28 1836 topology 1928 3506
+> 15 0 28 1836 topology 1872 3507
+> 16 0 28 1836 topology 1928 3507
+> 15 0 29 1836 topology 1921 3508
+> 16 0 29 1836 topology 1923 3508
+> 15 0 29 1836 topology 1843 3509
+> 16 0 29 1836 topology 1844 3509
+> 15 0 28 1836 topology 1848 3510
+> 16 0 28 1836 topology 1928 3510
+> 15 0 29 1836 topology 1897 3511
+> 16 0 29 1836 topology 1898 3511
+> 15 0 29 1836 topology 1873 3512
+> 16 0 29 1836 topology 1874 3512
+> 15 0 28 1836 topology 1908 3513
+> 16 0 28 1836 topology 1928 3513
+> 15 0 29 1836 topology 1849 3514
+> 16 0 29 1836 topology 1850 3514
+> 15 0 29 1836 topology 1903 3515
+> 16 0 29 1836 topology 1904 3515
+> 15 0 28 1836 topology 1923 3516
+> 16 0 28 1836 topology 1928 3516
+> 15 0 29 1836 topology 1879 3517
+> 16 0 29 1836 topology 1880 3517
+> 15 0 28 1836 topology 1856 3518
+> 16 0 28 1836 topology 1928 3518
+> 15 0 28 1836 topology 1886 3519
+> 16 0 28 1836 topology 1928 3519
+> 15 0 29 1836 topology 1909 3520
+> 16 0 29 1836 topology 1910 3520
+> 15 0 28 1836 topology 1838 3521
+> 16 0 28 1836 topology 1928 3521
+> 15 0 29 1836 topology 1918 3522
+> 16 0 29 1836 topology 1919 3522
+> 15 0 28 1836 topology 1868 3523
+> 16 0 28 1836 topology 1928 3523
+> 15 0 28 1836 topology 1898 3524
+> 16 0 28 1836 topology 1928 3524
+> 15 0 28 1836 topology 1850 3525
+> 16 0 28 1836 topology 1928 3525
+> 15 0 29 1929 topology 1981 3526
+> 16 0 29 1929 topology 1982 3526
+> 15 0 28 1929 topology 2004 3527
+> 16 0 28 1929 topology 2051 3527
+> 15 0 29 1929 topology 2035 3528
+> 16 0 29 1929 topology 2036 3528
+> 15 0 29 1929 topology 2002 3529
+> 16 0 29 1929 topology 2004 3529
+> 15 0 28 1929 topology 1946 3530
+> 16 0 28 1929 topology 2051 3530
+> 15 0 29 1929 topology 1960 3531
+> 16 0 29 1929 topology 1961 3531
+> 15 0 28 1929 topology 1976 3532
+> 16 0 28 1929 topology 2051 3532
+> 15 0 29 1929 topology 2014 3533
+> 16 0 29 1929 topology 2015 3533
+> 15 0 28 1929 topology 2006 3534
+> 16 0 28 1929 topology 2051 3534
+> 15 0 28 1929 topology 2036 3535
+> 16 0 28 1929 topology 2051 3535
+> 15 0 28 1929 topology 1958 3536
+> 16 0 28 1929 topology 2051 3536
+> 15 0 29 1929 topology 1939 3537
+> 16 0 29 1929 topology 1940 3537
+> 15 0 28 1929 topology 1988 3538
+> 16 0 28 1929 topology 2051 3538
+> 15 0 29 1929 topology 1993 3539
+> 16 0 29 1929 topology 1994 3539
+> 15 0 29 1929 topology 2047 3540
+> 16 0 29 1929 topology 2048 3540
+> 15 0 28 1929 topology 2018 3541
+> 16 0 28 1929 topology 2051 3541
+> 15 0 28 1929 topology 1940 3542
+> 16 0 28 1929 topology 2051 3542
+> 15 0 28 1929 topology 2048 3543
+> 16 0 28 1929 topology 2051 3543
+> 15 0 28 1929 topology 1970 3544
+> 16 0 28 1929 topology 2051 3544
+> 15 0 29 1929 topology 1972 3545
+> 16 0 29 1929 topology 1973 3545
+> 15 0 28 1929 topology 2000 3546
+> 16 0 28 1929 topology 2051 3546
+> 15 0 29 1929 topology 2026 3547
+> 16 0 29 1929 topology 2027 3547
+> 15 0 28 1929 topology 2030 3548
+> 16 0 28 1929 topology 2051 3548
+> 15 0 29 1929 topology 1948 3549
+> 16 0 29 1929 topology 1950 3549
+> 15 0 29 1929 topology 1981 3550
+> 16 0 29 1929 topology 1983 3550
+> 15 0 29 1929 topology 2035 3551
+> 16 0 29 1929 topology 2037 3551
+> 15 0 28 1929 topology 1947 3552
+> 16 0 28 1929 topology 2051 3552
+> 15 0 29 1929 topology 1960 3553
+> 16 0 29 1929 topology 1962 3553
+> 15 0 29 1929 topology 2014 3554
+> 16 0 29 1929 topology 2016 3554
+> 15 0 28 1929 topology 2007 3555
+> 16 0 28 1929 topology 2051 3555
+> 15 0 28 1929 topology 1983 3556
+> 16 0 28 1929 topology 2051 3556
+> 15 0 29 1929 topology 1945 3557
+> 16 0 29 1929 topology 1946 3557
+> 15 0 28 1929 topology 1959 3558
+> 16 0 28 1929 topology 2051 3558
+> 15 0 28 1929 topology 1935 3559
+> 16 0 28 1929 topology 2051 3559
+> 15 0 29 1929 topology 1939 3560
+> 16 0 29 1929 topology 1941 3560
+> 15 0 29 1929 topology 1993 3561
+> 16 0 29 1929 topology 1995 3561
+> 15 0 28 1929 topology 2043 3562
+> 16 0 28 1929 topology 2051 3562
+> 15 0 29 1929 topology 2047 3563
+> 16 0 29 1929 topology 2049 3563
+> 15 0 28 1929 topology 2019 3564
+> 16 0 28 1929 topology 2051 3564
+> 15 0 28 1929 topology 1995 3565
+> 16 0 28 1929 topology 2051 3565
+> 15 0 28 1929 topology 1971 3566
+> 16 0 28 1929 topology 2051 3566
+> 15 0 29 1929 topology 1978 3567
+> 16 0 29 1929 topology 1979 3567
+> 15 0 29 1929 topology 1972 3568
+> 16 0 29 1929 topology 1974 3568
+> 15 0 29 1929 topology 2026 3569
+> 16 0 29 1929 topology 2028 3569
+> 15 0 28 1929 topology 2031 3570
+> 16 0 28 1929 topology 2051 3570
+> 15 0 29 1929 topology 1957 3571
+> 16 0 29 1929 topology 1958 3571
+> 15 0 29 1929 topology 2011 3572
+> 16 0 29 1929 topology 2012 3572
+> 15 0 29 1929 topology 1936 3573
+> 16 0 29 1929 topology 1937 3573
+> 15 0 28 1929 topology 1955 3574
+> 16 0 28 1929 topology 2051 3574
+> 15 0 29 1929 topology 1990 3575
+> 16 0 29 1929 topology 1991 3575
+> 15 0 29 1929 topology 2044 3576
+> 16 0 29 1929 topology 2045 3576
+> 15 0 28 1929 topology 1985 3577
+> 16 0 28 1929 topology 2051 3577
+> 15 0 28 1929 topology 2015 3578
+> 16 0 28 1929 topology 2051 3578
+> 15 0 28 1929 topology 1937 3579
+> 16 0 28 1929 topology 2051 3579
+> 15 0 28 1929 topology 2045 3580
+> 16 0 28 1929 topology 2051 3580
+> 15 0 28 1929 topology 1967 3581
+> 16 0 28 1929 topology 2051 3581
+> 15 0 29 1929 topology 1969 3582
+> 16 0 29 1929 topology 1970 3582
+> 15 0 29 1929 topology 2023 3583
+> 16 0 29 1929 topology 2024 3583
+> 15 0 28 1929 topology 1997 3584
+> 16 0 28 1929 topology 2051 3584
+> 15 0 28 1929 topology 2027 3585
+> 16 0 28 1929 topology 2051 3585
+> 15 0 29 1929 topology 2002 3586
+> 16 0 29 1929 topology 2003 3586
+> 15 0 29 1929 topology 1951 3587
+> 16 0 29 1929 topology 1953 3587
+> 15 0 29 1929 topology 2005 3588
+> 16 0 29 1929 topology 2007 3588
+> 15 0 29 1929 topology 1930 3589
+> 16 0 29 1929 topology 1932 3589
+> 15 0 29 1929 topology 1984 3590
+> 16 0 29 1929 topology 1986 3590
+> 15 0 29 1929 topology 2038 3591
+> 16 0 29 1929 topology 2040 3591
+> 15 0 28 1929 topology 1950 3592
+> 16 0 28 1929 topology 2051 3592
+> 15 0 29 1929 topology 1963 3593
+> 16 0 29 1929 topology 1965 3593
+> 15 0 28 1929 topology 2010 3594
+> 16 0 28 1929 topology 2051 3594
+> 15 0 29 1929 topology 2017 3595
+> 16 0 29 1929 topology 2019 3595
+> 15 0 28 1929 topology 1986 3596
+> 16 0 28 1929 topology 2051 3596
+> 15 0 28 1929 topology 1962 3597
+> 16 0 28 1929 topology 2051 3597
+> 15 0 28 1929 topology 1938 3598
+> 16 0 28 1929 topology 2051 3598
+> 15 0 29 1929 topology 1975 3599
+> 16 0 29 1929 topology 1976 3599
+> 15 0 28 1929 topology 2046 3600
+> 16 0 28 1929 topology 2051 3600
+> 15 0 29 1929 topology 1942 3601
+> 16 0 29 1929 topology 1944 3601
+> 15 0 29 1929 topology 1996 3602
+> 16 0 29 1929 topology 1998 3602
+> 15 0 28 1929 topology 2022 3603
+> 16 0 28 1929 topology 2051 3603
+> 15 0 28 1929 topology 1998 3604
+> 16 0 28 1929 topology 2051 3604
+> 15 0 28 1929 topology 1974 3605
+> 16 0 28 1929 topology 2051 3605
+> 15 0 29 1929 topology 1954 3606
+> 16 0 29 1929 topology 1955 3606
+> 15 0 29 1929 topology 2008 3607
+> 16 0 29 1929 topology 2009 3607
+> 15 0 29 1929 topology 2029 3608
+> 16 0 29 1929 topology 2031 3608
+> 15 0 28 1929 topology 2034 3609
+> 16 0 28 1929 topology 2051 3609
+> 15 0 29 1929 topology 1933 3610
+> 16 0 29 1929 topology 1934 3610
 > 15 0 29 1929 topology 1987 3611
 > 16 0 29 1929 topology 1988 3611
-> 15 0 30 1929 topology 1988 3612
-> 16 0 30 1929 topology 2051 3612
-> 15 0 29 1929 topology 1936 3613
-> 16 0 29 1929 topology 1937 3613
-> 15 0 30 1929 topology 1937 3614
-> 16 0 30 1929 topology 2051 3614
-> 15 0 29 1929 topology 1999 3615
-> 16 0 29 1929 topology 2000 3615
-> 15 0 30 1929 topology 2000 3616
-> 16 0 30 1929 topology 2051 3616
-> 15 0 29 1929 topology 1951 3617
-> 16 0 29 1929 topology 1952 3617
-> 15 0 30 1929 topology 1952 3618
-> 16 0 30 1929 topology 2051 3618
-> 15 0 29 1929 topology 2014 3619
-> 16 0 29 1929 topology 2015 3619
-> 15 0 30 1929 topology 2015 3620
-> 16 0 30 1929 topology 2051 3620
-> 15 0 29 1929 topology 1963 3621
-> 16 0 29 1929 topology 1964 3621
-> 15 0 30 1929 topology 1964 3622
-> 16 0 30 1929 topology 2051 3622
-> 15 0 29 1929 topology 2026 3623
-> 16 0 29 1929 topology 2027 3623
-> 15 0 30 1929 topology 2027 3624
-> 16 0 30 1929 topology 2051 3624
-> 15 0 29 1929 topology 1978 3625
-> 16 0 29 1929 topology 1979 3625
-> 15 0 30 1929 topology 1979 3626
-> 16 0 30 1929 topology 2051 3626
-> 15 0 29 1929 topology 2041 3627
-> 16 0 29 1929 topology 2042 3627
-> 15 0 30 1929 topology 2042 3628
-> 16 0 30 1929 topology 2051 3628
-> 15 0 29 1929 topology 1990 3629
-> 16 0 29 1929 topology 1991 3629
-> 15 0 30 1929 topology 1991 3630
-> 16 0 30 1929 topology 2051 3630
-> 15 0 29 1929 topology 1939 3631
-> 16 0 29 1929 topology 1940 3631
-> 15 0 30 1929 topology 1940 3632
-> 16 0 30 1929 topology 2051 3632
-> 15 0 29 1929 topology 2002 3633
-> 16 0 29 1929 topology 2003 3633
-> 15 0 30 1929 topology 2003 3634
-> 16 0 30 1929 topology 2051 3634
-> 15 0 29 1929 topology 2005 3635
-> 16 0 29 1929 topology 2006 3635
-> 15 0 30 1929 topology 2006 3636
-> 16 0 30 1929 topology 2051 3636
-> 15 0 29 1929 topology 1954 3637
-> 16 0 29 1929 topology 1955 3637
-> 15 0 30 1929 topology 1955 3638
-> 16 0 30 1929 topology 2051 3638
-> 15 0 29 1929 topology 2017 3639
-> 16 0 29 1929 topology 2018 3639
-> 15 0 30 1929 topology 2018 3640
-> 16 0 30 1929 topology 2051 3640
-> 15 0 29 1929 topology 1966 3641
-> 16 0 29 1929 topology 1967 3641
-> 15 0 30 1929 topology 1967 3642
-> 16 0 30 1929 topology 2051 3642
-> 15 0 29 1929 topology 2029 3643
-> 16 0 29 1929 topology 2030 3643
-> 15 0 30 1929 topology 2030 3644
-> 16 0 30 1929 topology 2051 3644
-> 15 0 29 1929 topology 1981 3645
-> 16 0 29 1929 topology 1982 3645
-> 15 0 30 1929 topology 1982 3646
-> 16 0 30 1929 topology 2051 3646
-> 15 0 29 1929 topology 1930 3647
-> 16 0 29 1929 topology 1931 3647
-> 15 0 30 1929 topology 1931 3648
-> 16 0 30 1929 topology 2051 3648
-> 15 0 29 1929 topology 2044 3649
-> 16 0 29 1929 topology 2045 3649
-> 15 0 30 1929 topology 2045 3650
-> 16 0 30 1929 topology 2051 3650
-> 15 0 29 1929 topology 1993 3651
-> 16 0 29 1929 topology 1994 3651
-> 15 0 30 1929 topology 1994 3652
-> 16 0 30 1929 topology 2051 3652
-> 15 0 29 1929 topology 1942 3653
-> 16 0 29 1929 topology 1943 3653
-> 15 0 30 1929 topology 1943 3654
-> 16 0 30 1929 topology 2051 3654
-> 15 0 29 1929 topology 1945 3655
-> 16 0 29 1929 topology 1946 3655
-> 15 0 30 1929 topology 1946 3656
-> 16 0 30 1929 topology 2051 3656
-> 15 0 29 1929 topology 2008 3657
-> 16 0 29 1929 topology 2009 3657
-> 15 0 30 1929 topology 2009 3658
-> 16 0 30 1929 topology 2051 3658
-> 15 0 29 1929 topology 1957 3659
-> 16 0 29 1929 topology 1958 3659
-> 15 0 30 1929 topology 1958 3660
-> 16 0 30 1929 topology 2051 3660
-> 15 0 29 1929 topology 2020 3661
-> 16 0 29 1929 topology 2021 3661
-> 15 0 30 1929 topology 2021 3662
-> 16 0 30 1929 topology 2051 3662
-> 15 0 29 1929 topology 1969 3663
-> 16 0 29 1929 topology 1970 3663
-> 15 0 30 1929 topology 1970 3664
-> 16 0 30 1929 topology 2051 3664
-> 15 0 29 1929 topology 2032 3665
-> 16 0 29 1929 topology 2033 3665
-> 15 0 30 1929 topology 2033 3666
-> 16 0 30 1929 topology 2051 3666
-> 15 0 29 1929 topology 2035 3667
-> 16 0 29 1929 topology 2036 3667
-> 15 0 30 1929 topology 2036 3668
-> 16 0 30 1929 topology 2051 3668
-> 15 0 29 1929 topology 1984 3669
-> 16 0 29 1929 topology 1985 3669
-> 15 0 30 1929 topology 1985 3670
-> 16 0 30 1929 topology 2051 3670
-> 15 0 29 1929 topology 1933 3671
-> 16 0 29 1929 topology 1934 3671
-> 15 0 30 1929 topology 1934 3672
-> 16 0 30 1929 topology 2051 3672
-> 15 0 29 1929 topology 2047 3673
-> 16 0 29 1929 topology 2048 3673
-> 15 0 30 1929 topology 2048 3674
-> 16 0 30 1929 topology 2051 3674
-> 15 0 29 1929 topology 1996 3675
-> 16 0 29 1929 topology 1997 3675
-> 15 0 30 1929 topology 1997 3676
-> 16 0 30 1929 topology 2051 3676
-> 15 0 29 1929 topology 1948 3677
-> 16 0 29 1929 topology 1949 3677
-> 15 0 30 1929 topology 1949 3678
-> 16 0 30 1929 topology 2051 3678
-> 15 0 29 1929 topology 2011 3679
-> 16 0 29 1929 topology 2012 3679
-> 15 0 30 1929 topology 2012 3680
-> 16 0 30 1929 topology 2051 3680
-> 15 0 29 1929 topology 1960 3681
-> 16 0 29 1929 topology 1961 3681
-> 15 0 30 1929 topology 1961 3682
-> 16 0 30 1929 topology 2051 3682
+> 15 0 29 1929 topology 2041 3612
+> 16 0 29 1929 topology 2042 3612
+> 15 0 28 1929 topology 1952 3613
+> 16 0 28 1929 topology 2051 3613
+> 15 0 28 1929 topology 1982 3614
+> 16 0 28 1929 topology 2051 3614
+> 15 0 28 1929 topology 2012 3615
+> 16 0 28 1929 topology 2051 3615
+> 15 0 28 1929 topology 1934 3616
+> 16 0 28 1929 topology 2051 3616
+> 15 0 29 1929 topology 1966 3617
+> 16 0 29 1929 topology 1967 3617
+> 15 0 29 1929 topology 2020 3618
+> 16 0 29 1929 topology 2021 3618
+> 15 0 28 1929 topology 2042 3619
+> 16 0 28 1929 topology 2051 3619
+> 15 0 28 1929 topology 1964 3620
+> 16 0 28 1929 topology 2051 3620
+> 15 0 28 1929 topology 1994 3621
+> 16 0 28 1929 topology 2051 3621
+> 15 0 28 1929 topology 2024 3622
+> 16 0 28 1929 topology 2051 3622
+> 15 0 29 1929 topology 1999 3623
+> 16 0 29 1929 topology 2000 3623
+> 15 0 29 1929 topology 1975 3624
+> 16 0 29 1929 topology 1977 3624
+> 15 0 29 1929 topology 2032 3625
+> 16 0 29 1929 topology 2033 3625
+> 15 0 29 1929 topology 1954 3626
+> 16 0 29 1929 topology 1956 3626
+> 15 0 29 1929 topology 2008 3627
+> 16 0 29 1929 topology 2010 3627
+> 15 0 29 1929 topology 1933 3628
+> 16 0 29 1929 topology 1935 3628
+> 15 0 28 1929 topology 1977 3629
+> 16 0 28 1929 topology 2051 3629
+> 15 0 29 1929 topology 1987 3630
+> 16 0 29 1929 topology 1989 3630
+> 15 0 29 1929 topology 2041 3631
+> 16 0 29 1929 topology 2043 3631
+> 15 0 28 1929 topology 1953 3632
+> 16 0 28 1929 topology 2051 3632
+> 15 0 28 1929 topology 2037 3633
+> 16 0 28 1929 topology 2051 3633
+> 15 0 28 1929 topology 2013 3634
+> 16 0 28 1929 topology 2051 3634
+> 15 0 29 1929 topology 1966 3635
+> 16 0 29 1929 topology 1968 3635
+> 15 0 28 1929 topology 1989 3636
+> 16 0 28 1929 topology 2051 3636
+> 15 0 29 1929 topology 2020 3637
+> 16 0 29 1929 topology 2022 3637
+> 15 0 28 1929 topology 1965 3638
+> 16 0 28 1929 topology 2051 3638
+> 15 0 28 1929 topology 1941 3639
+> 16 0 28 1929 topology 2051 3639
+> 15 0 28 1929 topology 2049 3640
+> 16 0 28 1929 topology 2051 3640
+> 15 0 29 1929 topology 1951 3641
+> 16 0 29 1929 topology 1952 3641
+> 15 0 29 1929 topology 2005 3642
+> 16 0 29 1929 topology 2006 3642
+> 15 0 28 1929 topology 2025 3643
+> 16 0 28 1929 topology 2051 3643
+> 15 0 29 1929 topology 1999 3644
+> 16 0 29 1929 topology 2001 3644
+> 15 0 28 1929 topology 2001 3645
+> 16 0 28 1929 topology 2051 3645
+> 15 0 29 1929 topology 1930 3646
+> 16 0 29 1929 topology 1931 3646
+> 15 0 29 1929 topology 1984 3647
+> 16 0 29 1929 topology 1985 3647
+> 15 0 29 1929 topology 2038 3648
+> 16 0 29 1929 topology 2039 3648
+> 15 0 29 1929 topology 2032 3649
+> 16 0 29 1929 topology 2034 3649
+> 15 0 28 1929 topology 1949 3650
+> 16 0 28 1929 topology 2051 3650
+> 15 0 28 1929 topology 1979 3651
+> 16 0 28 1929 topology 2051 3651
+> 15 0 29 1929 topology 1963 3652
+> 16 0 29 1929 topology 1964 3652
+> 15 0 28 1929 topology 2009 3653
+> 16 0 28 1929 topology 2051 3653
+> 15 0 29 1929 topology 2017 3654
+> 16 0 29 1929 topology 2018 3654
+> 15 0 28 1929 topology 1931 3655
+> 16 0 28 1929 topology 2051 3655
+> 15 0 28 1929 topology 2039 3656
+> 16 0 28 1929 topology 2051 3656
+> 15 0 28 1929 topology 1961 3657
+> 16 0 28 1929 topology 2051 3657
+> 15 0 28 1929 topology 1991 3658
+> 16 0 28 1929 topology 2051 3658
+> 15 0 29 1929 topology 1942 3659
+> 16 0 29 1929 topology 1943 3659
+> 15 0 29 1929 topology 1996 3660
+> 16 0 29 1929 topology 1997 3660
+> 15 0 28 1929 topology 2021 3661
+> 16 0 28 1929 topology 2051 3661
+> 15 0 28 1929 topology 1943 3662
+> 16 0 28 1929 topology 2051 3662
+> 15 0 28 1929 topology 1973 3663
+> 16 0 28 1929 topology 2051 3663
+> 15 0 29 1929 topology 1945 3664
+> 16 0 29 1929 topology 1947 3664
+> 15 0 28 1929 topology 2003 3665
+> 16 0 28 1929 topology 2051 3665
+> 15 0 29 1929 topology 2029 3666
+> 16 0 29 1929 topology 2030 3666
+> 15 0 28 1929 topology 2033 3667
+> 16 0 28 1929 topology 2051 3667
+> 15 0 29 1929 topology 1978 3668
+> 16 0 29 1929 topology 1980 3668
+> 15 0 29 1929 topology 1957 3669
+> 16 0 29 1929 topology 1959 3669
+> 15 0 29 1929 topology 2011 3670
+> 16 0 29 1929 topology 2013 3670
+> 15 0 28 1929 topology 1980 3671
+> 16 0 28 1929 topology 2051 3671
+> 15 0 29 1929 topology 1936 3672
+> 16 0 29 1929 topology 1938 3672
+> 15 0 28 1929 topology 1956 3673
+> 16 0 28 1929 topology 2051 3673
+> 15 0 29 1929 topology 1990 3674
+> 16 0 29 1929 topology 1992 3674
+> 15 0 29 1929 topology 2044 3675
+> 16 0 29 1929 topology 2046 3675
+> 15 0 28 1929 topology 1932 3676
+> 16 0 28 1929 topology 2051 3676
+> 15 0 28 1929 topology 2040 3677
+> 16 0 28 1929 topology 2051 3677
+> 15 0 28 1929 topology 2016 3678
+> 16 0 28 1929 topology 2051 3678
+> 15 0 29 1929 topology 1948 3679
+> 16 0 29 1929 topology 1949 3679
+> 15 0 28 1929 topology 1992 3680
+> 16 0 28 1929 topology 2051 3680
+> 15 0 28 1929 topology 1968 3681
+> 16 0 28 1929 topology 2051 3681
+> 15 0 29 1929 topology 1969 3682
+> 16 0 29 1929 topology 1971 3682
 > 15 0 29 1929 topology 2023 3683
-> 16 0 29 1929 topology 2024 3683
-> 15 0 30 1929 topology 2024 3684
+> 16 0 29 1929 topology 2025 3683
+> 15 0 30 1929 topology 2050 3684
 > 16 0 30 1929 topology 2051 3684
-> 15 0 29 1929 topology 1972 3685
-> 16 0 29 1929 topology 1973 3685
-> 15 0 30 1929 topology 1973 3686
-> 16 0 30 1929 topology 2051 3686
-> 15 0 34 1607 topology 2053 3687
-> 16 0 34 1607 topology 2054 3687
-> 15 0 35 1607 topology 2054 3688
-> 16 0 35 1607 topology 1726 3688
-> 15 0 35 1607 topology 2054 3689
-> 16 0 35 1607 topology 1834 3689
-> 15 0 35 1607 topology 2054 3690
-> 16 0 35 1607 topology 1927 3690
-> 15 0 35 1607 topology 2054 3691
-> 16 0 35 1607 topology 2050 3691
-> 15 0 29 2057 topology 2085 3692
-> 16 0 29 2057 topology 2086 3692
-> 15 0 30 2057 topology 2086 3693
-> 16 0 30 2057 topology 2155 3693
-> 15 0 30 2057 topology 2155 3694
-> 16 0 30 2057 topology 2093 3694
-> 15 0 31 2057 topology 2093 3695
-> 16 0 31 2057 topology 2091 3695
-> 15 0 30 2057 topology 2155 3696
-> 16 0 30 2057 topology 2099 3696
-> 15 0 31 2057 topology 2099 3697
-> 16 0 31 2057 topology 2097 3697
-> 15 0 30 2057 topology 2155 3698
-> 16 0 30 2057 topology 2105 3698
-> 15 0 31 2057 topology 2105 3699
-> 16 0 31 2057 topology 2103 3699
-> 15 0 30 2057 topology 2155 3700
-> 16 0 30 2057 topology 2111 3700
-> 15 0 31 2057 topology 2111 3701
-> 16 0 31 2057 topology 2109 3701
-> 15 0 30 2057 topology 2155 3702
-> 16 0 30 2057 topology 2147 3702
-> 15 0 31 2057 topology 2147 3703
-> 16 0 31 2057 topology 2145 3703
-> 15 0 30 2057 topology 2155 3704
-> 16 0 30 2057 topology 2060 3704
-> 15 0 31 2057 topology 2060 3705
-> 16 0 31 2057 topology 2058 3705
-> 15 0 30 2057 topology 2155 3706
-> 16 0 30 2057 topology 2066 3706
-> 15 0 31 2057 topology 2066 3707
-> 16 0 31 2057 topology 2064 3707
-> 15 0 30 2057 topology 2155 3708
-> 16 0 30 2057 topology 2072 3708
-> 15 0 31 2057 topology 2072 3709
-> 16 0 31 2057 topology 2070 3709
-> 15 0 30 2057 topology 2155 3710
-> 16 0 30 2057 topology 2078 3710
-> 15 0 31 2057 topology 2078 3711
-> 16 0 31 2057 topology 2076 3711
-> 15 0 30 2057 topology 2155 3712
-> 16 0 30 2057 topology 2084 3712
-> 15 0 31 2057 topology 2084 3713
-> 16 0 31 2057 topology 2082 3713
-> 15 0 32 2057 topology 2155 3714
-> 16 0 32 2057 topology 2154 3714
-> 15 0 30 2057 topology 2155 3715
-> 16 0 30 2057 topology 2120 3715
-> 15 0 31 2057 topology 2120 3716
-> 16 0 31 2057 topology 2118 3716
-> 15 0 30 2057 topology 2155 3717
-> 16 0 30 2057 topology 2126 3717
-> 15 0 31 2057 topology 2126 3718
-> 16 0 31 2057 topology 2124 3718
-> 15 0 30 2057 topology 2155 3719
-> 16 0 30 2057 topology 2132 3719
-> 15 0 31 2057 topology 2132 3720
-> 16 0 31 2057 topology 2130 3720
-> 15 0 30 2057 topology 2155 3721
-> 16 0 30 2057 topology 2138 3721
-> 15 0 31 2057 topology 2138 3722
-> 16 0 31 2057 topology 2136 3722
-> 15 0 30 2057 topology 2155 3723
-> 16 0 30 2057 topology 2144 3723
-> 15 0 31 2057 topology 2144 3724
-> 16 0 31 2057 topology 2142 3724
-> 15 0 30 2057 topology 2155 3725
-> 16 0 30 2057 topology 2090 3725
-> 15 0 31 2057 topology 2090 3726
-> 16 0 31 2057 topology 2088 3726
-> 15 0 30 2057 topology 2155 3727
-> 16 0 30 2057 topology 2096 3727
-> 15 0 31 2057 topology 2096 3728
-> 16 0 31 2057 topology 2094 3728
-> 15 0 30 2057 topology 2155 3729
-> 16 0 30 2057 topology 2102 3729
-> 15 0 31 2057 topology 2102 3730
-> 16 0 31 2057 topology 2100 3730
-> 15 0 30 2057 topology 2155 3731
-> 16 0 30 2057 topology 2108 3731
-> 15 0 31 2057 topology 2108 3732
-> 16 0 31 2057 topology 2106 3732
-> 15 0 30 2057 topology 2155 3733
-> 16 0 30 2057 topology 2114 3733
-> 15 0 31 2057 topology 2114 3734
-> 16 0 31 2057 topology 2112 3734
-> 15 0 30 2057 topology 2155 3735
-> 16 0 30 2057 topology 2150 3735
-> 15 0 31 2057 topology 2150 3736
-> 16 0 31 2057 topology 2148 3736
-> 15 0 30 2057 topology 2155 3737
-> 16 0 30 2057 topology 2063 3737
-> 15 0 31 2057 topology 2063 3738
-> 16 0 31 2057 topology 2061 3738
-> 15 0 30 2057 topology 2155 3739
-> 16 0 30 2057 topology 2069 3739
-> 15 0 31 2057 topology 2069 3740
-> 16 0 31 2057 topology 2067 3740
-> 15 0 30 2057 topology 2155 3741
-> 16 0 30 2057 topology 2075 3741
-> 15 0 31 2057 topology 2075 3742
-> 16 0 31 2057 topology 2073 3742
-> 15 0 30 2057 topology 2155 3743
-> 16 0 30 2057 topology 2081 3743
-> 15 0 31 2057 topology 2081 3744
-> 16 0 31 2057 topology 2079 3744
-> 15 0 30 2057 topology 2155 3745
-> 16 0 30 2057 topology 2117 3745
-> 15 0 31 2057 topology 2117 3746
-> 16 0 31 2057 topology 2115 3746
-> 15 0 30 2057 topology 2155 3747
-> 16 0 30 2057 topology 2123 3747
-> 15 0 31 2057 topology 2123 3748
-> 16 0 31 2057 topology 2121 3748
-> 15 0 30 2057 topology 2155 3749
-> 16 0 30 2057 topology 2129 3749
-> 15 0 31 2057 topology 2129 3750
-> 16 0 31 2057 topology 2127 3750
-> 15 0 30 2057 topology 2155 3751
-> 16 0 30 2057 topology 2153 3751
-> 15 0 31 2057 topology 2153 3752
-> 16 0 31 2057 topology 2151 3752
-> 15 0 30 2057 topology 2155 3753
-> 16 0 30 2057 topology 2135 3753
-> 15 0 31 2057 topology 2135 3754
-> 16 0 31 2057 topology 2133 3754
-> 15 0 30 2057 topology 2155 3755
-> 16 0 30 2057 topology 2141 3755
-> 15 0 31 2057 topology 2141 3756
-> 16 0 31 2057 topology 2139 3756
-> 15 0 29 2057 topology 2091 3757
-> 16 0 29 2057 topology 2092 3757
-> 15 0 30 2057 topology 2092 3758
-> 16 0 30 2057 topology 2155 3758
-> 15 0 30 2057 topology 2155 3759
-> 16 0 30 2057 topology 2087 3759
-> 15 0 31 2057 topology 2087 3760
-> 16 0 31 2057 topology 2085 3760
-> 15 0 29 2057 topology 2097 3761
-> 16 0 29 2057 topology 2098 3761
-> 15 0 30 2057 topology 2098 3762
-> 16 0 30 2057 topology 2155 3762
-> 15 0 29 2057 topology 2103 3763
-> 16 0 29 2057 topology 2104 3763
-> 15 0 30 2057 topology 2104 3764
-> 16 0 30 2057 topology 2155 3764
-> 15 0 29 2057 topology 2109 3765
-> 16 0 29 2057 topology 2110 3765
-> 15 0 30 2057 topology 2110 3766
-> 16 0 30 2057 topology 2155 3766
-> 15 0 29 2057 topology 2145 3767
-> 16 0 29 2057 topology 2146 3767
-> 15 0 30 2057 topology 2146 3768
-> 16 0 30 2057 topology 2155 3768
-> 15 0 29 2057 topology 2058 3769
-> 16 0 29 2057 topology 2059 3769
-> 15 0 30 2057 topology 2059 3770
-> 16 0 30 2057 topology 2155 3770
-> 15 0 29 2057 topology 2064 3771
-> 16 0 29 2057 topology 2065 3771
-> 15 0 30 2057 topology 2065 3772
-> 16 0 30 2057 topology 2155 3772
-> 15 0 29 2057 topology 2070 3773
-> 16 0 29 2057 topology 2071 3773
-> 15 0 30 2057 topology 2071 3774
-> 16 0 30 2057 topology 2155 3774
-> 15 0 29 2057 topology 2076 3775
-> 16 0 29 2057 topology 2077 3775
-> 15 0 30 2057 topology 2077 3776
-> 16 0 30 2057 topology 2155 3776
-> 15 0 29 2057 topology 2082 3777
-> 16 0 29 2057 topology 2083 3777
-> 15 0 30 2057 topology 2083 3778
-> 16 0 30 2057 topology 2155 3778
-> 15 0 29 2057 topology 2118 3779
-> 16 0 29 2057 topology 2119 3779
-> 15 0 30 2057 topology 2119 3780
-> 16 0 30 2057 topology 2155 3780
-> 15 0 29 2057 topology 2124 3781
-> 16 0 29 2057 topology 2125 3781
-> 15 0 30 2057 topology 2125 3782
-> 16 0 30 2057 topology 2155 3782
-> 15 0 29 2057 topology 2130 3783
-> 16 0 29 2057 topology 2131 3783
-> 15 0 30 2057 topology 2131 3784
-> 16 0 30 2057 topology 2155 3784
-> 15 0 29 2057 topology 2136 3785
-> 16 0 29 2057 topology 2137 3785
-> 15 0 30 2057 topology 2137 3786
-> 16 0 30 2057 topology 2155 3786
-> 15 0 29 2057 topology 2142 3787
-> 16 0 29 2057 topology 2143 3787
-> 15 0 30 2057 topology 2143 3788
-> 16 0 30 2057 topology 2155 3788
-> 15 0 29 2057 topology 2088 3789
-> 16 0 29 2057 topology 2089 3789
-> 15 0 30 2057 topology 2089 3790
-> 16 0 30 2057 topology 2155 3790
-> 15 0 29 2057 topology 2094 3791
-> 16 0 29 2057 topology 2095 3791
-> 15 0 30 2057 topology 2095 3792
-> 16 0 30 2057 topology 2155 3792
-> 15 0 29 2057 topology 2100 3793
-> 16 0 29 2057 topology 2101 3793
-> 15 0 30 2057 topology 2101 3794
-> 16 0 30 2057 topology 2155 3794
-> 15 0 29 2057 topology 2106 3795
-> 16 0 29 2057 topology 2107 3795
-> 15 0 30 2057 topology 2107 3796
-> 16 0 30 2057 topology 2155 3796
-> 15 0 29 2057 topology 2112 3797
-> 16 0 29 2057 topology 2113 3797
-> 15 0 30 2057 topology 2113 3798
-> 16 0 30 2057 topology 2155 3798
-> 15 0 29 2057 topology 2148 3799
-> 16 0 29 2057 topology 2149 3799
-> 15 0 30 2057 topology 2149 3800
-> 16 0 30 2057 topology 2155 3800
-> 15 0 29 2057 topology 2061 3801
-> 16 0 29 2057 topology 2062 3801
-> 15 0 30 2057 topology 2062 3802
-> 16 0 30 2057 topology 2155 3802
-> 15 0 29 2057 topology 2067 3803
-> 16 0 29 2057 topology 2068 3803
-> 15 0 30 2057 topology 2068 3804
-> 16 0 30 2057 topology 2155 3804
-> 15 0 29 2057 topology 2073 3805
-> 16 0 29 2057 topology 2074 3805
-> 15 0 30 2057 topology 2074 3806
-> 16 0 30 2057 topology 2155 3806
-> 15 0 29 2057 topology 2079 3807
-> 16 0 29 2057 topology 2080 3807
-> 15 0 30 2057 topology 2080 3808
-> 16 0 30 2057 topology 2155 3808
-> 15 0 29 2057 topology 2115 3809
-> 16 0 29 2057 topology 2116 3809
-> 15 0 30 2057 topology 2116 3810
-> 16 0 30 2057 topology 2155 3810
-> 15 0 29 2057 topology 2121 3811
-> 16 0 29 2057 topology 2122 3811
-> 15 0 30 2057 topology 2122 3812
-> 16 0 30 2057 topology 2155 3812
-> 15 0 29 2057 topology 2127 3813
-> 16 0 29 2057 topology 2128 3813
-> 15 0 30 2057 topology 2128 3814
+> 15 0 28 1929 topology 1944 3685
+> 16 0 28 1929 topology 2051 3685
+> 15 0 28 1929 topology 2028 3686
+> 16 0 28 1929 topology 2051 3686
+> 15 0 31 1607 topology 2054 3687
+> 16 0 31 1607 topology 2053 3687
+> 15 0 31 1607 topology 2054 3688
+> 16 0 31 1607 topology 1834 3688
+> 15 0 31 1607 topology 2054 3689
+> 16 0 31 1607 topology 1927 3689
+> 15 0 31 1607 topology 2054 3690
+> 16 0 31 1607 topology 2050 3690
+> 15 0 32 1607 topology 1726 3691
+> 16 0 32 1607 topology 2054 3691
+> 15 0 28 2057 topology 2068 3692
+> 16 0 28 2057 topology 2155 3692
+> 15 0 29 2057 topology 2073 3693
+> 16 0 29 2057 topology 2074 3693
+> 15 0 29 2057 topology 2076 3694
+> 16 0 29 2057 topology 2077 3694
+> 15 0 28 2057 topology 2120 3695
+> 16 0 28 2057 topology 2155 3695
+> 15 0 29 2057 topology 2130 3696
+> 16 0 29 2057 topology 2131 3696
+> 15 0 28 2057 topology 2096 3697
+> 16 0 28 2057 topology 2155 3697
+> 15 0 29 2057 topology 2079 3698
+> 16 0 29 2057 topology 2080 3698
+> 15 0 28 2057 topology 2080 3699
+> 16 0 28 2057 topology 2155 3699
+> 15 0 29 2057 topology 2082 3700
+> 16 0 29 2057 topology 2083 3700
+> 15 0 29 2057 topology 2109 3701
+> 16 0 29 2057 topology 2110 3701
+> 15 0 28 2057 topology 2132 3702
+> 16 0 28 2057 topology 2155 3702
+> 15 0 28 2057 topology 2108 3703
+> 16 0 28 2057 topology 2155 3703
+> 15 0 29 2057 topology 2142 3704
+> 16 0 29 2057 topology 2143 3704
+> 15 0 28 2057 topology 2144 3705
+> 16 0 28 2057 topology 2155 3705
+> 15 0 29 2057 topology 2091 3706
+> 16 0 29 2057 topology 2093 3706
+> 15 0 29 2057 topology 2145 3707
+> 16 0 29 2057 topology 2146 3707
+> 15 0 28 2057 topology 2092 3708
+> 16 0 28 2057 topology 2155 3708
+> 15 0 28 2057 topology 2122 3709
+> 16 0 28 2057 topology 2155 3709
+> 15 0 29 2057 topology 2124 3710
+> 16 0 29 2057 topology 2126 3710
+> 15 0 28 2057 topology 2069 3711
+> 16 0 28 2057 topology 2155 3711
+> 15 0 28 2057 topology 2104 3712
+> 16 0 28 2057 topology 2155 3712
+> 15 0 28 2057 topology 2134 3713
+> 16 0 28 2057 topology 2155 3713
+> 15 0 29 2057 topology 2103 3714
+> 16 0 29 2057 topology 2105 3714
+> 15 0 28 2057 topology 2081 3715
+> 16 0 28 2057 topology 2155 3715
+> 15 0 29 2057 topology 2088 3716
+> 16 0 29 2057 topology 2089 3716
+> 15 0 29 2057 topology 2136 3717
+> 16 0 29 2057 topology 2138 3717
+> 15 0 29 2057 topology 2121 3718
+> 16 0 29 2057 topology 2122 3718
+> 15 0 28 2057 topology 2065 3719
+> 16 0 28 2057 topology 2155 3719
+> 15 0 28 2057 topology 2087 3720
+> 16 0 28 2057 topology 2155 3720
+> 15 0 29 2057 topology 2100 3721
+> 16 0 29 2057 topology 2101 3721
+> 15 0 28 2057 topology 2077 3722
+> 16 0 28 2057 topology 2155 3722
+> 15 0 28 2057 topology 2123 3723
+> 16 0 28 2057 topology 2155 3723
+> 15 0 28 2057 topology 2099 3724
+> 16 0 28 2057 topology 2155 3724
+> 15 0 29 2057 topology 2133 3725
+> 16 0 29 2057 topology 2134 3725
+> 15 0 28 2057 topology 2135 3726
+> 16 0 28 2057 topology 2155 3726
+> 15 0 28 2057 topology 2111 3727
+> 16 0 28 2057 topology 2155 3727
+> 15 0 29 2057 topology 2112 3728
+> 16 0 29 2057 topology 2113 3728
+> 15 0 29 2057 topology 2061 3729
+> 16 0 29 2057 topology 2063 3729
+> 15 0 29 2057 topology 2088 3730
+> 16 0 29 2057 topology 2090 3730
+> 15 0 28 2057 topology 2147 3731
+> 16 0 28 2057 topology 2155 3731
+> 15 0 28 2057 topology 2089 3732
+> 16 0 28 2057 topology 2155 3732
+> 15 0 29 2057 topology 2067 3733
+> 16 0 29 2057 topology 2069 3733
+> 15 0 28 2057 topology 2119 3734
+> 16 0 28 2057 topology 2155 3734
+> 15 0 29 2057 topology 2121 3735
+> 16 0 29 2057 topology 2123 3735
+> 15 0 28 2057 topology 2060 3736
+> 16 0 28 2057 topology 2155 3736
+> 15 0 29 2057 topology 2148 3737
+> 16 0 29 2057 topology 2149 3737
+> 15 0 28 2057 topology 2101 3738
+> 16 0 28 2057 topology 2155 3738
+> 15 0 29 2057 topology 2073 3739
+> 16 0 29 2057 topology 2075 3739
+> 15 0 29 2057 topology 2100 3740
+> 16 0 29 2057 topology 2102 3740
+> 15 0 28 2057 topology 2131 3741
+> 16 0 28 2057 topology 2155 3741
+> 15 0 28 2057 topology 2072 3742
+> 16 0 28 2057 topology 2155 3742
+> 15 0 28 2057 topology 2113 3743
+> 16 0 28 2057 topology 2155 3743
+> 15 0 29 2057 topology 2079 3744
+> 16 0 29 2057 topology 2081 3744
+> 15 0 29 2057 topology 2133 3745
+> 16 0 29 2057 topology 2135 3745
+> 15 0 28 2057 topology 2143 3746
+> 16 0 28 2057 topology 2155 3746
+> 15 0 28 2057 topology 2084 3747
+> 16 0 28 2057 topology 2155 3747
+> 15 0 29 2057 topology 2091 3748
+> 16 0 29 2057 topology 2092 3748
+> 15 0 28 2057 topology 2149 3749
+> 16 0 28 2057 topology 2155 3749
+> 15 0 29 2057 topology 2112 3750
+> 16 0 29 2057 topology 2114 3750
+> 15 0 28 2057 topology 2062 3751
+> 16 0 28 2057 topology 2155 3751
+> 15 0 29 2057 topology 2124 3752
+> 16 0 29 2057 topology 2125 3752
+> 15 0 28 2057 topology 2090 3753
+> 16 0 28 2057 topology 2155 3753
+> 15 0 28 2057 topology 2074 3754
+> 16 0 28 2057 topology 2155 3754
+> 15 0 29 2057 topology 2103 3755
+> 16 0 29 2057 topology 2104 3755
+> 15 0 29 2057 topology 2148 3756
+> 16 0 29 2057 topology 2150 3756
+> 15 0 28 2057 topology 2126 3757
+> 16 0 28 2057 topology 2155 3757
+> 15 0 28 2057 topology 2102 3758
+> 16 0 28 2057 topology 2155 3758
+> 15 0 29 2057 topology 2136 3759
+> 16 0 29 2057 topology 2137 3759
+> 15 0 28 2057 topology 2138 3760
+> 16 0 28 2057 topology 2155 3760
+> 15 0 29 2057 topology 2085 3761
+> 16 0 29 2057 topology 2087 3761
+> 15 0 28 2057 topology 2114 3762
+> 16 0 28 2057 topology 2155 3762
+> 15 0 28 2057 topology 2086 3763
+> 16 0 28 2057 topology 2155 3763
+> 15 0 29 2057 topology 2118 3764
+> 16 0 29 2057 topology 2120 3764
+> 15 0 28 2057 topology 2150 3765
+> 16 0 28 2057 topology 2155 3765
+> 15 0 28 2057 topology 2116 3766
+> 16 0 28 2057 topology 2155 3766
+> 15 0 28 2057 topology 2063 3767
+> 16 0 28 2057 topology 2155 3767
+> 15 0 28 2057 topology 2098 3768
+> 16 0 28 2057 topology 2155 3768
+> 15 0 29 2057 topology 2097 3769
+> 16 0 29 2057 topology 2099 3769
+> 15 0 28 2057 topology 2128 3770
+> 16 0 28 2057 topology 2155 3770
+> 15 0 28 2057 topology 2152 3771
+> 16 0 28 2057 topology 2155 3771
+> 15 0 28 2057 topology 2075 3772
+> 16 0 28 2057 topology 2155 3772
+> 15 0 28 2057 topology 2110 3773
+> 16 0 28 2057 topology 2155 3773
+> 15 0 29 2057 topology 2130 3774
+> 16 0 29 2057 topology 2132 3774
+> 15 0 28 2057 topology 2140 3775
+> 16 0 28 2057 topology 2155 3775
+> 15 0 29 2057 topology 2115 3776
+> 16 0 29 2057 topology 2116 3776
+> 15 0 29 2057 topology 2109 3777
+> 16 0 29 2057 topology 2111 3777
+> 15 0 28 2057 topology 2146 3778
+> 16 0 28 2057 topology 2155 3778
+> 15 0 29 2057 topology 2094 3779
+> 16 0 29 2057 topology 2095 3779
+> 15 0 28 2057 topology 2059 3780
+> 16 0 28 2057 topology 2155 3780
+> 15 0 29 2057 topology 2142 3781
+> 16 0 29 2057 topology 2144 3781
+> 15 0 29 2057 topology 2127 3782
+> 16 0 29 2057 topology 2128 3782
+> 15 0 29 2057 topology 2151 3783
+> 16 0 29 2057 topology 2152 3783
+> 15 0 28 2057 topology 2071 3784
+> 16 0 28 2057 topology 2155 3784
+> 15 0 28 2057 topology 2117 3785
+> 16 0 28 2057 topology 2155 3785
+> 15 0 29 2057 topology 2145 3786
+> 16 0 29 2057 topology 2147 3786
+> 15 0 28 2057 topology 2093 3787
+> 16 0 28 2057 topology 2155 3787
+> 15 0 29 2057 topology 2106 3788
+> 16 0 29 2057 topology 2107 3788
+> 15 0 28 2057 topology 2083 3789
+> 16 0 28 2057 topology 2155 3789
+> 15 0 28 2057 topology 2129 3790
+> 16 0 28 2057 topology 2155 3790
+> 15 0 28 2057 topology 2153 3791
+> 16 0 28 2057 topology 2155 3791
+> 15 0 28 2057 topology 2105 3792
+> 16 0 28 2057 topology 2155 3792
+> 15 0 29 2057 topology 2139 3793
+> 16 0 29 2057 topology 2140 3793
+> 15 0 29 2057 topology 2058 3794
+> 16 0 29 2057 topology 2060 3794
+> 15 0 28 2057 topology 2141 3795
+> 16 0 28 2057 topology 2155 3795
+> 15 0 29 2057 topology 2115 3796
+> 16 0 29 2057 topology 2117 3796
+> 15 0 29 2057 topology 2064 3797
+> 16 0 29 2057 topology 2066 3797
+> 15 0 29 2057 topology 2094 3798
+> 16 0 29 2057 topology 2096 3798
+> 15 0 28 2057 topology 2095 3799
+> 16 0 28 2057 topology 2155 3799
+> 15 0 29 2057 topology 2070 3800
+> 16 0 29 2057 topology 2072 3800
+> 15 0 28 2057 topology 2125 3801
+> 16 0 28 2057 topology 2155 3801
+> 15 0 28 2057 topology 2066 3802
+> 16 0 28 2057 topology 2155 3802
+> 15 0 29 2057 topology 2127 3803
+> 16 0 29 2057 topology 2129 3803
+> 15 0 29 2057 topology 2151 3804
+> 16 0 29 2057 topology 2153 3804
+> 15 0 28 2057 topology 2107 3805
+> 16 0 28 2057 topology 2155 3805
+> 15 0 29 2057 topology 2076 3806
+> 16 0 29 2057 topology 2078 3806
+> 15 0 28 2057 topology 2137 3807
+> 16 0 28 2057 topology 2155 3807
+> 15 0 29 2057 topology 2058 3808
+> 16 0 29 2057 topology 2059 3808
+> 15 0 28 2057 topology 2078 3809
+> 16 0 28 2057 topology 2155 3809
+> 15 0 29 2057 topology 2085 3810
+> 16 0 29 2057 topology 2086 3810
+> 15 0 29 2057 topology 2106 3811
+> 16 0 29 2057 topology 2108 3811
+> 15 0 29 2057 topology 2061 3812
+> 16 0 29 2057 topology 2062 3812
+> 15 0 29 2057 topology 2082 3813
+> 16 0 29 2057 topology 2084 3813
+> 15 0 30 2057 topology 2154 3814
 > 16 0 30 2057 topology 2155 3814
-> 15 0 29 2057 topology 2151 3815
-> 16 0 29 2057 topology 2152 3815
-> 15 0 30 2057 topology 2152 3816
-> 16 0 30 2057 topology 2155 3816
-> 15 0 29 2057 topology 2133 3817
-> 16 0 29 2057 topology 2134 3817
-> 15 0 30 2057 topology 2134 3818
-> 16 0 30 2057 topology 2155 3818
-> 15 0 29 2057 topology 2139 3819
-> 16 0 29 2057 topology 2140 3819
-> 15 0 30 2057 topology 2140 3820
-> 16 0 30 2057 topology 2155 3820
-> 15 0 29 2156 topology 2160 3821
-> 16 0 29 2156 topology 2161 3821
-> 15 0 30 2156 topology 2161 3822
-> 16 0 30 2156 topology 2242 3822
-> 15 0 30 2156 topology 2242 3823
-> 16 0 30 2156 topology 2219 3823
-> 15 0 31 2156 topology 2219 3824
-> 16 0 31 2156 topology 2217 3824
-> 15 0 30 2156 topology 2242 3825
-> 16 0 30 2156 topology 2168 3825
-> 15 0 31 2156 topology 2168 3826
-> 16 0 31 2156 topology 2166 3826
-> 15 0 30 2156 topology 2242 3827
-> 16 0 30 2156 topology 2225 3827
-> 15 0 31 2156 topology 2225 3828
-> 16 0 31 2156 topology 2223 3828
-> 15 0 30 2156 topology 2242 3829
-> 16 0 30 2156 topology 2174 3829
-> 15 0 31 2156 topology 2174 3830
-> 16 0 31 2156 topology 2172 3830
-> 15 0 30 2156 topology 2242 3831
-> 16 0 30 2156 topology 2231 3831
-> 15 0 31 2156 topology 2231 3832
-> 16 0 31 2156 topology 2229 3832
-> 15 0 30 2156 topology 2242 3833
-> 16 0 30 2156 topology 2180 3833
-> 15 0 31 2156 topology 2180 3834
-> 16 0 31 2156 topology 2178 3834
-> 15 0 30 2156 topology 2242 3835
-> 16 0 30 2156 topology 2237 3835
-> 15 0 31 2156 topology 2237 3836
-> 16 0 31 2156 topology 2235 3836
-> 15 0 30 2156 topology 2242 3837
-> 16 0 30 2156 topology 2186 3837
-> 15 0 31 2156 topology 2186 3838
-> 16 0 31 2156 topology 2184 3838
-> 15 0 30 2156 topology 2242 3839
-> 16 0 30 2156 topology 2189 3839
-> 15 0 31 2156 topology 2189 3840
-> 16 0 31 2156 topology 2187 3840
-> 15 0 30 2156 topology 2242 3841
-> 16 0 30 2156 topology 2195 3841
-> 15 0 31 2156 topology 2195 3842
-> 16 0 31 2156 topology 2193 3842
-> 15 0 30 2156 topology 2242 3843
-> 16 0 30 2156 topology 2201 3843
-> 15 0 31 2156 topology 2201 3844
-> 16 0 31 2156 topology 2199 3844
-> 15 0 30 2156 topology 2242 3845
-> 16 0 30 2156 topology 2207 3845
-> 15 0 31 2156 topology 2207 3846
-> 16 0 31 2156 topology 2205 3846
-> 15 0 30 2156 topology 2242 3847
-> 16 0 30 2156 topology 2213 3847
-> 15 0 31 2156 topology 2213 3848
-> 16 0 31 2156 topology 2211 3848
-> 15 0 30 2156 topology 2242 3849
-> 16 0 30 2156 topology 2159 3849
-> 15 0 31 2156 topology 2159 3850
-> 16 0 31 2156 topology 2157 3850
-> 15 0 32 2156 topology 2242 3851
-> 16 0 32 2156 topology 2241 3851
-> 15 0 30 2156 topology 2242 3852
-> 16 0 30 2156 topology 2165 3852
-> 15 0 31 2156 topology 2165 3853
-> 16 0 31 2156 topology 2163 3853
-> 15 0 30 2156 topology 2242 3854
-> 16 0 30 2156 topology 2222 3854
-> 15 0 31 2156 topology 2222 3855
-> 16 0 31 2156 topology 2220 3855
-> 15 0 30 2156 topology 2242 3856
-> 16 0 30 2156 topology 2171 3856
-> 15 0 31 2156 topology 2171 3857
-> 16 0 31 2156 topology 2169 3857
-> 15 0 30 2156 topology 2242 3858
-> 16 0 30 2156 topology 2228 3858
-> 15 0 31 2156 topology 2228 3859
-> 16 0 31 2156 topology 2226 3859
-> 15 0 30 2156 topology 2242 3860
-> 16 0 30 2156 topology 2177 3860
-> 15 0 31 2156 topology 2177 3861
-> 16 0 31 2156 topology 2175 3861
-> 15 0 30 2156 topology 2242 3862
-> 16 0 30 2156 topology 2234 3862
-> 15 0 31 2156 topology 2234 3863
-> 16 0 31 2156 topology 2232 3863
-> 15 0 30 2156 topology 2242 3864
-> 16 0 30 2156 topology 2183 3864
-> 15 0 31 2156 topology 2183 3865
-> 16 0 31 2156 topology 2181 3865
-> 15 0 30 2156 topology 2242 3866
-> 16 0 30 2156 topology 2240 3866
-> 15 0 31 2156 topology 2240 3867
-> 16 0 31 2156 topology 2238 3867
-> 15 0 30 2156 topology 2242 3868
-> 16 0 30 2156 topology 2192 3868
-> 15 0 31 2156 topology 2192 3869
-> 16 0 31 2156 topology 2190 3869
-> 15 0 30 2156 topology 2242 3870
-> 16 0 30 2156 topology 2198 3870
-> 15 0 31 2156 topology 2198 3871
-> 16 0 31 2156 topology 2196 3871
-> 15 0 30 2156 topology 2242 3872
-> 16 0 30 2156 topology 2204 3872
-> 15 0 31 2156 topology 2204 3873
-> 16 0 31 2156 topology 2202 3873
-> 15 0 30 2156 topology 2242 3874
-> 16 0 30 2156 topology 2210 3874
-> 15 0 31 2156 topology 2210 3875
-> 16 0 31 2156 topology 2208 3875
-> 15 0 30 2156 topology 2242 3876
-> 16 0 30 2156 topology 2216 3876
-> 15 0 31 2156 topology 2216 3877
-> 16 0 31 2156 topology 2214 3877
-> 15 0 29 2156 topology 2217 3878
-> 16 0 29 2156 topology 2218 3878
-> 15 0 30 2156 topology 2218 3879
-> 16 0 30 2156 topology 2242 3879
-> 15 0 30 2156 topology 2242 3880
-> 16 0 30 2156 topology 2162 3880
-> 15 0 31 2156 topology 2162 3881
-> 16 0 31 2156 topology 2160 3881
-> 15 0 29 2156 topology 2166 3882
-> 16 0 29 2156 topology 2167 3882
-> 15 0 30 2156 topology 2167 3883
-> 16 0 30 2156 topology 2242 3883
-> 15 0 29 2156 topology 2223 3884
-> 16 0 29 2156 topology 2224 3884
-> 15 0 30 2156 topology 2224 3885
-> 16 0 30 2156 topology 2242 3885
-> 15 0 29 2156 topology 2172 3886
-> 16 0 29 2156 topology 2173 3886
-> 15 0 30 2156 topology 2173 3887
-> 16 0 30 2156 topology 2242 3887
-> 15 0 29 2156 topology 2229 3888
-> 16 0 29 2156 topology 2230 3888
-> 15 0 30 2156 topology 2230 3889
-> 16 0 30 2156 topology 2242 3889
-> 15 0 29 2156 topology 2178 3890
-> 16 0 29 2156 topology 2179 3890
-> 15 0 30 2156 topology 2179 3891
-> 16 0 30 2156 topology 2242 3891
-> 15 0 29 2156 topology 2235 3892
-> 16 0 29 2156 topology 2236 3892
-> 15 0 30 2156 topology 2236 3893
-> 16 0 30 2156 topology 2242 3893
-> 15 0 29 2156 topology 2184 3894
-> 16 0 29 2156 topology 2185 3894
-> 15 0 30 2156 topology 2185 3895
-> 16 0 30 2156 topology 2242 3895
-> 15 0 29 2156 topology 2187 3896
-> 16 0 29 2156 topology 2188 3896
-> 15 0 30 2156 topology 2188 3897
-> 16 0 30 2156 topology 2242 3897
-> 15 0 29 2156 topology 2193 3898
-> 16 0 29 2156 topology 2194 3898
-> 15 0 30 2156 topology 2194 3899
-> 16 0 30 2156 topology 2242 3899
-> 15 0 29 2156 topology 2199 3900
-> 16 0 29 2156 topology 2200 3900
-> 15 0 30 2156 topology 2200 3901
-> 16 0 30 2156 topology 2242 3901
-> 15 0 29 2156 topology 2205 3902
-> 16 0 29 2156 topology 2206 3902
-> 15 0 30 2156 topology 2206 3903
-> 16 0 30 2156 topology 2242 3903
-> 15 0 29 2156 topology 2211 3904
-> 16 0 29 2156 topology 2212 3904
-> 15 0 30 2156 topology 2212 3905
-> 16 0 30 2156 topology 2242 3905
-> 15 0 29 2156 topology 2157 3906
-> 16 0 29 2156 topology 2158 3906
-> 15 0 30 2156 topology 2158 3907
-> 16 0 30 2156 topology 2242 3907
-> 15 0 29 2156 topology 2163 3908
-> 16 0 29 2156 topology 2164 3908
-> 15 0 30 2156 topology 2164 3909
-> 16 0 30 2156 topology 2242 3909
-> 15 0 29 2156 topology 2220 3910
-> 16 0 29 2156 topology 2221 3910
-> 15 0 30 2156 topology 2221 3911
-> 16 0 30 2156 topology 2242 3911
-> 15 0 29 2156 topology 2169 3912
-> 16 0 29 2156 topology 2170 3912
-> 15 0 30 2156 topology 2170 3913
-> 16 0 30 2156 topology 2242 3913
-> 15 0 29 2156 topology 2226 3914
-> 16 0 29 2156 topology 2227 3914
-> 15 0 30 2156 topology 2227 3915
-> 16 0 30 2156 topology 2242 3915
-> 15 0 29 2156 topology 2175 3916
-> 16 0 29 2156 topology 2176 3916
-> 15 0 30 2156 topology 2176 3917
-> 16 0 30 2156 topology 2242 3917
-> 15 0 29 2156 topology 2232 3918
-> 16 0 29 2156 topology 2233 3918
-> 15 0 30 2156 topology 2233 3919
-> 16 0 30 2156 topology 2242 3919
-> 15 0 29 2156 topology 2181 3920
-> 16 0 29 2156 topology 2182 3920
-> 15 0 30 2156 topology 2182 3921
-> 16 0 30 2156 topology 2242 3921
-> 15 0 29 2156 topology 2238 3922
-> 16 0 29 2156 topology 2239 3922
-> 15 0 30 2156 topology 2239 3923
-> 16 0 30 2156 topology 2242 3923
-> 15 0 29 2156 topology 2190 3924
-> 16 0 29 2156 topology 2191 3924
-> 15 0 30 2156 topology 2191 3925
-> 16 0 30 2156 topology 2242 3925
+> 15 0 29 2057 topology 2064 3815
+> 16 0 29 2057 topology 2065 3815
+> 15 0 29 2057 topology 2118 3816
+> 16 0 29 2057 topology 2119 3816
+> 15 0 29 2057 topology 2139 3817
+> 16 0 29 2057 topology 2141 3817
+> 15 0 29 2057 topology 2067 3818
+> 16 0 29 2057 topology 2068 3818
+> 15 0 29 2057 topology 2070 3819
+> 16 0 29 2057 topology 2071 3819
+> 15 0 29 2057 topology 2097 3820
+> 16 0 29 2057 topology 2098 3820
+> 15 0 29 2156 topology 2166 3821
+> 16 0 29 2156 topology 2167 3821
+> 15 0 29 2156 topology 2220 3822
+> 16 0 29 2156 topology 2221 3822
+> 15 0 28 2156 topology 2159 3823
+> 16 0 28 2156 topology 2242 3823
+> 15 0 29 2156 topology 2199 3824
+> 16 0 29 2156 topology 2200 3824
+> 15 0 28 2156 topology 2219 3825
+> 16 0 28 2156 topology 2242 3825
+> 15 0 28 2156 topology 2195 3826
+> 16 0 28 2156 topology 2242 3826
+> 15 0 28 2156 topology 2171 3827
+> 16 0 28 2156 topology 2242 3827
+> 15 0 29 2156 topology 2178 3828
+> 16 0 29 2156 topology 2179 3828
+> 15 0 29 2156 topology 2232 3829
+> 16 0 29 2156 topology 2233 3829
+> 15 0 28 2156 topology 2231 3830
+> 16 0 28 2156 topology 2242 3830
+> 15 0 28 2156 topology 2207 3831
+> 16 0 28 2156 topology 2242 3831
+> 15 0 28 2156 topology 2183 3832
+> 16 0 28 2156 topology 2242 3832
+> 15 0 29 2156 topology 2211 3833
+> 16 0 29 2156 topology 2212 3833
+> 15 0 29 2156 topology 2160 3834
+> 16 0 29 2156 topology 2162 3834
+> 15 0 28 2156 topology 2161 3835
+> 16 0 28 2156 topology 2242 3835
+> 15 0 28 2156 topology 2191 3836
+> 16 0 28 2156 topology 2242 3836
+> 15 0 29 2156 topology 2193 3837
+> 16 0 29 2156 topology 2195 3837
+> 15 0 28 2156 topology 2221 3838
+> 16 0 28 2156 topology 2242 3838
+> 15 0 28 2156 topology 2173 3839
+> 16 0 28 2156 topology 2242 3839
+> 15 0 28 2156 topology 2203 3840
+> 16 0 28 2156 topology 2242 3840
+> 15 0 29 2156 topology 2172 3841
+> 16 0 29 2156 topology 2174 3841
+> 15 0 29 2156 topology 2226 3842
+> 16 0 29 2156 topology 2228 3842
+> 15 0 28 2156 topology 2233 3843
+> 16 0 28 2156 topology 2242 3843
+> 15 0 28 2156 topology 2185 3844
+> 16 0 28 2156 topology 2242 3844
+> 15 0 29 2156 topology 2157 3845
+> 16 0 29 2156 topology 2158 3845
+> 15 0 28 2156 topology 2215 3846
+> 16 0 28 2156 topology 2242 3846
+> 15 0 29 2156 topology 2205 3847
+> 16 0 29 2156 topology 2207 3847
+> 15 0 29 2156 topology 2190 3848
+> 16 0 29 2156 topology 2191 3848
+> 15 0 29 2156 topology 2184 3849
+> 16 0 29 2156 topology 2186 3849
+> 15 0 29 2156 topology 2238 3850
+> 16 0 29 2156 topology 2240 3850
+> 15 0 29 2156 topology 2169 3851
+> 16 0 29 2156 topology 2170 3851
+> 15 0 29 2156 topology 2223 3852
+> 16 0 29 2156 topology 2224 3852
+> 15 0 28 2156 topology 2162 3853
+> 16 0 28 2156 topology 2242 3853
+> 15 0 29 2156 topology 2202 3854
+> 16 0 29 2156 topology 2203 3854
+> 15 0 28 2156 topology 2222 3855
+> 16 0 28 2156 topology 2242 3855
+> 15 0 28 2156 topology 2198 3856
+> 16 0 28 2156 topology 2242 3856
+> 15 0 28 2156 topology 2174 3857
+> 16 0 28 2156 topology 2242 3857
+> 15 0 29 2156 topology 2181 3858
+> 16 0 29 2156 topology 2182 3858
+> 15 0 28 2156 topology 2234 3859
+> 16 0 28 2156 topology 2242 3859
+> 15 0 29 2156 topology 2235 3860
+> 16 0 29 2156 topology 2236 3860
+> 15 0 28 2156 topology 2210 3861
+> 16 0 28 2156 topology 2242 3861
+> 15 0 28 2156 topology 2186 3862
+> 16 0 28 2156 topology 2242 3862
+> 15 0 29 2156 topology 2157 3863
+> 16 0 29 2156 topology 2159 3863
+> 15 0 29 2156 topology 2214 3864
+> 16 0 29 2156 topology 2215 3864
+> 15 0 28 2156 topology 2158 3865
+> 16 0 28 2156 topology 2242 3865
+> 15 0 28 2156 topology 2188 3866
+> 16 0 28 2156 topology 2242 3866
+> 15 0 29 2156 topology 2190 3867
+> 16 0 29 2156 topology 2192 3867
+> 15 0 28 2156 topology 2218 3868
+> 16 0 28 2156 topology 2242 3868
+> 15 0 28 2156 topology 2170 3869
+> 16 0 28 2156 topology 2242 3869
+> 15 0 29 2156 topology 2169 3870
+> 16 0 29 2156 topology 2171 3870
+> 15 0 28 2156 topology 2200 3871
+> 16 0 28 2156 topology 2242 3871
+> 15 0 29 2156 topology 2223 3872
+> 16 0 29 2156 topology 2225 3872
+> 15 0 28 2156 topology 2230 3873
+> 16 0 28 2156 topology 2242 3873
+> 15 0 28 2156 topology 2182 3874
+> 16 0 28 2156 topology 2242 3874
+> 15 0 29 2156 topology 2202 3875
+> 16 0 29 2156 topology 2204 3875
+> 15 0 28 2156 topology 2212 3876
+> 16 0 28 2156 topology 2242 3876
+> 15 0 29 2156 topology 2160 3877
+> 16 0 29 2156 topology 2161 3877
+> 15 0 29 2156 topology 2181 3878
+> 16 0 29 2156 topology 2183 3878
+> 15 0 29 2156 topology 2235 3879
+> 16 0 29 2156 topology 2237 3879
+> 15 0 29 2156 topology 2193 3880
+> 16 0 29 2156 topology 2194 3880
+> 15 0 29 2156 topology 2214 3881
+> 16 0 29 2156 topology 2216 3881
+> 15 0 29 2156 topology 2172 3882
+> 16 0 29 2156 topology 2173 3882
+> 15 0 28 2156 topology 2189 3883
+> 16 0 28 2156 topology 2242 3883
+> 15 0 29 2156 topology 2226 3884
+> 16 0 29 2156 topology 2227 3884
+> 15 0 28 2156 topology 2165 3885
+> 16 0 28 2156 topology 2242 3885
+> 15 0 28 2156 topology 2225 3886
+> 16 0 28 2156 topology 2242 3886
+> 15 0 28 2156 topology 2201 3887
+> 16 0 28 2156 topology 2242 3887
+> 15 0 29 2156 topology 2205 3888
+> 16 0 29 2156 topology 2206 3888
+> 15 0 28 2156 topology 2177 3889
+> 16 0 28 2156 topology 2242 3889
+> 15 0 28 2156 topology 2237 3890
+> 16 0 28 2156 topology 2242 3890
+> 15 0 29 2156 topology 2184 3891
+> 16 0 29 2156 topology 2185 3891
+> 15 0 28 2156 topology 2213 3892
+> 16 0 28 2156 topology 2242 3892
+> 15 0 29 2156 topology 2238 3893
+> 16 0 29 2156 topology 2239 3893
+> 15 0 29 2156 topology 2187 3894
+> 16 0 29 2156 topology 2189 3894
+> 15 0 28 2156 topology 2167 3895
+> 16 0 28 2156 topology 2242 3895
+> 15 0 29 2156 topology 2166 3896
+> 16 0 29 2156 topology 2168 3896
+> 15 0 29 2156 topology 2220 3897
+> 16 0 29 2156 topology 2222 3897
+> 15 0 28 2156 topology 2197 3898
+> 16 0 28 2156 topology 2242 3898
+> 15 0 28 2156 topology 2227 3899
+> 16 0 28 2156 topology 2242 3899
+> 15 0 28 2156 topology 2179 3900
+> 16 0 28 2156 topology 2242 3900
+> 15 0 29 2156 topology 2199 3901
+> 16 0 29 2156 topology 2201 3901
+> 15 0 28 2156 topology 2209 3902
+> 16 0 28 2156 topology 2242 3902
+> 15 0 28 2156 topology 2239 3903
+> 16 0 28 2156 topology 2242 3903
+> 15 0 30 2156 topology 2241 3904
+> 16 0 30 2156 topology 2242 3904
+> 15 0 29 2156 topology 2178 3905
+> 16 0 29 2156 topology 2180 3905
+> 15 0 29 2156 topology 2232 3906
+> 16 0 29 2156 topology 2234 3906
+> 15 0 29 2156 topology 2163 3907
+> 16 0 29 2156 topology 2164 3907
+> 15 0 29 2156 topology 2217 3908
+> 16 0 29 2156 topology 2218 3908
+> 15 0 29 2156 topology 2211 3909
+> 16 0 29 2156 topology 2213 3909
+> 15 0 29 2156 topology 2196 3910
+> 16 0 29 2156 topology 2197 3910
+> 15 0 28 2156 topology 2192 3911
+> 16 0 28 2156 topology 2242 3911
+> 15 0 28 2156 topology 2168 3912
+> 16 0 28 2156 topology 2242 3912
+> 15 0 29 2156 topology 2175 3913
+> 16 0 29 2156 topology 2176 3913
+> 15 0 29 2156 topology 2229 3914
+> 16 0 29 2156 topology 2230 3914
+> 15 0 28 2156 topology 2228 3915
+> 16 0 28 2156 topology 2242 3915
+> 15 0 28 2156 topology 2204 3916
+> 16 0 28 2156 topology 2242 3916
+> 15 0 28 2156 topology 2180 3917
+> 16 0 28 2156 topology 2242 3917
+> 15 0 29 2156 topology 2208 3918
+> 16 0 29 2156 topology 2209 3918
+> 15 0 28 2156 topology 2240 3919
+> 16 0 28 2156 topology 2242 3919
+> 15 0 28 2156 topology 2216 3920
+> 16 0 28 2156 topology 2242 3920
+> 15 0 29 2156 topology 2163 3921
+> 16 0 29 2156 topology 2165 3921
+> 15 0 29 2156 topology 2217 3922
+> 16 0 29 2156 topology 2219 3922
+> 15 0 28 2156 topology 2164 3923
+> 16 0 28 2156 topology 2242 3923
+> 15 0 28 2156 topology 2194 3924
+> 16 0 28 2156 topology 2242 3924
+> 15 0 28 2156 topology 2224 3925
+> 16 0 28 2156 topology 2242 3925
 > 15 0 29 2156 topology 2196 3926
-> 16 0 29 2156 topology 2197 3926
-> 15 0 30 2156 topology 2197 3927
-> 16 0 30 2156 topology 2242 3927
-> 15 0 29 2156 topology 2202 3928
-> 16 0 29 2156 topology 2203 3928
-> 15 0 30 2156 topology 2203 3929
-> 16 0 30 2156 topology 2242 3929
-> 15 0 29 2156 topology 2208 3930
-> 16 0 29 2156 topology 2209 3930
-> 15 0 30 2156 topology 2209 3931
-> 16 0 30 2156 topology 2242 3931
-> 15 0 29 2156 topology 2214 3932
-> 16 0 29 2156 topology 2215 3932
-> 15 0 30 2156 topology 2215 3933
-> 16 0 30 2156 topology 2242 3933
-> 15 0 29 2243 topology 2274 3934
-> 16 0 29 2243 topology 2275 3934
-> 15 0 30 2243 topology 2275 3935
-> 16 0 30 2243 topology 2341 3935
-> 15 0 30 2243 topology 2341 3936
-> 16 0 30 2243 topology 2333 3936
-> 15 0 31 2243 topology 2333 3937
-> 16 0 31 2243 topology 2331 3937
-> 15 0 30 2243 topology 2341 3938
-> 16 0 30 2243 topology 2282 3938
-> 15 0 31 2243 topology 2282 3939
-> 16 0 31 2243 topology 2280 3939
-> 15 0 30 2243 topology 2341 3940
-> 16 0 30 2243 topology 2339 3940
-> 15 0 31 2243 topology 2339 3941
-> 16 0 31 2243 topology 2337 3941
-> 15 0 30 2243 topology 2341 3942
-> 16 0 30 2243 topology 2288 3942
-> 15 0 31 2243 topology 2288 3943
-> 16 0 31 2243 topology 2286 3943
-> 15 0 30 2243 topology 2341 3944
-> 16 0 30 2243 topology 2294 3944
-> 15 0 31 2243 topology 2294 3945
-> 16 0 31 2243 topology 2292 3945
-> 15 0 30 2243 topology 2341 3946
-> 16 0 30 2243 topology 2300 3946
-> 15 0 31 2243 topology 2300 3947
-> 16 0 31 2243 topology 2298 3947
-> 15 0 30 2243 topology 2341 3948
-> 16 0 30 2243 topology 2246 3948
-> 15 0 31 2243 topology 2246 3949
-> 16 0 31 2243 topology 2244 3949
-> 15 0 30 2243 topology 2341 3950
-> 16 0 30 2243 topology 2303 3950
-> 15 0 31 2243 topology 2303 3951
-> 16 0 31 2243 topology 2301 3951
-> 15 0 30 2243 topology 2341 3952
-> 16 0 30 2243 topology 2252 3952
-> 15 0 31 2243 topology 2252 3953
-> 16 0 31 2243 topology 2250 3953
-> 15 0 30 2243 topology 2341 3954
-> 16 0 30 2243 topology 2309 3954
-> 15 0 31 2243 topology 2309 3955
-> 16 0 31 2243 topology 2307 3955
-> 15 0 30 2243 topology 2341 3956
-> 16 0 30 2243 topology 2258 3956
-> 15 0 31 2243 topology 2258 3957
-> 16 0 31 2243 topology 2256 3957
-> 15 0 30 2243 topology 2341 3958
-> 16 0 30 2243 topology 2315 3958
-> 15 0 31 2243 topology 2315 3959
-> 16 0 31 2243 topology 2313 3959
-> 15 0 30 2243 topology 2341 3960
-> 16 0 30 2243 topology 2264 3960
-> 15 0 31 2243 topology 2264 3961
-> 16 0 31 2243 topology 2262 3961
-> 15 0 30 2243 topology 2341 3962
-> 16 0 30 2243 topology 2321 3962
-> 15 0 31 2243 topology 2321 3963
-> 16 0 31 2243 topology 2319 3963
-> 15 0 30 2243 topology 2341 3964
-> 16 0 30 2243 topology 2270 3964
-> 15 0 31 2243 topology 2270 3965
-> 16 0 31 2243 topology 2268 3965
-> 15 0 30 2243 topology 2341 3966
-> 16 0 30 2243 topology 2327 3966
-> 15 0 31 2243 topology 2327 3967
-> 16 0 31 2243 topology 2325 3967
-> 15 0 30 2243 topology 2341 3968
-> 16 0 30 2243 topology 2273 3968
-> 15 0 31 2243 topology 2273 3969
-> 16 0 31 2243 topology 2271 3969
-> 15 0 30 2243 topology 2341 3970
-> 16 0 30 2243 topology 2279 3970
-> 15 0 31 2243 topology 2279 3971
-> 16 0 31 2243 topology 2277 3971
-> 15 0 30 2243 topology 2341 3972
-> 16 0 30 2243 topology 2336 3972
-> 15 0 31 2243 topology 2336 3973
-> 16 0 31 2243 topology 2334 3973
-> 15 0 30 2243 topology 2341 3974
-> 16 0 30 2243 topology 2285 3974
-> 15 0 31 2243 topology 2285 3975
-> 16 0 31 2243 topology 2283 3975
-> 15 0 30 2243 topology 2341 3976
-> 16 0 30 2243 topology 2291 3976
-> 15 0 31 2243 topology 2291 3977
-> 16 0 31 2243 topology 2289 3977
-> 15 0 30 2243 topology 2341 3978
-> 16 0 30 2243 topology 2297 3978
-> 15 0 31 2243 topology 2297 3979
-> 16 0 31 2243 topology 2295 3979
-> 15 0 32 2243 topology 2341 3980
-> 16 0 32 2243 topology 2340 3980
-> 15 0 30 2243 topology 2341 3981
-> 16 0 30 2243 topology 2249 3981
-> 15 0 31 2243 topology 2249 3982
-> 16 0 31 2243 topology 2247 3982
-> 15 0 30 2243 topology 2341 3983
-> 16 0 30 2243 topology 2306 3983
-> 15 0 31 2243 topology 2306 3984
-> 16 0 31 2243 topology 2304 3984
-> 15 0 30 2243 topology 2341 3985
-> 16 0 30 2243 topology 2255 3985
-> 15 0 31 2243 topology 2255 3986
-> 16 0 31 2243 topology 2253 3986
-> 15 0 30 2243 topology 2341 3987
-> 16 0 30 2243 topology 2312 3987
-> 15 0 31 2243 topology 2312 3988
-> 16 0 31 2243 topology 2310 3988
-> 15 0 30 2243 topology 2341 3989
-> 16 0 30 2243 topology 2261 3989
-> 15 0 31 2243 topology 2261 3990
-> 16 0 31 2243 topology 2259 3990
-> 15 0 30 2243 topology 2341 3991
-> 16 0 30 2243 topology 2318 3991
-> 15 0 31 2243 topology 2318 3992
-> 16 0 31 2243 topology 2316 3992
-> 15 0 30 2243 topology 2341 3993
-> 16 0 30 2243 topology 2267 3993
-> 15 0 31 2243 topology 2267 3994
-> 16 0 31 2243 topology 2265 3994
-> 15 0 30 2243 topology 2341 3995
-> 16 0 30 2243 topology 2324 3995
-> 15 0 31 2243 topology 2324 3996
-> 16 0 31 2243 topology 2322 3996
-> 15 0 30 2243 topology 2341 3997
-> 16 0 30 2243 topology 2330 3997
-> 15 0 31 2243 topology 2330 3998
-> 16 0 31 2243 topology 2328 3998
-> 15 0 29 2243 topology 2331 3999
-> 16 0 29 2243 topology 2332 3999
-> 15 0 30 2243 topology 2332 4000
-> 16 0 30 2243 topology 2341 4000
-> 15 0 30 2243 topology 2341 4001
-> 16 0 30 2243 topology 2276 4001
-> 15 0 31 2243 topology 2276 4002
-> 16 0 31 2243 topology 2274 4002
-> 15 0 29 2243 topology 2280 4003
-> 16 0 29 2243 topology 2281 4003
-> 15 0 30 2243 topology 2281 4004
-> 16 0 30 2243 topology 2341 4004
-> 15 0 29 2243 topology 2337 4005
-> 16 0 29 2243 topology 2338 4005
-> 15 0 30 2243 topology 2338 4006
-> 16 0 30 2243 topology 2341 4006
-> 15 0 29 2243 topology 2286 4007
-> 16 0 29 2243 topology 2287 4007
-> 15 0 30 2243 topology 2287 4008
-> 16 0 30 2243 topology 2341 4008
-> 15 0 29 2243 topology 2292 4009
-> 16 0 29 2243 topology 2293 4009
-> 15 0 30 2243 topology 2293 4010
-> 16 0 30 2243 topology 2341 4010
-> 15 0 29 2243 topology 2298 4011
-> 16 0 29 2243 topology 2299 4011
-> 15 0 30 2243 topology 2299 4012
-> 16 0 30 2243 topology 2341 4012
-> 15 0 29 2243 topology 2244 4013
-> 16 0 29 2243 topology 2245 4013
-> 15 0 30 2243 topology 2245 4014
-> 16 0 30 2243 topology 2341 4014
-> 15 0 29 2243 topology 2301 4015
-> 16 0 29 2243 topology 2302 4015
-> 15 0 30 2243 topology 2302 4016
-> 16 0 30 2243 topology 2341 4016
-> 15 0 29 2243 topology 2250 4017
-> 16 0 29 2243 topology 2251 4017
-> 15 0 30 2243 topology 2251 4018
-> 16 0 30 2243 topology 2341 4018
-> 15 0 29 2243 topology 2307 4019
-> 16 0 29 2243 topology 2308 4019
-> 15 0 30 2243 topology 2308 4020
-> 16 0 30 2243 topology 2341 4020
-> 15 0 29 2243 topology 2256 4021
-> 16 0 29 2243 topology 2257 4021
-> 15 0 30 2243 topology 2257 4022
-> 16 0 30 2243 topology 2341 4022
-> 15 0 29 2243 topology 2313 4023
-> 16 0 29 2243 topology 2314 4023
-> 15 0 30 2243 topology 2314 4024
-> 16 0 30 2243 topology 2341 4024
-> 15 0 29 2243 topology 2262 4025
-> 16 0 29 2243 topology 2263 4025
-> 15 0 30 2243 topology 2263 4026
-> 16 0 30 2243 topology 2341 4026
-> 15 0 29 2243 topology 2319 4027
-> 16 0 29 2243 topology 2320 4027
-> 15 0 30 2243 topology 2320 4028
-> 16 0 30 2243 topology 2341 4028
-> 15 0 29 2243 topology 2268 4029
-> 16 0 29 2243 topology 2269 4029
-> 15 0 30 2243 topology 2269 4030
-> 16 0 30 2243 topology 2341 4030
-> 15 0 29 2243 topology 2325 4031
-> 16 0 29 2243 topology 2326 4031
-> 15 0 30 2243 topology 2326 4032
-> 16 0 30 2243 topology 2341 4032
-> 15 0 29 2243 topology 2271 4033
-> 16 0 29 2243 topology 2272 4033
-> 15 0 30 2243 topology 2272 4034
-> 16 0 30 2243 topology 2341 4034
-> 15 0 29 2243 topology 2277 4035
-> 16 0 29 2243 topology 2278 4035
-> 15 0 30 2243 topology 2278 4036
-> 16 0 30 2243 topology 2341 4036
-> 15 0 29 2243 topology 2334 4037
-> 16 0 29 2243 topology 2335 4037
-> 15 0 30 2243 topology 2335 4038
-> 16 0 30 2243 topology 2341 4038
-> 15 0 29 2243 topology 2283 4039
-> 16 0 29 2243 topology 2284 4039
-> 15 0 30 2243 topology 2284 4040
-> 16 0 30 2243 topology 2341 4040
-> 15 0 29 2243 topology 2289 4041
-> 16 0 29 2243 topology 2290 4041
-> 15 0 30 2243 topology 2290 4042
-> 16 0 30 2243 topology 2341 4042
-> 15 0 29 2243 topology 2295 4043
-> 16 0 29 2243 topology 2296 4043
-> 15 0 30 2243 topology 2296 4044
-> 16 0 30 2243 topology 2341 4044
-> 15 0 29 2243 topology 2247 4045
-> 16 0 29 2243 topology 2248 4045
-> 15 0 30 2243 topology 2248 4046
-> 16 0 30 2243 topology 2341 4046
-> 15 0 29 2243 topology 2304 4047
-> 16 0 29 2243 topology 2305 4047
-> 15 0 30 2243 topology 2305 4048
-> 16 0 30 2243 topology 2341 4048
-> 15 0 29 2243 topology 2253 4049
-> 16 0 29 2243 topology 2254 4049
-> 15 0 30 2243 topology 2254 4050
-> 16 0 30 2243 topology 2341 4050
-> 15 0 29 2243 topology 2310 4051
-> 16 0 29 2243 topology 2311 4051
-> 15 0 30 2243 topology 2311 4052
-> 16 0 30 2243 topology 2341 4052
-> 15 0 29 2243 topology 2259 4053
-> 16 0 29 2243 topology 2260 4053
-> 15 0 30 2243 topology 2260 4054
-> 16 0 30 2243 topology 2341 4054
-> 15 0 29 2243 topology 2316 4055
-> 16 0 29 2243 topology 2317 4055
-> 15 0 30 2243 topology 2317 4056
-> 16 0 30 2243 topology 2341 4056
-> 15 0 29 2243 topology 2265 4057
-> 16 0 29 2243 topology 2266 4057
-> 15 0 30 2243 topology 2266 4058
-> 16 0 30 2243 topology 2341 4058
-> 15 0 29 2243 topology 2322 4059
-> 16 0 29 2243 topology 2323 4059
-> 15 0 30 2243 topology 2323 4060
-> 16 0 30 2243 topology 2341 4060
-> 15 0 29 2243 topology 2328 4061
-> 16 0 29 2243 topology 2329 4061
-> 15 0 30 2243 topology 2329 4062
-> 16 0 30 2243 topology 2341 4062
-> 15 0 34 2056 topology 2343 4063
-> 16 0 34 2056 topology 2344 4063
-> 15 0 35 2056 topology 2344 4064
-> 16 0 35 2056 topology 2154 4064
-> 15 0 35 2056 topology 2344 4065
-> 16 0 35 2056 topology 2241 4065
-> 15 0 35 2056 topology 2344 4066
-> 16 0 35 2056 topology 2340 4066
-> 15 0 37 1606 topology 2053 4067
-> 16 0 37 1606 topology 2055 4067
-> 15 0 21 1606 topology 2055 4068
-> 16 0 21 1606 topology 2345 4068
-> 15 0 36 1606 topology 2345 4069
-> 16 0 36 1606 topology 2343 4069
-> 15 0 28 1606 topology 2055 4070
-> 16 0 28 1606 topology 2347 4070
-> 15 0 28 1606 topology 2345 4071
-> 16 0 28 1606 topology 2347 4071
+> 16 0 29 2156 topology 2198 3926
+> 15 0 28 2156 topology 2176 3927
+> 16 0 28 2156 topology 2242 3927
+> 15 0 28 2156 topology 2206 3928
+> 16 0 28 2156 topology 2242 3928
+> 15 0 28 2156 topology 2236 3929
+> 16 0 28 2156 topology 2242 3929
+> 15 0 29 2156 topology 2175 3930
+> 16 0 29 2156 topology 2177 3930
+> 15 0 29 2156 topology 2229 3931
+> 16 0 29 2156 topology 2231 3931
+> 15 0 29 2156 topology 2187 3932
+> 16 0 29 2156 topology 2188 3932
+> 15 0 29 2156 topology 2208 3933
+> 16 0 29 2156 topology 2210 3933
+> 15 0 28 2243 topology 2269 3934
+> 16 0 28 2243 topology 2341 3934
+> 15 0 28 2243 topology 2299 3935
+> 16 0 28 2243 topology 2341 3935
+> 15 0 29 2243 topology 2259 3936
+> 16 0 29 2243 topology 2261 3936
+> 15 0 29 2243 topology 2313 3937
+> 16 0 29 2243 topology 2315 3937
+> 15 0 28 2243 topology 2329 3938
+> 16 0 28 2243 topology 2341 3938
+> 15 0 29 2243 topology 2271 3939
+> 16 0 29 2243 topology 2272 3939
+> 15 0 29 2243 topology 2292 3940
+> 16 0 29 2243 topology 2294 3940
+> 15 0 29 2243 topology 2250 3941
+> 16 0 29 2243 topology 2251 3941
+> 15 0 29 2243 topology 2304 3942
+> 16 0 29 2243 topology 2305 3942
+> 15 0 29 2243 topology 2325 3943
+> 16 0 29 2243 topology 2327 3943
+> 15 0 28 2243 topology 2276 3944
+> 16 0 28 2243 topology 2341 3944
+> 15 0 28 2243 topology 2252 3945
+> 16 0 28 2243 topology 2341 3945
+> 15 0 29 2243 topology 2283 3946
+> 16 0 29 2243 topology 2284 3946
+> 15 0 29 2243 topology 2337 3947
+> 16 0 29 2243 topology 2338 3947
+> 15 0 28 2243 topology 2336 3948
+> 16 0 28 2243 topology 2341 3948
+> 15 0 28 2243 topology 2312 3949
+> 16 0 28 2243 topology 2341 3949
+> 15 0 28 2243 topology 2288 3950
+> 16 0 28 2243 topology 2341 3950
+> 15 0 29 2243 topology 2262 3951
+> 16 0 29 2243 topology 2263 3951
+> 15 0 28 2243 topology 2264 3952
+> 16 0 28 2243 topology 2341 3952
+> 15 0 29 2243 topology 2316 3953
+> 16 0 29 2243 topology 2317 3953
+> 15 0 28 2243 topology 2324 3954
+> 16 0 28 2243 topology 2341 3954
+> 15 0 28 2243 topology 2300 3955
+> 16 0 28 2243 topology 2341 3955
+> 15 0 29 2243 topology 2295 3956
+> 16 0 29 2243 topology 2296 3956
+> 15 0 29 2243 topology 2244 3957
+> 16 0 29 2243 topology 2246 3957
+> 15 0 28 2243 topology 2272 3958
+> 16 0 28 2243 topology 2341 3958
+> 15 0 28 2243 topology 2302 3959
+> 16 0 28 2243 topology 2341 3959
+> 15 0 29 2243 topology 2328 3960
+> 16 0 29 2243 topology 2329 3960
+> 15 0 28 2243 topology 2332 3961
+> 16 0 28 2243 topology 2341 3961
+> 15 0 28 2243 topology 2254 3962
+> 16 0 28 2243 topology 2341 3962
+> 15 0 29 2243 topology 2277 3963
+> 16 0 29 2243 topology 2279 3963
+> 15 0 28 2243 topology 2284 3964
+> 16 0 28 2243 topology 2341 3964
+> 15 0 29 2243 topology 2331 3965
+> 16 0 29 2243 topology 2333 3965
+> 15 0 28 2243 topology 2314 3966
+> 16 0 28 2243 topology 2341 3966
+> 15 0 28 2243 topology 2266 3967
+> 16 0 28 2243 topology 2341 3967
+> 15 0 29 2243 topology 2256 3968
+> 16 0 29 2243 topology 2258 3968
+> 15 0 28 2243 topology 2296 3969
+> 16 0 28 2243 topology 2341 3969
+> 15 0 29 2243 topology 2310 3970
+> 16 0 29 2243 topology 2312 3970
+> 15 0 28 2243 topology 2326 3971
+> 16 0 28 2243 topology 2341 3971
+> 15 0 29 2243 topology 2289 3972
+> 16 0 29 2243 topology 2291 3972
+> 15 0 29 2243 topology 2274 3973
+> 16 0 29 2243 topology 2275 3973
+> 15 0 29 2243 topology 2268 3974
+> 16 0 29 2243 topology 2270 3974
+> 15 0 29 2243 topology 2322 3975
+> 16 0 29 2243 topology 2324 3975
+> 15 0 29 2243 topology 2253 3976
+> 16 0 29 2243 topology 2254 3976
+> 15 0 29 2243 topology 2307 3977
+> 16 0 29 2243 topology 2308 3977
+> 15 0 28 2243 topology 2303 3978
+> 16 0 28 2243 topology 2341 3978
+> 15 0 28 2243 topology 2279 3979
+> 16 0 28 2243 topology 2341 3979
+> 15 0 28 2243 topology 2255 3980
+> 16 0 28 2243 topology 2341 3980
+> 15 0 29 2243 topology 2286 3981
+> 16 0 29 2243 topology 2287 3981
+> 15 0 28 2243 topology 2339 3982
+> 16 0 28 2243 topology 2341 3982
+> 15 0 28 2243 topology 2315 3983
+> 16 0 28 2243 topology 2341 3983
+> 15 0 28 2243 topology 2291 3984
+> 16 0 28 2243 topology 2341 3984
+> 15 0 28 2243 topology 2267 3985
+> 16 0 28 2243 topology 2341 3985
+> 15 0 29 2243 topology 2265 3986
+> 16 0 29 2243 topology 2266 3986
+> 15 0 29 2243 topology 2319 3987
+> 16 0 29 2243 topology 2320 3987
+> 15 0 28 2243 topology 2327 3988
+> 16 0 28 2243 topology 2341 3988
+> 15 0 29 2243 topology 2298 3989
+> 16 0 29 2243 topology 2299 3989
+> 15 0 28 2243 topology 2251 3990
+> 16 0 28 2243 topology 2341 3990
+> 15 0 29 2243 topology 2274 3991
+> 16 0 29 2243 topology 2276 3991
+> 15 0 28 2243 topology 2281 3992
+> 16 0 28 2243 topology 2341 3992
+> 15 0 28 2243 topology 2311 3993
+> 16 0 28 2243 topology 2341 3993
+> 15 0 29 2243 topology 2253 3994
+> 16 0 29 2243 topology 2255 3994
+> 15 0 28 2243 topology 2263 3995
+> 16 0 28 2243 topology 2341 3995
+> 15 0 29 2243 topology 2307 3996
+> 16 0 29 2243 topology 2309 3996
+> 15 0 30 2243 topology 2340 3997
+> 16 0 30 2243 topology 2341 3997
+> 15 0 28 2243 topology 2293 3998
+> 16 0 28 2243 topology 2341 3998
+> 15 0 28 2243 topology 2323 3999
+> 16 0 28 2243 topology 2341 3999
+> 15 0 29 2243 topology 2286 4000
+> 16 0 29 2243 topology 2288 4000
+> 15 0 29 2243 topology 2244 4001
+> 16 0 29 2243 topology 2245 4001
+> 15 0 29 2243 topology 2265 4002
+> 16 0 29 2243 topology 2267 4002
+> 15 0 29 2243 topology 2319 4003
+> 16 0 29 2243 topology 2321 4003
+> 15 0 29 2243 topology 2277 4004
+> 16 0 29 2243 topology 2278 4004
+> 15 0 29 2243 topology 2331 4005
+> 16 0 29 2243 topology 2332 4005
+> 15 0 29 2243 topology 2298 4006
+> 16 0 29 2243 topology 2300 4006
+> 15 0 28 2243 topology 2246 4007
+> 16 0 28 2243 topology 2341 4007
+> 15 0 29 2243 topology 2256 4008
+> 16 0 29 2243 topology 2257 4008
+> 15 0 28 2243 topology 2306 4009
+> 16 0 28 2243 topology 2341 4009
+> 15 0 29 2243 topology 2310 4010
+> 16 0 29 2243 topology 2311 4010
+> 15 0 28 2243 topology 2282 4011
+> 16 0 28 2243 topology 2341 4011
+> 15 0 28 2243 topology 2258 4012
+> 16 0 28 2243 topology 2341 4012
+> 15 0 29 2243 topology 2289 4013
+> 16 0 29 2243 topology 2290 4013
+> 15 0 28 2243 topology 2318 4014
+> 16 0 28 2243 topology 2341 4014
+> 15 0 28 2243 topology 2294 4015
+> 16 0 28 2243 topology 2341 4015
+> 15 0 28 2243 topology 2270 4016
+> 16 0 28 2243 topology 2341 4016
+> 15 0 29 2243 topology 2268 4017
+> 16 0 29 2243 topology 2269 4017
+> 15 0 29 2243 topology 2322 4018
+> 16 0 29 2243 topology 2323 4018
+> 15 0 28 2243 topology 2330 4019
+> 16 0 28 2243 topology 2341 4019
+> 15 0 29 2243 topology 2271 4020
+> 16 0 29 2243 topology 2273 4020
+> 15 0 28 2243 topology 2248 4021
+> 16 0 28 2243 topology 2341 4021
+> 15 0 28 2243 topology 2278 4022
+> 16 0 28 2243 topology 2341 4022
+> 15 0 28 2243 topology 2308 4023
+> 16 0 28 2243 topology 2341 4023
+> 15 0 29 2243 topology 2250 4024
+> 16 0 29 2243 topology 2252 4024
+> 15 0 29 2243 topology 2304 4025
+> 16 0 29 2243 topology 2306 4025
+> 15 0 28 2243 topology 2338 4026
+> 16 0 28 2243 topology 2341 4026
+> 15 0 28 2243 topology 2260 4027
+> 16 0 28 2243 topology 2341 4027
+> 15 0 28 2243 topology 2290 4028
+> 16 0 28 2243 topology 2341 4028
+> 15 0 28 2243 topology 2320 4029
+> 16 0 28 2243 topology 2341 4029
+> 15 0 29 2243 topology 2283 4030
+> 16 0 29 2243 topology 2285 4030
+> 15 0 29 2243 topology 2337 4031
+> 16 0 29 2243 topology 2339 4031
+> 15 0 29 2243 topology 2262 4032
+> 16 0 29 2243 topology 2264 4032
+> 15 0 29 2243 topology 2316 4033
+> 16 0 29 2243 topology 2318 4033
+> 15 0 29 2243 topology 2247 4034
+> 16 0 29 2243 topology 2248 4034
+> 15 0 29 2243 topology 2301 4035
+> 16 0 29 2243 topology 2302 4035
+> 15 0 29 2243 topology 2295 4036
+> 16 0 29 2243 topology 2297 4036
+> 15 0 28 2243 topology 2273 4037
+> 16 0 28 2243 topology 2341 4037
+> 15 0 29 2243 topology 2280 4038
+> 16 0 29 2243 topology 2281 4038
+> 15 0 29 2243 topology 2334 4039
+> 16 0 29 2243 topology 2335 4039
+> 15 0 28 2243 topology 2249 4040
+> 16 0 28 2243 topology 2341 4040
+> 15 0 29 2243 topology 2328 4041
+> 16 0 29 2243 topology 2330 4041
+> 15 0 28 2243 topology 2333 4042
+> 16 0 28 2243 topology 2341 4042
+> 15 0 28 2243 topology 2309 4043
+> 16 0 28 2243 topology 2341 4043
+> 15 0 29 2243 topology 2259 4044
+> 16 0 29 2243 topology 2260 4044
+> 15 0 28 2243 topology 2285 4045
+> 16 0 28 2243 topology 2341 4045
+> 15 0 29 2243 topology 2313 4046
+> 16 0 29 2243 topology 2314 4046
+> 15 0 28 2243 topology 2261 4047
+> 16 0 28 2243 topology 2341 4047
+> 15 0 28 2243 topology 2321 4048
+> 16 0 28 2243 topology 2341 4048
+> 15 0 29 2243 topology 2292 4049
+> 16 0 29 2243 topology 2293 4049
+> 15 0 28 2243 topology 2297 4050
+> 16 0 28 2243 topology 2341 4050
+> 15 0 29 2243 topology 2325 4051
+> 16 0 29 2243 topology 2326 4051
+> 15 0 28 2243 topology 2245 4052
+> 16 0 28 2243 topology 2341 4052
+> 15 0 28 2243 topology 2275 4053
+> 16 0 28 2243 topology 2341 4053
+> 15 0 29 2243 topology 2247 4054
+> 16 0 29 2243 topology 2249 4054
+> 15 0 29 2243 topology 2301 4055
+> 16 0 29 2243 topology 2303 4055
+> 15 0 28 2243 topology 2305 4056
+> 16 0 28 2243 topology 2341 4056
+> 15 0 28 2243 topology 2335 4057
+> 16 0 28 2243 topology 2341 4057
+> 15 0 28 2243 topology 2257 4058
+> 16 0 28 2243 topology 2341 4058
+> 15 0 28 2243 topology 2287 4059
+> 16 0 28 2243 topology 2341 4059
+> 15 0 29 2243 topology 2280 4060
+> 16 0 29 2243 topology 2282 4060
+> 15 0 28 2243 topology 2317 4061
+> 16 0 28 2243 topology 2341 4061
+> 15 0 29 2243 topology 2334 4062
+> 16 0 29 2243 topology 2336 4062
+> 15 0 31 2056 topology 2344 4063
+> 16 0 31 2056 topology 2241 4063
+> 15 0 31 2056 topology 2344 4064
+> 16 0 31 2056 topology 2343 4064
+> 15 0 32 2056 topology 2154 4065
+> 16 0 32 2056 topology 2344 4065
+> 15 0 31 2056 topology 2344 4066
+> 16 0 31 2056 topology 2340 4066
+> 15 0 26 1606 topology 2055 4067
+> 16 0 26 1606 topology 2347 4067
+> 15 0 26 1606 topology 2345 4068
+> 16 0 26 1606 topology 2347 4068
+> 15 0 21 1606 topology 2055 4069
+> 16 0 21 1606 topology 2345 4069
+> 15 0 33 1606 topology 2053 4070
+> 16 0 33 1606 topology 2055 4070
+> 15 0 34 1606 topology 2345 4071
+> 16 0 34 1606 topology 2343 4071
 > 15 0 23 462 topology 469 4072
-> 16 0 23 462 topology 470 4072
-> 15 0 24 462 topology 470 4073
+> 16 0 23 462 topology 471 4072
+> 15 0 24 462 topology 474 4073
 > 16 0 24 462 topology 494 4073
-> 15 0 24 462 topology 494 4074
-> 16 0 24 462 topology 483 4074
-> 15 0 25 462 topology 483 4075
-> 16 0 25 462 topology 481 4075
-> 15 0 26 462 topology 494 4076
-> 16 0 26 462 topology 493 4076
-> 15 0 24 462 topology 494 4077
-> 16 0 24 462 topology 492 4077
-> 15 0 25 462 topology 492 4078
-> 16 0 25 462 topology 490 4078
-> 15 0 24 462 topology 494 4079
-> 16 0 24 462 topology 474 4079
-> 15 0 25 462 topology 474 4080
-> 16 0 25 462 topology 472 4080
-> 15 0 24 462 topology 494 4081
-> 16 0 24 462 topology 486 4081
-> 15 0 25 462 topology 486 4082
-> 16 0 25 462 topology 484 4082
-> 15 0 24 462 topology 494 4083
-> 16 0 24 462 topology 465 4083
-> 15 0 25 462 topology 465 4084
-> 16 0 25 462 topology 463 4084
-> 15 0 24 462 topology 494 4085
-> 16 0 24 462 topology 477 4085
-> 15 0 25 462 topology 477 4086
-> 16 0 25 462 topology 475 4086
-> 15 0 24 462 topology 494 4087
-> 16 0 24 462 topology 489 4087
-> 15 0 25 462 topology 489 4088
-> 16 0 25 462 topology 487 4088
-> 15 0 24 462 topology 494 4089
-> 16 0 24 462 topology 468 4089
-> 15 0 25 462 topology 468 4090
-> 16 0 25 462 topology 466 4090
-> 15 0 24 462 topology 494 4091
-> 16 0 24 462 topology 480 4091
-> 15 0 25 462 topology 480 4092
-> 16 0 25 462 topology 478 4092
-> 15 0 23 462 topology 481 4093
-> 16 0 23 462 topology 482 4093
-> 15 0 24 462 topology 482 4094
-> 16 0 24 462 topology 494 4094
-> 15 0 24 462 topology 494 4095
-> 16 0 24 462 topology 471 4095
-> 15 0 25 462 topology 471 4096
-> 16 0 25 462 topology 469 4096
-> 15 0 23 462 topology 490 4097
-> 16 0 23 462 topology 491 4097
-> 15 0 24 462 topology 491 4098
+> 15 0 24 462 topology 486 4074
+> 16 0 24 462 topology 494 4074
+> 15 0 23 462 topology 481 4075
+> 16 0 23 462 topology 483 4075
+> 15 0 23 462 topology 469 4076
+> 16 0 23 462 topology 470 4076
+> 15 0 24 462 topology 470 4077
+> 16 0 24 462 topology 494 4077
+> 15 0 24 462 topology 482 4078
+> 16 0 24 462 topology 494 4078
+> 15 0 23 462 topology 481 4079
+> 16 0 23 462 topology 482 4079
+> 15 0 24 462 topology 465 4080
+> 16 0 24 462 topology 494 4080
+> 15 0 23 462 topology 466 4081
+> 16 0 23 462 topology 468 4081
+> 15 0 24 462 topology 477 4082
+> 16 0 24 462 topology 494 4082
+> 15 0 23 462 topology 478 4083
+> 16 0 23 462 topology 480 4083
+> 15 0 24 462 topology 489 4084
+> 16 0 24 462 topology 494 4084
+> 15 0 24 462 topology 467 4085
+> 16 0 24 462 topology 494 4085
+> 15 0 23 462 topology 472 4086
+> 16 0 23 462 topology 473 4086
+> 15 0 24 462 topology 479 4087
+> 16 0 24 462 topology 494 4087
+> 15 0 23 462 topology 484 4088
+> 16 0 23 462 topology 485 4088
+> 15 0 23 462 topology 463 4089
+> 16 0 23 462 topology 465 4089
+> 15 0 23 462 topology 490 4090
+> 16 0 23 462 topology 492 4090
+> 15 0 24 462 topology 468 4091
+> 16 0 24 462 topology 494 4091
+> 15 0 24 462 topology 480 4092
+> 16 0 24 462 topology 494 4092
+> 15 0 25 462 topology 493 4093
+> 16 0 25 462 topology 494 4093
+> 15 0 23 462 topology 475 4094
+> 16 0 23 462 topology 477 4094
+> 15 0 23 462 topology 463 4095
+> 16 0 23 462 topology 464 4095
+> 15 0 24 462 topology 464 4096
+> 16 0 24 462 topology 494 4096
+> 15 0 23 462 topology 487 4097
+> 16 0 23 462 topology 489 4097
+> 15 0 24 462 topology 492 4098
 > 16 0 24 462 topology 494 4098
-> 15 0 23 462 topology 472 4099
-> 16 0 23 462 topology 473 4099
-> 15 0 24 462 topology 473 4100
-> 16 0 24 462 topology 494 4100
-> 15 0 23 462 topology 484 4101
-> 16 0 23 462 topology 485 4101
-> 15 0 24 462 topology 485 4102
-> 16 0 24 462 topology 494 4102
-> 15 0 23 462 topology 463 4103
-> 16 0 23 462 topology 464 4103
-> 15 0 24 462 topology 464 4104
-> 16 0 24 462 topology 494 4104
-> 15 0 23 462 topology 475 4105
-> 16 0 23 462 topology 476 4105
-> 15 0 24 462 topology 476 4106
-> 16 0 24 462 topology 494 4106
-> 15 0 23 462 topology 487 4107
-> 16 0 23 462 topology 488 4107
-> 15 0 24 462 topology 488 4108
-> 16 0 24 462 topology 494 4108
-> 15 0 23 462 topology 466 4109
-> 16 0 23 462 topology 467 4109
-> 15 0 24 462 topology 467 4110
+> 15 0 24 462 topology 476 4099
+> 16 0 24 462 topology 494 4099
+> 15 0 23 462 topology 475 4100
+> 16 0 23 462 topology 476 4100
+> 15 0 24 462 topology 488 4101
+> 16 0 24 462 topology 494 4101
+> 15 0 23 462 topology 487 4102
+> 16 0 23 462 topology 488 4102
+> 15 0 24 462 topology 471 4103
+> 16 0 24 462 topology 494 4103
+> 15 0 23 462 topology 472 4104
+> 16 0 23 462 topology 474 4104
+> 15 0 24 462 topology 483 4105
+> 16 0 24 462 topology 494 4105
+> 15 0 23 462 topology 490 4106
+> 16 0 23 462 topology 491 4106
+> 15 0 23 462 topology 484 4107
+> 16 0 23 462 topology 486 4107
+> 15 0 23 462 topology 466 4108
+> 16 0 23 462 topology 467 4108
+> 15 0 24 462 topology 473 4109
+> 16 0 24 462 topology 494 4109
+> 15 0 24 462 topology 485 4110
 > 16 0 24 462 topology 494 4110
 > 15 0 23 462 topology 478 4111
 > 16 0 23 462 topology 479 4111
-> 15 0 24 462 topology 479 4112
+> 15 0 24 462 topology 491 4112
 > 16 0 24 462 topology 494 4112
-> 15 0 23 22 topology 35 4113
-> 16 0 23 22 topology 36 4113
-> 15 0 24 22 topology 36 4114
-> 16 0 24 22 topology 177 4114
-> 15 0 24 22 topology 177 4115
-> 16 0 24 22 topology 49 4115
-> 15 0 25 22 topology 49 4116
-> 16 0 25 22 topology 47 4116
-> 15 0 24 22 topology 177 4117
-> 16 0 24 22 topology 85 4117
-> 15 0 25 22 topology 85 4118
-> 16 0 25 22 topology 83 4118
-> 15 0 24 22 topology 177 4119
-> 16 0 24 22 topology 61 4119
-> 15 0 25 22 topology 61 4120
-> 16 0 25 22 topology 59 4120
-> 15 0 24 22 topology 177 4121
-> 16 0 24 22 topology 145 4121
-> 15 0 25 22 topology 145 4122
-> 16 0 25 22 topology 143 4122
-> 15 0 24 22 topology 177 4123
-> 16 0 24 22 topology 121 4123
-> 15 0 25 22 topology 121 4124
-> 16 0 25 22 topology 119 4124
-> 15 0 24 22 topology 177 4125
-> 16 0 24 22 topology 97 4125
-> 15 0 25 22 topology 97 4126
-> 16 0 25 22 topology 95 4126
-> 15 0 24 22 topology 177 4127
-> 16 0 24 22 topology 73 4127
-> 15 0 25 22 topology 73 4128
-> 16 0 25 22 topology 71 4128
-> 15 0 24 22 topology 177 4129
-> 16 0 24 22 topology 157 4129
-> 15 0 25 22 topology 157 4130
-> 16 0 25 22 topology 155 4130
-> 15 0 24 22 topology 177 4131
-> 16 0 24 22 topology 133 4131
-> 15 0 25 22 topology 133 4132
-> 16 0 25 22 topology 131 4132
-> 15 0 24 22 topology 177 4133
-> 16 0 24 22 topology 109 4133
-> 15 0 25 22 topology 109 4134
-> 16 0 25 22 topology 107 4134
-> 15 0 24 22 topology 177 4135
-> 16 0 24 22 topology 169 4135
-> 15 0 25 22 topology 169 4136
-> 16 0 25 22 topology 167 4136
-> 15 0 24 22 topology 177 4137
-> 16 0 24 22 topology 28 4137
-> 15 0 25 22 topology 28 4138
-> 16 0 25 22 topology 26 4138
-> 15 0 24 22 topology 177 4139
-> 16 0 24 22 topology 40 4139
-> 15 0 25 22 topology 40 4140
-> 16 0 25 22 topology 38 4140
-> 15 0 24 22 topology 177 4141
-> 16 0 24 22 topology 52 4141
-> 15 0 25 22 topology 52 4142
-> 16 0 25 22 topology 50 4142
-> 15 0 24 22 topology 177 4143
-> 16 0 24 22 topology 112 4143
-> 15 0 25 22 topology 112 4144
-> 16 0 25 22 topology 110 4144
-> 15 0 24 22 topology 177 4145
-> 16 0 24 22 topology 88 4145
-> 15 0 25 22 topology 88 4146
-> 16 0 25 22 topology 86 4146
-> 15 0 24 22 topology 177 4147
-> 16 0 24 22 topology 64 4147
-> 15 0 25 22 topology 64 4148
-> 16 0 25 22 topology 62 4148
-> 15 0 24 22 topology 177 4149
-> 16 0 24 22 topology 172 4149
-> 15 0 25 22 topology 172 4150
-> 16 0 25 22 topology 170 4150
-> 15 0 24 22 topology 177 4151
-> 16 0 24 22 topology 148 4151
-> 15 0 25 22 topology 148 4152
-> 16 0 25 22 topology 146 4152
-> 15 0 24 22 topology 177 4153
-> 16 0 24 22 topology 124 4153
-> 15 0 25 22 topology 124 4154
-> 16 0 25 22 topology 122 4154
-> 15 0 24 22 topology 177 4155
-> 16 0 24 22 topology 100 4155
-> 15 0 25 22 topology 100 4156
-> 16 0 25 22 topology 98 4156
-> 15 0 24 22 topology 177 4157
-> 16 0 24 22 topology 76 4157
-> 15 0 25 22 topology 76 4158
-> 16 0 25 22 topology 74 4158
-> 15 0 24 22 topology 177 4159
-> 16 0 24 22 topology 160 4159
-> 15 0 25 22 topology 160 4160
-> 16 0 25 22 topology 158 4160
-> 15 0 24 22 topology 177 4161
-> 16 0 24 22 topology 136 4161
-> 15 0 25 22 topology 136 4162
-> 16 0 25 22 topology 134 4162
-> 15 0 24 22 topology 177 4163
-> 16 0 24 22 topology 31 4163
-> 15 0 25 22 topology 31 4164
-> 16 0 25 22 topology 29 4164
-> 15 0 24 22 topology 177 4165
-> 16 0 24 22 topology 43 4165
-> 15 0 25 22 topology 43 4166
-> 16 0 25 22 topology 41 4166
-> 15 0 24 22 topology 177 4167
-> 16 0 24 22 topology 55 4167
-> 15 0 25 22 topology 55 4168
-> 16 0 25 22 topology 53 4168
-> 15 0 24 22 topology 177 4169
-> 16 0 24 22 topology 115 4169
-> 15 0 25 22 topology 115 4170
-> 16 0 25 22 topology 113 4170
-> 15 0 24 22 topology 177 4171
-> 16 0 24 22 topology 91 4171
-> 15 0 25 22 topology 91 4172
-> 16 0 25 22 topology 89 4172
-> 15 0 24 22 topology 177 4173
-> 16 0 24 22 topology 67 4173
-> 15 0 25 22 topology 67 4174
-> 16 0 25 22 topology 65 4174
-> 15 0 24 22 topology 177 4175
-> 16 0 24 22 topology 175 4175
-> 15 0 25 22 topology 175 4176
-> 16 0 25 22 topology 173 4176
-> 15 0 24 22 topology 177 4177
-> 16 0 24 22 topology 151 4177
-> 15 0 25 22 topology 151 4178
-> 16 0 25 22 topology 149 4178
-> 15 0 24 22 topology 177 4179
-> 16 0 24 22 topology 127 4179
-> 15 0 25 22 topology 127 4180
-> 16 0 25 22 topology 125 4180
-> 15 0 24 22 topology 177 4181
-> 16 0 24 22 topology 103 4181
-> 15 0 25 22 topology 103 4182
-> 16 0 25 22 topology 101 4182
-> 15 0 24 22 topology 177 4183
-> 16 0 24 22 topology 79 4183
-> 15 0 25 22 topology 79 4184
-> 16 0 25 22 topology 77 4184
-> 15 0 24 22 topology 177 4185
-> 16 0 24 22 topology 163 4185
-> 15 0 25 22 topology 163 4186
-> 16 0 25 22 topology 161 4186
-> 15 0 24 22 topology 177 4187
-> 16 0 24 22 topology 139 4187
-> 15 0 25 22 topology 139 4188
-> 16 0 25 22 topology 137 4188
-> 15 0 24 22 topology 177 4189
-> 16 0 24 22 topology 34 4189
-> 15 0 25 22 topology 34 4190
-> 16 0 25 22 topology 32 4190
-> 15 0 24 22 topology 177 4191
-> 16 0 24 22 topology 46 4191
-> 15 0 25 22 topology 46 4192
-> 16 0 25 22 topology 44 4192
-> 15 0 24 22 topology 177 4193
-> 16 0 24 22 topology 82 4193
-> 15 0 25 22 topology 82 4194
-> 16 0 25 22 topology 80 4194
-> 15 0 24 22 topology 177 4195
-> 16 0 24 22 topology 58 4195
-> 15 0 25 22 topology 58 4196
-> 16 0 25 22 topology 56 4196
-> 15 0 24 22 topology 177 4197
-> 16 0 24 22 topology 142 4197
-> 15 0 25 22 topology 142 4198
-> 16 0 25 22 topology 140 4198
-> 15 0 24 22 topology 177 4199
-> 16 0 24 22 topology 118 4199
-> 15 0 25 22 topology 118 4200
-> 16 0 25 22 topology 116 4200
-> 15 0 24 22 topology 177 4201
-> 16 0 24 22 topology 94 4201
-> 15 0 25 22 topology 94 4202
-> 16 0 25 22 topology 92 4202
-> 15 0 24 22 topology 177 4203
-> 16 0 24 22 topology 70 4203
-> 15 0 25 22 topology 70 4204
-> 16 0 25 22 topology 68 4204
-> 15 0 24 22 topology 177 4205
-> 16 0 24 22 topology 154 4205
-> 15 0 25 22 topology 154 4206
-> 16 0 25 22 topology 152 4206
-> 15 0 26 22 topology 177 4207
-> 16 0 26 22 topology 176 4207
-> 15 0 24 22 topology 177 4208
-> 16 0 24 22 topology 130 4208
-> 15 0 25 22 topology 130 4209
-> 16 0 25 22 topology 128 4209
-> 15 0 24 22 topology 177 4210
-> 16 0 24 22 topology 106 4210
-> 15 0 25 22 topology 106 4211
-> 16 0 25 22 topology 104 4211
-> 15 0 24 22 topology 177 4212
-> 16 0 24 22 topology 166 4212
-> 15 0 25 22 topology 166 4213
-> 16 0 25 22 topology 164 4213
-> 15 0 24 22 topology 177 4214
-> 16 0 24 22 topology 25 4214
-> 15 0 25 22 topology 25 4215
-> 16 0 25 22 topology 23 4215
-> 15 0 23 22 topology 47 4216
-> 16 0 23 22 topology 48 4216
-> 15 0 24 22 topology 48 4217
+> 15 0 24 22 topology 96 4113
+> 16 0 24 22 topology 177 4113
+> 15 0 23 22 topology 32 4114
+> 16 0 23 22 topology 34 4114
+> 15 0 23 22 topology 113 4115
+> 16 0 23 22 topology 115 4115
+> 15 0 24 22 topology 156 4116
+> 16 0 24 22 topology 177 4116
+> 15 0 23 22 topology 62 4117
+> 16 0 23 22 topology 64 4117
+> 15 0 24 22 topology 78 4118
+> 16 0 24 22 topology 177 4118
+> 15 0 23 22 topology 170 4119
+> 16 0 23 22 topology 172 4119
+> 15 0 24 22 topology 49 4120
+> 16 0 24 22 topology 177 4120
+> 15 0 23 22 topology 119 4121
+> 16 0 23 22 topology 121 4121
+> 15 0 24 22 topology 138 4122
+> 16 0 24 22 topology 177 4122
+> 15 0 23 22 topology 68 4123
+> 16 0 23 22 topology 70 4123
+> 15 0 23 22 topology 125 4124
+> 16 0 23 22 topology 127 4124
+> 15 0 24 22 topology 27 4125
+> 16 0 24 22 topology 177 4125
+> 15 0 23 22 topology 74 4126
+> 16 0 23 22 topology 76 4126
+> 15 0 23 22 topology 131 4127
+> 16 0 23 22 topology 133 4127
+> 15 0 24 22 topology 115 4128
+> 16 0 24 22 topology 177 4128
+> 15 0 23 22 topology 137 4129
+> 16 0 23 22 topology 139 4129
+> 15 0 24 22 topology 67 4130
+> 16 0 24 22 topology 177 4130
+> 15 0 24 22 topology 151 4131
+> 16 0 24 22 topology 177 4131
+> 15 0 24 22 topology 103 4132
+> 16 0 24 22 topology 177 4132
+> 15 0 23 22 topology 44 4133
+> 16 0 23 22 topology 45 4133
+> 15 0 24 22 topology 139 4134
+> 16 0 24 22 topology 177 4134
+> 15 0 24 22 topology 81 4135
+> 16 0 24 22 topology 177 4135
+> 15 0 24 22 topology 141 4136
+> 16 0 24 22 topology 177 4136
+> 15 0 24 22 topology 63 4137
+> 16 0 24 22 topology 177 4137
+> 15 0 24 22 topology 123 4138
+> 16 0 24 22 topology 177 4138
+> 15 0 24 22 topology 40 4139
+> 16 0 24 22 topology 177 4139
+> 15 0 24 22 topology 105 4140
+> 16 0 24 22 topology 177 4140
+> 15 0 24 22 topology 165 4141
+> 16 0 24 22 topology 177 4141
+> 15 0 23 22 topology 41 4142
+> 16 0 23 22 topology 43 4142
+> 15 0 23 22 topology 23 4143
+> 16 0 23 22 topology 24 4143
+> 15 0 23 22 topology 53 4144
+> 16 0 23 22 topology 54 4144
+> 15 0 24 22 topology 36 4145
+> 16 0 24 22 topology 177 4145
+> 15 0 23 22 topology 113 4146
+> 16 0 23 22 topology 114 4146
+> 15 0 24 22 topology 58 4147
+> 16 0 24 22 topology 177 4147
+> 15 0 23 22 topology 89 4148
+> 16 0 23 22 topology 90 4148
+> 15 0 24 22 topology 142 4149
+> 16 0 24 22 topology 177 4149
+> 15 0 23 22 topology 65 4150
+> 16 0 23 22 topology 66 4150
+> 15 0 24 22 topology 94 4151
+> 16 0 24 22 topology 177 4151
+> 15 0 23 22 topology 173 4152
+> 16 0 23 22 topology 174 4152
+> 15 0 23 22 topology 149 4153
+> 16 0 23 22 topology 150 4153
+> 15 0 24 22 topology 130 4154
+> 16 0 24 22 topology 177 4154
+> 15 0 23 22 topology 125 4155
+> 16 0 23 22 topology 126 4155
+> 15 0 23 22 topology 47 4156
+> 16 0 23 22 topology 48 4156
+> 15 0 23 22 topology 101 4157
+> 16 0 23 22 topology 102 4157
+> 15 0 24 22 topology 166 4158
+> 16 0 24 22 topology 177 4158
+> 15 0 23 22 topology 77 4159
+> 16 0 23 22 topology 78 4159
+> 15 0 23 22 topology 161 4160
+> 16 0 23 22 topology 162 4160
+> 15 0 23 22 topology 26 4161
+> 16 0 23 22 topology 28 4161
+> 15 0 24 22 topology 90 4162
+> 16 0 24 22 topology 177 4162
+> 15 0 23 22 topology 137 4163
+> 16 0 23 22 topology 138 4163
+> 15 0 24 22 topology 31 4164
+> 16 0 24 22 topology 177 4164
+> 15 0 23 22 topology 83 4165
+> 16 0 23 22 topology 85 4165
+> 15 0 24 22 topology 150 4166
+> 16 0 24 22 topology 177 4166
+> 15 0 24 22 topology 72 4167
+> 16 0 24 22 topology 177 4167
+> 15 0 23 22 topology 140 4168
+> 16 0 23 22 topology 142 4168
+> 15 0 23 22 topology 89 4169
+> 16 0 23 22 topology 91 4169
+> 15 0 24 22 topology 132 4170
+> 16 0 24 22 topology 177 4170
+> 15 0 23 22 topology 146 4171
+> 16 0 23 22 topology 148 4171
+> 15 0 23 22 topology 95 4172
+> 16 0 23 22 topology 97 4172
+> 15 0 23 22 topology 152 4173
+> 16 0 23 22 topology 154 4173
+> 15 0 23 22 topology 26 4174
+> 16 0 23 22 topology 27 4174
+> 15 0 23 22 topology 101 4175
+> 16 0 23 22 topology 103 4175
+> 15 0 23 22 topology 158 4176
+> 16 0 23 22 topology 160 4176
+> 15 0 24 22 topology 85 4177
+> 16 0 24 22 topology 177 4177
+> 15 0 23 22 topology 107 4178
+> 16 0 23 22 topology 109 4178
+> 15 0 24 22 topology 45 4179
+> 16 0 24 22 topology 177 4179
+> 15 0 23 22 topology 164 4180
+> 16 0 23 22 topology 166 4180
+> 15 0 24 22 topology 121 4181
+> 16 0 24 22 topology 177 4181
+> 15 0 24 22 topology 73 4182
+> 16 0 24 22 topology 177 4182
+> 15 0 24 22 topology 157 4183
+> 16 0 24 22 topology 177 4183
+> 15 0 24 22 topology 109 4184
+> 16 0 24 22 topology 177 4184
+> 15 0 24 22 topology 57 4185
+> 16 0 24 22 topology 177 4185
+> 15 0 24 22 topology 117 4186
+> 16 0 24 22 topology 177 4186
+> 15 0 24 22 topology 99 4187
+> 16 0 24 22 topology 177 4187
+> 15 0 23 22 topology 35 4188
+> 16 0 23 22 topology 37 4188
+> 15 0 24 22 topology 159 4189
+> 16 0 24 22 topology 177 4189
+> 15 0 24 22 topology 46 4190
+> 16 0 24 22 topology 177 4190
+> 15 0 23 22 topology 80 4191
+> 16 0 23 22 topology 81 4191
+> 15 0 23 22 topology 29 4192
+> 16 0 23 22 topology 30 4192
+> 15 0 24 22 topology 30 4193
+> 16 0 24 22 topology 177 4193
+> 15 0 23 22 topology 56 4194
+> 16 0 23 22 topology 57 4194
+> 15 0 23 22 topology 140 4195
+> 16 0 23 22 topology 141 4195
+> 15 0 24 22 topology 112 4196
+> 16 0 24 22 topology 177 4196
+> 15 0 23 22 topology 116 4197
+> 16 0 23 22 topology 117 4197
+> 15 0 24 22 topology 64 4198
+> 16 0 24 22 topology 177 4198
+> 15 0 23 22 topology 92 4199
+> 16 0 23 22 topology 93 4199
+> 15 0 24 22 topology 148 4200
+> 16 0 24 22 topology 177 4200
+> 15 0 23 22 topology 68 4201
+> 16 0 23 22 topology 69 4201
+> 15 0 24 22 topology 100 4202
+> 16 0 24 22 topology 177 4202
+> 15 0 23 22 topology 152 4203
+> 16 0 23 22 topology 153 4203
+> 15 0 24 22 topology 136 4204
+> 16 0 24 22 topology 177 4204
+> 15 0 23 22 topology 128 4205
+> 16 0 23 22 topology 129 4205
+> 15 0 23 22 topology 104 4206
+> 16 0 23 22 topology 105 4206
+> 15 0 24 22 topology 84 4207
+> 16 0 24 22 topology 177 4207
+> 15 0 23 22 topology 53 4208
+> 16 0 23 22 topology 55 4208
+> 15 0 24 22 topology 144 4209
+> 16 0 24 22 topology 177 4209
+> 15 0 23 22 topology 164 4210
+> 16 0 23 22 topology 165 4210
+> 15 0 24 22 topology 66 4211
+> 16 0 24 22 topology 177 4211
+> 15 0 23 22 topology 110 4212
+> 16 0 23 22 topology 112 4212
+> 15 0 24 22 topology 126 4213
+> 16 0 24 22 topology 177 4213
+> 15 0 23 22 topology 59 4214
+> 16 0 23 22 topology 61 4214
+> 15 0 24 22 topology 37 4215
+> 16 0 24 22 topology 177 4215
+> 15 0 23 22 topology 116 4216
+> 16 0 23 22 topology 118 4216
+> 15 0 24 22 topology 108 4217
 > 16 0 24 22 topology 177 4217
-> 15 0 24 22 topology 177 4218
-> 16 0 24 22 topology 37 4218
-> 15 0 25 22 topology 37 4219
-> 16 0 25 22 topology 35 4219
-> 15 0 23 22 topology 83 4220
-> 16 0 23 22 topology 84 4220
-> 15 0 24 22 topology 84 4221
-> 16 0 24 22 topology 177 4221
-> 15 0 23 22 topology 59 4222
-> 16 0 23 22 topology 60 4222
-> 15 0 24 22 topology 60 4223
-> 16 0 24 22 topology 177 4223
-> 15 0 23 22 topology 143 4224
-> 16 0 23 22 topology 144 4224
-> 15 0 24 22 topology 144 4225
-> 16 0 24 22 topology 177 4225
-> 15 0 23 22 topology 119 4226
-> 16 0 23 22 topology 120 4226
-> 15 0 24 22 topology 120 4227
-> 16 0 24 22 topology 177 4227
-> 15 0 23 22 topology 95 4228
-> 16 0 23 22 topology 96 4228
-> 15 0 24 22 topology 96 4229
+> 15 0 23 22 topology 65 4218
+> 16 0 23 22 topology 67 4218
+> 15 0 23 22 topology 173 4219
+> 16 0 23 22 topology 175 4219
+> 15 0 24 22 topology 168 4220
+> 16 0 24 22 topology 177 4220
+> 15 0 23 22 topology 122 4221
+> 16 0 23 22 topology 124 4221
+> 15 0 23 22 topology 71 4222
+> 16 0 23 22 topology 73 4222
+> 15 0 23 22 topology 44 4223
+> 16 0 23 22 topology 46 4223
+> 15 0 23 22 topology 128 4224
+> 16 0 23 22 topology 130 4224
+> 15 0 23 22 topology 77 4225
+> 16 0 23 22 topology 79 4225
+> 15 0 24 22 topology 55 4226
+> 16 0 24 22 topology 177 4226
+> 15 0 23 22 topology 32 4227
+> 16 0 23 22 topology 33 4227
+> 15 0 23 22 topology 134 4228
+> 16 0 23 22 topology 136 4228
+> 15 0 24 22 topology 39 4229
 > 16 0 24 22 topology 177 4229
-> 15 0 23 22 topology 71 4230
-> 16 0 23 22 topology 72 4230
-> 15 0 24 22 topology 72 4231
-> 16 0 24 22 topology 177 4231
-> 15 0 23 22 topology 155 4232
-> 16 0 23 22 topology 156 4232
-> 15 0 24 22 topology 156 4233
+> 15 0 24 22 topology 91 4230
+> 16 0 24 22 topology 177 4230
+> 15 0 25 22 topology 176 4231
+> 16 0 25 22 topology 177 4231
+> 15 0 24 22 topology 175 4232
+> 16 0 24 22 topology 177 4232
+> 15 0 24 22 topology 127 4233
 > 16 0 24 22 topology 177 4233
-> 15 0 23 22 topology 131 4234
-> 16 0 23 22 topology 132 4234
-> 15 0 24 22 topology 132 4235
+> 15 0 24 22 topology 79 4234
+> 16 0 24 22 topology 177 4234
+> 15 0 24 22 topology 163 4235
 > 16 0 24 22 topology 177 4235
-> 15 0 23 22 topology 107 4236
-> 16 0 23 22 topology 108 4236
-> 15 0 24 22 topology 108 4237
+> 15 0 24 22 topology 51 4236
+> 16 0 24 22 topology 177 4236
+> 15 0 24 22 topology 111 4237
 > 16 0 24 22 topology 177 4237
-> 15 0 23 22 topology 167 4238
-> 16 0 23 22 topology 168 4238
-> 15 0 24 22 topology 168 4239
+> 15 0 24 22 topology 28 4238
+> 16 0 24 22 topology 177 4238
+> 15 0 24 22 topology 171 4239
 > 16 0 24 22 topology 177 4239
-> 15 0 23 22 topology 26 4240
-> 16 0 23 22 topology 27 4240
-> 15 0 24 22 topology 27 4241
-> 16 0 24 22 topology 177 4241
-> 15 0 23 22 topology 38 4242
-> 16 0 23 22 topology 39 4242
-> 15 0 24 22 topology 39 4243
+> 15 0 24 22 topology 93 4240
+> 16 0 24 22 topology 177 4240
+> 15 0 23 22 topology 29 4241
+> 16 0 23 22 topology 31 4241
+> 15 0 24 22 topology 153 4242
+> 16 0 24 22 topology 177 4242
+> 15 0 24 22 topology 75 4243
 > 16 0 24 22 topology 177 4243
-> 15 0 23 22 topology 50 4244
-> 16 0 23 22 topology 51 4244
-> 15 0 24 22 topology 51 4245
+> 15 0 24 22 topology 135 4244
+> 16 0 24 22 topology 177 4244
+> 15 0 24 22 topology 24 4245
 > 16 0 24 22 topology 177 4245
-> 15 0 23 22 topology 110 4246
-> 16 0 23 22 topology 111 4246
-> 15 0 24 22 topology 111 4247
+> 15 0 23 22 topology 83 4246
+> 16 0 23 22 topology 84 4246
+> 15 0 24 22 topology 82 4247
 > 16 0 24 22 topology 177 4247
-> 15 0 23 22 topology 86 4248
-> 16 0 23 22 topology 87 4248
-> 15 0 24 22 topology 87 4249
-> 16 0 24 22 topology 177 4249
-> 15 0 23 22 topology 62 4250
-> 16 0 23 22 topology 63 4250
-> 15 0 24 22 topology 63 4251
+> 15 0 23 22 topology 59 4248
+> 16 0 23 22 topology 60 4248
+> 15 0 23 22 topology 143 4249
+> 16 0 23 22 topology 144 4249
+> 15 0 23 22 topology 35 4250
+> 16 0 23 22 topology 36 4250
+> 15 0 24 22 topology 118 4251
 > 16 0 24 22 topology 177 4251
-> 15 0 23 22 topology 170 4252
-> 16 0 23 22 topology 171 4252
-> 15 0 24 22 topology 171 4253
+> 15 0 23 22 topology 119 4252
+> 16 0 23 22 topology 120 4252
+> 15 0 24 22 topology 48 4253
 > 16 0 24 22 topology 177 4253
-> 15 0 23 22 topology 146 4254
-> 16 0 23 22 topology 147 4254
-> 15 0 24 22 topology 147 4255
+> 15 0 24 22 topology 70 4254
+> 16 0 24 22 topology 177 4254
+> 15 0 24 22 topology 154 4255
 > 16 0 24 22 topology 177 4255
-> 15 0 23 22 topology 122 4256
-> 16 0 23 22 topology 123 4256
-> 15 0 24 22 topology 123 4257
+> 15 0 23 22 topology 95 4256
+> 16 0 23 22 topology 96 4256
+> 15 0 24 22 topology 106 4257
 > 16 0 24 22 topology 177 4257
-> 15 0 23 22 topology 98 4258
-> 16 0 23 22 topology 99 4258
-> 15 0 24 22 topology 99 4259
-> 16 0 24 22 topology 177 4259
-> 15 0 23 22 topology 74 4260
-> 16 0 23 22 topology 75 4260
-> 15 0 24 22 topology 75 4261
-> 16 0 24 22 topology 177 4261
-> 15 0 23 22 topology 158 4262
-> 16 0 23 22 topology 159 4262
-> 15 0 24 22 topology 159 4263
+> 15 0 23 22 topology 71 4258
+> 16 0 23 22 topology 72 4258
+> 15 0 23 22 topology 155 4259
+> 16 0 23 22 topology 156 4259
+> 15 0 23 22 topology 131 4260
+> 16 0 23 22 topology 132 4260
+> 15 0 23 22 topology 107 4261
+> 16 0 23 22 topology 108 4261
+> 15 0 23 22 topology 80 4262
+> 16 0 23 22 topology 82 4262
+> 15 0 24 22 topology 60 4263
 > 16 0 24 22 topology 177 4263
-> 15 0 23 22 topology 134 4264
-> 16 0 23 22 topology 135 4264
-> 15 0 24 22 topology 135 4265
-> 16 0 24 22 topology 177 4265
-> 15 0 23 22 topology 29 4266
-> 16 0 23 22 topology 30 4266
-> 15 0 24 22 topology 30 4267
+> 15 0 24 22 topology 120 4264
+> 16 0 24 22 topology 177 4264
+> 15 0 23 22 topology 167 4265
+> 16 0 23 22 topology 168 4265
+> 15 0 23 22 topology 86 4266
+> 16 0 23 22 topology 88 4266
+> 15 0 24 22 topology 102 4267
 > 16 0 24 22 topology 177 4267
-> 15 0 23 22 topology 41 4268
-> 16 0 23 22 topology 42 4268
-> 15 0 24 22 topology 42 4269
+> 15 0 23 22 topology 143 4268
+> 16 0 23 22 topology 145 4268
+> 15 0 24 22 topology 43 4269
 > 16 0 24 22 topology 177 4269
-> 15 0 23 22 topology 53 4270
-> 16 0 23 22 topology 54 4270
-> 15 0 24 22 topology 54 4271
-> 16 0 24 22 topology 177 4271
-> 15 0 23 22 topology 113 4272
-> 16 0 23 22 topology 114 4272
-> 15 0 24 22 topology 114 4273
-> 16 0 24 22 topology 177 4273
-> 15 0 23 22 topology 89 4274
-> 16 0 23 22 topology 90 4274
-> 15 0 24 22 topology 90 4275
-> 16 0 24 22 topology 177 4275
-> 15 0 23 22 topology 65 4276
-> 16 0 23 22 topology 66 4276
-> 15 0 24 22 topology 66 4277
+> 15 0 24 22 topology 162 4270
+> 16 0 24 22 topology 177 4270
+> 15 0 23 22 topology 92 4271
+> 16 0 23 22 topology 94 4271
+> 15 0 23 22 topology 38 4272
+> 16 0 23 22 topology 40 4272
+> 15 0 23 22 topology 149 4273
+> 16 0 23 22 topology 151 4273
+> 15 0 23 22 topology 98 4274
+> 16 0 23 22 topology 100 4274
+> 15 0 23 22 topology 155 4275
+> 16 0 23 22 topology 157 4275
+> 15 0 23 22 topology 104 4276
+> 16 0 23 22 topology 106 4276
+> 15 0 24 22 topology 33 4277
 > 16 0 24 22 topology 177 4277
-> 15 0 23 22 topology 173 4278
-> 16 0 23 22 topology 174 4278
-> 15 0 24 22 topology 174 4279
+> 15 0 23 22 topology 161 4278
+> 16 0 23 22 topology 163 4278
+> 15 0 24 22 topology 61 4279
 > 16 0 24 22 topology 177 4279
-> 15 0 23 22 topology 149 4280
-> 16 0 23 22 topology 150 4280
-> 15 0 24 22 topology 150 4281
-> 16 0 24 22 topology 177 4281
-> 15 0 23 22 topology 125 4282
-> 16 0 23 22 topology 126 4282
-> 15 0 24 22 topology 126 4283
-> 16 0 24 22 topology 177 4283
-> 15 0 23 22 topology 101 4284
-> 16 0 23 22 topology 102 4284
-> 15 0 24 22 topology 102 4285
+> 15 0 24 22 topology 145 4280
+> 16 0 24 22 topology 177 4280
+> 15 0 23 22 topology 38 4281
+> 16 0 23 22 topology 39 4281
+> 15 0 24 22 topology 97 4282
+> 16 0 24 22 topology 177 4282
+> 15 0 23 22 topology 167 4283
+> 16 0 23 22 topology 169 4283
+> 15 0 24 22 topology 133 4284
+> 16 0 24 22 topology 177 4284
+> 15 0 24 22 topology 169 4285
 > 16 0 24 22 topology 177 4285
-> 15 0 23 22 topology 77 4286
-> 16 0 23 22 topology 78 4286
-> 15 0 24 22 topology 78 4287
+> 15 0 23 22 topology 23 4286
+> 16 0 23 22 topology 25 4286
+> 15 0 24 22 topology 87 4287
 > 16 0 24 22 topology 177 4287
-> 15 0 23 22 topology 161 4288
-> 16 0 23 22 topology 162 4288
-> 15 0 24 22 topology 162 4289
+> 15 0 24 22 topology 147 4288
+> 16 0 24 22 topology 177 4288
+> 15 0 24 22 topology 69 4289
 > 16 0 24 22 topology 177 4289
-> 15 0 23 22 topology 137 4290
-> 16 0 23 22 topology 138 4290
-> 15 0 24 22 topology 138 4291
+> 15 0 24 22 topology 34 4290
+> 16 0 24 22 topology 177 4290
+> 15 0 24 22 topology 129 4291
 > 16 0 24 22 topology 177 4291
-> 15 0 23 22 topology 32 4292
-> 16 0 23 22 topology 33 4292
-> 15 0 24 22 topology 33 4293
-> 16 0 24 22 topology 177 4293
-> 15 0 23 22 topology 44 4294
-> 16 0 23 22 topology 45 4294
-> 15 0 24 22 topology 45 4295
+> 15 0 23 22 topology 50 4292
+> 16 0 23 22 topology 51 4292
+> 15 0 23 22 topology 47 4293
+> 16 0 23 22 topology 49 4293
+> 15 0 23 22 topology 110 4294
+> 16 0 23 22 topology 111 4294
+> 15 0 24 22 topology 52 4295
 > 16 0 24 22 topology 177 4295
-> 15 0 23 22 topology 80 4296
-> 16 0 23 22 topology 81 4296
-> 15 0 24 22 topology 81 4297
+> 15 0 23 22 topology 86 4296
+> 16 0 23 22 topology 87 4296
+> 15 0 24 22 topology 88 4297
 > 16 0 24 22 topology 177 4297
-> 15 0 23 22 topology 56 4298
-> 16 0 23 22 topology 57 4298
-> 15 0 24 22 topology 57 4299
+> 15 0 23 22 topology 62 4298
+> 16 0 23 22 topology 63 4298
+> 15 0 24 22 topology 42 4299
 > 16 0 24 22 topology 177 4299
-> 15 0 23 22 topology 140 4300
-> 16 0 23 22 topology 141 4300
-> 15 0 24 22 topology 141 4301
+> 15 0 23 22 topology 170 4300
+> 16 0 23 22 topology 171 4300
+> 15 0 24 22 topology 172 4301
 > 16 0 24 22 topology 177 4301
-> 15 0 23 22 topology 116 4302
-> 16 0 23 22 topology 117 4302
-> 15 0 24 22 topology 117 4303
+> 15 0 23 22 topology 146 4302
+> 16 0 23 22 topology 147 4302
+> 15 0 24 22 topology 124 4303
 > 16 0 24 22 topology 177 4303
-> 15 0 23 22 topology 92 4304
-> 16 0 23 22 topology 93 4304
-> 15 0 24 22 topology 93 4305
-> 16 0 24 22 topology 177 4305
-> 15 0 23 22 topology 68 4306
-> 16 0 23 22 topology 69 4306
-> 15 0 24 22 topology 69 4307
+> 15 0 23 22 topology 122 4304
+> 16 0 23 22 topology 123 4304
+> 15 0 23 22 topology 41 4305
+> 16 0 23 22 topology 42 4305
+> 15 0 24 22 topology 76 4306
+> 16 0 24 22 topology 177 4306
+> 15 0 24 22 topology 160 4307
 > 16 0 24 22 topology 177 4307
-> 15 0 23 22 topology 152 4308
-> 16 0 23 22 topology 153 4308
-> 15 0 24 22 topology 153 4309
-> 16 0 24 22 topology 177 4309
-> 15 0 23 22 topology 128 4310
-> 16 0 23 22 topology 129 4310
-> 15 0 24 22 topology 129 4311
+> 15 0 23 22 topology 98 4308
+> 16 0 23 22 topology 99 4308
+> 15 0 23 22 topology 74 4309
+> 16 0 23 22 topology 75 4309
+> 15 0 23 22 topology 158 4310
+> 16 0 23 22 topology 159 4310
+> 15 0 24 22 topology 54 4311
 > 16 0 24 22 topology 177 4311
-> 15 0 23 22 topology 104 4312
-> 16 0 23 22 topology 105 4312
-> 15 0 24 22 topology 105 4313
-> 16 0 24 22 topology 177 4313
-> 15 0 23 22 topology 164 4314
-> 16 0 23 22 topology 165 4314
-> 15 0 24 22 topology 165 4315
+> 15 0 23 22 topology 50 4312
+> 16 0 23 22 topology 52 4312
+> 15 0 23 22 topology 134 4313
+> 16 0 23 22 topology 135 4313
+> 15 0 24 22 topology 114 4314
+> 16 0 24 22 topology 177 4314
+> 15 0 24 22 topology 25 4315
 > 16 0 24 22 topology 177 4315
-> 15 0 23 22 topology 23 4316
-> 16 0 23 22 topology 24 4316
-> 15 0 24 22 topology 24 4317
+> 15 0 23 22 topology 56 4316
+> 16 0 23 22 topology 58 4316
+> 15 0 24 22 topology 174 4317
 > 16 0 24 22 topology 177 4317
-> 15 0 23 179 topology 441 4318
-> 16 0 23 179 topology 442 4318
-> 15 0 24 179 topology 442 4319
+> 15 0 23 179 topology 285 4318
+> 16 0 23 179 topology 286 4318
+> 15 0 24 179 topology 383 4319
 > 16 0 24 179 topology 460 4319
-> 15 0 24 179 topology 460 4320
-> 16 0 24 179 topology 182 4320
-> 15 0 25 179 topology 182 4321
-> 16 0 25 179 topology 180 4321
-> 15 0 24 179 topology 460 4322
-> 16 0 24 179 topology 206 4322
-> 15 0 25 179 topology 206 4323
-> 16 0 25 179 topology 204 4323
-> 15 0 24 179 topology 460 4324
-> 16 0 24 179 topology 242 4324
-> 15 0 25 179 topology 242 4325
-> 16 0 25 179 topology 240 4325
-> 15 0 24 179 topology 460 4326
-> 16 0 24 179 topology 278 4326
-> 15 0 25 179 topology 278 4327
-> 16 0 25 179 topology 276 4327
-> 15 0 24 179 topology 460 4328
-> 16 0 24 179 topology 362 4328
-> 15 0 25 179 topology 362 4329
-> 16 0 25 179 topology 360 4329
-> 15 0 24 179 topology 460 4330
-> 16 0 24 179 topology 230 4330
-> 15 0 25 179 topology 230 4331
-> 16 0 25 179 topology 228 4331
-> 15 0 24 179 topology 460 4332
-> 16 0 24 179 topology 314 4332
-> 15 0 25 179 topology 314 4333
-> 16 0 25 179 topology 312 4333
-> 15 0 24 179 topology 460 4334
-> 16 0 24 179 topology 398 4334
-> 15 0 25 179 topology 398 4335
-> 16 0 25 179 topology 396 4335
-> 15 0 24 179 topology 460 4336
-> 16 0 24 179 topology 266 4336
-> 15 0 25 179 topology 266 4337
-> 16 0 25 179 topology 264 4337
-> 15 0 24 179 topology 460 4338
-> 16 0 24 179 topology 350 4338
-> 15 0 25 179 topology 350 4339
-> 16 0 25 179 topology 348 4339
-> 15 0 24 179 topology 460 4340
-> 16 0 24 179 topology 434 4340
-> 15 0 25 179 topology 434 4341
-> 16 0 25 179 topology 432 4341
-> 15 0 24 179 topology 460 4342
-> 16 0 24 179 topology 386 4342
-> 15 0 25 179 topology 386 4343
-> 16 0 25 179 topology 384 4343
-> 15 0 24 179 topology 460 4344
-> 16 0 24 179 topology 197 4344
-> 15 0 25 179 topology 197 4345
-> 16 0 25 179 topology 195 4345
-> 15 0 24 179 topology 460 4346
-> 16 0 24 179 topology 269 4346
-> 15 0 25 179 topology 269 4347
-> 16 0 25 179 topology 267 4347
-> 15 0 24 179 topology 460 4348
-> 16 0 24 179 topology 221 4348
-> 15 0 25 179 topology 221 4349
-> 16 0 25 179 topology 219 4349
-> 15 0 24 179 topology 460 4350
-> 16 0 24 179 topology 305 4350
-> 15 0 25 179 topology 305 4351
-> 16 0 25 179 topology 303 4351
-> 15 0 24 179 topology 460 4352
-> 16 0 24 179 topology 389 4352
-> 15 0 25 179 topology 389 4353
-> 16 0 25 179 topology 387 4353
-> 15 0 24 179 topology 460 4354
-> 16 0 24 179 topology 257 4354
-> 15 0 25 179 topology 257 4355
-> 16 0 25 179 topology 255 4355
-> 15 0 24 179 topology 460 4356
-> 16 0 24 179 topology 341 4356
-> 15 0 25 179 topology 341 4357
-> 16 0 25 179 topology 339 4357
-> 15 0 24 179 topology 460 4358
-> 16 0 24 179 topology 425 4358
-> 15 0 25 179 topology 425 4359
-> 16 0 25 179 topology 423 4359
-> 15 0 24 179 topology 460 4360
-> 16 0 24 179 topology 293 4360
-> 15 0 25 179 topology 293 4361
-> 16 0 25 179 topology 291 4361
-> 15 0 24 179 topology 460 4362
-> 16 0 24 179 topology 377 4362
-> 15 0 25 179 topology 377 4363
-> 16 0 25 179 topology 375 4363
-> 15 0 24 179 topology 460 4364
-> 16 0 24 179 topology 413 4364
-> 15 0 25 179 topology 413 4365
-> 16 0 25 179 topology 411 4365
-> 15 0 24 179 topology 460 4366
-> 16 0 24 179 topology 188 4366
-> 15 0 25 179 topology 188 4367
-> 16 0 25 179 topology 186 4367
-> 15 0 24 179 topology 460 4368
-> 16 0 24 179 topology 212 4368
-> 15 0 25 179 topology 212 4369
-> 16 0 25 179 topology 210 4369
-> 15 0 24 179 topology 460 4370
-> 16 0 24 179 topology 248 4370
-> 15 0 25 179 topology 248 4371
-> 16 0 25 179 topology 246 4371
-> 15 0 24 179 topology 460 4372
-> 16 0 24 179 topology 332 4372
-> 15 0 25 179 topology 332 4373
-> 16 0 25 179 topology 330 4373
-> 15 0 24 179 topology 460 4374
-> 16 0 24 179 topology 284 4374
-> 15 0 25 179 topology 284 4375
-> 16 0 25 179 topology 282 4375
-> 15 0 24 179 topology 460 4376
-> 16 0 24 179 topology 368 4376
-> 15 0 25 179 topology 368 4377
-> 16 0 25 179 topology 366 4377
-> 15 0 24 179 topology 460 4378
-> 16 0 24 179 topology 236 4378
-> 15 0 25 179 topology 236 4379
-> 16 0 25 179 topology 234 4379
-> 15 0 24 179 topology 460 4380
-> 16 0 24 179 topology 452 4380
-> 15 0 25 179 topology 452 4381
-> 16 0 25 179 topology 450 4381
-> 15 0 24 179 topology 460 4382
-> 16 0 24 179 topology 320 4382
-> 15 0 25 179 topology 320 4383
-> 16 0 25 179 topology 318 4383
-> 15 0 24 179 topology 460 4384
-> 16 0 24 179 topology 404 4384
-> 15 0 25 179 topology 404 4385
-> 16 0 25 179 topology 402 4385
-> 15 0 24 179 topology 460 4386
-> 16 0 24 179 topology 356 4386
-> 15 0 25 179 topology 356 4387
-> 16 0 25 179 topology 354 4387
-> 15 0 24 179 topology 460 4388
-> 16 0 24 179 topology 440 4388
-> 15 0 25 179 topology 440 4389
-> 16 0 25 179 topology 438 4389
-> 15 0 24 179 topology 460 4390
-> 16 0 24 179 topology 203 4390
-> 15 0 25 179 topology 203 4391
-> 16 0 25 179 topology 201 4391
-> 15 0 24 179 topology 460 4392
-> 16 0 24 179 topology 239 4392
-> 15 0 25 179 topology 239 4393
-> 16 0 25 179 topology 237 4393
-> 15 0 24 179 topology 460 4394
-> 16 0 24 179 topology 275 4394
-> 15 0 25 179 topology 275 4395
-> 16 0 25 179 topology 273 4395
-> 15 0 24 179 topology 460 4396
-> 16 0 24 179 topology 359 4396
-> 15 0 25 179 topology 359 4397
-> 16 0 25 179 topology 357 4397
-> 15 0 24 179 topology 460 4398
-> 16 0 24 179 topology 227 4398
-> 15 0 25 179 topology 227 4399
-> 16 0 25 179 topology 225 4399
-> 15 0 24 179 topology 460 4400
-> 16 0 24 179 topology 311 4400
-> 15 0 25 179 topology 311 4401
-> 16 0 25 179 topology 309 4401
-> 15 0 24 179 topology 460 4402
-> 16 0 24 179 topology 395 4402
-> 15 0 25 179 topology 395 4403
-> 16 0 25 179 topology 393 4403
-> 15 0 24 179 topology 460 4404
-> 16 0 24 179 topology 263 4404
-> 15 0 25 179 topology 263 4405
-> 16 0 25 179 topology 261 4405
-> 15 0 24 179 topology 460 4406
-> 16 0 24 179 topology 347 4406
-> 15 0 25 179 topology 347 4407
-> 16 0 25 179 topology 345 4407
-> 15 0 24 179 topology 460 4408
-> 16 0 24 179 topology 431 4408
-> 15 0 25 179 topology 431 4409
-> 16 0 25 179 topology 429 4409
-> 15 0 24 179 topology 460 4410
-> 16 0 24 179 topology 383 4410
-> 15 0 25 179 topology 383 4411
-> 16 0 25 179 topology 381 4411
-> 15 0 24 179 topology 460 4412
-> 16 0 24 179 topology 194 4412
-> 15 0 25 179 topology 194 4413
-> 16 0 25 179 topology 192 4413
-> 15 0 24 179 topology 460 4414
-> 16 0 24 179 topology 218 4414
-> 15 0 25 179 topology 218 4415
-> 16 0 25 179 topology 216 4415
-> 15 0 24 179 topology 460 4416
-> 16 0 24 179 topology 302 4416
-> 15 0 25 179 topology 302 4417
-> 16 0 25 179 topology 300 4417
-> 15 0 24 179 topology 460 4418
-> 16 0 24 179 topology 254 4418
-> 15 0 25 179 topology 254 4419
-> 16 0 25 179 topology 252 4419
-> 15 0 24 179 topology 460 4420
-> 16 0 24 179 topology 338 4420
-> 15 0 25 179 topology 338 4421
-> 16 0 25 179 topology 336 4421
-> 15 0 24 179 topology 460 4422
-> 16 0 24 179 topology 422 4422
-> 15 0 25 179 topology 422 4423
-> 16 0 25 179 topology 420 4423
-> 15 0 24 179 topology 460 4424
-> 16 0 24 179 topology 290 4424
-> 15 0 25 179 topology 290 4425
-> 16 0 25 179 topology 288 4425
-> 15 0 24 179 topology 460 4426
-> 16 0 24 179 topology 374 4426
-> 15 0 25 179 topology 374 4427
-> 16 0 25 179 topology 372 4427
-> 15 0 24 179 topology 460 4428
-> 16 0 24 179 topology 458 4428
-> 15 0 25 179 topology 458 4429
-> 16 0 25 179 topology 456 4429
-> 15 0 24 179 topology 460 4430
-> 16 0 24 179 topology 326 4430
-> 15 0 25 179 topology 326 4431
-> 16 0 25 179 topology 324 4431
-> 15 0 24 179 topology 460 4432
-> 16 0 24 179 topology 410 4432
-> 15 0 25 179 topology 410 4433
-> 16 0 25 179 topology 408 4433
-> 15 0 24 179 topology 460 4434
-> 16 0 24 179 topology 446 4434
-> 15 0 25 179 topology 446 4435
-> 16 0 25 179 topology 444 4435
-> 15 0 24 179 topology 460 4436
-> 16 0 24 179 topology 185 4436
-> 15 0 25 179 topology 185 4437
-> 16 0 25 179 topology 183 4437
-> 15 0 24 179 topology 460 4438
-> 16 0 24 179 topology 209 4438
-> 15 0 25 179 topology 209 4439
-> 16 0 25 179 topology 207 4439
-> 15 0 24 179 topology 460 4440
-> 16 0 24 179 topology 245 4440
-> 15 0 25 179 topology 245 4441
-> 16 0 25 179 topology 243 4441
-> 15 0 24 179 topology 460 4442
-> 16 0 24 179 topology 329 4442
-> 15 0 25 179 topology 329 4443
-> 16 0 25 179 topology 327 4443
-> 15 0 24 179 topology 460 4444
-> 16 0 24 179 topology 281 4444
-> 15 0 25 179 topology 281 4445
-> 16 0 25 179 topology 279 4445
-> 15 0 24 179 topology 460 4446
-> 16 0 24 179 topology 365 4446
-> 15 0 25 179 topology 365 4447
-> 16 0 25 179 topology 363 4447
-> 15 0 24 179 topology 460 4448
-> 16 0 24 179 topology 233 4448
-> 15 0 25 179 topology 233 4449
-> 16 0 25 179 topology 231 4449
-> 15 0 24 179 topology 460 4450
-> 16 0 24 179 topology 449 4450
-> 15 0 25 179 topology 449 4451
-> 16 0 25 179 topology 447 4451
-> 15 0 24 179 topology 460 4452
-> 16 0 24 179 topology 317 4452
-> 15 0 25 179 topology 317 4453
-> 16 0 25 179 topology 315 4453
-> 15 0 24 179 topology 460 4454
-> 16 0 24 179 topology 401 4454
-> 15 0 25 179 topology 401 4455
-> 16 0 25 179 topology 399 4455
-> 15 0 24 179 topology 460 4456
-> 16 0 24 179 topology 353 4456
-> 15 0 25 179 topology 353 4457
-> 16 0 25 179 topology 351 4457
-> 15 0 24 179 topology 460 4458
-> 16 0 24 179 topology 437 4458
-> 15 0 25 179 topology 437 4459
-> 16 0 25 179 topology 435 4459
-> 15 0 24 179 topology 460 4460
-> 16 0 24 179 topology 200 4460
-> 15 0 25 179 topology 200 4461
-> 16 0 25 179 topology 198 4461
-> 15 0 24 179 topology 460 4462
-> 16 0 24 179 topology 272 4462
-> 15 0 25 179 topology 272 4463
-> 16 0 25 179 topology 270 4463
-> 15 0 24 179 topology 460 4464
-> 16 0 24 179 topology 224 4464
-> 15 0 25 179 topology 224 4465
-> 16 0 25 179 topology 222 4465
-> 15 0 24 179 topology 460 4466
-> 16 0 24 179 topology 308 4466
-> 15 0 25 179 topology 308 4467
-> 16 0 25 179 topology 306 4467
-> 15 0 24 179 topology 460 4468
-> 16 0 24 179 topology 392 4468
-> 15 0 25 179 topology 392 4469
-> 16 0 25 179 topology 390 4469
-> 15 0 24 179 topology 460 4470
-> 16 0 24 179 topology 260 4470
-> 15 0 25 179 topology 260 4471
-> 16 0 25 179 topology 258 4471
-> 15 0 24 179 topology 460 4472
-> 16 0 24 179 topology 344 4472
-> 15 0 25 179 topology 344 4473
-> 16 0 25 179 topology 342 4473
-> 15 0 24 179 topology 460 4474
-> 16 0 24 179 topology 428 4474
-> 15 0 25 179 topology 428 4475
-> 16 0 25 179 topology 426 4475
-> 15 0 24 179 topology 460 4476
-> 16 0 24 179 topology 296 4476
-> 15 0 25 179 topology 296 4477
-> 16 0 25 179 topology 294 4477
-> 15 0 26 179 topology 460 4478
-> 16 0 26 179 topology 459 4478
-> 15 0 24 179 topology 460 4479
-> 16 0 24 179 topology 380 4479
-> 15 0 25 179 topology 380 4480
-> 16 0 25 179 topology 378 4480
-> 15 0 24 179 topology 460 4481
-> 16 0 24 179 topology 416 4481
-> 15 0 25 179 topology 416 4482
-> 16 0 25 179 topology 414 4482
-> 15 0 24 179 topology 460 4483
-> 16 0 24 179 topology 191 4483
-> 15 0 25 179 topology 191 4484
-> 16 0 25 179 topology 189 4484
-> 15 0 24 179 topology 460 4485
-> 16 0 24 179 topology 215 4485
-> 15 0 25 179 topology 215 4486
-> 16 0 25 179 topology 213 4486
-> 15 0 24 179 topology 460 4487
-> 16 0 24 179 topology 299 4487
-> 15 0 25 179 topology 299 4488
-> 16 0 25 179 topology 297 4488
-> 15 0 24 179 topology 460 4489
-> 16 0 24 179 topology 251 4489
-> 15 0 25 179 topology 251 4490
-> 16 0 25 179 topology 249 4490
-> 15 0 24 179 topology 460 4491
-> 16 0 24 179 topology 335 4491
-> 15 0 25 179 topology 335 4492
-> 16 0 25 179 topology 333 4492
-> 15 0 24 179 topology 460 4493
-> 16 0 24 179 topology 419 4493
-> 15 0 25 179 topology 419 4494
-> 16 0 25 179 topology 417 4494
-> 15 0 24 179 topology 460 4495
-> 16 0 24 179 topology 287 4495
-> 15 0 25 179 topology 287 4496
-> 16 0 25 179 topology 285 4496
-> 15 0 24 179 topology 460 4497
-> 16 0 24 179 topology 371 4497
-> 15 0 25 179 topology 371 4498
-> 16 0 25 179 topology 369 4498
-> 15 0 24 179 topology 460 4499
-> 16 0 24 179 topology 455 4499
-> 15 0 25 179 topology 455 4500
-> 16 0 25 179 topology 453 4500
-> 15 0 24 179 topology 460 4501
-> 16 0 24 179 topology 323 4501
-> 15 0 25 179 topology 323 4502
-> 16 0 25 179 topology 321 4502
-> 15 0 24 179 topology 460 4503
-> 16 0 24 179 topology 407 4503
-> 15 0 25 179 topology 407 4504
-> 16 0 25 179 topology 405 4504
-> 15 0 23 179 topology 180 4505
-> 16 0 23 179 topology 181 4505
-> 15 0 24 179 topology 181 4506
+> 15 0 23 179 topology 444 4320
+> 16 0 23 179 topology 446 4320
+> 15 0 23 179 topology 264 4321
+> 16 0 23 179 topology 265 4321
+> 15 0 24 179 topology 277 4322
+> 16 0 24 179 topology 460 4322
+> 15 0 24 179 topology 397 4323
+> 16 0 24 179 topology 460 4323
+> 15 0 24 179 topology 319 4324
+> 16 0 24 179 topology 460 4324
+> 15 0 23 179 topology 438 4325
+> 16 0 23 179 topology 439 4325
+> 15 0 23 179 topology 330 4326
+> 16 0 23 179 topology 332 4326
+> 15 0 23 179 topology 198 4327
+> 16 0 23 179 topology 200 4327
+> 15 0 24 179 topology 439 4328
+> 16 0 24 179 topology 460 4328
+> 15 0 23 179 topology 255 4329
+> 16 0 23 179 topology 257 4329
+> 15 0 23 179 topology 396 4330
+> 16 0 23 179 topology 398 4330
+> 15 0 23 179 topology 243 4331
+> 16 0 23 179 topology 244 4331
+> 15 0 24 179 topology 302 4332
+> 16 0 24 179 topology 460 4332
+> 15 0 23 179 topology 321 4333
+> 16 0 23 179 topology 323 4333
+> 15 0 23 179 topology 222 4334
+> 16 0 23 179 topology 223 4334
+> 15 0 24 179 topology 338 4335
+> 16 0 24 179 topology 460 4335
+> 15 0 23 179 topology 417 4336
+> 16 0 23 179 topology 418 4336
+> 15 0 24 179 topology 374 4337
+> 16 0 24 179 topology 460 4337
+> 15 0 23 179 topology 396 4338
+> 16 0 23 179 topology 397 4338
+> 15 0 24 179 topology 410 4339
+> 16 0 24 179 topology 460 4339
+> 15 0 23 179 topology 207 4340
+> 16 0 23 179 topology 209 4340
+> 15 0 24 179 topology 446 4341
+> 16 0 24 179 topology 460 4341
+> 15 0 23 179 topology 375 4342
+> 16 0 23 179 topology 376 4342
+> 15 0 24 179 topology 304 4343
+> 16 0 24 179 topology 460 4343
+> 15 0 24 179 topology 226 4344
+> 16 0 24 179 topology 460 4344
+> 15 0 23 179 topology 354 4345
+> 16 0 23 179 topology 355 4345
+> 15 0 23 179 topology 273 4346
+> 16 0 23 179 topology 275 4346
+> 15 0 24 179 topology 424 4347
+> 16 0 24 179 topology 460 4347
+> 15 0 24 179 topology 346 4348
+> 16 0 24 179 topology 460 4348
+> 15 0 23 179 topology 183 4349
+> 16 0 23 179 topology 184 4349
+> 15 0 23 179 topology 339 4350
+> 16 0 23 179 topology 341 4350
+> 15 0 23 179 topology 189 4351
+> 16 0 23 179 topology 190 4351
+> 15 0 23 179 topology 264 4352
+> 16 0 23 179 topology 266 4352
+> 15 0 24 179 topology 199 4353
+> 16 0 24 179 topology 460 4353
+> 15 0 24 179 topology 329 4354
+> 16 0 24 179 topology 460 4354
+> 15 0 23 179 topology 195 4355
+> 16 0 23 179 topology 196 4355
+> 15 0 23 179 topology 405 4356
+> 16 0 23 179 topology 407 4356
+> 15 0 23 179 topology 333 4357
+> 16 0 23 179 topology 334 4357
+> 15 0 24 179 topology 365 4358
+> 16 0 24 179 topology 460 4358
+> 15 0 24 179 topology 233 4359
+> 16 0 24 179 topology 460 4359
+> 15 0 23 179 topology 201 4360
+> 16 0 23 179 topology 202 4360
+> 15 0 24 179 topology 401 4361
+> 16 0 24 179 topology 460 4361
+> 15 0 23 179 topology 312 4362
+> 16 0 23 179 topology 313 4362
+> 15 0 24 179 topology 437 4363
+> 16 0 24 179 topology 460 4363
+> 15 0 24 179 topology 211 4364
+> 16 0 24 179 topology 460 4364
+> 15 0 23 179 topology 291 4365
+> 16 0 23 179 topology 292 4365
+> 15 0 24 179 topology 331 4366
+> 16 0 24 179 topology 460 4366
+> 15 0 24 179 topology 253 4367
+> 16 0 24 179 topology 460 4367
+> 15 0 23 179 topology 189 4368
+> 16 0 23 179 topology 191 4368
+> 15 0 23 179 topology 216 4369
+> 16 0 23 179 topology 218 4369
+> 15 0 24 179 topology 451 4370
+> 16 0 24 179 topology 460 4370
+> 15 0 24 179 topology 373 4371
+> 16 0 24 179 topology 460 4371
+> 15 0 24 179 topology 206 4372
+> 16 0 24 179 topology 460 4372
+> 15 0 24 179 topology 295 4373
+> 16 0 24 179 topology 460 4373
+> 15 0 23 179 topology 357 4374
+> 16 0 23 179 topology 359 4374
+> 15 0 23 179 topology 444 4375
+> 16 0 23 179 topology 445 4375
+> 15 0 23 179 topology 282 4376
+> 16 0 23 179 topology 284 4376
+> 15 0 24 179 topology 415 4377
+> 16 0 24 179 topology 460 4377
+> 15 0 24 179 topology 184 4378
+> 16 0 24 179 topology 460 4378
+> 15 0 23 179 topology 423 4379
+> 16 0 23 179 topology 425 4379
+> 15 0 23 179 topology 270 4380
+> 16 0 23 179 topology 271 4380
+> 15 0 23 179 topology 348 4381
+> 16 0 23 179 topology 350 4381
+> 15 0 24 179 topology 224 4382
+> 16 0 24 179 topology 460 4382
+> 15 0 23 179 topology 249 4383
+> 16 0 23 179 topology 250 4383
+> 15 0 24 179 topology 392 4384
+> 16 0 24 179 topology 460 4384
+> 15 0 24 179 topology 260 4385
+> 16 0 24 179 topology 460 4385
+> 15 0 23 179 topology 228 4386
+> 16 0 23 179 topology 229 4386
+> 15 0 24 179 topology 428 4387
+> 16 0 24 179 topology 460 4387
+> 15 0 24 179 topology 296 4388
+> 16 0 24 179 topology 460 4388
+> 15 0 23 179 topology 414 4389
+> 16 0 23 179 topology 416 4389
+> 15 0 23 179 topology 423 4390
+> 16 0 23 179 topology 424 4390
+> 15 0 24 179 topology 238 4391
+> 16 0 24 179 topology 460 4391
+> 15 0 23 179 topology 402 4392
+> 16 0 23 179 topology 403 4392
+> 15 0 24 179 topology 358 4393
+> 16 0 24 179 topology 460 4393
+> 15 0 24 179 topology 280 4394
+> 16 0 24 179 topology 460 4394
+> 15 0 24 179 topology 197 4395
+> 16 0 24 179 topology 460 4395
+> 15 0 23 179 topology 381 4396
+> 16 0 23 179 topology 382 4396
+> 15 0 23 179 topology 300 4397
+> 16 0 23 179 topology 302 4397
+> 15 0 24 179 topology 400 4398
+> 16 0 24 179 topology 460 4398
+> 15 0 24 179 topology 322 4399
+> 16 0 24 179 topology 460 4399
+> 15 0 23 179 topology 225 4400
+> 16 0 23 179 topology 227 4400
+> 15 0 23 179 topology 207 4401
+> 16 0 23 179 topology 208 4401
+> 15 0 24 179 topology 442 4402
+> 16 0 24 179 topology 460 4402
+> 15 0 23 179 topology 366 4403
+> 16 0 23 179 topology 368 4403
+> 15 0 24 179 topology 215 4404
+> 16 0 24 179 topology 460 4404
+> 15 0 23 179 topology 291 4405
+> 16 0 23 179 topology 293 4405
+> 15 0 24 179 topology 251 4406
+> 16 0 24 179 topology 460 4406
+> 15 0 23 179 topology 432 4407
+> 16 0 23 179 topology 434 4407
+> 15 0 23 179 topology 360 4408
+> 16 0 23 179 topology 361 4408
+> 15 0 24 179 topology 419 4409
+> 16 0 24 179 topology 460 4409
+> 15 0 24 179 topology 287 4410
+> 16 0 24 179 topology 460 4410
+> 15 0 24 179 topology 455 4411
+> 16 0 24 179 topology 460 4411
+> 15 0 24 179 topology 323 4412
+> 16 0 24 179 topology 460 4412
+> 15 0 23 179 topology 339 4413
+> 16 0 23 179 topology 340 4413
+> 15 0 23 179 topology 180 4414
+> 16 0 23 179 topology 182 4414
+> 15 0 23 179 topology 318 4415
+> 16 0 23 179 topology 319 4415
+> 15 0 24 179 topology 188 4416
+> 16 0 24 179 topology 460 4416
+> 15 0 24 179 topology 307 4417
+> 16 0 24 179 topology 460 4417
+> 15 0 23 179 topology 243 4418
+> 16 0 23 179 topology 245 4418
+> 15 0 24 179 topology 229 4419
+> 16 0 24 179 topology 460 4419
+> 15 0 24 179 topology 427 4420
+> 16 0 24 179 topology 460 4420
+> 15 0 24 179 topology 349 4421
+> 16 0 24 179 topology 460 4421
+> 15 0 23 179 topology 309 4422
+> 16 0 23 179 topology 311 4422
+> 15 0 23 179 topology 204 4423
+> 16 0 23 179 topology 206 4423
+> 15 0 23 179 topology 234 4424
+> 16 0 23 179 topology 236 4424
+> 15 0 23 179 topology 450 4425
+> 16 0 23 179 topology 452 4425
+> 15 0 23 179 topology 297 4426
+> 16 0 23 179 topology 298 4426
+> 15 0 24 179 topology 242 4427
+> 16 0 24 179 topology 460 4427
+> 15 0 24 179 topology 202 4428
+> 16 0 24 179 topology 460 4428
+> 15 0 23 179 topology 375 4429
+> 16 0 23 179 topology 377 4429
+> 15 0 24 179 topology 278 4430
+> 16 0 24 179 topology 460 4430
+> 15 0 23 179 topology 276 4431
+> 16 0 23 179 topology 277 4431
+> 15 0 24 179 topology 314 4432
+> 16 0 24 179 topology 460 4432
+> 15 0 23 179 topology 255 4433
+> 16 0 23 179 topology 256 4433
+> 15 0 25 179 topology 459 4434
+> 16 0 25 179 topology 460 4434
+> 15 0 24 179 topology 350 4435
+> 16 0 24 179 topology 460 4435
+> 15 0 23 179 topology 441 4436
+> 16 0 23 179 topology 443 4436
+> 15 0 23 179 topology 234 4437
+> 16 0 23 179 topology 235 4437
+> 15 0 23 179 topology 450 4438
+> 16 0 23 179 topology 451 4438
+> 15 0 24 179 topology 386 4439
+> 16 0 24 179 topology 460 4439
+> 15 0 24 179 topology 214 4440
+> 16 0 24 179 topology 460 4440
+> 15 0 23 179 topology 429 4441
+> 16 0 23 179 topology 430 4441
+> 15 0 24 179 topology 334 4442
+> 16 0 24 179 topology 460 4442
+> 15 0 24 179 topology 256 4443
+> 16 0 24 179 topology 460 4443
+> 15 0 23 179 topology 408 4444
+> 16 0 23 179 topology 409 4444
+> 15 0 23 179 topology 327 4445
+> 16 0 23 179 topology 329 4445
+> 15 0 24 179 topology 454 4446
+> 16 0 24 179 topology 460 4446
+> 15 0 24 179 topology 376 4447
+> 16 0 24 179 topology 460 4447
+> 15 0 23 179 topology 252 4448
+> 16 0 23 179 topology 254 4448
+> 15 0 23 179 topology 393 4449
+> 16 0 23 179 topology 395 4449
+> 15 0 23 179 topology 213 4450
+> 16 0 23 179 topology 214 4450
+> 15 0 24 179 topology 187 4451
+> 16 0 24 179 topology 460 4451
+> 15 0 24 179 topology 269 4452
+> 16 0 24 179 topology 460 4452
+> 15 0 23 179 topology 318 4453
+> 16 0 23 179 topology 320 4453
+> 15 0 24 179 topology 305 4454
+> 16 0 24 179 topology 460 4454
+> 15 0 23 179 topology 387 4455
+> 16 0 23 179 topology 388 4455
+> 15 0 24 179 topology 341 4456
+> 16 0 24 179 topology 460 4456
+> 15 0 23 179 topology 384 4457
+> 16 0 23 179 topology 386 4457
+> 15 0 23 179 topology 366 4458
+> 16 0 23 179 topology 367 4458
+> 15 0 24 179 topology 377 4459
+> 16 0 24 179 topology 460 4459
+> 15 0 24 179 topology 413 4460
+> 16 0 24 179 topology 460 4460
+> 15 0 24 179 topology 241 4461
+> 16 0 24 179 topology 460 4461
+> 15 0 23 179 topology 345 4462
+> 16 0 23 179 topology 346 4462
+> 15 0 23 179 topology 324 4463
+> 16 0 23 179 topology 325 4463
+> 15 0 24 179 topology 361 4464
+> 16 0 24 179 topology 460 4464
+> 15 0 24 179 topology 283 4465
+> 16 0 24 179 topology 460 4465
+> 15 0 23 179 topology 270 4466
+> 16 0 23 179 topology 272 4466
+> 15 0 23 179 topology 195 4467
+> 16 0 23 179 topology 197 4467
+> 15 0 24 179 topology 403 4468
+> 16 0 24 179 topology 460 4468
+> 15 0 24 179 topology 325 4469
+> 16 0 24 179 topology 460 4469
+> 15 0 23 179 topology 336 4470
+> 16 0 23 179 topology 338 4470
+> 15 0 24 179 topology 445 4471
+> 16 0 24 179 topology 460 4471
+> 15 0 23 179 topology 261 4472
+> 16 0 23 179 topology 263 4472
+> 15 0 23 179 topology 402 4473
+> 16 0 23 179 topology 404 4473
+> 15 0 23 179 topology 303 4474
+> 16 0 23 179 topology 304 4474
+> 15 0 24 179 topology 332 4475
+> 16 0 24 179 topology 460 4475
+> 15 0 24 179 topology 368 4476
+> 16 0 24 179 topology 460 4476
+> 15 0 23 179 topology 282 4477
+> 16 0 23 179 topology 283 4477
+> 15 0 24 179 topology 236 4478
+> 16 0 24 179 topology 460 4478
+> 15 0 24 179 topology 404 4479
+> 16 0 24 179 topology 460 4479
+> 15 0 23 179 topology 261 4480
+> 16 0 23 179 topology 262 4480
+> 15 0 24 179 topology 440 4481
+> 16 0 24 179 topology 460 4481
+> 15 0 24 179 topology 268 4482
+> 16 0 24 179 topology 460 4482
+> 15 0 23 179 topology 456 4483
+> 16 0 23 179 topology 457 4483
+> 15 0 23 179 topology 213 4484
+> 16 0 23 179 topology 215 4484
+> 15 0 24 179 topology 388 4485
+> 16 0 24 179 topology 460 4485
+> 15 0 24 179 topology 310 4486
+> 16 0 24 179 topology 460 4486
+> 15 0 24 179 topology 232 4487
+> 16 0 24 179 topology 460 4487
+> 15 0 23 179 topology 435 4488
+> 16 0 23 179 topology 436 4488
+> 15 0 24 179 topology 430 4489
+> 16 0 24 179 topology 460 4489
+> 15 0 24 179 topology 352 4490
+> 16 0 24 179 topology 460 4490
+> 15 0 23 179 topology 414 4491
+> 16 0 23 179 topology 415 4491
+> 15 0 23 179 topology 279 4492
+> 16 0 23 179 topology 281 4492
+> 15 0 23 179 topology 420 4493
+> 16 0 23 179 topology 422 4493
+> 15 0 23 179 topology 240 4494
+> 16 0 23 179 topology 241 4494
+> 15 0 23 179 topology 345 4495
+> 16 0 23 179 topology 347 4495
+> 15 0 23 179 topology 219 4496
+> 16 0 23 179 topology 220 4496
+> 15 0 24 179 topology 205 4497
+> 16 0 24 179 topology 460 4497
+> 15 0 24 179 topology 359 4498
+> 16 0 24 179 topology 460 4498
+> 15 0 24 179 topology 227 4499
+> 16 0 24 179 topology 460 4499
+> 15 0 24 179 topology 395 4500
+> 16 0 24 179 topology 460 4500
+> 15 0 24 179 topology 263 4501
+> 16 0 24 179 topology 460 4501
+> 15 0 23 179 topology 411 4502
+> 16 0 23 179 topology 413 4502
+> 15 0 24 179 topology 431 4503
+> 16 0 24 179 topology 460 4503
+> 15 0 23 179 topology 393 4504
+> 16 0 23 179 topology 394 4504
+> 15 0 23 179 topology 372 4505
+> 16 0 23 179 topology 373 4505
+> 15 0 24 179 topology 217 4506
 > 16 0 24 179 topology 460 4506
-> 15 0 24 179 topology 460 4507
-> 16 0 24 179 topology 443 4507
-> 15 0 25 179 topology 443 4508
-> 16 0 25 179 topology 441 4508
-> 15 0 23 179 topology 204 4509
-> 16 0 23 179 topology 205 4509
-> 15 0 24 179 topology 205 4510
-> 16 0 24 179 topology 460 4510
-> 15 0 23 179 topology 240 4511
-> 16 0 23 179 topology 241 4511
-> 15 0 24 179 topology 241 4512
+> 15 0 23 179 topology 186 4507
+> 16 0 23 179 topology 188 4507
+> 15 0 23 179 topology 351 4508
+> 16 0 23 179 topology 352 4508
+> 15 0 24 179 topology 337 4509
+> 16 0 24 179 topology 460 4509
+> 15 0 23 179 topology 297 4510
+> 16 0 23 179 topology 299 4510
+> 15 0 24 179 topology 259 4511
+> 16 0 24 179 topology 460 4511
+> 15 0 24 179 topology 200 4512
 > 16 0 24 179 topology 460 4512
-> 15 0 23 179 topology 276 4513
-> 16 0 23 179 topology 277 4513
-> 15 0 24 179 topology 277 4514
+> 15 0 23 179 topology 222 4513
+> 16 0 23 179 topology 224 4513
+> 15 0 24 179 topology 457 4514
 > 16 0 24 179 topology 460 4514
-> 15 0 23 179 topology 360 4515
-> 16 0 23 179 topology 361 4515
-> 15 0 24 179 topology 361 4516
-> 16 0 24 179 topology 460 4516
-> 15 0 23 179 topology 228 4517
-> 16 0 23 179 topology 229 4517
-> 15 0 24 179 topology 229 4518
+> 15 0 24 179 topology 379 4515
+> 16 0 24 179 topology 460 4515
+> 15 0 23 179 topology 363 4516
+> 16 0 23 179 topology 365 4516
+> 15 0 23 179 topology 288 4517
+> 16 0 23 179 topology 290 4517
+> 15 0 24 179 topology 190 4518
 > 16 0 24 179 topology 460 4518
-> 15 0 23 179 topology 312 4519
-> 16 0 23 179 topology 313 4519
-> 15 0 24 179 topology 313 4520
-> 16 0 24 179 topology 460 4520
-> 15 0 23 179 topology 396 4521
-> 16 0 23 179 topology 397 4521
-> 15 0 24 179 topology 397 4522
+> 15 0 24 179 topology 218 4519
+> 16 0 24 179 topology 460 4519
+> 15 0 23 179 topology 429 4520
+> 16 0 23 179 topology 431 4520
+> 15 0 23 179 topology 330 4521
+> 16 0 23 179 topology 331 4521
+> 15 0 24 179 topology 254 4522
 > 16 0 24 179 topology 460 4522
-> 15 0 23 179 topology 264 4523
-> 16 0 23 179 topology 265 4523
-> 15 0 24 179 topology 265 4524
-> 16 0 24 179 topology 460 4524
-> 15 0 23 179 topology 348 4525
-> 16 0 23 179 topology 349 4525
-> 15 0 24 179 topology 349 4526
+> 15 0 24 179 topology 422 4523
+> 16 0 24 179 topology 460 4523
+> 15 0 23 179 topology 354 4524
+> 16 0 23 179 topology 356 4524
+> 15 0 23 179 topology 309 4525
+> 16 0 23 179 topology 310 4525
+> 15 0 24 179 topology 290 4526
 > 16 0 24 179 topology 460 4526
-> 15 0 23 179 topology 432 4527
-> 16 0 23 179 topology 433 4527
-> 15 0 24 179 topology 433 4528
+> 15 0 24 179 topology 458 4527
+> 16 0 24 179 topology 460 4527
+> 15 0 24 179 topology 326 4528
 > 16 0 24 179 topology 460 4528
-> 15 0 23 179 topology 384 4529
-> 16 0 23 179 topology 385 4529
-> 15 0 24 179 topology 385 4530
+> 15 0 23 179 topology 288 4529
+> 16 0 23 179 topology 289 4529
+> 15 0 24 179 topology 244 4530
 > 16 0 24 179 topology 460 4530
-> 15 0 23 179 topology 195 4531
-> 16 0 23 179 topology 196 4531
-> 15 0 24 179 topology 196 4532
+> 15 0 23 179 topology 240 4531
+> 16 0 23 179 topology 242 4531
+> 15 0 24 179 topology 191 4532
 > 16 0 24 179 topology 460 4532
-> 15 0 23 179 topology 267 4533
-> 16 0 23 179 topology 268 4533
-> 15 0 24 179 topology 268 4534
+> 15 0 24 179 topology 364 4533
+> 16 0 24 179 topology 460 4533
+> 15 0 24 179 topology 286 4534
 > 16 0 24 179 topology 460 4534
-> 15 0 23 179 topology 219 4535
-> 16 0 23 179 topology 220 4535
-> 15 0 24 179 topology 220 4536
-> 16 0 24 179 topology 460 4536
-> 15 0 23 179 topology 303 4537
-> 16 0 23 179 topology 304 4537
-> 15 0 24 179 topology 304 4538
-> 16 0 24 179 topology 460 4538
-> 15 0 23 179 topology 387 4539
-> 16 0 23 179 topology 388 4539
-> 15 0 24 179 topology 388 4540
-> 16 0 24 179 topology 460 4540
-> 15 0 23 179 topology 255 4541
-> 16 0 23 179 topology 256 4541
-> 15 0 24 179 topology 256 4542
-> 16 0 24 179 topology 460 4542
-> 15 0 23 179 topology 339 4543
-> 16 0 23 179 topology 340 4543
-> 15 0 24 179 topology 340 4544
-> 16 0 24 179 topology 460 4544
-> 15 0 23 179 topology 423 4545
-> 16 0 23 179 topology 424 4545
-> 15 0 24 179 topology 424 4546
+> 15 0 24 179 topology 406 4535
+> 16 0 24 179 topology 460 4535
+> 15 0 23 179 topology 441 4536
+> 16 0 23 179 topology 442 4536
+> 15 0 23 179 topology 306 4537
+> 16 0 23 179 topology 308 4537
+> 15 0 23 179 topology 180 4538
+> 16 0 23 179 topology 181 4538
+> 15 0 23 179 topology 231 4539
+> 16 0 23 179 topology 233 4539
+> 15 0 23 179 topology 447 4540
+> 16 0 23 179 topology 449 4540
+> 15 0 23 179 topology 267 4541
+> 16 0 23 179 topology 268 4541
+> 15 0 23 179 topology 186 4542
+> 16 0 23 179 topology 187 4542
+> 15 0 24 179 topology 209 4543
+> 16 0 24 179 topology 460 4543
+> 15 0 23 179 topology 372 4544
+> 16 0 23 179 topology 374 4544
+> 15 0 23 179 topology 246 4545
+> 16 0 23 179 topology 247 4545
+> 15 0 24 179 topology 245 4546
 > 16 0 24 179 topology 460 4546
-> 15 0 23 179 topology 291 4547
-> 16 0 23 179 topology 292 4547
-> 15 0 24 179 topology 292 4548
+> 15 0 23 179 topology 192 4547
+> 16 0 23 179 topology 193 4547
+> 15 0 24 179 topology 281 4548
 > 16 0 24 179 topology 460 4548
-> 15 0 23 179 topology 375 4549
-> 16 0 23 179 topology 376 4549
-> 15 0 24 179 topology 376 4550
-> 16 0 24 179 topology 460 4550
-> 15 0 23 179 topology 411 4551
-> 16 0 23 179 topology 412 4551
-> 15 0 24 179 topology 412 4552
+> 15 0 23 179 topology 225 4549
+> 16 0 23 179 topology 226 4549
+> 15 0 23 179 topology 198 4550
+> 16 0 23 179 topology 199 4550
+> 15 0 24 179 topology 449 4551
+> 16 0 24 179 topology 460 4551
+> 15 0 24 179 topology 317 4552
 > 16 0 24 179 topology 460 4552
-> 15 0 23 179 topology 186 4553
-> 16 0 23 179 topology 187 4553
-> 15 0 24 179 topology 187 4554
-> 16 0 24 179 topology 460 4554
-> 15 0 23 179 topology 210 4555
-> 16 0 23 179 topology 211 4555
-> 15 0 24 179 topology 211 4556
+> 15 0 23 179 topology 438 4553
+> 16 0 23 179 topology 440 4553
+> 15 0 23 179 topology 420 4554
+> 16 0 23 179 topology 421 4554
+> 15 0 23 179 topology 204 4555
+> 16 0 23 179 topology 205 4555
+> 15 0 24 179 topology 353 4556
 > 16 0 24 179 topology 460 4556
-> 15 0 23 179 topology 246 4557
-> 16 0 23 179 topology 247 4557
-> 15 0 24 179 topology 247 4558
+> 15 0 23 179 topology 399 4557
+> 16 0 23 179 topology 400 4557
+> 15 0 24 179 topology 271 4558
 > 16 0 24 179 topology 460 4558
-> 15 0 23 179 topology 330 4559
-> 16 0 23 179 topology 331 4559
-> 15 0 24 179 topology 331 4560
-> 16 0 24 179 topology 460 4560
-> 15 0 23 179 topology 282 4561
-> 16 0 23 179 topology 283 4561
-> 15 0 24 179 topology 283 4562
+> 15 0 24 179 topology 182 4559
+> 16 0 24 179 topology 460 4559
+> 15 0 23 179 topology 378 4560
+> 16 0 23 179 topology 379 4560
+> 15 0 24 179 topology 391 4561
+> 16 0 24 179 topology 460 4561
+> 15 0 24 179 topology 313 4562
 > 16 0 24 179 topology 460 4562
-> 15 0 23 179 topology 366 4563
-> 16 0 23 179 topology 367 4563
-> 15 0 24 179 topology 367 4564
-> 16 0 24 179 topology 460 4564
-> 15 0 23 179 topology 234 4565
-> 16 0 23 179 topology 235 4565
-> 15 0 24 179 topology 235 4566
+> 15 0 24 179 topology 235 4563
+> 16 0 24 179 topology 460 4563
+> 15 0 23 179 topology 249 4564
+> 16 0 23 179 topology 251 4564
+> 15 0 24 179 topology 433 4565
+> 16 0 24 179 topology 460 4565
+> 15 0 24 179 topology 355 4566
 > 16 0 24 179 topology 460 4566
-> 15 0 23 179 topology 450 4567
-> 16 0 23 179 topology 451 4567
-> 15 0 24 179 topology 451 4568
-> 16 0 24 179 topology 460 4568
-> 15 0 23 179 topology 318 4569
-> 16 0 23 179 topology 319 4569
-> 15 0 24 179 topology 319 4570
+> 15 0 23 179 topology 390 4567
+> 16 0 23 179 topology 392 4567
+> 15 0 23 179 topology 201 4568
+> 16 0 23 179 topology 203 4568
+> 15 0 23 179 topology 315 4569
+> 16 0 23 179 topology 317 4569
+> 15 0 24 179 topology 272 4570
 > 16 0 24 179 topology 460 4570
-> 15 0 23 179 topology 402 4571
-> 16 0 23 179 topology 403 4571
-> 15 0 24 179 topology 403 4572
-> 16 0 24 179 topology 460 4572
-> 15 0 23 179 topology 354 4573
-> 16 0 23 179 topology 355 4573
-> 15 0 24 179 topology 355 4574
-> 16 0 24 179 topology 460 4574
-> 15 0 23 179 topology 438 4575
-> 16 0 23 179 topology 439 4575
-> 15 0 24 179 topology 439 4576
-> 16 0 24 179 topology 460 4576
-> 15 0 23 179 topology 201 4577
-> 16 0 23 179 topology 202 4577
-> 15 0 24 179 topology 202 4578
-> 16 0 24 179 topology 460 4578
-> 15 0 23 179 topology 237 4579
-> 16 0 23 179 topology 238 4579
-> 15 0 24 179 topology 238 4580
+> 15 0 23 179 topology 456 4571
+> 16 0 23 179 topology 458 4571
+> 15 0 23 179 topology 357 4572
+> 16 0 23 179 topology 358 4572
+> 15 0 24 179 topology 308 4573
+> 16 0 24 179 topology 460 4573
+> 15 0 23 179 topology 381 4574
+> 16 0 23 179 topology 383 4574
+> 15 0 24 179 topology 344 4575
+> 16 0 24 179 topology 460 4575
+> 15 0 23 179 topology 336 4576
+> 16 0 23 179 topology 337 4576
+> 15 0 24 179 topology 380 4577
+> 16 0 24 179 topology 460 4577
+> 15 0 23 179 topology 315 4578
+> 16 0 23 179 topology 316 4578
+> 15 0 24 179 topology 416 4579
+> 16 0 24 179 topology 460 4579
+> 15 0 24 179 topology 298 4580
 > 16 0 24 179 topology 460 4580
-> 15 0 23 179 topology 273 4581
-> 16 0 23 179 topology 274 4581
-> 15 0 24 179 topology 274 4582
+> 15 0 23 179 topology 294 4581
+> 16 0 23 179 topology 295 4581
+> 15 0 24 179 topology 220 4582
 > 16 0 24 179 topology 460 4582
-> 15 0 23 179 topology 357 4583
-> 16 0 23 179 topology 358 4583
-> 15 0 24 179 topology 358 4584
+> 15 0 23 179 topology 267 4583
+> 16 0 23 179 topology 269 4583
+> 15 0 24 179 topology 418 4584
 > 16 0 24 179 topology 460 4584
-> 15 0 23 179 topology 225 4585
-> 16 0 23 179 topology 226 4585
-> 15 0 24 179 topology 226 4586
+> 15 0 24 179 topology 340 4585
+> 16 0 24 179 topology 460 4585
+> 15 0 24 179 topology 262 4586
 > 16 0 24 179 topology 460 4586
-> 15 0 23 179 topology 309 4587
-> 16 0 23 179 topology 310 4587
-> 15 0 24 179 topology 310 4588
-> 16 0 24 179 topology 460 4588
-> 15 0 23 179 topology 393 4589
-> 16 0 23 179 topology 394 4589
-> 15 0 24 179 topology 394 4590
+> 15 0 24 179 topology 382 4587
+> 16 0 24 179 topology 460 4587
+> 15 0 23 179 topology 333 4588
+> 16 0 23 179 topology 335 4588
+> 15 0 23 179 topology 258 4589
+> 16 0 23 179 topology 260 4589
+> 15 0 24 179 topology 193 4590
 > 16 0 24 179 topology 460 4590
-> 15 0 23 179 topology 261 4591
-> 16 0 23 179 topology 262 4591
-> 15 0 24 179 topology 262 4592
+> 15 0 23 179 topology 399 4591
+> 16 0 23 179 topology 401 4591
+> 15 0 24 179 topology 299 4592
 > 16 0 24 179 topology 460 4592
-> 15 0 23 179 topology 345 4593
-> 16 0 23 179 topology 346 4593
-> 15 0 24 179 topology 346 4594
+> 15 0 23 179 topology 273 4593
+> 16 0 23 179 topology 274 4593
+> 15 0 24 179 topology 335 4594
 > 16 0 24 179 topology 460 4594
-> 15 0 23 179 topology 429 4595
-> 16 0 23 179 topology 430 4595
-> 15 0 24 179 topology 430 4596
-> 16 0 24 179 topology 460 4596
-> 15 0 23 179 topology 381 4597
-> 16 0 23 179 topology 382 4597
-> 15 0 24 179 topology 382 4598
-> 16 0 24 179 topology 460 4598
-> 15 0 23 179 topology 192 4599
-> 16 0 23 179 topology 193 4599
-> 15 0 24 179 topology 193 4600
+> 15 0 23 179 topology 324 4595
+> 16 0 23 179 topology 326 4595
+> 15 0 23 179 topology 252 4596
+> 16 0 23 179 topology 253 4596
+> 15 0 24 179 topology 371 4597
+> 16 0 24 179 topology 460 4597
+> 15 0 23 179 topology 231 4598
+> 16 0 23 179 topology 232 4598
+> 15 0 23 179 topology 447 4599
+> 16 0 23 179 topology 448 4599
+> 15 0 24 179 topology 407 4600
 > 16 0 24 179 topology 460 4600
-> 15 0 23 179 topology 216 4601
-> 16 0 23 179 topology 217 4601
-> 15 0 24 179 topology 217 4602
+> 15 0 23 179 topology 426 4601
+> 16 0 23 179 topology 427 4601
+> 15 0 24 179 topology 443 4602
 > 16 0 24 179 topology 460 4602
-> 15 0 23 179 topology 300 4603
-> 16 0 23 179 topology 301 4603
-> 15 0 24 179 topology 301 4604
+> 15 0 23 179 topology 210 4603
+> 16 0 23 179 topology 212 4603
+> 15 0 24 179 topology 247 4604
 > 16 0 24 179 topology 460 4604
-> 15 0 23 179 topology 252 4605
-> 16 0 23 179 topology 253 4605
-> 15 0 24 179 topology 253 4606
+> 15 0 23 179 topology 405 4605
+> 16 0 23 179 topology 406 4605
+> 15 0 24 179 topology 367 4606
 > 16 0 24 179 topology 460 4606
-> 15 0 23 179 topology 336 4607
-> 16 0 23 179 topology 337 4607
-> 15 0 24 179 topology 337 4608
+> 15 0 23 179 topology 192 4607
+> 16 0 23 179 topology 194 4607
+> 15 0 24 179 topology 289 4608
 > 16 0 24 179 topology 460 4608
-> 15 0 23 179 topology 420 4609
-> 16 0 23 179 topology 421 4609
-> 15 0 24 179 topology 421 4610
-> 16 0 24 179 topology 460 4610
-> 15 0 23 179 topology 288 4611
-> 16 0 23 179 topology 289 4611
-> 15 0 24 179 topology 289 4612
-> 16 0 24 179 topology 460 4612
-> 15 0 23 179 topology 372 4613
-> 16 0 23 179 topology 373 4613
-> 15 0 24 179 topology 373 4614
-> 16 0 24 179 topology 460 4614
-> 15 0 23 179 topology 456 4615
-> 16 0 23 179 topology 457 4615
-> 15 0 24 179 topology 457 4616
+> 15 0 23 179 topology 384 4609
+> 16 0 23 179 topology 385 4609
+> 15 0 23 179 topology 276 4610
+> 16 0 23 179 topology 278 4610
+> 15 0 24 179 topology 409 4611
+> 16 0 24 179 topology 460 4611
+> 15 0 23 179 topology 417 4612
+> 16 0 23 179 topology 419 4612
+> 15 0 23 179 topology 210 4613
+> 16 0 23 179 topology 211 4613
+> 15 0 23 179 topology 342 4614
+> 16 0 23 179 topology 344 4614
+> 15 0 24 179 topology 362 4615
+> 16 0 24 179 topology 460 4615
+> 15 0 24 179 topology 230 4616
 > 16 0 24 179 topology 460 4616
-> 15 0 23 179 topology 324 4617
-> 16 0 23 179 topology 325 4617
-> 15 0 24 179 topology 325 4618
+> 15 0 23 179 topology 408 4617
+> 16 0 23 179 topology 410 4617
+> 15 0 24 179 topology 398 4618
 > 16 0 24 179 topology 460 4618
-> 15 0 23 179 topology 408 4619
-> 16 0 23 179 topology 409 4619
-> 15 0 24 179 topology 409 4620
+> 15 0 23 179 topology 363 4619
+> 16 0 23 179 topology 364 4619
+> 15 0 24 179 topology 266 4620
 > 16 0 24 179 topology 460 4620
-> 15 0 23 179 topology 444 4621
-> 16 0 23 179 topology 445 4621
-> 15 0 24 179 topology 445 4622
-> 16 0 24 179 topology 460 4622
-> 15 0 23 179 topology 183 4623
-> 16 0 23 179 topology 184 4623
-> 15 0 24 179 topology 184 4624
+> 15 0 24 179 topology 434 4621
+> 16 0 24 179 topology 460 4621
+> 15 0 23 179 topology 342 4622
+> 16 0 23 179 topology 343 4622
+> 15 0 23 179 topology 321 4623
+> 16 0 23 179 topology 322 4623
+> 15 0 24 179 topology 274 4624
 > 16 0 24 179 topology 460 4624
-> 15 0 23 179 topology 207 4625
-> 16 0 23 179 topology 208 4625
-> 15 0 24 179 topology 208 4626
+> 15 0 24 179 topology 394 4625
+> 16 0 24 179 topology 460 4625
+> 15 0 24 179 topology 316 4626
 > 16 0 24 179 topology 460 4626
-> 15 0 23 179 topology 243 4627
-> 16 0 23 179 topology 244 4627
-> 15 0 24 179 topology 244 4628
+> 15 0 23 179 topology 219 4627
+> 16 0 23 179 topology 221 4627
+> 15 0 24 179 topology 203 4628
 > 16 0 24 179 topology 460 4628
-> 15 0 23 179 topology 327 4629
-> 16 0 23 179 topology 328 4629
-> 15 0 24 179 topology 328 4630
-> 16 0 24 179 topology 460 4630
-> 15 0 23 179 topology 279 4631
-> 16 0 23 179 topology 280 4631
-> 15 0 24 179 topology 280 4632
-> 16 0 24 179 topology 460 4632
-> 15 0 23 179 topology 363 4633
-> 16 0 23 179 topology 364 4633
-> 15 0 24 179 topology 364 4634
+> 15 0 24 179 topology 436 4629
+> 16 0 24 179 topology 460 4629
+> 15 0 23 179 topology 360 4630
+> 16 0 23 179 topology 362 4630
+> 15 0 23 179 topology 285 4631
+> 16 0 23 179 topology 287 4631
+> 15 0 23 179 topology 426 4632
+> 16 0 23 179 topology 428 4632
+> 15 0 23 179 topology 300 4633
+> 16 0 23 179 topology 301 4633
+> 15 0 24 179 topology 221 4634
 > 16 0 24 179 topology 460 4634
-> 15 0 23 179 topology 231 4635
-> 16 0 23 179 topology 232 4635
-> 15 0 24 179 topology 232 4636
-> 16 0 24 179 topology 460 4636
-> 15 0 23 179 topology 447 4637
-> 16 0 23 179 topology 448 4637
-> 15 0 24 179 topology 448 4638
-> 16 0 24 179 topology 460 4638
-> 15 0 23 179 topology 315 4639
-> 16 0 23 179 topology 316 4639
-> 15 0 24 179 topology 316 4640
+> 15 0 24 179 topology 389 4635
+> 16 0 24 179 topology 460 4635
+> 15 0 23 179 topology 351 4636
+> 16 0 23 179 topology 353 4636
+> 15 0 24 179 topology 257 4637
+> 16 0 24 179 topology 460 4637
+> 15 0 23 179 topology 279 4638
+> 16 0 23 179 topology 280 4638
+> 15 0 24 179 topology 425 4639
+> 16 0 24 179 topology 460 4639
+> 15 0 24 179 topology 293 4640
 > 16 0 24 179 topology 460 4640
-> 15 0 23 179 topology 399 4641
-> 16 0 23 179 topology 400 4641
-> 15 0 24 179 topology 400 4642
-> 16 0 24 179 topology 460 4642
-> 15 0 23 179 topology 351 4643
-> 16 0 23 179 topology 352 4643
-> 15 0 24 179 topology 352 4644
-> 16 0 24 179 topology 460 4644
-> 15 0 23 179 topology 435 4645
-> 16 0 23 179 topology 436 4645
-> 15 0 24 179 topology 436 4646
+> 15 0 23 179 topology 258 4641
+> 16 0 23 179 topology 259 4641
+> 15 0 23 179 topology 453 4642
+> 16 0 23 179 topology 454 4642
+> 15 0 23 179 topology 183 4643
+> 16 0 23 179 topology 185 4643
+> 15 0 23 179 topology 237 4644
+> 16 0 23 179 topology 239 4644
+> 15 0 24 179 topology 301 4645
+> 16 0 24 179 topology 460 4645
+> 15 0 24 179 topology 223 4646
 > 16 0 24 179 topology 460 4646
-> 15 0 23 179 topology 198 4647
-> 16 0 23 179 topology 199 4647
-> 15 0 24 179 topology 199 4648
+> 15 0 23 179 topology 432 4647
+> 16 0 23 179 topology 433 4647
+> 15 0 24 179 topology 194 4648
 > 16 0 24 179 topology 460 4648
-> 15 0 23 179 topology 270 4649
-> 16 0 23 179 topology 271 4649
-> 15 0 24 179 topology 271 4650
+> 15 0 24 179 topology 421 4649
+> 16 0 24 179 topology 460 4649
+> 15 0 24 179 topology 343 4650
 > 16 0 24 179 topology 460 4650
-> 15 0 23 179 topology 222 4651
-> 16 0 23 179 topology 223 4651
-> 15 0 24 179 topology 223 4652
+> 15 0 23 179 topology 411 4651
+> 16 0 23 179 topology 412 4651
+> 15 0 24 179 topology 265 4652
 > 16 0 24 179 topology 460 4652
-> 15 0 23 179 topology 306 4653
-> 16 0 23 179 topology 307 4653
-> 15 0 24 179 topology 307 4654
+> 15 0 23 179 topology 303 4653
+> 16 0 23 179 topology 305 4653
+> 15 0 24 179 topology 385 4654
 > 16 0 24 179 topology 460 4654
-> 15 0 23 179 topology 390 4655
-> 16 0 23 179 topology 391 4655
-> 15 0 24 179 topology 391 4656
-> 16 0 24 179 topology 460 4656
-> 15 0 23 179 topology 258 4657
-> 16 0 23 179 topology 259 4657
-> 15 0 24 179 topology 259 4658
+> 15 0 23 179 topology 228 4655
+> 16 0 23 179 topology 230 4655
+> 15 0 23 179 topology 237 4656
+> 16 0 23 179 topology 238 4656
+> 15 0 23 179 topology 369 4657
+> 16 0 23 179 topology 371 4657
+> 15 0 24 179 topology 212 4658
 > 16 0 24 179 topology 460 4658
-> 15 0 23 179 topology 342 4659
-> 16 0 23 179 topology 343 4659
-> 15 0 24 179 topology 343 4660
+> 15 0 23 179 topology 216 4659
+> 16 0 23 179 topology 217 4659
+> 15 0 24 179 topology 196 4660
 > 16 0 24 179 topology 460 4660
-> 15 0 23 179 topology 426 4661
-> 16 0 23 179 topology 427 4661
-> 15 0 24 179 topology 427 4662
-> 16 0 24 179 topology 460 4662
-> 15 0 23 179 topology 294 4663
-> 16 0 23 179 topology 295 4663
-> 15 0 24 179 topology 295 4664
-> 16 0 24 179 topology 460 4664
-> 15 0 23 179 topology 378 4665
-> 16 0 23 179 topology 379 4665
-> 15 0 24 179 topology 379 4666
+> 15 0 24 179 topology 248 4661
+> 16 0 24 179 topology 460 4661
+> 15 0 23 179 topology 294 4662
+> 16 0 23 179 topology 296 4662
+> 15 0 24 179 topology 284 4663
+> 16 0 24 179 topology 460 4663
+> 15 0 23 179 topology 435 4664
+> 16 0 23 179 topology 437 4664
+> 15 0 23 179 topology 390 4665
+> 16 0 23 179 topology 391 4665
+> 15 0 24 179 topology 452 4666
 > 16 0 24 179 topology 460 4666
-> 15 0 23 179 topology 414 4667
-> 16 0 23 179 topology 415 4667
-> 15 0 24 179 topology 415 4668
-> 16 0 24 179 topology 460 4668
-> 15 0 23 179 topology 189 4669
-> 16 0 23 179 topology 190 4669
-> 15 0 24 179 topology 190 4670
+> 15 0 24 179 topology 320 4667
+> 16 0 24 179 topology 460 4667
+> 15 0 23 179 topology 369 4668
+> 16 0 23 179 topology 370 4668
+> 15 0 24 179 topology 356 4669
+> 16 0 24 179 topology 460 4669
+> 15 0 24 179 topology 208 4670
 > 16 0 24 179 topology 460 4670
-> 15 0 23 179 topology 213 4671
-> 16 0 23 179 topology 214 4671
-> 15 0 24 179 topology 214 4672
+> 15 0 23 179 topology 348 4671
+> 16 0 23 179 topology 349 4671
+> 15 0 24 179 topology 328 4672
 > 16 0 24 179 topology 460 4672
-> 15 0 23 179 topology 297 4673
-> 16 0 23 179 topology 298 4673
-> 15 0 24 179 topology 298 4674
+> 15 0 24 179 topology 185 4673
+> 16 0 24 179 topology 460 4673
+> 15 0 24 179 topology 250 4674
 > 16 0 24 179 topology 460 4674
-> 15 0 23 179 topology 249 4675
-> 16 0 23 179 topology 250 4675
-> 15 0 24 179 topology 250 4676
+> 15 0 24 179 topology 448 4675
+> 16 0 24 179 topology 460 4675
+> 15 0 24 179 topology 370 4676
 > 16 0 24 179 topology 460 4676
-> 15 0 23 179 topology 333 4677
-> 16 0 23 179 topology 334 4677
-> 15 0 24 179 topology 334 4678
+> 15 0 23 179 topology 246 4677
+> 16 0 23 179 topology 248 4677
+> 15 0 24 179 topology 292 4678
 > 16 0 24 179 topology 460 4678
-> 15 0 23 179 topology 417 4679
-> 16 0 23 179 topology 418 4679
-> 15 0 24 179 topology 418 4680
+> 15 0 23 179 topology 387 4679
+> 16 0 23 179 topology 389 4679
+> 15 0 24 179 topology 412 4680
 > 16 0 24 179 topology 460 4680
-> 15 0 23 179 topology 285 4681
-> 16 0 23 179 topology 286 4681
-> 15 0 24 179 topology 286 4682
-> 16 0 24 179 topology 460 4682
-> 15 0 23 179 topology 369 4683
-> 16 0 23 179 topology 370 4683
-> 15 0 24 179 topology 370 4684
-> 16 0 24 179 topology 460 4684
-> 15 0 23 179 topology 453 4685
-> 16 0 23 179 topology 454 4685
-> 15 0 24 179 topology 454 4686
+> 15 0 24 179 topology 181 4681
+> 16 0 24 179 topology 460 4681
+> 15 0 23 179 topology 312 4682
+> 16 0 23 179 topology 314 4682
+> 15 0 24 179 topology 239 4683
+> 16 0 24 179 topology 460 4683
+> 15 0 23 179 topology 453 4684
+> 16 0 23 179 topology 455 4684
+> 15 0 23 179 topology 327 4685
+> 16 0 23 179 topology 328 4685
+> 15 0 24 179 topology 275 4686
 > 16 0 24 179 topology 460 4686
-> 15 0 23 179 topology 321 4687
-> 16 0 23 179 topology 322 4687
-> 15 0 24 179 topology 322 4688
-> 16 0 24 179 topology 460 4688
-> 15 0 23 179 topology 405 4689
-> 16 0 23 179 topology 406 4689
-> 15 0 24 179 topology 406 4690
+> 15 0 23 179 topology 378 4687
+> 16 0 23 179 topology 380 4687
+> 15 0 23 179 topology 306 4688
+> 16 0 23 179 topology 307 4688
+> 15 0 24 179 topology 311 4689
+> 16 0 24 179 topology 460 4689
+> 15 0 24 179 topology 347 4690
 > 16 0 24 179 topology 460 4690
-> 15 0 27 21 topology 493 4691
-> 16 0 27 21 topology 495 4691
-> 15 0 21 21 topology 495 4692
-> 16 0 21 21 topology 178 4692
-> 15 0 28 21 topology 178 4693
-> 16 0 28 21 topology 176 4693
-> 15 0 28 21 topology 495 4694
-> 16 0 28 21 topology 497 4694
-> 15 0 21 21 topology 495 4695
-> 16 0 21 21 topology 461 4695
-> 15 0 28 21 topology 461 4696
-> 16 0 28 21 topology 459 4696
-> 15 0 28 21 topology 178 4697
-> 16 0 28 21 topology 497 4697
-> 15 0 21 21 topology 178 4698
-> 16 0 21 21 topology 461 4698
-> 15 0 27 21 topology 497 4699
-> 16 0 27 21 topology 461 4699
-> 15 0 23 1362 topology 1375 4700
-> 16 0 23 1362 topology 1376 4700
-> 15 0 24 1362 topology 1376 4701
-> 16 0 24 1362 topology 1601 4701
-> 15 0 24 1362 topology 1601 4702
-> 16 0 24 1362 topology 1425 4702
-> 15 0 25 1362 topology 1425 4703
-> 16 0 25 1362 topology 1423 4703
-> 15 0 24 1362 topology 1601 4704
-> 16 0 24 1362 topology 1401 4704
-> 15 0 25 1362 topology 1401 4705
-> 16 0 25 1362 topology 1399 4705
-> 15 0 24 1362 topology 1601 4706
-> 16 0 24 1362 topology 1545 4706
-> 15 0 25 1362 topology 1545 4707
-> 16 0 25 1362 topology 1543 4707
-> 15 0 24 1362 topology 1601 4708
-> 16 0 24 1362 topology 1521 4708
-> 15 0 25 1362 topology 1521 4709
-> 16 0 25 1362 topology 1519 4709
-> 15 0 24 1362 topology 1601 4710
-> 16 0 24 1362 topology 1497 4710
-> 15 0 25 1362 topology 1497 4711
-> 16 0 25 1362 topology 1495 4711
-> 15 0 24 1362 topology 1601 4712
-> 16 0 24 1362 topology 1473 4712
-> 15 0 25 1362 topology 1473 4713
-> 16 0 25 1362 topology 1471 4713
-> 15 0 24 1362 topology 1601 4714
-> 16 0 24 1362 topology 1449 4714
-> 15 0 25 1362 topology 1449 4715
-> 16 0 25 1362 topology 1447 4715
-> 15 0 24 1362 topology 1601 4716
-> 16 0 24 1362 topology 1593 4716
-> 15 0 25 1362 topology 1593 4717
-> 16 0 25 1362 topology 1591 4717
-> 15 0 24 1362 topology 1601 4718
-> 16 0 24 1362 topology 1569 4718
-> 15 0 25 1362 topology 1569 4719
-> 16 0 25 1362 topology 1567 4719
-> 15 0 24 1362 topology 1601 4720
-> 16 0 24 1362 topology 1380 4720
-> 15 0 25 1362 topology 1380 4721
-> 16 0 25 1362 topology 1378 4721
-> 15 0 24 1362 topology 1601 4722
-> 16 0 24 1362 topology 1452 4722
-> 15 0 25 1362 topology 1452 4723
-> 16 0 25 1362 topology 1450 4723
-> 15 0 24 1362 topology 1601 4724
-> 16 0 24 1362 topology 1428 4724
-> 15 0 25 1362 topology 1428 4725
-> 16 0 25 1362 topology 1426 4725
-> 15 0 24 1362 topology 1601 4726
-> 16 0 24 1362 topology 1404 4726
-> 15 0 25 1362 topology 1404 4727
-> 16 0 25 1362 topology 1402 4727
-> 15 0 24 1362 topology 1601 4728
-> 16 0 24 1362 topology 1572 4728
-> 15 0 25 1362 topology 1572 4729
-> 16 0 25 1362 topology 1570 4729
-> 15 0 24 1362 topology 1601 4730
-> 16 0 24 1362 topology 1548 4730
-> 15 0 25 1362 topology 1548 4731
-> 16 0 25 1362 topology 1546 4731
-> 15 0 24 1362 topology 1601 4732
-> 16 0 24 1362 topology 1524 4732
-> 15 0 25 1362 topology 1524 4733
-> 16 0 25 1362 topology 1522 4733
-> 15 0 24 1362 topology 1601 4734
-> 16 0 24 1362 topology 1500 4734
-> 15 0 25 1362 topology 1500 4735
-> 16 0 25 1362 topology 1498 4735
-> 15 0 24 1362 topology 1601 4736
-> 16 0 24 1362 topology 1476 4736
-> 15 0 25 1362 topology 1476 4737
-> 16 0 25 1362 topology 1474 4737
-> 15 0 24 1362 topology 1601 4738
-> 16 0 24 1362 topology 1596 4738
-> 15 0 25 1362 topology 1596 4739
-> 16 0 25 1362 topology 1594 4739
-> 15 0 24 1362 topology 1601 4740
-> 16 0 24 1362 topology 1383 4740
-> 15 0 25 1362 topology 1383 4741
-> 16 0 25 1362 topology 1381 4741
-> 15 0 24 1362 topology 1601 4742
-> 16 0 24 1362 topology 1455 4742
-> 15 0 25 1362 topology 1455 4743
-> 16 0 25 1362 topology 1453 4743
-> 15 0 24 1362 topology 1601 4744
-> 16 0 24 1362 topology 1431 4744
-> 15 0 25 1362 topology 1431 4745
-> 16 0 25 1362 topology 1429 4745
-> 15 0 24 1362 topology 1601 4746
-> 16 0 24 1362 topology 1407 4746
-> 15 0 25 1362 topology 1407 4747
-> 16 0 25 1362 topology 1405 4747
-> 15 0 24 1362 topology 1601 4748
-> 16 0 24 1362 topology 1575 4748
-> 15 0 25 1362 topology 1575 4749
-> 16 0 25 1362 topology 1573 4749
-> 15 0 24 1362 topology 1601 4750
-> 16 0 24 1362 topology 1551 4750
-> 15 0 25 1362 topology 1551 4751
-> 16 0 25 1362 topology 1549 4751
-> 15 0 24 1362 topology 1601 4752
-> 16 0 24 1362 topology 1527 4752
-> 15 0 25 1362 topology 1527 4753
-> 16 0 25 1362 topology 1525 4753
-> 15 0 24 1362 topology 1601 4754
-> 16 0 24 1362 topology 1503 4754
-> 15 0 25 1362 topology 1503 4755
-> 16 0 25 1362 topology 1501 4755
-> 15 0 24 1362 topology 1601 4756
-> 16 0 24 1362 topology 1479 4756
-> 15 0 25 1362 topology 1479 4757
-> 16 0 25 1362 topology 1477 4757
-> 15 0 24 1362 topology 1601 4758
-> 16 0 24 1362 topology 1599 4758
-> 15 0 25 1362 topology 1599 4759
-> 16 0 25 1362 topology 1597 4759
-> 15 0 24 1362 topology 1601 4760
-> 16 0 24 1362 topology 1386 4760
-> 15 0 25 1362 topology 1386 4761
-> 16 0 25 1362 topology 1384 4761
-> 15 0 26 1362 topology 1601 4762
-> 16 0 26 1362 topology 1600 4762
-> 15 0 24 1362 topology 1601 4763
-> 16 0 24 1362 topology 1482 4763
-> 15 0 25 1362 topology 1482 4764
-> 16 0 25 1362 topology 1480 4764
-> 15 0 24 1362 topology 1601 4765
-> 16 0 24 1362 topology 1458 4765
-> 15 0 25 1362 topology 1458 4766
-> 16 0 25 1362 topology 1456 4766
-> 15 0 24 1362 topology 1601 4767
-> 16 0 24 1362 topology 1434 4767
-> 15 0 25 1362 topology 1434 4768
-> 16 0 25 1362 topology 1432 4768
-> 15 0 24 1362 topology 1601 4769
-> 16 0 24 1362 topology 1410 4769
-> 15 0 25 1362 topology 1410 4770
-> 16 0 25 1362 topology 1408 4770
-> 15 0 24 1362 topology 1601 4771
-> 16 0 24 1362 topology 1578 4771
-> 15 0 25 1362 topology 1578 4772
-> 16 0 25 1362 topology 1576 4772
-> 15 0 24 1362 topology 1601 4773
-> 16 0 24 1362 topology 1554 4773
-> 15 0 25 1362 topology 1554 4774
-> 16 0 25 1362 topology 1552 4774
-> 15 0 24 1362 topology 1601 4775
-> 16 0 24 1362 topology 1530 4775
-> 15 0 25 1362 topology 1530 4776
-> 16 0 25 1362 topology 1528 4776
-> 15 0 24 1362 topology 1601 4777
-> 16 0 24 1362 topology 1506 4777
-> 15 0 25 1362 topology 1506 4778
-> 16 0 25 1362 topology 1504 4778
-> 15 0 24 1362 topology 1601 4779
-> 16 0 24 1362 topology 1365 4779
-> 15 0 25 1362 topology 1365 4780
-> 16 0 25 1362 topology 1363 4780
-> 15 0 24 1362 topology 1601 4781
-> 16 0 24 1362 topology 1389 4781
-> 15 0 25 1362 topology 1389 4782
-> 16 0 25 1362 topology 1387 4782
-> 15 0 24 1362 topology 1601 4783
-> 16 0 24 1362 topology 1485 4783
-> 15 0 25 1362 topology 1485 4784
-> 16 0 25 1362 topology 1483 4784
-> 15 0 24 1362 topology 1601 4785
-> 16 0 24 1362 topology 1461 4785
-> 15 0 25 1362 topology 1461 4786
-> 16 0 25 1362 topology 1459 4786
-> 15 0 24 1362 topology 1601 4787
-> 16 0 24 1362 topology 1437 4787
-> 15 0 25 1362 topology 1437 4788
-> 16 0 25 1362 topology 1435 4788
-> 15 0 24 1362 topology 1601 4789
-> 16 0 24 1362 topology 1413 4789
-> 15 0 25 1362 topology 1413 4790
-> 16 0 25 1362 topology 1411 4790
-> 15 0 24 1362 topology 1601 4791
-> 16 0 24 1362 topology 1581 4791
-> 15 0 25 1362 topology 1581 4792
-> 16 0 25 1362 topology 1579 4792
-> 15 0 24 1362 topology 1601 4793
-> 16 0 24 1362 topology 1557 4793
-> 15 0 25 1362 topology 1557 4794
-> 16 0 25 1362 topology 1555 4794
-> 15 0 24 1362 topology 1601 4795
-> 16 0 24 1362 topology 1533 4795
-> 15 0 25 1362 topology 1533 4796
-> 16 0 25 1362 topology 1531 4796
-> 15 0 24 1362 topology 1601 4797
-> 16 0 24 1362 topology 1509 4797
-> 15 0 25 1362 topology 1509 4798
-> 16 0 25 1362 topology 1507 4798
-> 15 0 24 1362 topology 1601 4799
-> 16 0 24 1362 topology 1368 4799
-> 15 0 25 1362 topology 1368 4800
-> 16 0 25 1362 topology 1366 4800
-> 15 0 24 1362 topology 1601 4801
-> 16 0 24 1362 topology 1392 4801
-> 15 0 25 1362 topology 1392 4802
-> 16 0 25 1362 topology 1390 4802
-> 15 0 24 1362 topology 1601 4803
-> 16 0 24 1362 topology 1512 4803
-> 15 0 25 1362 topology 1512 4804
-> 16 0 25 1362 topology 1510 4804
-> 15 0 24 1362 topology 1601 4805
-> 16 0 24 1362 topology 1488 4805
-> 15 0 25 1362 topology 1488 4806
-> 16 0 25 1362 topology 1486 4806
-> 15 0 24 1362 topology 1601 4807
-> 16 0 24 1362 topology 1464 4807
-> 15 0 25 1362 topology 1464 4808
-> 16 0 25 1362 topology 1462 4808
-> 15 0 24 1362 topology 1601 4809
-> 16 0 24 1362 topology 1440 4809
-> 15 0 25 1362 topology 1440 4810
-> 16 0 25 1362 topology 1438 4810
-> 15 0 24 1362 topology 1601 4811
-> 16 0 24 1362 topology 1416 4811
-> 15 0 25 1362 topology 1416 4812
-> 16 0 25 1362 topology 1414 4812
-> 15 0 24 1362 topology 1601 4813
-> 16 0 24 1362 topology 1584 4813
-> 15 0 25 1362 topology 1584 4814
-> 16 0 25 1362 topology 1582 4814
-> 15 0 24 1362 topology 1601 4815
-> 16 0 24 1362 topology 1560 4815
-> 15 0 25 1362 topology 1560 4816
-> 16 0 25 1362 topology 1558 4816
-> 15 0 24 1362 topology 1601 4817
-> 16 0 24 1362 topology 1536 4817
-> 15 0 25 1362 topology 1536 4818
-> 16 0 25 1362 topology 1534 4818
-> 15 0 24 1362 topology 1601 4819
-> 16 0 24 1362 topology 1371 4819
-> 15 0 25 1362 topology 1371 4820
-> 16 0 25 1362 topology 1369 4820
-> 15 0 24 1362 topology 1601 4821
-> 16 0 24 1362 topology 1395 4821
-> 15 0 25 1362 topology 1395 4822
-> 16 0 25 1362 topology 1393 4822
-> 15 0 24 1362 topology 1601 4823
-> 16 0 24 1362 topology 1515 4823
-> 15 0 25 1362 topology 1515 4824
-> 16 0 25 1362 topology 1513 4824
-> 15 0 24 1362 topology 1601 4825
-> 16 0 24 1362 topology 1491 4825
-> 15 0 25 1362 topology 1491 4826
-> 16 0 25 1362 topology 1489 4826
-> 15 0 24 1362 topology 1601 4827
-> 16 0 24 1362 topology 1467 4827
-> 15 0 25 1362 topology 1467 4828
-> 16 0 25 1362 topology 1465 4828
-> 15 0 24 1362 topology 1601 4829
-> 16 0 24 1362 topology 1443 4829
-> 15 0 25 1362 topology 1443 4830
-> 16 0 25 1362 topology 1441 4830
-> 15 0 24 1362 topology 1601 4831
-> 16 0 24 1362 topology 1419 4831
-> 15 0 25 1362 topology 1419 4832
-> 16 0 25 1362 topology 1417 4832
-> 15 0 24 1362 topology 1601 4833
-> 16 0 24 1362 topology 1587 4833
-> 15 0 25 1362 topology 1587 4834
-> 16 0 25 1362 topology 1585 4834
-> 15 0 24 1362 topology 1601 4835
-> 16 0 24 1362 topology 1563 4835
-> 15 0 25 1362 topology 1563 4836
-> 16 0 25 1362 topology 1561 4836
-> 15 0 24 1362 topology 1601 4837
-> 16 0 24 1362 topology 1539 4837
-> 15 0 25 1362 topology 1539 4838
-> 16 0 25 1362 topology 1537 4838
-> 15 0 24 1362 topology 1601 4839
-> 16 0 24 1362 topology 1374 4839
-> 15 0 25 1362 topology 1374 4840
-> 16 0 25 1362 topology 1372 4840
-> 15 0 24 1362 topology 1601 4841
-> 16 0 24 1362 topology 1422 4841
-> 15 0 25 1362 topology 1422 4842
-> 16 0 25 1362 topology 1420 4842
-> 15 0 24 1362 topology 1601 4843
-> 16 0 24 1362 topology 1398 4843
-> 15 0 25 1362 topology 1398 4844
-> 16 0 25 1362 topology 1396 4844
-> 15 0 24 1362 topology 1601 4845
-> 16 0 24 1362 topology 1542 4845
-> 15 0 25 1362 topology 1542 4846
-> 16 0 25 1362 topology 1540 4846
-> 15 0 24 1362 topology 1601 4847
-> 16 0 24 1362 topology 1518 4847
-> 15 0 25 1362 topology 1518 4848
-> 16 0 25 1362 topology 1516 4848
-> 15 0 24 1362 topology 1601 4849
-> 16 0 24 1362 topology 1494 4849
-> 15 0 25 1362 topology 1494 4850
-> 16 0 25 1362 topology 1492 4850
-> 15 0 24 1362 topology 1601 4851
-> 16 0 24 1362 topology 1470 4851
-> 15 0 25 1362 topology 1470 4852
-> 16 0 25 1362 topology 1468 4852
-> 15 0 24 1362 topology 1601 4853
-> 16 0 24 1362 topology 1446 4853
-> 15 0 25 1362 topology 1446 4854
-> 16 0 25 1362 topology 1444 4854
-> 15 0 24 1362 topology 1601 4855
-> 16 0 24 1362 topology 1590 4855
-> 15 0 25 1362 topology 1590 4856
-> 16 0 25 1362 topology 1588 4856
-> 15 0 24 1362 topology 1601 4857
-> 16 0 24 1362 topology 1566 4857
-> 15 0 25 1362 topology 1566 4858
-> 16 0 25 1362 topology 1564 4858
-> 15 0 23 1362 topology 1423 4859
-> 16 0 23 1362 topology 1424 4859
-> 15 0 24 1362 topology 1424 4860
+> 15 0 26 21 topology 461 4691
+> 16 0 26 21 topology 497 4691
+> 15 0 21 21 topology 178 4692
+> 16 0 21 21 topology 495 4692
+> 15 0 21 21 topology 461 4693
+> 16 0 21 21 topology 495 4693
+> 15 0 21 21 topology 178 4694
+> 16 0 21 21 topology 461 4694
+> 15 0 27 21 topology 176 4695
+> 16 0 27 21 topology 178 4695
+> 15 0 26 21 topology 461 4696
+> 16 0 26 21 topology 459 4696
+> 15 0 26 21 topology 495 4697
+> 16 0 26 21 topology 493 4697
+> 15 0 26 21 topology 495 4698
+> 16 0 26 21 topology 497 4698
+> 15 0 26 21 topology 178 4699
+> 16 0 26 21 topology 497 4699
+> 15 0 24 1362 topology 1455 4700
+> 16 0 24 1362 topology 1601 4700
+> 15 0 23 1362 topology 1465 4701
+> 16 0 23 1362 topology 1467 4701
+> 15 0 23 1362 topology 1573 4702
+> 16 0 23 1362 topology 1575 4702
+> 15 0 25 1362 topology 1600 4703
+> 16 0 25 1362 topology 1601 4703
+> 15 0 24 1362 topology 1407 4704
+> 16 0 24 1362 topology 1601 4704
+> 15 0 23 1362 topology 1414 4705
+> 16 0 23 1362 topology 1416 4705
+> 15 0 24 1362 topology 1491 4706
+> 16 0 24 1362 topology 1601 4706
+> 15 0 23 1362 topology 1522 4707
+> 16 0 23 1362 topology 1524 4707
+> 15 0 24 1362 topology 1575 4708
+> 16 0 24 1362 topology 1601 4708
+> 15 0 24 1362 topology 1443 4709
+> 16 0 24 1362 topology 1601 4709
+> 15 0 23 1362 topology 1471 4710
+> 16 0 23 1362 topology 1473 4710
+> 15 0 23 1362 topology 1579 4711
+> 16 0 23 1362 topology 1581 4711
+> 15 0 23 1362 topology 1372 4712
+> 16 0 23 1362 topology 1373 4712
+> 15 0 24 1362 topology 1527 4713
+> 16 0 24 1362 topology 1601 4713
+> 15 0 23 1362 topology 1528 4714
+> 16 0 23 1362 topology 1530 4714
+> 15 0 24 1362 topology 1479 4715
+> 16 0 24 1362 topology 1601 4715
+> 15 0 23 1362 topology 1477 4716
+> 16 0 23 1362 topology 1479 4716
+> 15 0 24 1362 topology 1563 4717
+> 16 0 24 1362 topology 1601 4717
+> 15 0 23 1362 topology 1585 4718
+> 16 0 23 1362 topology 1587 4718
+> 15 0 24 1362 topology 1421 4719
+> 16 0 24 1362 topology 1601 4719
+> 15 0 23 1362 topology 1534 4720
+> 16 0 23 1362 topology 1536 4720
+> 15 0 24 1362 topology 1599 4721
+> 16 0 24 1362 topology 1601 4721
+> 15 0 24 1362 topology 1481 4722
+> 16 0 24 1362 topology 1601 4722
+> 15 0 23 1362 topology 1591 4723
+> 16 0 23 1362 topology 1593 4723
+> 15 0 24 1362 topology 1403 4724
+> 16 0 24 1362 topology 1601 4724
+> 15 0 24 1362 topology 1541 4725
+> 16 0 24 1362 topology 1601 4725
+> 15 0 24 1362 topology 1463 4726
+> 16 0 24 1362 topology 1601 4726
+> 15 0 23 1362 topology 1597 4727
+> 16 0 23 1362 topology 1599 4727
+> 15 0 24 1362 topology 1380 4728
+> 16 0 24 1362 topology 1601 4728
+> 15 0 24 1362 topology 1523 4729
+> 16 0 24 1362 topology 1601 4729
+> 15 0 24 1362 topology 1445 4730
+> 16 0 24 1362 topology 1601 4730
+> 15 0 24 1362 topology 1583 4731
+> 16 0 24 1362 topology 1601 4731
+> 15 0 24 1362 topology 1505 4732
+> 16 0 24 1362 topology 1601 4732
+> 15 0 24 1362 topology 1565 4733
+> 16 0 24 1362 topology 1601 4733
+> 15 0 24 1362 topology 1376 4734
+> 16 0 24 1362 topology 1601 4734
+> 15 0 23 1362 topology 1381 4735
+> 16 0 23 1362 topology 1383 4735
+> 15 0 24 1362 topology 1398 4736
+> 16 0 24 1362 topology 1601 4736
+> 15 0 24 1362 topology 1482 4737
+> 16 0 24 1362 topology 1601 4737
+> 15 0 24 1362 topology 1434 4738
+> 16 0 24 1362 topology 1601 4738
+> 15 0 24 1362 topology 1518 4739
+> 16 0 24 1362 topology 1601 4739
+> 15 0 23 1362 topology 1423 4740
+> 16 0 23 1362 topology 1424 4740
+> 15 0 24 1362 topology 1470 4741
+> 16 0 24 1362 topology 1601 4741
+> 15 0 23 1362 topology 1399 4742
+> 16 0 23 1362 topology 1400 4742
+> 15 0 24 1362 topology 1554 4743
+> 16 0 24 1362 topology 1601 4743
+> 15 0 23 1362 topology 1375 4744
+> 16 0 23 1362 topology 1376 4744
+> 15 0 23 1362 topology 1483 4745
+> 16 0 23 1362 topology 1484 4745
+> 15 0 24 1362 topology 1506 4746
+> 16 0 24 1362 topology 1601 4746
+> 15 0 24 1362 topology 1590 4747
+> 16 0 24 1362 topology 1601 4747
+> 15 0 23 1362 topology 1459 4748
+> 16 0 23 1362 topology 1460 4748
+> 15 0 23 1362 topology 1435 4749
+> 16 0 23 1362 topology 1436 4749
+> 15 0 23 1362 topology 1543 4750
+> 16 0 23 1362 topology 1544 4750
+> 15 0 23 1362 topology 1411 4751
+> 16 0 23 1362 topology 1412 4751
+> 15 0 24 1362 topology 1430 4752
+> 16 0 24 1362 topology 1601 4752
+> 15 0 23 1362 topology 1519 4753
+> 16 0 23 1362 topology 1520 4753
+> 15 0 24 1362 topology 1371 4754
+> 16 0 24 1362 topology 1601 4754
+> 15 0 24 1362 topology 1490 4755
+> 16 0 24 1362 topology 1601 4755
+> 15 0 23 1362 topology 1495 4756
+> 16 0 23 1362 topology 1496 4756
+> 15 0 24 1362 topology 1412 4757
+> 16 0 24 1362 topology 1601 4757
+> 15 0 23 1362 topology 1471 4758
+> 16 0 23 1362 topology 1472 4758
+> 15 0 24 1362 topology 1550 4759
+> 16 0 24 1362 topology 1601 4759
+> 15 0 23 1362 topology 1579 4760
+> 16 0 23 1362 topology 1580 4760
+> 15 0 24 1362 topology 1472 4761
+> 16 0 24 1362 topology 1601 4761
+> 15 0 23 1362 topology 1447 4762
+> 16 0 23 1362 topology 1448 4762
+> 15 0 23 1362 topology 1555 4763
+> 16 0 23 1362 topology 1556 4763
+> 15 0 23 1362 topology 1366 4764
+> 16 0 23 1362 topology 1368 4764
+> 15 0 24 1362 topology 1532 4765
+> 16 0 24 1362 topology 1601 4765
+> 15 0 23 1362 topology 1531 4766
+> 16 0 23 1362 topology 1532 4766
+> 15 0 23 1362 topology 1423 4767
+> 16 0 23 1362 topology 1425 4767
+> 15 0 24 1362 topology 1592 4768
+> 16 0 24 1362 topology 1601 4768
+> 15 0 23 1362 topology 1507 4769
+> 16 0 23 1362 topology 1508 4769
+> 15 0 23 1362 topology 1480 4770
+> 16 0 23 1362 topology 1482 4770
+> 15 0 23 1362 topology 1591 4771
+> 16 0 23 1362 topology 1592 4771
+> 15 0 23 1362 topology 1429 4772
+> 16 0 23 1362 topology 1431 4772
+> 15 0 23 1362 topology 1567 4773
+> 16 0 23 1362 topology 1568 4773
+> 15 0 23 1362 topology 1486 4774
+> 16 0 23 1362 topology 1488 4774
+> 15 0 24 1362 topology 1425 4775
+> 16 0 24 1362 topology 1601 4775
+> 15 0 23 1362 topology 1435 4776
+> 16 0 23 1362 topology 1437 4776
+> 15 0 23 1362 topology 1543 4777
+> 16 0 23 1362 topology 1545 4777
+> 15 0 24 1362 topology 1385 4778
+> 16 0 24 1362 topology 1601 4778
+> 15 0 23 1362 topology 1492 4779
+> 16 0 23 1362 topology 1494 4779
+> 15 0 24 1362 topology 1461 4780
+> 16 0 24 1362 topology 1601 4780
+> 15 0 23 1362 topology 1441 4781
+> 16 0 23 1362 topology 1443 4781
+> 15 0 24 1362 topology 1545 4782
+> 16 0 24 1362 topology 1601 4782
+> 15 0 23 1362 topology 1549 4783
+> 16 0 23 1362 topology 1551 4783
+> 15 0 24 1362 topology 1413 4784
+> 16 0 24 1362 topology 1601 4784
+> 15 0 24 1362 topology 1497 4785
+> 16 0 24 1362 topology 1601 4785
+> 15 0 23 1362 topology 1498 4786
+> 16 0 23 1362 topology 1500 4786
+> 15 0 24 1362 topology 1581 4787
+> 16 0 24 1362 topology 1601 4787
+> 15 0 23 1362 topology 1447 4788
+> 16 0 23 1362 topology 1449 4788
+> 15 0 24 1362 topology 1449 4789
+> 16 0 24 1362 topology 1601 4789
+> 15 0 23 1362 topology 1555 4790
+> 16 0 23 1362 topology 1557 4790
+> 15 0 24 1362 topology 1533 4791
+> 16 0 24 1362 topology 1601 4791
+> 15 0 23 1362 topology 1504 4792
+> 16 0 23 1362 topology 1506 4792
+> 15 0 23 1362 topology 1378 4793
+> 16 0 23 1362 topology 1379 4793
+> 15 0 23 1362 topology 1561 4794
+> 16 0 23 1362 topology 1563 4794
+> 15 0 24 1362 topology 1569 4795
+> 16 0 24 1362 topology 1601 4795
+> 15 0 24 1362 topology 1397 4796
+> 16 0 24 1362 topology 1601 4796
+> 15 0 24 1362 topology 1457 4797
+> 16 0 24 1362 topology 1601 4797
+> 15 0 23 1362 topology 1567 4798
+> 16 0 23 1362 topology 1569 4798
+> 15 0 24 1362 topology 1517 4799
+> 16 0 24 1362 topology 1601 4799
+> 15 0 24 1362 topology 1439 4800
+> 16 0 24 1362 topology 1601 4800
+> 15 0 24 1362 topology 1577 4801
+> 16 0 24 1362 topology 1601 4801
+> 15 0 24 1362 topology 1499 4802
+> 16 0 24 1362 topology 1601 4802
+> 15 0 24 1362 topology 1386 4803
+> 16 0 24 1362 topology 1601 4803
+> 15 0 24 1362 topology 1559 4804
+> 16 0 24 1362 topology 1601 4804
+> 15 0 23 1362 topology 1375 4805
+> 16 0 23 1362 topology 1377 4805
+> 15 0 24 1362 topology 1370 4806
+> 16 0 24 1362 topology 1601 4806
+> 15 0 24 1362 topology 1452 4807
+> 16 0 24 1362 topology 1601 4807
+> 15 0 23 1362 topology 1390 4808
+> 16 0 23 1362 topology 1391 4808
+> 15 0 24 1362 topology 1404 4809
+> 16 0 24 1362 topology 1601 4809
+> 15 0 24 1362 topology 1488 4810
+> 16 0 24 1362 topology 1601 4810
+> 15 0 24 1362 topology 1572 4811
+> 16 0 24 1362 topology 1601 4811
+> 15 0 24 1362 topology 1440 4812
+> 16 0 24 1362 topology 1601 4812
+> 15 0 23 1362 topology 1450 4813
+> 16 0 23 1362 topology 1451 4813
+> 15 0 24 1362 topology 1524 4814
+> 16 0 24 1362 topology 1601 4814
+> 15 0 23 1362 topology 1426 4815
+> 16 0 23 1362 topology 1427 4815
+> 15 0 24 1362 topology 1476 4816
+> 16 0 24 1362 topology 1601 4816
+> 15 0 23 1362 topology 1402 4817
+> 16 0 23 1362 topology 1403 4817
+> 15 0 23 1362 topology 1510 4818
+> 16 0 23 1362 topology 1511 4818
+> 15 0 24 1362 topology 1560 4819
+> 16 0 24 1362 topology 1601 4819
+> 15 0 23 1362 topology 1486 4820
+> 16 0 23 1362 topology 1487 4820
+> 15 0 24 1362 topology 1596 4821
+> 16 0 24 1362 topology 1601 4821
+> 15 0 23 1362 topology 1381 4822
+> 16 0 23 1362 topology 1382 4822
+> 15 0 24 1362 topology 1424 4823
+> 16 0 24 1362 topology 1601 4823
+> 15 0 23 1362 topology 1462 4824
+> 16 0 23 1362 topology 1463 4824
+> 15 0 23 1362 topology 1570 4825
+> 16 0 23 1362 topology 1571 4825
+> 15 0 23 1362 topology 1438 4826
+> 16 0 23 1362 topology 1439 4826
+> 15 0 24 1362 topology 1484 4827
+> 16 0 24 1362 topology 1601 4827
+> 15 0 23 1362 topology 1546 4828
+> 16 0 23 1362 topology 1547 4828
+> 15 0 24 1362 topology 1406 4829
+> 16 0 24 1362 topology 1601 4829
+> 15 0 23 1362 topology 1414 4830
+> 16 0 23 1362 topology 1415 4830
+> 15 0 23 1362 topology 1522 4831
+> 16 0 23 1362 topology 1523 4831
+> 15 0 24 1362 topology 1544 4832
+> 16 0 24 1362 topology 1601 4832
+> 15 0 24 1362 topology 1377 4833
+> 16 0 24 1362 topology 1601 4833
+> 15 0 24 1362 topology 1466 4834
+> 16 0 24 1362 topology 1601 4834
+> 15 0 23 1362 topology 1498 4835
+> 16 0 23 1362 topology 1499 4835
+> 15 0 24 1362 topology 1526 4836
+> 16 0 24 1362 topology 1601 4836
+> 15 0 24 1362 topology 1448 4837
+> 16 0 24 1362 topology 1601 4837
+> 15 0 23 1362 topology 1474 4838
+> 16 0 23 1362 topology 1475 4838
+> 15 0 23 1362 topology 1582 4839
+> 16 0 23 1362 topology 1583 4839
+> 15 0 23 1362 topology 1393 4840
+> 16 0 23 1362 topology 1395 4840
+> 15 0 24 1362 topology 1586 4841
+> 16 0 24 1362 topology 1601 4841
+> 15 0 24 1362 topology 1508 4842
+> 16 0 24 1362 topology 1601 4842
+> 15 0 23 1362 topology 1558 4843
+> 16 0 23 1362 topology 1559 4843
+> 15 0 23 1362 topology 1450 4844
+> 16 0 23 1362 topology 1452 4844
+> 15 0 23 1362 topology 1534 4845
+> 16 0 23 1362 topology 1535 4845
+> 15 0 24 1362 topology 1568 4846
+> 16 0 24 1362 topology 1601 4846
+> 15 0 23 1362 topology 1399 4847
+> 16 0 23 1362 topology 1401 4847
+> 15 0 23 1362 topology 1456 4848
+> 16 0 23 1362 topology 1458 4848
+> 15 0 23 1362 topology 1594 4849
+> 16 0 23 1362 topology 1595 4849
+> 15 0 23 1362 topology 1405 4850
+> 16 0 23 1362 topology 1407 4850
+> 15 0 23 1362 topology 1513 4851
+> 16 0 23 1362 topology 1515 4851
+> 15 0 24 1362 topology 1395 4852
+> 16 0 24 1362 topology 1601 4852
+> 15 0 24 1362 topology 1379 4853
+> 16 0 24 1362 topology 1601 4853
+> 15 0 23 1362 topology 1462 4854
+> 16 0 23 1362 topology 1464 4854
+> 15 0 23 1362 topology 1570 4855
+> 16 0 23 1362 topology 1572 4855
+> 15 0 24 1362 topology 1431 4856
+> 16 0 24 1362 topology 1601 4856
+> 15 0 23 1362 topology 1411 4857
+> 16 0 23 1362 topology 1413 4857
+> 15 0 23 1362 topology 1384 4858
+> 16 0 23 1362 topology 1386 4858
+> 15 0 23 1362 topology 1519 4859
+> 16 0 23 1362 topology 1521 4859
+> 15 0 24 1362 topology 1515 4860
 > 16 0 24 1362 topology 1601 4860
-> 15 0 24 1362 topology 1601 4861
-> 16 0 24 1362 topology 1377 4861
-> 15 0 25 1362 topology 1377 4862
-> 16 0 25 1362 topology 1375 4862
-> 15 0 23 1362 topology 1399 4863
-> 16 0 23 1362 topology 1400 4863
-> 15 0 24 1362 topology 1400 4864
-> 16 0 24 1362 topology 1601 4864
-> 15 0 23 1362 topology 1543 4865
-> 16 0 23 1362 topology 1544 4865
-> 15 0 24 1362 topology 1544 4866
+> 15 0 23 1362 topology 1468 4861
+> 16 0 23 1362 topology 1470 4861
+> 15 0 23 1362 topology 1576 4862
+> 16 0 23 1362 topology 1578 4862
+> 15 0 24 1362 topology 1467 4863
+> 16 0 24 1362 topology 1601 4863
+> 15 0 23 1362 topology 1417 4864
+> 16 0 23 1362 topology 1419 4864
+> 15 0 23 1362 topology 1525 4865
+> 16 0 23 1362 topology 1527 4865
+> 15 0 24 1362 topology 1551 4866
 > 16 0 24 1362 topology 1601 4866
-> 15 0 23 1362 topology 1519 4867
-> 16 0 23 1362 topology 1520 4867
-> 15 0 24 1362 topology 1520 4868
+> 15 0 24 1362 topology 1419 4867
+> 16 0 24 1362 topology 1601 4867
+> 15 0 24 1362 topology 1503 4868
 > 16 0 24 1362 topology 1601 4868
-> 15 0 23 1362 topology 1495 4869
-> 16 0 23 1362 topology 1496 4869
-> 15 0 24 1362 topology 1496 4870
-> 16 0 24 1362 topology 1601 4870
-> 15 0 23 1362 topology 1471 4871
-> 16 0 23 1362 topology 1472 4871
-> 15 0 24 1362 topology 1472 4872
-> 16 0 24 1362 topology 1601 4872
-> 15 0 23 1362 topology 1447 4873
-> 16 0 23 1362 topology 1448 4873
-> 15 0 24 1362 topology 1448 4874
+> 15 0 23 1362 topology 1474 4869
+> 16 0 23 1362 topology 1476 4869
+> 15 0 23 1362 topology 1582 4870
+> 16 0 23 1362 topology 1584 4870
+> 15 0 24 1362 topology 1587 4871
+> 16 0 24 1362 topology 1601 4871
+> 15 0 23 1362 topology 1531 4872
+> 16 0 23 1362 topology 1533 4872
+> 15 0 24 1362 topology 1391 4873
+> 16 0 24 1362 topology 1601 4873
+> 15 0 24 1362 topology 1539 4874
 > 16 0 24 1362 topology 1601 4874
-> 15 0 23 1362 topology 1591 4875
-> 16 0 23 1362 topology 1592 4875
-> 15 0 24 1362 topology 1592 4876
+> 15 0 23 1362 topology 1588 4875
+> 16 0 23 1362 topology 1590 4875
+> 15 0 24 1362 topology 1451 4876
 > 16 0 24 1362 topology 1601 4876
-> 15 0 23 1362 topology 1567 4877
-> 16 0 23 1362 topology 1568 4877
-> 15 0 24 1362 topology 1568 4878
-> 16 0 24 1362 topology 1601 4878
-> 15 0 23 1362 topology 1378 4879
-> 16 0 23 1362 topology 1379 4879
-> 15 0 24 1362 topology 1379 4880
+> 15 0 23 1362 topology 1537 4877
+> 16 0 23 1362 topology 1539 4877
+> 15 0 23 1362 topology 1384 4878
+> 16 0 23 1362 topology 1385 4878
+> 15 0 24 1362 topology 1368 4879
+> 16 0 24 1362 topology 1601 4879
+> 15 0 24 1362 topology 1511 4880
 > 16 0 24 1362 topology 1601 4880
-> 15 0 23 1362 topology 1450 4881
-> 16 0 23 1362 topology 1451 4881
-> 15 0 24 1362 topology 1451 4882
-> 16 0 24 1362 topology 1601 4882
-> 15 0 23 1362 topology 1426 4883
-> 16 0 23 1362 topology 1427 4883
-> 15 0 24 1362 topology 1427 4884
+> 15 0 24 1362 topology 1433 4881
+> 16 0 24 1362 topology 1601 4881
+> 15 0 23 1362 topology 1594 4882
+> 16 0 23 1362 topology 1596 4882
+> 15 0 24 1362 topology 1571 4883
+> 16 0 24 1362 topology 1601 4883
+> 15 0 24 1362 topology 1493 4884
 > 16 0 24 1362 topology 1601 4884
-> 15 0 23 1362 topology 1402 4885
-> 16 0 23 1362 topology 1403 4885
-> 15 0 24 1362 topology 1403 4886
+> 15 0 24 1362 topology 1415 4885
+> 16 0 24 1362 topology 1601 4885
+> 15 0 24 1362 topology 1553 4886
 > 16 0 24 1362 topology 1601 4886
-> 15 0 23 1362 topology 1570 4887
-> 16 0 23 1362 topology 1571 4887
-> 15 0 24 1362 topology 1571 4888
+> 15 0 24 1362 topology 1475 4887
+> 16 0 24 1362 topology 1601 4887
+> 15 0 24 1362 topology 1535 4888
 > 16 0 24 1362 topology 1601 4888
-> 15 0 23 1362 topology 1546 4889
-> 16 0 23 1362 topology 1547 4889
-> 15 0 24 1362 topology 1547 4890
+> 15 0 23 1362 topology 1369 4889
+> 16 0 23 1362 topology 1371 4889
+> 15 0 24 1362 topology 1595 4890
 > 16 0 24 1362 topology 1601 4890
-> 15 0 23 1362 topology 1522 4891
-> 16 0 23 1362 topology 1523 4891
-> 15 0 24 1362 topology 1523 4892
+> 15 0 24 1362 topology 1364 4891
+> 16 0 24 1362 topology 1601 4891
+> 15 0 24 1362 topology 1422 4892
 > 16 0 24 1362 topology 1601 4892
-> 15 0 23 1362 topology 1498 4893
-> 16 0 23 1362 topology 1499 4893
-> 15 0 24 1362 topology 1499 4894
+> 15 0 23 1362 topology 1363 4893
+> 16 0 23 1362 topology 1364 4893
+> 15 0 24 1362 topology 1458 4894
 > 16 0 24 1362 topology 1601 4894
-> 15 0 23 1362 topology 1474 4895
-> 16 0 23 1362 topology 1475 4895
-> 15 0 24 1362 topology 1475 4896
+> 15 0 23 1362 topology 1393 4895
+> 16 0 23 1362 topology 1394 4895
+> 15 0 24 1362 topology 1388 4896
 > 16 0 24 1362 topology 1601 4896
-> 15 0 23 1362 topology 1594 4897
-> 16 0 23 1362 topology 1595 4897
-> 15 0 24 1362 topology 1595 4898
+> 15 0 24 1362 topology 1542 4897
+> 16 0 24 1362 topology 1601 4897
+> 15 0 24 1362 topology 1410 4898
 > 16 0 24 1362 topology 1601 4898
-> 15 0 23 1362 topology 1381 4899
-> 16 0 23 1362 topology 1382 4899
-> 15 0 24 1362 topology 1382 4900
+> 15 0 24 1362 topology 1494 4899
+> 16 0 24 1362 topology 1601 4899
+> 15 0 24 1362 topology 1578 4900
 > 16 0 24 1362 topology 1601 4900
 > 15 0 23 1362 topology 1453 4901
 > 16 0 23 1362 topology 1454 4901
-> 15 0 24 1362 topology 1454 4902
+> 15 0 24 1362 topology 1446 4902
 > 16 0 24 1362 topology 1601 4902
-> 15 0 23 1362 topology 1429 4903
-> 16 0 23 1362 topology 1430 4903
-> 15 0 24 1362 topology 1430 4904
-> 16 0 24 1362 topology 1601 4904
+> 15 0 24 1362 topology 1530 4903
+> 16 0 24 1362 topology 1601 4903
+> 15 0 23 1362 topology 1429 4904
+> 16 0 23 1362 topology 1430 4904
 > 15 0 23 1362 topology 1405 4905
 > 16 0 23 1362 topology 1406 4905
-> 15 0 24 1362 topology 1406 4906
-> 16 0 24 1362 topology 1601 4906
-> 15 0 23 1362 topology 1573 4907
-> 16 0 23 1362 topology 1574 4907
-> 15 0 24 1362 topology 1574 4908
-> 16 0 24 1362 topology 1601 4908
-> 15 0 23 1362 topology 1549 4909
-> 16 0 23 1362 topology 1550 4909
-> 15 0 24 1362 topology 1550 4910
-> 16 0 24 1362 topology 1601 4910
-> 15 0 23 1362 topology 1525 4911
-> 16 0 23 1362 topology 1526 4911
-> 15 0 24 1362 topology 1526 4912
+> 15 0 23 1362 topology 1513 4906
+> 16 0 23 1362 topology 1514 4906
+> 15 0 24 1362 topology 1566 4907
+> 16 0 24 1362 topology 1601 4907
+> 15 0 23 1362 topology 1489 4908
+> 16 0 23 1362 topology 1490 4908
+> 15 0 24 1362 topology 1400 4909
+> 16 0 24 1362 topology 1601 4909
+> 15 0 23 1362 topology 1465 4910
+> 16 0 23 1362 topology 1466 4910
+> 15 0 23 1362 topology 1573 4911
+> 16 0 23 1362 topology 1574 4911
+> 15 0 24 1362 topology 1460 4912
 > 16 0 24 1362 topology 1601 4912
-> 15 0 23 1362 topology 1501 4913
-> 16 0 23 1362 topology 1502 4913
-> 15 0 24 1362 topology 1502 4914
-> 16 0 24 1362 topology 1601 4914
-> 15 0 23 1362 topology 1477 4915
-> 16 0 23 1362 topology 1478 4915
-> 15 0 24 1362 topology 1478 4916
+> 15 0 23 1362 topology 1441 4913
+> 16 0 23 1362 topology 1442 4913
+> 15 0 23 1362 topology 1387 4914
+> 16 0 23 1362 topology 1388 4914
+> 15 0 23 1362 topology 1549 4915
+> 16 0 23 1362 topology 1550 4915
+> 15 0 24 1362 topology 1520 4916
 > 16 0 24 1362 topology 1601 4916
-> 15 0 23 1362 topology 1597 4917
-> 16 0 23 1362 topology 1598 4917
-> 15 0 24 1362 topology 1598 4918
-> 16 0 24 1362 topology 1601 4918
-> 15 0 23 1362 topology 1384 4919
-> 16 0 23 1362 topology 1385 4919
-> 15 0 24 1362 topology 1385 4920
+> 15 0 24 1362 topology 1442 4917
+> 16 0 24 1362 topology 1601 4917
+> 15 0 23 1362 topology 1417 4918
+> 16 0 23 1362 topology 1418 4918
+> 15 0 23 1362 topology 1525 4919
+> 16 0 23 1362 topology 1526 4919
+> 15 0 24 1362 topology 1383 4920
 > 16 0 24 1362 topology 1601 4920
-> 15 0 23 1362 topology 1480 4921
-> 16 0 23 1362 topology 1481 4921
-> 15 0 24 1362 topology 1481 4922
+> 15 0 24 1362 topology 1580 4921
+> 16 0 24 1362 topology 1601 4921
+> 15 0 24 1362 topology 1502 4922
 > 16 0 24 1362 topology 1601 4922
-> 15 0 23 1362 topology 1456 4923
-> 16 0 23 1362 topology 1457 4923
-> 15 0 24 1362 topology 1457 4924
-> 16 0 24 1362 topology 1601 4924
-> 15 0 23 1362 topology 1432 4925
-> 16 0 23 1362 topology 1433 4925
-> 15 0 24 1362 topology 1433 4926
+> 15 0 23 1362 topology 1501 4923
+> 16 0 23 1362 topology 1502 4923
+> 15 0 23 1362 topology 1420 4924
+> 16 0 23 1362 topology 1422 4924
+> 15 0 23 1362 topology 1477 4925
+> 16 0 23 1362 topology 1478 4925
+> 15 0 24 1362 topology 1562 4926
 > 16 0 24 1362 topology 1601 4926
-> 15 0 23 1362 topology 1408 4927
-> 16 0 23 1362 topology 1409 4927
-> 15 0 24 1362 topology 1409 4928
-> 16 0 24 1362 topology 1601 4928
-> 15 0 23 1362 topology 1576 4929
-> 16 0 23 1362 topology 1577 4929
-> 15 0 24 1362 topology 1577 4930
-> 16 0 24 1362 topology 1601 4930
-> 15 0 23 1362 topology 1552 4931
-> 16 0 23 1362 topology 1553 4931
-> 15 0 24 1362 topology 1553 4932
-> 16 0 24 1362 topology 1601 4932
-> 15 0 23 1362 topology 1528 4933
-> 16 0 23 1362 topology 1529 4933
-> 15 0 24 1362 topology 1529 4934
+> 15 0 23 1362 topology 1585 4927
+> 16 0 23 1362 topology 1586 4927
+> 15 0 23 1362 topology 1561 4928
+> 16 0 23 1362 topology 1562 4928
+> 15 0 23 1362 topology 1426 4929
+> 16 0 23 1362 topology 1428 4929
+> 15 0 23 1362 topology 1537 4930
+> 16 0 23 1362 topology 1538 4930
+> 15 0 23 1362 topology 1483 4931
+> 16 0 23 1362 topology 1485 4931
+> 15 0 23 1362 topology 1432 4932
+> 16 0 23 1362 topology 1434 4932
+> 15 0 23 1362 topology 1378 4933
+> 16 0 23 1362 topology 1380 4933
+> 15 0 24 1362 topology 1373 4934
 > 16 0 24 1362 topology 1601 4934
-> 15 0 23 1362 topology 1504 4935
-> 16 0 23 1362 topology 1505 4935
-> 15 0 24 1362 topology 1505 4936
-> 16 0 24 1362 topology 1601 4936
-> 15 0 23 1362 topology 1363 4937
-> 16 0 23 1362 topology 1364 4937
-> 15 0 24 1362 topology 1364 4938
+> 15 0 23 1362 topology 1540 4935
+> 16 0 23 1362 topology 1542 4935
+> 15 0 23 1362 topology 1597 4936
+> 16 0 23 1362 topology 1598 4936
+> 15 0 23 1362 topology 1489 4937
+> 16 0 23 1362 topology 1491 4937
+> 15 0 24 1362 topology 1401 4938
 > 16 0 24 1362 topology 1601 4938
-> 15 0 23 1362 topology 1387 4939
-> 16 0 23 1362 topology 1388 4939
-> 15 0 24 1362 topology 1388 4940
-> 16 0 24 1362 topology 1601 4940
-> 15 0 23 1362 topology 1483 4941
-> 16 0 23 1362 topology 1484 4941
-> 15 0 24 1362 topology 1484 4942
-> 16 0 24 1362 topology 1601 4942
-> 15 0 23 1362 topology 1459 4943
-> 16 0 23 1362 topology 1460 4943
-> 15 0 24 1362 topology 1460 4944
+> 15 0 24 1362 topology 1485 4939
+> 16 0 24 1362 topology 1601 4939
+> 15 0 23 1362 topology 1438 4940
+> 16 0 23 1362 topology 1440 4940
+> 15 0 23 1362 topology 1546 4941
+> 16 0 23 1362 topology 1548 4941
+> 15 0 23 1362 topology 1366 4942
+> 16 0 23 1362 topology 1367 4942
+> 15 0 23 1362 topology 1495 4943
+> 16 0 23 1362 topology 1497 4943
+> 15 0 24 1362 topology 1437 4944
 > 16 0 24 1362 topology 1601 4944
-> 15 0 23 1362 topology 1435 4945
-> 16 0 23 1362 topology 1436 4945
-> 15 0 24 1362 topology 1436 4946
-> 16 0 24 1362 topology 1601 4946
-> 15 0 23 1362 topology 1411 4947
-> 16 0 23 1362 topology 1412 4947
-> 15 0 24 1362 topology 1412 4948
+> 15 0 24 1362 topology 1521 4945
+> 16 0 24 1362 topology 1601 4945
+> 15 0 23 1362 topology 1444 4946
+> 16 0 23 1362 topology 1446 4946
+> 15 0 23 1362 topology 1552 4947
+> 16 0 23 1362 topology 1554 4947
+> 15 0 24 1362 topology 1473 4948
 > 16 0 24 1362 topology 1601 4948
-> 15 0 23 1362 topology 1579 4949
-> 16 0 23 1362 topology 1580 4949
-> 15 0 24 1362 topology 1580 4950
+> 15 0 23 1362 topology 1501 4949
+> 16 0 23 1362 topology 1503 4949
+> 15 0 24 1362 topology 1557 4950
 > 16 0 24 1362 topology 1601 4950
-> 15 0 23 1362 topology 1555 4951
-> 16 0 23 1362 topology 1556 4951
-> 15 0 24 1362 topology 1556 4952
-> 16 0 24 1362 topology 1601 4952
-> 15 0 23 1362 topology 1531 4953
-> 16 0 23 1362 topology 1532 4953
-> 15 0 24 1362 topology 1532 4954
-> 16 0 24 1362 topology 1601 4954
-> 15 0 23 1362 topology 1507 4955
-> 16 0 23 1362 topology 1508 4955
-> 15 0 24 1362 topology 1508 4956
-> 16 0 24 1362 topology 1601 4956
-> 15 0 23 1362 topology 1366 4957
-> 16 0 23 1362 topology 1367 4957
-> 15 0 24 1362 topology 1367 4958
+> 15 0 24 1362 topology 1509 4951
+> 16 0 24 1362 topology 1601 4951
+> 15 0 23 1362 topology 1558 4952
+> 16 0 23 1362 topology 1560 4952
+> 15 0 24 1362 topology 1593 4953
+> 16 0 24 1362 topology 1601 4953
+> 15 0 23 1362 topology 1507 4954
+> 16 0 23 1362 topology 1509 4954
+> 15 0 24 1362 topology 1427 4955
+> 16 0 24 1362 topology 1601 4955
+> 15 0 23 1362 topology 1564 4956
+> 16 0 23 1362 topology 1566 4956
+> 15 0 24 1362 topology 1487 4957
+> 16 0 24 1362 topology 1601 4957
+> 15 0 24 1362 topology 1409 4958
 > 16 0 24 1362 topology 1601 4958
-> 15 0 23 1362 topology 1390 4959
-> 16 0 23 1362 topology 1391 4959
-> 15 0 24 1362 topology 1391 4960
+> 15 0 24 1362 topology 1374 4959
+> 16 0 24 1362 topology 1601 4959
+> 15 0 24 1362 topology 1547 4960
 > 16 0 24 1362 topology 1601 4960
-> 15 0 23 1362 topology 1510 4961
-> 16 0 23 1362 topology 1511 4961
-> 15 0 24 1362 topology 1511 4962
-> 16 0 24 1362 topology 1601 4962
-> 15 0 23 1362 topology 1486 4963
-> 16 0 23 1362 topology 1487 4963
-> 15 0 24 1362 topology 1487 4964
+> 15 0 24 1362 topology 1469 4961
+> 16 0 24 1362 topology 1601 4961
+> 15 0 23 1362 topology 1363 4962
+> 16 0 23 1362 topology 1365 4962
+> 15 0 24 1362 topology 1529 4963
+> 16 0 24 1362 topology 1601 4963
+> 15 0 24 1362 topology 1589 4964
 > 16 0 24 1362 topology 1601 4964
-> 15 0 23 1362 topology 1462 4965
-> 16 0 23 1362 topology 1463 4965
-> 15 0 24 1362 topology 1463 4966
+> 15 0 24 1362 topology 1392 4965
+> 16 0 24 1362 topology 1601 4965
+> 15 0 24 1362 topology 1428 4966
 > 16 0 24 1362 topology 1601 4966
-> 15 0 23 1362 topology 1438 4967
-> 16 0 23 1362 topology 1439 4967
-> 15 0 24 1362 topology 1439 4968
+> 15 0 24 1362 topology 1382 4967
+> 16 0 24 1362 topology 1601 4967
+> 15 0 24 1362 topology 1512 4968
 > 16 0 24 1362 topology 1601 4968
-> 15 0 23 1362 topology 1414 4969
-> 16 0 23 1362 topology 1415 4969
-> 15 0 24 1362 topology 1415 4970
+> 15 0 23 1362 topology 1420 4969
+> 16 0 23 1362 topology 1421 4969
+> 15 0 24 1362 topology 1464 4970
 > 16 0 24 1362 topology 1601 4970
-> 15 0 23 1362 topology 1582 4971
-> 16 0 23 1362 topology 1583 4971
-> 15 0 24 1362 topology 1583 4972
-> 16 0 24 1362 topology 1601 4972
-> 15 0 23 1362 topology 1558 4973
-> 16 0 23 1362 topology 1559 4973
-> 15 0 24 1362 topology 1559 4974
+> 15 0 23 1362 topology 1387 4971
+> 16 0 23 1362 topology 1389 4971
+> 15 0 23 1362 topology 1396 4972
+> 16 0 23 1362 topology 1397 4972
+> 15 0 23 1362 topology 1369 4973
+> 16 0 23 1362 topology 1370 4973
+> 15 0 24 1362 topology 1548 4974
 > 16 0 24 1362 topology 1601 4974
-> 15 0 23 1362 topology 1534 4975
-> 16 0 23 1362 topology 1535 4975
-> 15 0 24 1362 topology 1535 4976
+> 15 0 24 1362 topology 1416 4975
+> 16 0 24 1362 topology 1601 4975
+> 15 0 24 1362 topology 1500 4976
 > 16 0 24 1362 topology 1601 4976
-> 15 0 23 1362 topology 1369 4977
-> 16 0 23 1362 topology 1370 4977
-> 15 0 24 1362 topology 1370 4978
+> 15 0 23 1362 topology 1480 4977
+> 16 0 23 1362 topology 1481 4977
+> 15 0 24 1362 topology 1584 4978
 > 16 0 24 1362 topology 1601 4978
-> 15 0 23 1362 topology 1393 4979
-> 16 0 23 1362 topology 1394 4979
-> 15 0 24 1362 topology 1394 4980
+> 15 0 23 1362 topology 1456 4979
+> 16 0 23 1362 topology 1457 4979
+> 15 0 24 1362 topology 1536 4980
 > 16 0 24 1362 topology 1601 4980
-> 15 0 23 1362 topology 1513 4981
-> 16 0 23 1362 topology 1514 4981
-> 15 0 24 1362 topology 1514 4982
-> 16 0 24 1362 topology 1601 4982
-> 15 0 23 1362 topology 1489 4983
-> 16 0 23 1362 topology 1490 4983
-> 15 0 24 1362 topology 1490 4984
-> 16 0 24 1362 topology 1601 4984
-> 15 0 23 1362 topology 1465 4985
-> 16 0 23 1362 topology 1466 4985
-> 15 0 24 1362 topology 1466 4986
+> 15 0 23 1362 topology 1432 4981
+> 16 0 23 1362 topology 1433 4981
+> 15 0 23 1362 topology 1540 4982
+> 16 0 23 1362 topology 1541 4982
+> 15 0 24 1362 topology 1394 4983
+> 16 0 24 1362 topology 1601 4983
+> 15 0 23 1362 topology 1408 4984
+> 16 0 23 1362 topology 1409 4984
+> 15 0 23 1362 topology 1516 4985
+> 16 0 23 1362 topology 1517 4985
+> 15 0 24 1362 topology 1454 4986
 > 16 0 24 1362 topology 1601 4986
-> 15 0 23 1362 topology 1441 4987
-> 16 0 23 1362 topology 1442 4987
-> 15 0 24 1362 topology 1442 4988
-> 16 0 24 1362 topology 1601 4988
-> 15 0 23 1362 topology 1417 4989
-> 16 0 23 1362 topology 1418 4989
-> 15 0 24 1362 topology 1418 4990
-> 16 0 24 1362 topology 1601 4990
-> 15 0 23 1362 topology 1585 4991
-> 16 0 23 1362 topology 1586 4991
-> 15 0 24 1362 topology 1586 4992
-> 16 0 24 1362 topology 1601 4992
-> 15 0 23 1362 topology 1561 4993
-> 16 0 23 1362 topology 1562 4993
-> 15 0 24 1362 topology 1562 4994
+> 15 0 24 1362 topology 1365 4987
+> 16 0 24 1362 topology 1601 4987
+> 15 0 23 1362 topology 1492 4988
+> 16 0 23 1362 topology 1493 4988
+> 15 0 24 1362 topology 1514 4989
+> 16 0 24 1362 topology 1601 4989
+> 15 0 23 1362 topology 1468 4990
+> 16 0 23 1362 topology 1469 4990
+> 15 0 24 1362 topology 1436 4991
+> 16 0 24 1362 topology 1601 4991
+> 15 0 23 1362 topology 1576 4992
+> 16 0 23 1362 topology 1577 4992
+> 15 0 24 1362 topology 1574 4993
+> 16 0 24 1362 topology 1601 4993
+> 15 0 24 1362 topology 1496 4994
 > 16 0 24 1362 topology 1601 4994
-> 15 0 23 1362 topology 1537 4995
-> 16 0 23 1362 topology 1538 4995
-> 15 0 24 1362 topology 1538 4996
-> 16 0 24 1362 topology 1601 4996
-> 15 0 23 1362 topology 1372 4997
-> 16 0 23 1362 topology 1373 4997
-> 15 0 24 1362 topology 1373 4998
-> 16 0 24 1362 topology 1601 4998
-> 15 0 23 1362 topology 1420 4999
-> 16 0 23 1362 topology 1421 4999
-> 15 0 24 1362 topology 1421 5000
+> 15 0 23 1362 topology 1444 4995
+> 16 0 23 1362 topology 1445 4995
+> 15 0 23 1362 topology 1552 4996
+> 16 0 23 1362 topology 1553 4996
+> 15 0 24 1362 topology 1418 4997
+> 16 0 24 1362 topology 1601 4997
+> 15 0 23 1362 topology 1390 4998
+> 16 0 23 1362 topology 1392 4998
+> 15 0 23 1362 topology 1528 4999
+> 16 0 23 1362 topology 1529 4999
+> 15 0 24 1362 topology 1556 5000
 > 16 0 24 1362 topology 1601 5000
-> 15 0 23 1362 topology 1396 5001
-> 16 0 23 1362 topology 1397 5001
-> 15 0 24 1362 topology 1397 5002
+> 15 0 24 1362 topology 1478 5001
+> 16 0 24 1362 topology 1601 5001
+> 15 0 24 1362 topology 1389 5002
 > 16 0 24 1362 topology 1601 5002
-> 15 0 23 1362 topology 1540 5003
-> 16 0 23 1362 topology 1541 5003
-> 15 0 24 1362 topology 1541 5004
-> 16 0 24 1362 topology 1601 5004
-> 15 0 23 1362 topology 1516 5005
-> 16 0 23 1362 topology 1517 5005
-> 15 0 24 1362 topology 1517 5006
-> 16 0 24 1362 topology 1601 5006
-> 15 0 23 1362 topology 1492 5007
-> 16 0 23 1362 topology 1493 5007
-> 15 0 24 1362 topology 1493 5008
-> 16 0 24 1362 topology 1601 5008
-> 15 0 23 1362 topology 1468 5009
-> 16 0 23 1362 topology 1469 5009
-> 15 0 24 1362 topology 1469 5010
-> 16 0 24 1362 topology 1601 5010
-> 15 0 23 1362 topology 1444 5011
-> 16 0 23 1362 topology 1445 5011
-> 15 0 24 1362 topology 1445 5012
+> 15 0 23 1362 topology 1504 5003
+> 16 0 23 1362 topology 1505 5003
+> 15 0 23 1362 topology 1396 5004
+> 16 0 23 1362 topology 1398 5004
+> 15 0 24 1362 topology 1538 5005
+> 16 0 24 1362 topology 1601 5005
+> 15 0 23 1362 topology 1588 5006
+> 16 0 23 1362 topology 1589 5006
+> 15 0 23 1362 topology 1453 5007
+> 16 0 23 1362 topology 1455 5007
+> 15 0 23 1362 topology 1372 5008
+> 16 0 23 1362 topology 1374 5008
+> 15 0 24 1362 topology 1598 5009
+> 16 0 24 1362 topology 1601 5009
+> 15 0 23 1362 topology 1564 5010
+> 16 0 23 1362 topology 1565 5010
+> 15 0 23 1362 topology 1402 5011
+> 16 0 23 1362 topology 1404 5011
+> 15 0 24 1362 topology 1367 5012
 > 16 0 24 1362 topology 1601 5012
-> 15 0 23 1362 topology 1588 5013
-> 16 0 23 1362 topology 1589 5013
-> 15 0 24 1362 topology 1589 5014
-> 16 0 24 1362 topology 1601 5014
-> 15 0 23 1362 topology 1564 5015
-> 16 0 23 1362 topology 1565 5015
-> 15 0 24 1362 topology 1565 5016
-> 16 0 24 1362 topology 1601 5016
-> 15 0 23 1190 topology 1221 5017
-> 16 0 23 1190 topology 1222 5017
-> 15 0 24 1190 topology 1222 5018
-> 16 0 24 1190 topology 1360 5018
-> 15 0 24 1190 topology 1360 5019
-> 16 0 24 1190 topology 1283 5019
-> 15 0 25 1190 topology 1283 5020
-> 16 0 25 1190 topology 1281 5020
-> 15 0 24 1190 topology 1360 5021
-> 16 0 24 1190 topology 1259 5021
-> 15 0 25 1190 topology 1259 5022
-> 16 0 25 1190 topology 1257 5022
-> 15 0 24 1190 topology 1360 5023
-> 16 0 24 1190 topology 1235 5023
-> 15 0 25 1190 topology 1235 5024
-> 16 0 25 1190 topology 1233 5024
-> 15 0 24 1190 topology 1360 5025
-> 16 0 24 1190 topology 1343 5025
-> 15 0 25 1190 topology 1343 5026
-> 16 0 25 1190 topology 1341 5026
-> 15 0 24 1190 topology 1360 5027
-> 16 0 24 1190 topology 1319 5027
-> 15 0 25 1190 topology 1319 5028
-> 16 0 25 1190 topology 1317 5028
-> 15 0 24 1190 topology 1360 5029
-> 16 0 24 1190 topology 1295 5029
-> 15 0 25 1190 topology 1295 5030
-> 16 0 25 1190 topology 1293 5030
-> 15 0 24 1190 topology 1360 5031
-> 16 0 24 1190 topology 1271 5031
-> 15 0 25 1190 topology 1271 5032
-> 16 0 25 1190 topology 1269 5032
-> 15 0 24 1190 topology 1360 5033
-> 16 0 24 1190 topology 1247 5033
-> 15 0 25 1190 topology 1247 5034
-> 16 0 25 1190 topology 1245 5034
-> 15 0 24 1190 topology 1360 5035
-> 16 0 24 1190 topology 1355 5035
-> 15 0 25 1190 topology 1355 5036
-> 16 0 25 1190 topology 1353 5036
-> 15 0 24 1190 topology 1360 5037
-> 16 0 24 1190 topology 1331 5037
-> 15 0 25 1190 topology 1331 5038
-> 16 0 25 1190 topology 1329 5038
-> 15 0 24 1190 topology 1360 5039
-> 16 0 24 1190 topology 1307 5039
-> 15 0 25 1190 topology 1307 5040
-> 16 0 25 1190 topology 1305 5040
-> 15 0 24 1190 topology 1360 5041
-> 16 0 24 1190 topology 1193 5041
-> 15 0 25 1190 topology 1193 5042
-> 16 0 25 1190 topology 1191 5042
-> 15 0 24 1190 topology 1360 5043
-> 16 0 24 1190 topology 1205 5043
-> 15 0 25 1190 topology 1205 5044
-> 16 0 25 1190 topology 1203 5044
-> 15 0 24 1190 topology 1360 5045
-> 16 0 24 1190 topology 1217 5045
-> 15 0 25 1190 topology 1217 5046
-> 16 0 25 1190 topology 1215 5046
-> 15 0 26 1190 topology 1360 5047
-> 16 0 26 1190 topology 1359 5047
-> 15 0 24 1190 topology 1360 5048
-> 16 0 24 1190 topology 1250 5048
-> 15 0 25 1190 topology 1250 5049
-> 16 0 25 1190 topology 1248 5049
-> 15 0 24 1190 topology 1360 5050
-> 16 0 24 1190 topology 1226 5050
-> 15 0 25 1190 topology 1226 5051
-> 16 0 25 1190 topology 1224 5051
-> 15 0 24 1190 topology 1360 5052
-> 16 0 24 1190 topology 1310 5052
-> 15 0 25 1190 topology 1310 5053
-> 16 0 25 1190 topology 1308 5053
-> 15 0 24 1190 topology 1360 5054
-> 16 0 24 1190 topology 1286 5054
-> 15 0 25 1190 topology 1286 5055
-> 16 0 25 1190 topology 1284 5055
-> 15 0 24 1190 topology 1360 5056
-> 16 0 24 1190 topology 1262 5056
-> 15 0 25 1190 topology 1262 5057
-> 16 0 25 1190 topology 1260 5057
-> 15 0 24 1190 topology 1360 5058
-> 16 0 24 1190 topology 1238 5058
-> 15 0 25 1190 topology 1238 5059
-> 16 0 25 1190 topology 1236 5059
-> 15 0 24 1190 topology 1360 5060
-> 16 0 24 1190 topology 1346 5060
-> 15 0 25 1190 topology 1346 5061
-> 16 0 25 1190 topology 1344 5061
-> 15 0 24 1190 topology 1360 5062
-> 16 0 24 1190 topology 1322 5062
-> 15 0 25 1190 topology 1322 5063
-> 16 0 25 1190 topology 1320 5063
-> 15 0 24 1190 topology 1360 5064
-> 16 0 24 1190 topology 1298 5064
-> 15 0 25 1190 topology 1298 5065
-> 16 0 25 1190 topology 1296 5065
-> 15 0 24 1190 topology 1360 5066
-> 16 0 24 1190 topology 1274 5066
-> 15 0 25 1190 topology 1274 5067
-> 16 0 25 1190 topology 1272 5067
-> 15 0 24 1190 topology 1360 5068
-> 16 0 24 1190 topology 1358 5068
-> 15 0 25 1190 topology 1358 5069
-> 16 0 25 1190 topology 1356 5069
-> 15 0 24 1190 topology 1360 5070
-> 16 0 24 1190 topology 1334 5070
-> 15 0 25 1190 topology 1334 5071
-> 16 0 25 1190 topology 1332 5071
-> 15 0 24 1190 topology 1360 5072
-> 16 0 24 1190 topology 1196 5072
-> 15 0 25 1190 topology 1196 5073
-> 16 0 25 1190 topology 1194 5073
-> 15 0 24 1190 topology 1360 5074
-> 16 0 24 1190 topology 1208 5074
-> 15 0 25 1190 topology 1208 5075
-> 16 0 25 1190 topology 1206 5075
-> 15 0 24 1190 topology 1360 5076
-> 16 0 24 1190 topology 1253 5076
-> 15 0 25 1190 topology 1253 5077
-> 16 0 25 1190 topology 1251 5077
-> 15 0 24 1190 topology 1360 5078
-> 16 0 24 1190 topology 1229 5078
-> 15 0 25 1190 topology 1229 5079
-> 16 0 25 1190 topology 1227 5079
-> 15 0 24 1190 topology 1360 5080
-> 16 0 24 1190 topology 1313 5080
-> 15 0 25 1190 topology 1313 5081
-> 16 0 25 1190 topology 1311 5081
-> 15 0 24 1190 topology 1360 5082
-> 16 0 24 1190 topology 1289 5082
-> 15 0 25 1190 topology 1289 5083
-> 16 0 25 1190 topology 1287 5083
-> 15 0 24 1190 topology 1360 5084
-> 16 0 24 1190 topology 1265 5084
-> 15 0 25 1190 topology 1265 5085
-> 16 0 25 1190 topology 1263 5085
-> 15 0 24 1190 topology 1360 5086
-> 16 0 24 1190 topology 1241 5086
-> 15 0 25 1190 topology 1241 5087
-> 16 0 25 1190 topology 1239 5087
-> 15 0 24 1190 topology 1360 5088
-> 16 0 24 1190 topology 1349 5088
-> 15 0 25 1190 topology 1349 5089
-> 16 0 25 1190 topology 1347 5089
-> 15 0 24 1190 topology 1360 5090
-> 16 0 24 1190 topology 1325 5090
-> 15 0 25 1190 topology 1325 5091
-> 16 0 25 1190 topology 1323 5091
-> 15 0 24 1190 topology 1360 5092
-> 16 0 24 1190 topology 1301 5092
-> 15 0 25 1190 topology 1301 5093
-> 16 0 25 1190 topology 1299 5093
-> 15 0 24 1190 topology 1360 5094
-> 16 0 24 1190 topology 1277 5094
-> 15 0 25 1190 topology 1277 5095
-> 16 0 25 1190 topology 1275 5095
-> 15 0 24 1190 topology 1360 5096
-> 16 0 24 1190 topology 1337 5096
-> 15 0 25 1190 topology 1337 5097
-> 16 0 25 1190 topology 1335 5097
-> 15 0 24 1190 topology 1360 5098
-> 16 0 24 1190 topology 1199 5098
-> 15 0 25 1190 topology 1199 5099
-> 16 0 25 1190 topology 1197 5099
-> 15 0 24 1190 topology 1360 5100
-> 16 0 24 1190 topology 1211 5100
-> 15 0 25 1190 topology 1211 5101
-> 16 0 25 1190 topology 1209 5101
-> 15 0 24 1190 topology 1360 5102
-> 16 0 24 1190 topology 1220 5102
-> 15 0 25 1190 topology 1220 5103
-> 16 0 25 1190 topology 1218 5103
-> 15 0 24 1190 topology 1360 5104
-> 16 0 24 1190 topology 1280 5104
-> 15 0 25 1190 topology 1280 5105
-> 16 0 25 1190 topology 1278 5105
-> 15 0 24 1190 topology 1360 5106
-> 16 0 24 1190 topology 1256 5106
-> 15 0 25 1190 topology 1256 5107
-> 16 0 25 1190 topology 1254 5107
-> 15 0 24 1190 topology 1360 5108
-> 16 0 24 1190 topology 1232 5108
-> 15 0 25 1190 topology 1232 5109
-> 16 0 25 1190 topology 1230 5109
-> 15 0 24 1190 topology 1360 5110
-> 16 0 24 1190 topology 1340 5110
-> 15 0 25 1190 topology 1340 5111
-> 16 0 25 1190 topology 1338 5111
-> 15 0 24 1190 topology 1360 5112
-> 16 0 24 1190 topology 1316 5112
-> 15 0 25 1190 topology 1316 5113
-> 16 0 25 1190 topology 1314 5113
-> 15 0 24 1190 topology 1360 5114
-> 16 0 24 1190 topology 1292 5114
-> 15 0 25 1190 topology 1292 5115
-> 16 0 25 1190 topology 1290 5115
-> 15 0 24 1190 topology 1360 5116
-> 16 0 24 1190 topology 1268 5116
-> 15 0 25 1190 topology 1268 5117
-> 16 0 25 1190 topology 1266 5117
-> 15 0 24 1190 topology 1360 5118
-> 16 0 24 1190 topology 1244 5118
-> 15 0 25 1190 topology 1244 5119
-> 16 0 25 1190 topology 1242 5119
-> 15 0 24 1190 topology 1360 5120
-> 16 0 24 1190 topology 1352 5120
-> 15 0 25 1190 topology 1352 5121
-> 16 0 25 1190 topology 1350 5121
-> 15 0 24 1190 topology 1360 5122
-> 16 0 24 1190 topology 1328 5122
-> 15 0 25 1190 topology 1328 5123
-> 16 0 25 1190 topology 1326 5123
-> 15 0 24 1190 topology 1360 5124
-> 16 0 24 1190 topology 1304 5124
-> 15 0 25 1190 topology 1304 5125
-> 16 0 25 1190 topology 1302 5125
-> 15 0 24 1190 topology 1360 5126
-> 16 0 24 1190 topology 1202 5126
-> 15 0 25 1190 topology 1202 5127
-> 16 0 25 1190 topology 1200 5127
-> 15 0 24 1190 topology 1360 5128
-> 16 0 24 1190 topology 1214 5128
-> 15 0 25 1190 topology 1214 5129
-> 16 0 25 1190 topology 1212 5129
-> 15 0 23 1190 topology 1281 5130
-> 16 0 23 1190 topology 1282 5130
-> 15 0 24 1190 topology 1282 5131
+> 15 0 23 1362 topology 1510 5013
+> 16 0 23 1362 topology 1512 5013
+> 15 0 23 1362 topology 1459 5014
+> 16 0 23 1362 topology 1461 5014
+> 15 0 23 1362 topology 1408 5015
+> 16 0 23 1362 topology 1410 5015
+> 15 0 23 1362 topology 1516 5016
+> 16 0 23 1362 topology 1518 5016
+> 15 0 24 1190 topology 1231 5017
+> 16 0 24 1190 topology 1360 5017
+> 15 0 23 1190 topology 1320 5018
+> 16 0 23 1190 topology 1321 5018
+> 15 0 24 1190 topology 1202 5019
+> 16 0 24 1190 topology 1360 5019
+> 15 0 24 1190 topology 1291 5020
+> 16 0 24 1190 topology 1360 5020
+> 15 0 23 1190 topology 1296 5021
+> 16 0 23 1190 topology 1297 5021
+> 15 0 23 1190 topology 1272 5022
+> 16 0 23 1190 topology 1273 5022
+> 15 0 24 1190 topology 1351 5023
+> 16 0 24 1190 topology 1360 5023
+> 15 0 24 1190 topology 1273 5024
+> 16 0 24 1190 topology 1360 5024
+> 15 0 23 1190 topology 1356 5025
+> 16 0 23 1190 topology 1357 5025
+> 15 0 23 1190 topology 1248 5026
+> 16 0 23 1190 topology 1250 5026
+> 15 0 24 1190 topology 1333 5027
+> 16 0 24 1190 topology 1360 5027
+> 15 0 23 1190 topology 1332 5028
+> 16 0 23 1190 topology 1333 5028
+> 15 0 23 1190 topology 1254 5029
+> 16 0 23 1190 topology 1256 5029
+> 15 0 23 1190 topology 1311 5030
+> 16 0 23 1190 topology 1313 5030
+> 15 0 24 1190 topology 1198 5031
+> 16 0 24 1190 topology 1360 5031
+> 15 0 23 1190 topology 1260 5032
+> 16 0 23 1190 topology 1262 5032
+> 15 0 24 1190 topology 1250 5033
+> 16 0 24 1190 topology 1360 5033
+> 15 0 23 1190 topology 1209 5034
+> 16 0 23 1190 topology 1211 5034
+> 15 0 23 1190 topology 1317 5035
+> 16 0 23 1190 topology 1319 5035
+> 15 0 23 1190 topology 1266 5036
+> 16 0 23 1190 topology 1268 5036
+> 15 0 24 1190 topology 1286 5037
+> 16 0 24 1190 topology 1360 5037
+> 15 0 24 1190 topology 1238 5038
+> 16 0 24 1190 topology 1360 5038
+> 15 0 23 1190 topology 1323 5039
+> 16 0 23 1190 topology 1325 5039
+> 15 0 24 1190 topology 1322 5040
+> 16 0 24 1190 topology 1360 5040
+> 15 0 23 1190 topology 1272 5041
+> 16 0 23 1190 topology 1274 5041
+> 15 0 24 1190 topology 1274 5042
+> 16 0 24 1190 topology 1360 5042
+> 15 0 23 1190 topology 1329 5043
+> 16 0 23 1190 topology 1331 5043
+> 15 0 24 1190 topology 1358 5044
+> 16 0 24 1190 topology 1360 5044
+> 15 0 23 1190 topology 1335 5045
+> 16 0 23 1190 topology 1337 5045
+> 15 0 23 1190 topology 1209 5046
+> 16 0 23 1190 topology 1210 5046
+> 15 0 24 1190 topology 1193 5047
+> 16 0 24 1190 topology 1360 5047
+> 15 0 24 1190 topology 1258 5048
+> 16 0 24 1190 topology 1360 5048
+> 15 0 24 1190 topology 1318 5049
+> 16 0 24 1190 topology 1360 5049
+> 15 0 24 1190 topology 1240 5050
+> 16 0 24 1190 topology 1360 5050
+> 15 0 24 1190 topology 1300 5051
+> 16 0 24 1190 topology 1360 5051
+> 15 0 23 1190 topology 1194 5052
+> 16 0 23 1190 topology 1196 5052
+> 15 0 24 1190 topology 1217 5053
+> 16 0 24 1190 topology 1360 5053
+> 15 0 24 1190 topology 1207 5054
+> 16 0 24 1190 topology 1360 5054
+> 15 0 24 1190 topology 1229 5055
+> 16 0 24 1190 topology 1360 5055
+> 15 0 24 1190 topology 1313 5056
+> 16 0 24 1190 topology 1360 5056
+> 15 0 24 1190 topology 1265 5057
+> 16 0 24 1190 topology 1360 5057
+> 15 0 23 1190 topology 1251 5058
+> 16 0 23 1190 topology 1252 5058
+> 15 0 24 1190 topology 1349 5059
+> 16 0 24 1190 topology 1360 5059
+> 15 0 23 1190 topology 1227 5060
+> 16 0 23 1190 topology 1228 5060
+> 15 0 24 1190 topology 1301 5061
+> 16 0 24 1190 topology 1360 5061
+> 15 0 23 1190 topology 1311 5062
+> 16 0 23 1190 topology 1312 5062
+> 15 0 24 1190 topology 1337 5063
+> 16 0 24 1190 topology 1360 5063
+> 15 0 23 1190 topology 1287 5064
+> 16 0 23 1190 topology 1288 5064
+> 15 0 24 1190 topology 1225 5065
+> 16 0 24 1190 topology 1360 5065
+> 15 0 23 1190 topology 1263 5066
+> 16 0 23 1190 topology 1264 5066
+> 15 0 23 1190 topology 1212 5067
+> 16 0 23 1190 topology 1213 5067
+> 15 0 23 1190 topology 1239 5068
+> 16 0 23 1190 topology 1240 5068
+> 15 0 24 1190 topology 1285 5069
+> 16 0 24 1190 topology 1360 5069
+> 15 0 23 1190 topology 1347 5070
+> 16 0 23 1190 topology 1348 5070
+> 15 0 23 1190 topology 1323 5071
+> 16 0 23 1190 topology 1324 5071
+> 15 0 24 1190 topology 1345 5072
+> 16 0 24 1190 topology 1360 5072
+> 15 0 24 1190 topology 1267 5073
+> 16 0 24 1190 topology 1360 5073
+> 15 0 24 1190 topology 1208 5074
+> 16 0 24 1190 topology 1360 5074
+> 15 0 23 1190 topology 1299 5075
+> 16 0 23 1190 topology 1300 5075
+> 15 0 23 1190 topology 1218 5076
+> 16 0 23 1190 topology 1220 5076
+> 15 0 24 1190 topology 1327 5077
+> 16 0 24 1190 topology 1360 5077
+> 15 0 23 1190 topology 1275 5078
+> 16 0 23 1190 topology 1276 5078
+> 15 0 23 1190 topology 1224 5079
+> 16 0 23 1190 topology 1226 5079
+> 15 0 23 1190 topology 1335 5080
+> 16 0 23 1190 topology 1336 5080
+> 15 0 23 1190 topology 1281 5081
+> 16 0 23 1190 topology 1283 5081
+> 15 0 24 1190 topology 1192 5082
+> 16 0 24 1190 topology 1360 5082
+> 15 0 23 1190 topology 1203 5083
+> 16 0 23 1190 topology 1205 5083
+> 15 0 23 1190 topology 1230 5084
+> 16 0 23 1190 topology 1232 5084
+> 15 0 23 1190 topology 1338 5085
+> 16 0 23 1190 topology 1340 5085
+> 15 0 24 1190 topology 1220 5086
+> 16 0 24 1190 topology 1360 5086
+> 15 0 23 1190 topology 1287 5087
+> 16 0 23 1190 topology 1289 5087
+> 15 0 23 1190 topology 1236 5088
+> 16 0 23 1190 topology 1238 5088
+> 15 0 23 1190 topology 1344 5089
+> 16 0 23 1190 topology 1346 5089
+> 15 0 23 1190 topology 1191 5090
+> 16 0 23 1190 topology 1192 5090
+> 15 0 24 1190 topology 1256 5091
+> 16 0 24 1190 topology 1360 5091
+> 15 0 23 1190 topology 1293 5092
+> 16 0 23 1190 topology 1295 5092
+> 15 0 24 1190 topology 1340 5093
+> 16 0 24 1190 topology 1360 5093
+> 15 0 24 1190 topology 1216 5094
+> 16 0 24 1190 topology 1360 5094
+> 15 0 23 1190 topology 1242 5095
+> 16 0 23 1190 topology 1244 5095
+> 15 0 24 1190 topology 1292 5096
+> 16 0 24 1190 topology 1360 5096
+> 15 0 23 1190 topology 1350 5097
+> 16 0 23 1190 topology 1352 5097
+> 15 0 24 1190 topology 1244 5098
+> 16 0 24 1190 topology 1360 5098
+> 15 0 23 1190 topology 1299 5099
+> 16 0 23 1190 topology 1301 5099
+> 15 0 24 1190 topology 1328 5100
+> 16 0 24 1190 topology 1360 5100
+> 15 0 23 1190 topology 1356 5101
+> 16 0 23 1190 topology 1358 5101
+> 15 0 23 1190 topology 1305 5102
+> 16 0 23 1190 topology 1307 5102
+> 15 0 24 1190 topology 1252 5103
+> 16 0 24 1190 topology 1360 5103
+> 15 0 24 1190 topology 1312 5104
+> 16 0 24 1190 topology 1360 5104
+> 15 0 24 1190 topology 1199 5105
+> 16 0 24 1190 topology 1360 5105
+> 15 0 24 1190 topology 1234 5106
+> 16 0 24 1190 topology 1360 5106
+> 15 0 23 1190 topology 1215 5107
+> 16 0 23 1190 topology 1216 5107
+> 15 0 24 1190 topology 1294 5108
+> 16 0 24 1190 topology 1360 5108
+> 15 0 24 1190 topology 1354 5109
+> 16 0 24 1190 topology 1360 5109
+> 15 0 24 1190 topology 1276 5110
+> 16 0 24 1190 topology 1360 5110
+> 15 0 24 1190 topology 1336 5111
+> 16 0 24 1190 topology 1360 5111
+> 15 0 24 1190 topology 1201 5112
+> 16 0 24 1190 topology 1360 5112
+> 15 0 23 1190 topology 1218 5113
+> 16 0 23 1190 topology 1219 5113
+> 15 0 24 1190 topology 1283 5114
+> 16 0 24 1190 topology 1360 5114
+> 15 0 23 1190 topology 1212 5115
+> 16 0 23 1190 topology 1214 5115
+> 15 0 23 1190 topology 1194 5116
+> 16 0 23 1190 topology 1195 5116
+> 15 0 24 1190 topology 1235 5117
+> 16 0 24 1190 topology 1360 5117
+> 15 0 24 1190 topology 1319 5118
+> 16 0 24 1190 topology 1360 5118
+> 15 0 23 1190 topology 1278 5119
+> 16 0 23 1190 topology 1279 5119
+> 15 0 24 1190 topology 1271 5120
+> 16 0 24 1190 topology 1360 5120
+> 15 0 23 1190 topology 1254 5121
+> 16 0 23 1190 topology 1255 5121
+> 15 0 24 1190 topology 1355 5122
+> 16 0 24 1190 topology 1360 5122
+> 15 0 23 1190 topology 1230 5123
+> 16 0 23 1190 topology 1231 5123
+> 15 0 24 1190 topology 1307 5124
+> 16 0 24 1190 topology 1360 5124
+> 15 0 23 1190 topology 1338 5125
+> 16 0 23 1190 topology 1339 5125
+> 15 0 24 1190 topology 1219 5126
+> 16 0 24 1190 topology 1360 5126
+> 15 0 23 1190 topology 1314 5127
+> 16 0 23 1190 topology 1315 5127
+> 15 0 24 1190 topology 1279 5128
+> 16 0 24 1190 topology 1360 5128
+> 15 0 23 1190 topology 1290 5129
+> 16 0 23 1190 topology 1291 5129
+> 15 0 23 1190 topology 1266 5130
+> 16 0 23 1190 topology 1267 5130
+> 15 0 24 1190 topology 1339 5131
 > 16 0 24 1190 topology 1360 5131
-> 15 0 24 1190 topology 1360 5132
-> 16 0 24 1190 topology 1223 5132
-> 15 0 25 1190 topology 1223 5133
-> 16 0 25 1190 topology 1221 5133
-> 15 0 23 1190 topology 1257 5134
-> 16 0 23 1190 topology 1258 5134
-> 15 0 24 1190 topology 1258 5135
+> 15 0 24 1190 topology 1261 5132
+> 16 0 24 1190 topology 1360 5132
+> 15 0 23 1190 topology 1242 5133
+> 16 0 23 1190 topology 1243 5133
+> 15 0 23 1190 topology 1350 5134
+> 16 0 23 1190 topology 1351 5134
+> 15 0 24 1190 topology 1321 5135
 > 16 0 24 1190 topology 1360 5135
-> 15 0 23 1190 topology 1233 5136
-> 16 0 23 1190 topology 1234 5136
-> 15 0 24 1190 topology 1234 5137
+> 15 0 23 1190 topology 1326 5136
+> 16 0 23 1190 topology 1327 5136
+> 15 0 24 1190 topology 1243 5137
 > 16 0 24 1190 topology 1360 5137
-> 15 0 23 1190 topology 1341 5138
-> 16 0 23 1190 topology 1342 5138
-> 15 0 24 1190 topology 1342 5139
-> 16 0 24 1190 topology 1360 5139
-> 15 0 23 1190 topology 1317 5140
-> 16 0 23 1190 topology 1318 5140
-> 15 0 24 1190 topology 1318 5141
-> 16 0 24 1190 topology 1360 5141
-> 15 0 23 1190 topology 1293 5142
-> 16 0 23 1190 topology 1294 5142
-> 15 0 24 1190 topology 1294 5143
-> 16 0 24 1190 topology 1360 5143
-> 15 0 23 1190 topology 1269 5144
-> 16 0 23 1190 topology 1270 5144
-> 15 0 24 1190 topology 1270 5145
-> 16 0 24 1190 topology 1360 5145
-> 15 0 23 1190 topology 1245 5146
-> 16 0 23 1190 topology 1246 5146
-> 15 0 24 1190 topology 1246 5147
-> 16 0 24 1190 topology 1360 5147
-> 15 0 23 1190 topology 1353 5148
-> 16 0 23 1190 topology 1354 5148
-> 15 0 24 1190 topology 1354 5149
+> 15 0 24 1190 topology 1303 5138
+> 16 0 24 1190 topology 1360 5138
+> 15 0 23 1190 topology 1302 5139
+> 16 0 23 1190 topology 1303 5139
+> 15 0 24 1190 topology 1214 5140
+> 16 0 24 1190 topology 1360 5140
+> 15 0 23 1190 topology 1251 5141
+> 16 0 23 1190 topology 1253 5141
+> 15 0 23 1190 topology 1197 5142
+> 16 0 23 1190 topology 1199 5142
+> 15 0 23 1190 topology 1308 5143
+> 16 0 23 1190 topology 1310 5143
+> 15 0 23 1190 topology 1257 5144
+> 16 0 23 1190 topology 1259 5144
+> 15 0 25 1190 topology 1359 5145
+> 16 0 25 1190 topology 1360 5145
+> 15 0 23 1190 topology 1314 5146
+> 16 0 23 1190 topology 1316 5146
+> 15 0 23 1190 topology 1263 5147
+> 16 0 23 1190 topology 1265 5147
+> 15 0 24 1190 topology 1226 5148
+> 16 0 24 1190 topology 1360 5148
+> 15 0 24 1190 topology 1310 5149
 > 16 0 24 1190 topology 1360 5149
-> 15 0 23 1190 topology 1329 5150
-> 16 0 23 1190 topology 1330 5150
-> 15 0 24 1190 topology 1330 5151
-> 16 0 24 1190 topology 1360 5151
-> 15 0 23 1190 topology 1305 5152
-> 16 0 23 1190 topology 1306 5152
-> 15 0 24 1190 topology 1306 5153
-> 16 0 24 1190 topology 1360 5153
-> 15 0 23 1190 topology 1191 5154
-> 16 0 23 1190 topology 1192 5154
-> 15 0 24 1190 topology 1192 5155
-> 16 0 24 1190 topology 1360 5155
-> 15 0 23 1190 topology 1203 5156
-> 16 0 23 1190 topology 1204 5156
-> 15 0 24 1190 topology 1204 5157
+> 15 0 24 1190 topology 1210 5150
+> 16 0 24 1190 topology 1360 5150
+> 15 0 23 1190 topology 1320 5151
+> 16 0 23 1190 topology 1322 5151
+> 15 0 24 1190 topology 1262 5152
+> 16 0 24 1190 topology 1360 5152
+> 15 0 23 1190 topology 1269 5153
+> 16 0 23 1190 topology 1271 5153
+> 15 0 24 1190 topology 1346 5154
+> 16 0 24 1190 topology 1360 5154
+> 15 0 23 1190 topology 1197 5155
+> 16 0 23 1190 topology 1198 5155
+> 15 0 23 1190 topology 1326 5156
+> 16 0 23 1190 topology 1328 5156
+> 15 0 24 1190 topology 1298 5157
 > 16 0 24 1190 topology 1360 5157
-> 15 0 23 1190 topology 1215 5158
-> 16 0 23 1190 topology 1216 5158
-> 15 0 24 1190 topology 1216 5159
+> 15 0 23 1190 topology 1275 5158
+> 16 0 23 1190 topology 1277 5158
+> 15 0 24 1190 topology 1334 5159
 > 16 0 24 1190 topology 1360 5159
-> 15 0 23 1190 topology 1248 5160
-> 16 0 23 1190 topology 1249 5160
-> 15 0 24 1190 topology 1249 5161
+> 15 0 23 1190 topology 1332 5160
+> 16 0 23 1190 topology 1334 5160
+> 15 0 24 1190 topology 1228 5161
 > 16 0 24 1190 topology 1360 5161
-> 15 0 23 1190 topology 1224 5162
-> 16 0 23 1190 topology 1225 5162
-> 15 0 24 1190 topology 1225 5163
+> 15 0 24 1190 topology 1288 5162
+> 16 0 24 1190 topology 1360 5162
+> 15 0 24 1190 topology 1205 5163
 > 16 0 24 1190 topology 1360 5163
-> 15 0 23 1190 topology 1308 5164
-> 16 0 23 1190 topology 1309 5164
-> 15 0 24 1190 topology 1309 5165
+> 15 0 24 1190 topology 1348 5164
+> 16 0 24 1190 topology 1360 5164
+> 15 0 24 1190 topology 1270 5165
 > 16 0 24 1190 topology 1360 5165
-> 15 0 23 1190 topology 1284 5166
-> 16 0 23 1190 topology 1285 5166
-> 15 0 24 1190 topology 1285 5167
+> 15 0 24 1190 topology 1330 5166
+> 16 0 24 1190 topology 1360 5166
+> 15 0 24 1190 topology 1195 5167
 > 16 0 24 1190 topology 1360 5167
-> 15 0 23 1190 topology 1260 5168
-> 16 0 23 1190 topology 1261 5168
-> 15 0 24 1190 topology 1261 5169
+> 15 0 23 1190 topology 1206 5168
+> 16 0 23 1190 topology 1208 5168
+> 15 0 24 1190 topology 1253 5169
 > 16 0 24 1190 topology 1360 5169
-> 15 0 23 1190 topology 1236 5170
-> 16 0 23 1190 topology 1237 5170
-> 15 0 24 1190 topology 1237 5171
-> 16 0 24 1190 topology 1360 5171
-> 15 0 23 1190 topology 1344 5172
-> 16 0 23 1190 topology 1345 5172
-> 15 0 24 1190 topology 1345 5173
+> 15 0 24 1190 topology 1289 5170
+> 16 0 24 1190 topology 1360 5170
+> 15 0 23 1190 topology 1221 5171
+> 16 0 23 1190 topology 1222 5171
+> 15 0 24 1190 topology 1241 5172
+> 16 0 24 1190 topology 1360 5172
+> 15 0 24 1190 topology 1325 5173
 > 16 0 24 1190 topology 1360 5173
-> 15 0 23 1190 topology 1320 5174
-> 16 0 23 1190 topology 1321 5174
-> 15 0 24 1190 topology 1321 5175
-> 16 0 24 1190 topology 1360 5175
-> 15 0 23 1190 topology 1296 5176
-> 16 0 23 1190 topology 1297 5176
-> 15 0 24 1190 topology 1297 5177
-> 16 0 24 1190 topology 1360 5177
-> 15 0 23 1190 topology 1272 5178
-> 16 0 23 1190 topology 1273 5178
-> 15 0 24 1190 topology 1273 5179
-> 16 0 24 1190 topology 1360 5179
-> 15 0 23 1190 topology 1356 5180
-> 16 0 23 1190 topology 1357 5180
-> 15 0 24 1190 topology 1357 5181
+> 15 0 23 1190 topology 1281 5174
+> 16 0 23 1190 topology 1282 5174
+> 15 0 23 1190 topology 1200 5175
+> 16 0 23 1190 topology 1201 5175
+> 15 0 24 1190 topology 1277 5176
+> 16 0 24 1190 topology 1360 5176
+> 15 0 23 1190 topology 1257 5177
+> 16 0 23 1190 topology 1258 5177
+> 15 0 23 1190 topology 1233 5178
+> 16 0 23 1190 topology 1234 5178
+> 15 0 23 1190 topology 1341 5179
+> 16 0 23 1190 topology 1342 5179
+> 15 0 23 1190 topology 1317 5180
+> 16 0 23 1190 topology 1318 5180
+> 15 0 24 1190 topology 1255 5181
 > 16 0 24 1190 topology 1360 5181
-> 15 0 23 1190 topology 1332 5182
-> 16 0 23 1190 topology 1333 5182
-> 15 0 24 1190 topology 1333 5183
+> 15 0 23 1190 topology 1293 5182
+> 16 0 23 1190 topology 1294 5182
+> 15 0 24 1190 topology 1196 5183
 > 16 0 24 1190 topology 1360 5183
-> 15 0 23 1190 topology 1194 5184
-> 16 0 23 1190 topology 1195 5184
-> 15 0 24 1190 topology 1195 5185
-> 16 0 24 1190 topology 1360 5185
-> 15 0 23 1190 topology 1206 5186
-> 16 0 23 1190 topology 1207 5186
-> 15 0 24 1190 topology 1207 5187
+> 15 0 24 1190 topology 1315 5184
+> 16 0 24 1190 topology 1360 5184
+> 15 0 23 1190 topology 1269 5185
+> 16 0 23 1190 topology 1270 5185
+> 15 0 24 1190 topology 1237 5186
+> 16 0 24 1190 topology 1360 5186
+> 15 0 24 1190 topology 1297 5187
 > 16 0 24 1190 topology 1360 5187
-> 15 0 23 1190 topology 1251 5188
-> 16 0 23 1190 topology 1252 5188
-> 15 0 24 1190 topology 1252 5189
-> 16 0 24 1190 topology 1360 5189
-> 15 0 23 1190 topology 1227 5190
-> 16 0 23 1190 topology 1228 5190
-> 15 0 24 1190 topology 1228 5191
-> 16 0 24 1190 topology 1360 5191
-> 15 0 23 1190 topology 1311 5192
-> 16 0 23 1190 topology 1312 5192
-> 15 0 24 1190 topology 1312 5193
-> 16 0 24 1190 topology 1360 5193
-> 15 0 23 1190 topology 1287 5194
-> 16 0 23 1190 topology 1288 5194
-> 15 0 24 1190 topology 1288 5195
-> 16 0 24 1190 topology 1360 5195
-> 15 0 23 1190 topology 1263 5196
-> 16 0 23 1190 topology 1264 5196
-> 15 0 24 1190 topology 1264 5197
-> 16 0 24 1190 topology 1360 5197
-> 15 0 23 1190 topology 1239 5198
-> 16 0 23 1190 topology 1240 5198
-> 15 0 24 1190 topology 1240 5199
-> 16 0 24 1190 topology 1360 5199
-> 15 0 23 1190 topology 1347 5200
-> 16 0 23 1190 topology 1348 5200
-> 15 0 24 1190 topology 1348 5201
-> 16 0 24 1190 topology 1360 5201
-> 15 0 23 1190 topology 1323 5202
-> 16 0 23 1190 topology 1324 5202
-> 15 0 24 1190 topology 1324 5203
-> 16 0 24 1190 topology 1360 5203
-> 15 0 23 1190 topology 1299 5204
-> 16 0 23 1190 topology 1300 5204
-> 15 0 24 1190 topology 1300 5205
-> 16 0 24 1190 topology 1360 5205
-> 15 0 23 1190 topology 1275 5206
-> 16 0 23 1190 topology 1276 5206
-> 15 0 24 1190 topology 1276 5207
-> 16 0 24 1190 topology 1360 5207
-> 15 0 23 1190 topology 1335 5208
-> 16 0 23 1190 topology 1336 5208
-> 15 0 24 1190 topology 1336 5209
+> 15 0 23 1190 topology 1245 5188
+> 16 0 23 1190 topology 1246 5188
+> 15 0 23 1190 topology 1353 5189
+> 16 0 23 1190 topology 1354 5189
+> 15 0 23 1190 topology 1191 5190
+> 16 0 23 1190 topology 1193 5190
+> 15 0 23 1190 topology 1329 5191
+> 16 0 23 1190 topology 1330 5191
+> 15 0 24 1190 topology 1357 5192
+> 16 0 24 1190 topology 1360 5192
+> 15 0 23 1190 topology 1221 5193
+> 16 0 23 1190 topology 1223 5193
+> 15 0 23 1190 topology 1305 5194
+> 16 0 23 1190 topology 1306 5194
+> 15 0 23 1190 topology 1278 5195
+> 16 0 23 1190 topology 1280 5195
+> 15 0 23 1190 topology 1227 5196
+> 16 0 23 1190 topology 1229 5196
+> 15 0 23 1190 topology 1284 5197
+> 16 0 23 1190 topology 1286 5197
+> 15 0 23 1190 topology 1233 5198
+> 16 0 23 1190 topology 1235 5198
+> 15 0 23 1190 topology 1341 5199
+> 16 0 23 1190 topology 1343 5199
+> 15 0 24 1190 topology 1204 5200
+> 16 0 24 1190 topology 1360 5200
+> 15 0 23 1190 topology 1290 5201
+> 16 0 23 1190 topology 1292 5201
+> 15 0 24 1190 topology 1280 5202
+> 16 0 24 1190 topology 1360 5202
+> 15 0 23 1190 topology 1239 5203
+> 16 0 23 1190 topology 1241 5203
+> 15 0 24 1190 topology 1232 5204
+> 16 0 24 1190 topology 1360 5204
+> 15 0 23 1190 topology 1347 5205
+> 16 0 23 1190 topology 1349 5205
+> 15 0 24 1190 topology 1316 5206
+> 16 0 24 1190 topology 1360 5206
+> 15 0 23 1190 topology 1296 5207
+> 16 0 23 1190 topology 1298 5207
+> 15 0 23 1190 topology 1215 5208
+> 16 0 23 1190 topology 1217 5208
+> 15 0 24 1190 topology 1268 5209
 > 16 0 24 1190 topology 1360 5209
-> 15 0 23 1190 topology 1197 5210
-> 16 0 23 1190 topology 1198 5210
-> 15 0 24 1190 topology 1198 5211
+> 15 0 23 1190 topology 1245 5210
+> 16 0 23 1190 topology 1247 5210
+> 15 0 24 1190 topology 1352 5211
 > 16 0 24 1190 topology 1360 5211
-> 15 0 23 1190 topology 1209 5212
-> 16 0 23 1190 topology 1210 5212
-> 15 0 24 1190 topology 1210 5213
+> 15 0 23 1190 topology 1353 5212
+> 16 0 23 1190 topology 1355 5212
+> 15 0 24 1190 topology 1304 5213
 > 16 0 24 1190 topology 1360 5213
-> 15 0 23 1190 topology 1218 5214
-> 16 0 23 1190 topology 1219 5214
-> 15 0 24 1190 topology 1219 5215
-> 16 0 24 1190 topology 1360 5215
-> 15 0 23 1190 topology 1278 5216
-> 16 0 23 1190 topology 1279 5216
-> 15 0 24 1190 topology 1279 5217
+> 15 0 23 1190 topology 1302 5214
+> 16 0 23 1190 topology 1304 5214
+> 15 0 23 1190 topology 1203 5215
+> 16 0 23 1190 topology 1204 5215
+> 15 0 24 1190 topology 1222 5216
+> 16 0 24 1190 topology 1360 5216
+> 15 0 24 1190 topology 1282 5217
 > 16 0 24 1190 topology 1360 5217
-> 15 0 23 1190 topology 1254 5218
-> 16 0 23 1190 topology 1255 5218
-> 15 0 24 1190 topology 1255 5219
+> 15 0 24 1190 topology 1342 5218
+> 16 0 24 1190 topology 1360 5218
+> 15 0 24 1190 topology 1264 5219
 > 16 0 24 1190 topology 1360 5219
-> 15 0 23 1190 topology 1230 5220
-> 16 0 23 1190 topology 1231 5220
-> 15 0 24 1190 topology 1231 5221
+> 15 0 24 1190 topology 1324 5220
+> 16 0 24 1190 topology 1360 5220
+> 15 0 24 1190 topology 1246 5221
 > 16 0 24 1190 topology 1360 5221
-> 15 0 23 1190 topology 1338 5222
-> 16 0 23 1190 topology 1339 5222
-> 15 0 24 1190 topology 1339 5223
+> 15 0 24 1190 topology 1211 5222
+> 16 0 24 1190 topology 1360 5222
+> 15 0 24 1190 topology 1306 5223
 > 16 0 24 1190 topology 1360 5223
-> 15 0 23 1190 topology 1314 5224
-> 16 0 23 1190 topology 1315 5224
-> 15 0 24 1190 topology 1315 5225
+> 15 0 23 1190 topology 1200 5224
+> 16 0 23 1190 topology 1202 5224
+> 15 0 24 1190 topology 1223 5225
 > 16 0 24 1190 topology 1360 5225
-> 15 0 23 1190 topology 1290 5226
-> 16 0 23 1190 topology 1291 5226
-> 15 0 24 1190 topology 1291 5227
+> 15 0 24 1190 topology 1259 5226
+> 16 0 24 1190 topology 1360 5226
+> 15 0 24 1190 topology 1213 5227
 > 16 0 24 1190 topology 1360 5227
-> 15 0 23 1190 topology 1266 5228
-> 16 0 23 1190 topology 1267 5228
-> 15 0 24 1190 topology 1267 5229
+> 15 0 23 1190 topology 1248 5228
+> 16 0 23 1190 topology 1249 5228
+> 15 0 24 1190 topology 1343 5229
 > 16 0 24 1190 topology 1360 5229
-> 15 0 23 1190 topology 1242 5230
-> 16 0 23 1190 topology 1243 5230
-> 15 0 24 1190 topology 1243 5231
-> 16 0 24 1190 topology 1360 5231
-> 15 0 23 1190 topology 1350 5232
-> 16 0 23 1190 topology 1351 5232
-> 15 0 24 1190 topology 1351 5233
+> 15 0 24 1190 topology 1295 5230
+> 16 0 24 1190 topology 1360 5230
+> 15 0 23 1190 topology 1224 5231
+> 16 0 23 1190 topology 1225 5231
+> 15 0 23 1190 topology 1308 5232
+> 16 0 23 1190 topology 1309 5232
+> 15 0 24 1190 topology 1247 5233
 > 16 0 24 1190 topology 1360 5233
-> 15 0 23 1190 topology 1326 5234
-> 16 0 23 1190 topology 1327 5234
-> 15 0 24 1190 topology 1327 5235
-> 16 0 24 1190 topology 1360 5235
-> 15 0 23 1190 topology 1302 5236
-> 16 0 23 1190 topology 1303 5236
-> 15 0 24 1190 topology 1303 5237
-> 16 0 24 1190 topology 1360 5237
-> 15 0 23 1190 topology 1200 5238
-> 16 0 23 1190 topology 1201 5238
-> 15 0 24 1190 topology 1201 5239
-> 16 0 24 1190 topology 1360 5239
-> 15 0 23 1190 topology 1212 5240
-> 16 0 23 1190 topology 1213 5240
-> 15 0 24 1190 topology 1213 5241
+> 15 0 24 1190 topology 1331 5234
+> 16 0 24 1190 topology 1360 5234
+> 15 0 23 1190 topology 1284 5235
+> 16 0 23 1190 topology 1285 5235
+> 15 0 23 1190 topology 1260 5236
+> 16 0 23 1190 topology 1261 5236
+> 15 0 23 1190 topology 1206 5237
+> 16 0 23 1190 topology 1207 5237
+> 15 0 24 1190 topology 1249 5238
+> 16 0 24 1190 topology 1360 5238
+> 15 0 23 1190 topology 1236 5239
+> 16 0 23 1190 topology 1237 5239
+> 15 0 23 1190 topology 1344 5240
+> 16 0 23 1190 topology 1345 5240
+> 15 0 24 1190 topology 1309 5241
 > 16 0 24 1190 topology 1360 5241
-> 15 0 27 1189 topology 1600 5242
-> 16 0 27 1189 topology 1602 5242
-> 15 0 28 1189 topology 1602 5243
-> 16 0 28 1189 topology 1604 5243
-> 15 0 21 1189 topology 1602 5244
-> 16 0 21 1189 topology 1361 5244
-> 15 0 28 1189 topology 1361 5245
-> 16 0 28 1189 topology 1359 5245
-> 15 0 27 1189 topology 1604 5246
-> 16 0 27 1189 topology 1361 5246
-> 15 0 23 1016 topology 1059 5247
-> 16 0 23 1016 topology 1060 5247
-> 15 0 24 1016 topology 1060 5248
-> 16 0 24 1016 topology 1156 5248
-> 15 0 24 1016 topology 1156 5249
-> 16 0 24 1016 topology 1124 5249
-> 15 0 25 1016 topology 1124 5250
-> 16 0 25 1016 topology 1122 5250
-> 15 0 24 1016 topology 1156 5251
-> 16 0 24 1016 topology 1073 5251
-> 15 0 25 1016 topology 1073 5252
-> 16 0 25 1016 topology 1071 5252
-> 15 0 24 1016 topology 1156 5253
-> 16 0 24 1016 topology 1019 5253
-> 15 0 25 1016 topology 1019 5254
-> 16 0 25 1016 topology 1017 5254
-> 15 0 24 1016 topology 1156 5255
-> 16 0 24 1016 topology 1031 5255
-> 15 0 25 1016 topology 1031 5256
-> 16 0 25 1016 topology 1029 5256
-> 15 0 24 1016 topology 1156 5257
-> 16 0 24 1016 topology 1043 5257
-> 15 0 25 1016 topology 1043 5258
-> 16 0 25 1016 topology 1041 5258
-> 15 0 26 1016 topology 1156 5259
-> 16 0 26 1016 topology 1155 5259
-> 15 0 24 1016 topology 1156 5260
-> 16 0 24 1016 topology 1076 5260
-> 15 0 25 1016 topology 1076 5261
-> 16 0 25 1016 topology 1074 5261
-> 15 0 24 1016 topology 1156 5262
-> 16 0 24 1016 topology 1139 5262
-> 15 0 25 1016 topology 1139 5263
-> 16 0 25 1016 topology 1137 5263
-> 15 0 24 1016 topology 1156 5264
-> 16 0 24 1016 topology 1088 5264
-> 15 0 25 1016 topology 1088 5265
-> 16 0 25 1016 topology 1086 5265
-> 15 0 24 1016 topology 1156 5266
-> 16 0 24 1016 topology 1151 5266
-> 15 0 25 1016 topology 1151 5267
-> 16 0 25 1016 topology 1149 5267
-> 15 0 24 1016 topology 1156 5268
-> 16 0 24 1016 topology 1100 5268
-> 15 0 25 1016 topology 1100 5269
-> 16 0 25 1016 topology 1098 5269
-> 15 0 24 1016 topology 1156 5270
-> 16 0 24 1016 topology 1052 5270
-> 15 0 25 1016 topology 1052 5271
-> 16 0 25 1016 topology 1050 5271
-> 15 0 24 1016 topology 1156 5272
-> 16 0 24 1016 topology 1115 5272
-> 15 0 25 1016 topology 1115 5273
-> 16 0 25 1016 topology 1113 5273
-> 15 0 24 1016 topology 1156 5274
-> 16 0 24 1016 topology 1064 5274
-> 15 0 25 1016 topology 1064 5275
-> 16 0 25 1016 topology 1062 5275
-> 15 0 24 1016 topology 1156 5276
-> 16 0 24 1016 topology 1127 5276
-> 15 0 25 1016 topology 1127 5277
-> 16 0 25 1016 topology 1125 5277
-> 15 0 24 1016 topology 1156 5278
-> 16 0 24 1016 topology 1022 5278
-> 15 0 25 1016 topology 1022 5279
-> 16 0 25 1016 topology 1020 5279
-> 15 0 24 1016 topology 1156 5280
-> 16 0 24 1016 topology 1034 5280
-> 15 0 25 1016 topology 1034 5281
-> 16 0 25 1016 topology 1032 5281
-> 15 0 24 1016 topology 1156 5282
-> 16 0 24 1016 topology 1079 5282
-> 15 0 25 1016 topology 1079 5283
-> 16 0 25 1016 topology 1077 5283
-> 15 0 24 1016 topology 1156 5284
-> 16 0 24 1016 topology 1142 5284
-> 15 0 25 1016 topology 1142 5285
-> 16 0 25 1016 topology 1140 5285
-> 15 0 24 1016 topology 1156 5286
-> 16 0 24 1016 topology 1091 5286
-> 15 0 25 1016 topology 1091 5287
-> 16 0 25 1016 topology 1089 5287
-> 15 0 24 1016 topology 1156 5288
-> 16 0 24 1016 topology 1154 5288
-> 15 0 25 1016 topology 1154 5289
-> 16 0 25 1016 topology 1152 5289
-> 15 0 24 1016 topology 1156 5290
-> 16 0 24 1016 topology 1103 5290
-> 15 0 25 1016 topology 1103 5291
-> 16 0 25 1016 topology 1101 5291
-> 15 0 24 1016 topology 1156 5292
-> 16 0 24 1016 topology 1106 5292
-> 15 0 25 1016 topology 1106 5293
-> 16 0 25 1016 topology 1104 5293
-> 15 0 24 1016 topology 1156 5294
-> 16 0 24 1016 topology 1055 5294
-> 15 0 25 1016 topology 1055 5295
-> 16 0 25 1016 topology 1053 5295
-> 15 0 24 1016 topology 1156 5296
-> 16 0 24 1016 topology 1118 5296
-> 15 0 25 1016 topology 1118 5297
-> 16 0 25 1016 topology 1116 5297
-> 15 0 24 1016 topology 1156 5298
-> 16 0 24 1016 topology 1067 5298
-> 15 0 25 1016 topology 1067 5299
-> 16 0 25 1016 topology 1065 5299
-> 15 0 24 1016 topology 1156 5300
-> 16 0 24 1016 topology 1130 5300
-> 15 0 25 1016 topology 1130 5301
-> 16 0 25 1016 topology 1128 5301
-> 15 0 24 1016 topology 1156 5302
-> 16 0 24 1016 topology 1025 5302
-> 15 0 25 1016 topology 1025 5303
-> 16 0 25 1016 topology 1023 5303
-> 15 0 24 1016 topology 1156 5304
-> 16 0 24 1016 topology 1037 5304
-> 15 0 25 1016 topology 1037 5305
-> 16 0 25 1016 topology 1035 5305
-> 15 0 24 1016 topology 1156 5306
-> 16 0 24 1016 topology 1082 5306
-> 15 0 25 1016 topology 1082 5307
-> 16 0 25 1016 topology 1080 5307
-> 15 0 24 1016 topology 1156 5308
-> 16 0 24 1016 topology 1145 5308
-> 15 0 25 1016 topology 1145 5309
-> 16 0 25 1016 topology 1143 5309
-> 15 0 24 1016 topology 1156 5310
-> 16 0 24 1016 topology 1094 5310
-> 15 0 25 1016 topology 1094 5311
-> 16 0 25 1016 topology 1092 5311
-> 15 0 24 1016 topology 1156 5312
-> 16 0 24 1016 topology 1046 5312
-> 15 0 25 1016 topology 1046 5313
-> 16 0 25 1016 topology 1044 5313
-> 15 0 24 1016 topology 1156 5314
-> 16 0 24 1016 topology 1109 5314
-> 15 0 25 1016 topology 1109 5315
-> 16 0 25 1016 topology 1107 5315
-> 15 0 24 1016 topology 1156 5316
-> 16 0 24 1016 topology 1058 5316
-> 15 0 25 1016 topology 1058 5317
-> 16 0 25 1016 topology 1056 5317
-> 15 0 24 1016 topology 1156 5318
-> 16 0 24 1016 topology 1121 5318
-> 15 0 25 1016 topology 1121 5319
-> 16 0 25 1016 topology 1119 5319
-> 15 0 24 1016 topology 1156 5320
-> 16 0 24 1016 topology 1070 5320
-> 15 0 25 1016 topology 1070 5321
-> 16 0 25 1016 topology 1068 5321
-> 15 0 24 1016 topology 1156 5322
-> 16 0 24 1016 topology 1133 5322
-> 15 0 25 1016 topology 1133 5323
-> 16 0 25 1016 topology 1131 5323
-> 15 0 24 1016 topology 1156 5324
-> 16 0 24 1016 topology 1028 5324
-> 15 0 25 1016 topology 1028 5325
-> 16 0 25 1016 topology 1026 5325
-> 15 0 24 1016 topology 1156 5326
-> 16 0 24 1016 topology 1040 5326
-> 15 0 25 1016 topology 1040 5327
-> 16 0 25 1016 topology 1038 5327
-> 15 0 24 1016 topology 1156 5328
-> 16 0 24 1016 topology 1136 5328
-> 15 0 25 1016 topology 1136 5329
-> 16 0 25 1016 topology 1134 5329
-> 15 0 24 1016 topology 1156 5330
-> 16 0 24 1016 topology 1085 5330
-> 15 0 25 1016 topology 1085 5331
-> 16 0 25 1016 topology 1083 5331
-> 15 0 24 1016 topology 1156 5332
-> 16 0 24 1016 topology 1148 5332
-> 15 0 25 1016 topology 1148 5333
-> 16 0 25 1016 topology 1146 5333
-> 15 0 24 1016 topology 1156 5334
-> 16 0 24 1016 topology 1097 5334
-> 15 0 25 1016 topology 1097 5335
-> 16 0 25 1016 topology 1095 5335
-> 15 0 24 1016 topology 1156 5336
-> 16 0 24 1016 topology 1049 5336
-> 15 0 25 1016 topology 1049 5337
-> 16 0 25 1016 topology 1047 5337
-> 15 0 24 1016 topology 1156 5338
-> 16 0 24 1016 topology 1112 5338
-> 15 0 25 1016 topology 1112 5339
-> 16 0 25 1016 topology 1110 5339
-> 15 0 23 1016 topology 1122 5340
-> 16 0 23 1016 topology 1123 5340
-> 15 0 24 1016 topology 1123 5341
-> 16 0 24 1016 topology 1156 5341
-> 15 0 24 1016 topology 1156 5342
-> 16 0 24 1016 topology 1061 5342
-> 15 0 25 1016 topology 1061 5343
-> 16 0 25 1016 topology 1059 5343
-> 15 0 23 1016 topology 1071 5344
-> 16 0 23 1016 topology 1072 5344
-> 15 0 24 1016 topology 1072 5345
+> 15 0 26 1189 topology 1602 5242
+> 16 0 26 1189 topology 1600 5242
+> 15 0 27 1189 topology 1359 5243
+> 16 0 27 1189 topology 1361 5243
+> 15 0 26 1189 topology 1361 5244
+> 16 0 26 1189 topology 1604 5244
+> 15 0 21 1189 topology 1361 5245
+> 16 0 21 1189 topology 1602 5245
+> 15 0 26 1189 topology 1602 5246
+> 16 0 26 1189 topology 1604 5246
+> 15 0 24 1016 topology 1133 5247
+> 16 0 24 1016 topology 1156 5247
+> 15 0 23 1016 topology 1026 5248
+> 16 0 23 1016 topology 1028 5248
+> 15 0 23 1016 topology 1053 5249
+> 16 0 23 1016 topology 1055 5249
+> 15 0 23 1016 topology 1107 5250
+> 16 0 23 1016 topology 1109 5250
+> 15 0 24 1016 topology 1045 5251
+> 16 0 24 1016 topology 1156 5251
+> 15 0 24 1016 topology 1075 5252
+> 16 0 24 1016 topology 1156 5252
+> 15 0 23 1016 topology 1083 5253
+> 16 0 23 1016 topology 1085 5253
+> 15 0 23 1016 topology 1137 5254
+> 16 0 23 1016 topology 1139 5254
+> 15 0 24 1016 topology 1105 5255
+> 16 0 24 1016 topology 1156 5255
+> 15 0 23 1016 topology 1059 5256
+> 16 0 23 1016 topology 1061 5256
+> 15 0 23 1016 topology 1113 5257
+> 16 0 23 1016 topology 1115 5257
+> 15 0 24 1016 topology 1135 5258
+> 16 0 24 1016 topology 1156 5258
+> 15 0 24 1016 topology 1022 5259
+> 16 0 24 1016 topology 1156 5259
+> 15 0 24 1016 topology 1057 5260
+> 16 0 24 1016 topology 1156 5260
+> 15 0 24 1016 topology 1087 5261
+> 16 0 24 1016 topology 1156 5261
+> 15 0 23 1016 topology 1089 5262
+> 16 0 23 1016 topology 1091 5262
+> 15 0 23 1016 topology 1143 5263
+> 16 0 23 1016 topology 1145 5263
+> 15 0 23 1016 topology 1017 5264
+> 16 0 23 1016 topology 1018 5264
+> 15 0 24 1016 topology 1117 5265
+> 16 0 24 1016 topology 1156 5265
+> 15 0 23 1016 topology 1038 5266
+> 16 0 23 1016 topology 1040 5266
+> 15 0 23 1016 topology 1065 5267
+> 16 0 23 1016 topology 1067 5267
+> 15 0 23 1016 topology 1119 5268
+> 16 0 23 1016 topology 1121 5268
+> 15 0 24 1016 topology 1147 5269
+> 16 0 24 1016 topology 1156 5269
+> 15 0 24 1016 topology 1034 5270
+> 16 0 24 1016 topology 1156 5270
+> 15 0 24 1016 topology 1069 5271
+> 16 0 24 1016 topology 1156 5271
+> 15 0 23 1016 topology 1074 5272
+> 16 0 23 1016 topology 1075 5272
+> 15 0 23 1016 topology 1095 5273
+> 16 0 23 1016 topology 1097 5273
+> 15 0 24 1016 topology 1099 5274
+> 16 0 24 1016 topology 1156 5274
+> 15 0 23 1016 topology 1149 5275
+> 16 0 23 1016 topology 1151 5275
+> 15 0 23 1016 topology 1077 5276
+> 16 0 23 1016 topology 1078 5276
+> 15 0 24 1016 topology 1129 5277
+> 16 0 24 1016 topology 1156 5277
+> 15 0 23 1016 topology 1071 5278
+> 16 0 23 1016 topology 1073 5278
+> 15 0 23 1016 topology 1125 5279
+> 16 0 23 1016 topology 1127 5279
+> 15 0 23 1016 topology 1080 5280
+> 16 0 23 1016 topology 1081 5280
+> 15 0 23 1016 topology 1134 5281
+> 16 0 23 1016 topology 1135 5281
+> 15 0 23 1016 topology 1101 5282
+> 16 0 23 1016 topology 1103 5282
+> 15 0 23 1016 topology 1029 5283
+> 16 0 23 1016 topology 1030 5283
+> 15 0 23 1016 topology 1083 5284
+> 16 0 23 1016 topology 1084 5284
+> 15 0 23 1016 topology 1137 5285
+> 16 0 23 1016 topology 1138 5285
+> 15 0 23 1016 topology 1131 5286
+> 16 0 23 1016 topology 1133 5286
+> 15 0 24 1016 topology 1018 5287
+> 16 0 24 1016 topology 1156 5287
+> 15 0 23 1016 topology 1086 5288
+> 16 0 23 1016 topology 1087 5288
+> 15 0 23 1016 topology 1140 5289
+> 16 0 23 1016 topology 1141 5289
+> 15 0 23 1016 topology 1089 5290
+> 16 0 23 1016 topology 1090 5290
+> 15 0 23 1016 topology 1143 5291
+> 16 0 23 1016 topology 1144 5291
+> 15 0 24 1016 topology 1030 5292
+> 16 0 24 1016 topology 1156 5292
+> 15 0 24 1016 topology 1076 5293
+> 16 0 24 1016 topology 1156 5293
+> 15 0 23 1016 topology 1092 5294
+> 16 0 23 1016 topology 1093 5294
+> 15 0 23 1016 topology 1146 5295
+> 16 0 23 1016 topology 1147 5295
+> 15 0 24 1016 topology 1052 5296
+> 16 0 24 1016 topology 1156 5296
+> 15 0 23 1016 topology 1041 5297
+> 16 0 23 1016 topology 1042 5297
+> 15 0 23 1016 topology 1095 5298
+> 16 0 23 1016 topology 1096 5298
+> 15 0 24 1016 topology 1136 5299
+> 16 0 24 1016 topology 1156 5299
+> 15 0 23 1016 topology 1149 5300
+> 16 0 23 1016 topology 1150 5300
+> 15 0 24 1016 topology 1112 5301
+> 16 0 24 1016 topology 1156 5301
+> 15 0 24 1016 topology 1042 5302
+> 16 0 24 1016 topology 1156 5302
+> 15 0 24 1016 topology 1088 5303
+> 16 0 24 1016 topology 1156 5303
+> 15 0 23 1016 topology 1098 5304
+> 16 0 23 1016 topology 1099 5304
+> 15 0 23 1016 topology 1152 5305
+> 16 0 23 1016 topology 1153 5305
+> 15 0 23 1016 topology 1017 5306
+> 16 0 23 1016 topology 1019 5306
+> 15 0 24 1016 topology 1064 5307
+> 16 0 24 1016 topology 1156 5307
+> 15 0 23 1016 topology 1101 5308
+> 16 0 23 1016 topology 1102 5308
+> 15 0 24 1016 topology 1148 5309
+> 16 0 24 1016 topology 1156 5309
+> 15 0 24 1016 topology 1124 5310
+> 16 0 24 1016 topology 1156 5310
+> 15 0 24 1016 topology 1100 5311
+> 16 0 24 1016 topology 1156 5311
+> 15 0 23 1016 topology 1029 5312
+> 16 0 23 1016 topology 1031 5312
+> 15 0 24 1016 topology 1054 5313
+> 16 0 24 1016 topology 1156 5313
+> 15 0 24 1016 topology 1084 5314
+> 16 0 24 1016 topology 1156 5314
+> 15 0 24 1016 topology 1025 5315
+> 16 0 24 1016 topology 1156 5315
+> 15 0 24 1016 topology 1114 5316
+> 16 0 24 1016 topology 1156 5316
+> 15 0 24 1016 topology 1144 5317
+> 16 0 24 1016 topology 1156 5317
+> 15 0 24 1016 topology 1066 5318
+> 16 0 24 1016 topology 1156 5318
+> 15 0 24 1016 topology 1096 5319
+> 16 0 24 1016 topology 1156 5319
+> 15 0 24 1016 topology 1037 5320
+> 16 0 24 1016 topology 1156 5320
+> 15 0 23 1016 topology 1041 5321
+> 16 0 23 1016 topology 1043 5321
+> 15 0 24 1016 topology 1126 5322
+> 16 0 24 1016 topology 1156 5322
+> 15 0 23 1016 topology 1026 5323
+> 16 0 23 1016 topology 1027 5323
+> 15 0 24 1016 topology 1027 5324
+> 16 0 24 1016 topology 1156 5324
+> 15 0 23 1016 topology 1038 5325
+> 16 0 23 1016 topology 1039 5325
+> 15 0 24 1016 topology 1079 5326
+> 16 0 24 1016 topology 1156 5326
+> 15 0 24 1016 topology 1055 5327
+> 16 0 24 1016 topology 1156 5327
+> 15 0 24 1016 topology 1039 5328
+> 16 0 24 1016 topology 1156 5328
+> 15 0 24 1016 topology 1139 5329
+> 16 0 24 1016 topology 1156 5329
+> 15 0 24 1016 topology 1115 5330
+> 16 0 24 1016 topology 1156 5330
+> 15 0 23 1016 topology 1044 5331
+> 16 0 23 1016 topology 1046 5331
+> 15 0 24 1016 topology 1091 5332
+> 16 0 24 1016 topology 1156 5332
+> 15 0 24 1016 topology 1067 5333
+> 16 0 24 1016 topology 1156 5333
+> 15 0 23 1016 topology 1020 5334
+> 16 0 23 1016 topology 1022 5334
+> 15 0 23 1016 topology 1074 5335
+> 16 0 23 1016 topology 1076 5335
+> 15 0 24 1016 topology 1151 5336
+> 16 0 24 1016 topology 1156 5336
+> 15 0 24 1016 topology 1127 5337
+> 16 0 24 1016 topology 1156 5337
+> 15 0 23 1016 topology 1050 5338
+> 16 0 23 1016 topology 1052 5338
+> 15 0 24 1016 topology 1103 5339
+> 16 0 24 1016 topology 1156 5339
+> 15 0 23 1016 topology 1104 5340
+> 16 0 23 1016 topology 1106 5340
+> 15 0 23 1016 topology 1080 5341
+> 16 0 23 1016 topology 1082 5341
+> 15 0 23 1016 topology 1134 5342
+> 16 0 23 1016 topology 1136 5342
+> 15 0 23 1016 topology 1056 5343
+> 16 0 23 1016 topology 1058 5343
+> 15 0 23 1016 topology 1110 5344
+> 16 0 23 1016 topology 1112 5344
+> 15 0 24 1016 topology 1051 5345
 > 16 0 24 1016 topology 1156 5345
-> 15 0 23 1016 topology 1017 5346
-> 16 0 23 1016 topology 1018 5346
-> 15 0 24 1016 topology 1018 5347
+> 15 0 23 1016 topology 1032 5346
+> 16 0 23 1016 topology 1034 5346
+> 15 0 24 1016 topology 1081 5347
 > 16 0 24 1016 topology 1156 5347
-> 15 0 23 1016 topology 1029 5348
-> 16 0 23 1016 topology 1030 5348
-> 15 0 24 1016 topology 1030 5349
-> 16 0 24 1016 topology 1156 5349
-> 15 0 23 1016 topology 1041 5350
-> 16 0 23 1016 topology 1042 5350
-> 15 0 24 1016 topology 1042 5351
-> 16 0 24 1016 topology 1156 5351
-> 15 0 23 1016 topology 1074 5352
-> 16 0 23 1016 topology 1075 5352
-> 15 0 24 1016 topology 1075 5353
+> 15 0 23 1016 topology 1086 5348
+> 16 0 23 1016 topology 1088 5348
+> 15 0 23 1016 topology 1140 5349
+> 16 0 23 1016 topology 1142 5349
+> 15 0 24 1016 topology 1111 5350
+> 16 0 24 1016 topology 1156 5350
+> 15 0 23 1016 topology 1062 5351
+> 16 0 23 1016 topology 1064 5351
+> 15 0 23 1016 topology 1116 5352
+> 16 0 23 1016 topology 1118 5352
+> 15 0 24 1016 topology 1141 5353
 > 16 0 24 1016 topology 1156 5353
-> 15 0 23 1016 topology 1137 5354
-> 16 0 23 1016 topology 1138 5354
-> 15 0 24 1016 topology 1138 5355
-> 16 0 24 1016 topology 1156 5355
-> 15 0 23 1016 topology 1086 5356
-> 16 0 23 1016 topology 1087 5356
-> 15 0 24 1016 topology 1087 5357
+> 15 0 24 1016 topology 1028 5354
+> 16 0 24 1016 topology 1156 5354
+> 15 0 23 1016 topology 1044 5355
+> 16 0 23 1016 topology 1045 5355
+> 15 0 24 1016 topology 1063 5356
+> 16 0 24 1016 topology 1156 5356
+> 15 0 24 1016 topology 1093 5357
 > 16 0 24 1016 topology 1156 5357
-> 15 0 23 1016 topology 1149 5358
-> 16 0 23 1016 topology 1150 5358
-> 15 0 24 1016 topology 1150 5359
-> 16 0 24 1016 topology 1156 5359
-> 15 0 23 1016 topology 1098 5360
-> 16 0 23 1016 topology 1099 5360
-> 15 0 24 1016 topology 1099 5361
+> 15 0 23 1016 topology 1092 5358
+> 16 0 23 1016 topology 1094 5358
+> 15 0 23 1016 topology 1146 5359
+> 16 0 23 1016 topology 1148 5359
+> 15 0 23 1016 topology 1047 5360
+> 16 0 23 1016 topology 1048 5360
+> 15 0 24 1016 topology 1123 5361
 > 16 0 24 1016 topology 1156 5361
-> 15 0 23 1016 topology 1050 5362
-> 16 0 23 1016 topology 1051 5362
-> 15 0 24 1016 topology 1051 5363
-> 16 0 24 1016 topology 1156 5363
-> 15 0 23 1016 topology 1113 5364
-> 16 0 23 1016 topology 1114 5364
-> 15 0 24 1016 topology 1114 5365
-> 16 0 24 1016 topology 1156 5365
-> 15 0 23 1016 topology 1062 5366
-> 16 0 23 1016 topology 1063 5366
-> 15 0 24 1016 topology 1063 5367
-> 16 0 24 1016 topology 1156 5367
-> 15 0 23 1016 topology 1125 5368
-> 16 0 23 1016 topology 1126 5368
-> 15 0 24 1016 topology 1126 5369
-> 16 0 24 1016 topology 1156 5369
-> 15 0 23 1016 topology 1020 5370
-> 16 0 23 1016 topology 1021 5370
-> 15 0 24 1016 topology 1021 5371
-> 16 0 24 1016 topology 1156 5371
-> 15 0 23 1016 topology 1032 5372
-> 16 0 23 1016 topology 1033 5372
-> 15 0 24 1016 topology 1033 5373
-> 16 0 24 1016 topology 1156 5373
-> 15 0 23 1016 topology 1077 5374
-> 16 0 23 1016 topology 1078 5374
-> 15 0 24 1016 topology 1078 5375
-> 16 0 24 1016 topology 1156 5375
-> 15 0 23 1016 topology 1140 5376
-> 16 0 23 1016 topology 1141 5376
-> 15 0 24 1016 topology 1141 5377
-> 16 0 24 1016 topology 1156 5377
-> 15 0 23 1016 topology 1089 5378
-> 16 0 23 1016 topology 1090 5378
-> 15 0 24 1016 topology 1090 5379
-> 16 0 24 1016 topology 1156 5379
-> 15 0 23 1016 topology 1152 5380
-> 16 0 23 1016 topology 1153 5380
-> 15 0 24 1016 topology 1153 5381
-> 16 0 24 1016 topology 1156 5381
-> 15 0 23 1016 topology 1101 5382
-> 16 0 23 1016 topology 1102 5382
-> 15 0 24 1016 topology 1102 5383
-> 16 0 24 1016 topology 1156 5383
-> 15 0 23 1016 topology 1104 5384
-> 16 0 23 1016 topology 1105 5384
-> 15 0 24 1016 topology 1105 5385
+> 15 0 23 1016 topology 1068 5362
+> 16 0 23 1016 topology 1070 5362
+> 15 0 23 1016 topology 1122 5363
+> 16 0 23 1016 topology 1124 5363
+> 15 0 24 1016 topology 1153 5364
+> 16 0 24 1016 topology 1156 5364
+> 15 0 23 1016 topology 1023 5365
+> 16 0 23 1016 topology 1024 5365
+> 15 0 24 1016 topology 1040 5366
+> 16 0 24 1016 topology 1156 5366
+> 15 0 23 1016 topology 1050 5367
+> 16 0 23 1016 topology 1051 5367
+> 15 0 23 1016 topology 1104 5368
+> 16 0 23 1016 topology 1105 5368
+> 15 0 23 1016 topology 1098 5369
+> 16 0 23 1016 topology 1100 5369
+> 15 0 23 1016 topology 1152 5370
+> 16 0 23 1016 topology 1154 5370
+> 15 0 23 1016 topology 1053 5371
+> 16 0 23 1016 topology 1054 5371
+> 15 0 23 1016 topology 1107 5372
+> 16 0 23 1016 topology 1108 5372
+> 15 0 23 1016 topology 1128 5373
+> 16 0 23 1016 topology 1130 5373
+> 15 0 23 1016 topology 1056 5374
+> 16 0 23 1016 topology 1057 5374
+> 15 0 23 1016 topology 1110 5375
+> 16 0 23 1016 topology 1111 5375
+> 15 0 23 1016 topology 1059 5376
+> 16 0 23 1016 topology 1060 5376
+> 15 0 23 1016 topology 1113 5377
+> 16 0 23 1016 topology 1114 5377
+> 15 0 24 1016 topology 1024 5378
+> 16 0 24 1016 topology 1156 5378
+> 15 0 23 1016 topology 1035 5379
+> 16 0 23 1016 topology 1036 5379
+> 15 0 23 1016 topology 1062 5380
+> 16 0 23 1016 topology 1063 5380
+> 15 0 23 1016 topology 1116 5381
+> 16 0 23 1016 topology 1117 5381
+> 15 0 24 1016 topology 1046 5382
+> 16 0 24 1016 topology 1156 5382
+> 15 0 23 1016 topology 1065 5383
+> 16 0 23 1016 topology 1066 5383
+> 15 0 23 1016 topology 1119 5384
+> 16 0 23 1016 topology 1120 5384
+> 15 0 24 1016 topology 1106 5385
 > 16 0 24 1016 topology 1156 5385
-> 15 0 23 1016 topology 1053 5386
-> 16 0 23 1016 topology 1054 5386
-> 15 0 24 1016 topology 1054 5387
-> 16 0 24 1016 topology 1156 5387
-> 15 0 23 1016 topology 1116 5388
-> 16 0 23 1016 topology 1117 5388
-> 15 0 24 1016 topology 1117 5389
-> 16 0 24 1016 topology 1156 5389
-> 15 0 23 1016 topology 1065 5390
-> 16 0 23 1016 topology 1066 5390
-> 15 0 24 1016 topology 1066 5391
-> 16 0 24 1016 topology 1156 5391
-> 15 0 23 1016 topology 1128 5392
-> 16 0 23 1016 topology 1129 5392
-> 15 0 24 1016 topology 1129 5393
+> 15 0 24 1016 topology 1036 5386
+> 16 0 24 1016 topology 1156 5386
+> 15 0 23 1016 topology 1068 5387
+> 16 0 23 1016 topology 1069 5387
+> 15 0 24 1016 topology 1082 5388
+> 16 0 24 1016 topology 1156 5388
+> 15 0 23 1016 topology 1122 5389
+> 16 0 23 1016 topology 1123 5389
+> 15 0 24 1016 topology 1058 5390
+> 16 0 24 1016 topology 1156 5390
+> 15 0 23 1016 topology 1071 5391
+> 16 0 23 1016 topology 1072 5391
+> 15 0 23 1016 topology 1125 5392
+> 16 0 23 1016 topology 1126 5392
+> 15 0 24 1016 topology 1142 5393
 > 16 0 24 1016 topology 1156 5393
-> 15 0 23 1016 topology 1023 5394
-> 16 0 23 1016 topology 1024 5394
-> 15 0 24 1016 topology 1024 5395
+> 15 0 24 1016 topology 1118 5394
+> 16 0 24 1016 topology 1156 5394
+> 15 0 24 1016 topology 1094 5395
 > 16 0 24 1016 topology 1156 5395
-> 15 0 23 1016 topology 1035 5396
-> 16 0 23 1016 topology 1036 5396
-> 15 0 24 1016 topology 1036 5397
+> 15 0 23 1016 topology 1128 5396
+> 16 0 23 1016 topology 1129 5396
+> 15 0 24 1016 topology 1070 5397
 > 16 0 24 1016 topology 1156 5397
-> 15 0 23 1016 topology 1080 5398
-> 16 0 23 1016 topology 1081 5398
-> 15 0 24 1016 topology 1081 5399
+> 15 0 23 1016 topology 1131 5398
+> 16 0 23 1016 topology 1132 5398
+> 15 0 24 1016 topology 1154 5399
 > 16 0 24 1016 topology 1156 5399
-> 15 0 23 1016 topology 1143 5400
-> 16 0 23 1016 topology 1144 5400
-> 15 0 24 1016 topology 1144 5401
+> 15 0 23 1016 topology 1023 5400
+> 16 0 23 1016 topology 1025 5400
+> 15 0 24 1016 topology 1130 5401
 > 16 0 24 1016 topology 1156 5401
-> 15 0 23 1016 topology 1092 5402
-> 16 0 23 1016 topology 1093 5402
-> 15 0 24 1016 topology 1093 5403
+> 15 0 24 1016 topology 1048 5402
+> 16 0 24 1016 topology 1156 5402
+> 15 0 24 1016 topology 1078 5403
 > 16 0 24 1016 topology 1156 5403
-> 15 0 23 1016 topology 1044 5404
-> 16 0 23 1016 topology 1045 5404
-> 15 0 24 1016 topology 1045 5405
+> 15 0 24 1016 topology 1019 5404
+> 16 0 24 1016 topology 1156 5404
+> 15 0 24 1016 topology 1108 5405
 > 16 0 24 1016 topology 1156 5405
-> 15 0 23 1016 topology 1107 5406
-> 16 0 23 1016 topology 1108 5406
-> 15 0 24 1016 topology 1108 5407
+> 15 0 25 1016 topology 1155 5406
+> 16 0 25 1016 topology 1156 5406
+> 15 0 24 1016 topology 1138 5407
 > 16 0 24 1016 topology 1156 5407
-> 15 0 23 1016 topology 1056 5408
-> 16 0 23 1016 topology 1057 5408
-> 15 0 24 1016 topology 1057 5409
+> 15 0 23 1016 topology 1035 5408
+> 16 0 23 1016 topology 1037 5408
+> 15 0 24 1016 topology 1060 5409
 > 16 0 24 1016 topology 1156 5409
-> 15 0 23 1016 topology 1119 5410
-> 16 0 23 1016 topology 1120 5410
-> 15 0 24 1016 topology 1120 5411
+> 15 0 24 1016 topology 1090 5410
+> 16 0 24 1016 topology 1156 5410
+> 15 0 24 1016 topology 1031 5411
 > 16 0 24 1016 topology 1156 5411
-> 15 0 23 1016 topology 1068 5412
-> 16 0 23 1016 topology 1069 5412
-> 15 0 24 1016 topology 1069 5413
-> 16 0 24 1016 topology 1156 5413
-> 15 0 23 1016 topology 1131 5414
-> 16 0 23 1016 topology 1132 5414
-> 15 0 24 1016 topology 1132 5415
+> 15 0 24 1016 topology 1120 5412
+> 16 0 24 1016 topology 1156 5412
+> 15 0 23 1016 topology 1020 5413
+> 16 0 23 1016 topology 1021 5413
+> 15 0 24 1016 topology 1150 5414
+> 16 0 24 1016 topology 1156 5414
+> 15 0 24 1016 topology 1072 5415
 > 16 0 24 1016 topology 1156 5415
-> 15 0 23 1016 topology 1026 5416
-> 16 0 23 1016 topology 1027 5416
-> 15 0 24 1016 topology 1027 5417
+> 15 0 24 1016 topology 1102 5416
+> 16 0 24 1016 topology 1156 5416
+> 15 0 24 1016 topology 1043 5417
 > 16 0 24 1016 topology 1156 5417
-> 15 0 23 1016 topology 1038 5418
-> 16 0 23 1016 topology 1039 5418
-> 15 0 24 1016 topology 1039 5419
-> 16 0 24 1016 topology 1156 5419
-> 15 0 23 1016 topology 1134 5420
-> 16 0 23 1016 topology 1135 5420
-> 15 0 24 1016 topology 1135 5421
+> 15 0 24 1016 topology 1132 5418
+> 16 0 24 1016 topology 1156 5418
+> 15 0 23 1016 topology 1032 5419
+> 16 0 23 1016 topology 1033 5419
+> 15 0 24 1016 topology 1021 5420
+> 16 0 24 1016 topology 1156 5420
+> 15 0 24 1016 topology 1049 5421
 > 16 0 24 1016 topology 1156 5421
-> 15 0 23 1016 topology 1083 5422
-> 16 0 23 1016 topology 1084 5422
-> 15 0 24 1016 topology 1084 5423
+> 15 0 24 1016 topology 1033 5422
+> 16 0 24 1016 topology 1156 5422
+> 15 0 24 1016 topology 1109 5423
 > 16 0 24 1016 topology 1156 5423
-> 15 0 23 1016 topology 1146 5424
-> 16 0 23 1016 topology 1147 5424
-> 15 0 24 1016 topology 1147 5425
+> 15 0 24 1016 topology 1085 5424
+> 16 0 24 1016 topology 1156 5424
+> 15 0 24 1016 topology 1061 5425
 > 16 0 24 1016 topology 1156 5425
-> 15 0 23 1016 topology 1095 5426
-> 16 0 23 1016 topology 1096 5426
-> 15 0 24 1016 topology 1096 5427
+> 15 0 24 1016 topology 1145 5426
+> 16 0 24 1016 topology 1156 5426
+> 15 0 24 1016 topology 1121 5427
 > 16 0 24 1016 topology 1156 5427
 > 15 0 23 1016 topology 1047 5428
-> 16 0 23 1016 topology 1048 5428
-> 15 0 24 1016 topology 1048 5429
+> 16 0 23 1016 topology 1049 5428
+> 15 0 24 1016 topology 1097 5429
 > 16 0 24 1016 topology 1156 5429
-> 15 0 23 1016 topology 1110 5430
-> 16 0 23 1016 topology 1111 5430
-> 15 0 24 1016 topology 1111 5431
-> 16 0 24 1016 topology 1156 5431
-> 15 0 23 952 topology 989 5432
-> 16 0 23 952 topology 990 5432
-> 15 0 24 952 topology 990 5433
-> 16 0 24 952 topology 1014 5433
-> 15 0 24 952 topology 1014 5434
-> 16 0 24 952 topology 997 5434
-> 15 0 25 952 topology 997 5435
-> 16 0 25 952 topology 995 5435
-> 15 0 24 952 topology 1014 5436
-> 16 0 24 952 topology 1003 5436
-> 15 0 25 952 topology 1003 5437
-> 16 0 25 952 topology 1001 5437
-> 15 0 24 952 topology 1014 5438
-> 16 0 24 952 topology 1009 5438
-> 15 0 25 952 topology 1009 5439
-> 16 0 25 952 topology 1007 5439
-> 15 0 24 952 topology 1014 5440
-> 16 0 24 952 topology 1012 5440
-> 15 0 25 952 topology 1012 5441
-> 16 0 25 952 topology 1010 5441
-> 15 0 24 952 topology 1014 5442
-> 16 0 24 952 topology 955 5442
-> 15 0 25 952 topology 955 5443
-> 16 0 25 952 topology 953 5443
-> 15 0 24 952 topology 1014 5444
-> 16 0 24 952 topology 961 5444
-> 15 0 25 952 topology 961 5445
-> 16 0 25 952 topology 959 5445
-> 15 0 24 952 topology 1014 5446
-> 16 0 24 952 topology 967 5446
-> 15 0 25 952 topology 967 5447
-> 16 0 25 952 topology 965 5447
-> 15 0 24 952 topology 1014 5448
-> 16 0 24 952 topology 973 5448
-> 15 0 25 952 topology 973 5449
-> 16 0 25 952 topology 971 5449
-> 15 0 24 952 topology 1014 5450
-> 16 0 24 952 topology 979 5450
-> 15 0 25 952 topology 979 5451
-> 16 0 25 952 topology 977 5451
-> 15 0 24 952 topology 1014 5452
-> 16 0 24 952 topology 982 5452
-> 15 0 25 952 topology 982 5453
-> 16 0 25 952 topology 980 5453
-> 15 0 24 952 topology 1014 5454
-> 16 0 24 952 topology 988 5454
-> 15 0 25 952 topology 988 5455
-> 16 0 25 952 topology 986 5455
-> 15 0 24 952 topology 1014 5456
-> 16 0 24 952 topology 994 5456
-> 15 0 25 952 topology 994 5457
-> 16 0 25 952 topology 992 5457
-> 15 0 24 952 topology 1014 5458
-> 16 0 24 952 topology 1000 5458
-> 15 0 25 952 topology 1000 5459
-> 16 0 25 952 topology 998 5459
-> 15 0 24 952 topology 1014 5460
-> 16 0 24 952 topology 1006 5460
-> 15 0 25 952 topology 1006 5461
-> 16 0 25 952 topology 1004 5461
-> 15 0 26 952 topology 1014 5462
-> 16 0 26 952 topology 1013 5462
-> 15 0 24 952 topology 1014 5463
-> 16 0 24 952 topology 958 5463
-> 15 0 25 952 topology 958 5464
-> 16 0 25 952 topology 956 5464
-> 15 0 24 952 topology 1014 5465
-> 16 0 24 952 topology 964 5465
-> 15 0 25 952 topology 964 5466
-> 16 0 25 952 topology 962 5466
-> 15 0 24 952 topology 1014 5467
-> 16 0 24 952 topology 970 5467
-> 15 0 25 952 topology 970 5468
-> 16 0 25 952 topology 968 5468
-> 15 0 24 952 topology 1014 5469
-> 16 0 24 952 topology 976 5469
-> 15 0 25 952 topology 976 5470
-> 16 0 25 952 topology 974 5470
-> 15 0 24 952 topology 1014 5471
-> 16 0 24 952 topology 985 5471
-> 15 0 25 952 topology 985 5472
-> 16 0 25 952 topology 983 5472
-> 15 0 23 952 topology 995 5473
-> 16 0 23 952 topology 996 5473
-> 15 0 24 952 topology 996 5474
+> 15 0 24 1016 topology 1073 5430
+> 16 0 24 1016 topology 1156 5430
+> 15 0 23 1016 topology 1077 5431
+> 16 0 23 1016 topology 1079 5431
+> 15 0 24 952 topology 1000 5432
+> 16 0 24 952 topology 1014 5432
+> 15 0 23 952 topology 983 5433
+> 16 0 23 952 topology 985 5433
+> 15 0 24 952 topology 955 5434
+> 16 0 24 952 topology 1014 5434
+> 15 0 24 952 topology 990 5435
+> 16 0 24 952 topology 1014 5435
+> 15 0 23 952 topology 995 5436
+> 16 0 23 952 topology 997 5436
+> 15 0 23 952 topology 980 5437
+> 16 0 23 952 topology 981 5437
+> 15 0 24 952 topology 967 5438
+> 16 0 24 952 topology 1014 5438
+> 15 0 24 952 topology 1002 5439
+> 16 0 24 952 topology 1014 5439
+> 15 0 24 952 topology 979 5440
+> 16 0 24 952 topology 1014 5440
+> 15 0 23 952 topology 1007 5441
+> 16 0 23 952 topology 1009 5441
+> 15 0 23 952 topology 992 5442
+> 16 0 23 952 topology 993 5442
+> 15 0 24 952 topology 957 5443
+> 16 0 24 952 topology 1014 5443
+> 15 0 24 952 topology 969 5444
+> 16 0 24 952 topology 1014 5444
+> 15 0 24 952 topology 991 5445
+> 16 0 24 952 topology 1014 5445
+> 15 0 23 952 topology 1004 5446
+> 16 0 23 952 topology 1005 5446
+> 15 0 23 952 topology 980 5447
+> 16 0 23 952 topology 982 5447
+> 15 0 24 952 topology 1003 5448
+> 16 0 24 952 topology 1014 5448
+> 15 0 23 952 topology 956 5449
+> 16 0 23 952 topology 958 5449
+> 15 0 23 952 topology 962 5450
+> 16 0 23 952 topology 964 5450
+> 15 0 23 952 topology 992 5451
+> 16 0 23 952 topology 994 5451
+> 15 0 24 952 topology 987 5452
+> 16 0 24 952 topology 1014 5452
+> 15 0 23 952 topology 968 5453
+> 16 0 23 952 topology 970 5453
+> 15 0 24 952 topology 958 5454
+> 16 0 24 952 topology 1014 5454
+> 15 0 23 952 topology 953 5455
+> 16 0 23 952 topology 954 5455
+> 15 0 24 952 topology 999 5456
+> 16 0 24 952 topology 1014 5456
+> 15 0 25 952 topology 1013 5457
+> 16 0 25 952 topology 1014 5457
+> 15 0 23 952 topology 974 5458
+> 16 0 23 952 topology 976 5458
+> 15 0 23 952 topology 956 5459
+> 16 0 23 952 topology 957 5459
+> 15 0 24 952 topology 970 5460
+> 16 0 24 952 topology 1014 5460
+> 15 0 23 952 topology 983 5461
+> 16 0 23 952 topology 984 5461
+> 15 0 23 952 topology 1004 5462
+> 16 0 23 952 topology 1006 5462
+> 15 0 23 952 topology 959 5463
+> 16 0 23 952 topology 960 5463
+> 15 0 23 952 topology 962 5464
+> 16 0 23 952 topology 963 5464
+> 15 0 23 952 topology 965 5465
+> 16 0 23 952 topology 966 5465
+> 15 0 24 952 topology 954 5466
+> 16 0 24 952 topology 1014 5466
+> 15 0 23 952 topology 968 5467
+> 16 0 23 952 topology 969 5467
+> 15 0 23 952 topology 995 5468
+> 16 0 23 952 topology 996 5468
+> 15 0 23 952 topology 971 5469
+> 16 0 23 952 topology 972 5469
+> 15 0 24 952 topology 982 5470
+> 16 0 24 952 topology 1014 5470
+> 15 0 24 952 topology 966 5471
+> 16 0 24 952 topology 1014 5471
+> 15 0 23 952 topology 974 5472
+> 16 0 23 952 topology 975 5472
+> 15 0 23 952 topology 977 5473
+> 16 0 23 952 topology 978 5473
+> 15 0 24 952 topology 994 5474
 > 16 0 24 952 topology 1014 5474
-> 15 0 24 952 topology 1014 5475
-> 16 0 24 952 topology 991 5475
-> 15 0 25 952 topology 991 5476
-> 16 0 25 952 topology 989 5476
-> 15 0 23 952 topology 1001 5477
-> 16 0 23 952 topology 1002 5477
-> 15 0 24 952 topology 1002 5478
-> 16 0 24 952 topology 1014 5478
-> 15 0 23 952 topology 1007 5479
-> 16 0 23 952 topology 1008 5479
-> 15 0 24 952 topology 1008 5480
+> 15 0 24 952 topology 978 5475
+> 16 0 24 952 topology 1014 5475
+> 15 0 23 952 topology 1007 5476
+> 16 0 23 952 topology 1008 5476
+> 15 0 24 952 topology 1006 5477
+> 16 0 24 952 topology 1014 5477
+> 15 0 23 952 topology 1010 5478
+> 16 0 23 952 topology 1012 5478
+> 15 0 23 952 topology 989 5479
+> 16 0 23 952 topology 991 5479
+> 15 0 24 952 topology 984 5480
 > 16 0 24 952 topology 1014 5480
-> 15 0 23 952 topology 1010 5481
-> 16 0 23 952 topology 1011 5481
-> 15 0 24 952 topology 1011 5482
+> 15 0 24 952 topology 961 5481
+> 16 0 24 952 topology 1014 5481
+> 15 0 24 952 topology 996 5482
 > 16 0 24 952 topology 1014 5482
-> 15 0 23 952 topology 953 5483
-> 16 0 23 952 topology 954 5483
-> 15 0 24 952 topology 954 5484
+> 15 0 23 952 topology 1001 5483
+> 16 0 23 952 topology 1003 5483
+> 15 0 24 952 topology 973 5484
 > 16 0 24 952 topology 1014 5484
-> 15 0 23 952 topology 959 5485
-> 16 0 23 952 topology 960 5485
-> 15 0 24 952 topology 960 5486
-> 16 0 24 952 topology 1014 5486
-> 15 0 23 952 topology 965 5487
-> 16 0 23 952 topology 966 5487
-> 15 0 24 952 topology 966 5488
+> 15 0 24 952 topology 1008 5485
+> 16 0 24 952 topology 1014 5485
+> 15 0 23 952 topology 986 5486
+> 16 0 23 952 topology 987 5486
+> 15 0 23 952 topology 998 5487
+> 16 0 23 952 topology 999 5487
+> 15 0 24 952 topology 963 5488
 > 16 0 24 952 topology 1014 5488
-> 15 0 23 952 topology 971 5489
-> 16 0 23 952 topology 972 5489
-> 15 0 24 952 topology 972 5490
+> 15 0 24 952 topology 985 5489
+> 16 0 24 952 topology 1014 5489
+> 15 0 24 952 topology 975 5490
 > 16 0 24 952 topology 1014 5490
-> 15 0 23 952 topology 977 5491
-> 16 0 23 952 topology 978 5491
-> 15 0 24 952 topology 978 5492
-> 16 0 24 952 topology 1014 5492
-> 15 0 23 952 topology 980 5493
-> 16 0 23 952 topology 981 5493
-> 15 0 24 952 topology 981 5494
-> 16 0 24 952 topology 1014 5494
+> 15 0 24 952 topology 997 5491
+> 16 0 24 952 topology 1014 5491
+> 15 0 23 952 topology 953 5492
+> 16 0 23 952 topology 955 5492
+> 15 0 24 952 topology 1009 5493
+> 16 0 24 952 topology 1014 5493
+> 15 0 23 952 topology 959 5494
+> 16 0 23 952 topology 961 5494
 > 15 0 23 952 topology 986 5495
-> 16 0 23 952 topology 987 5495
-> 15 0 24 952 topology 987 5496
+> 16 0 23 952 topology 988 5495
+> 15 0 24 952 topology 981 5496
 > 16 0 24 952 topology 1014 5496
-> 15 0 23 952 topology 992 5497
-> 16 0 23 952 topology 993 5497
-> 15 0 24 952 topology 993 5498
+> 15 0 23 952 topology 965 5497
+> 16 0 23 952 topology 967 5497
+> 15 0 24 952 topology 1011 5498
 > 16 0 24 952 topology 1014 5498
-> 15 0 23 952 topology 998 5499
-> 16 0 23 952 topology 999 5499
-> 15 0 24 952 topology 999 5500
-> 16 0 24 952 topology 1014 5500
-> 15 0 23 952 topology 1004 5501
-> 16 0 23 952 topology 1005 5501
-> 15 0 24 952 topology 1005 5502
+> 15 0 24 952 topology 993 5499
+> 16 0 24 952 topology 1014 5499
+> 15 0 23 952 topology 971 5500
+> 16 0 23 952 topology 973 5500
+> 15 0 23 952 topology 998 5501
+> 16 0 23 952 topology 1000 5501
+> 15 0 24 952 topology 964 5502
 > 16 0 24 952 topology 1014 5502
-> 15 0 23 952 topology 956 5503
-> 16 0 23 952 topology 957 5503
-> 15 0 24 952 topology 957 5504
-> 16 0 24 952 topology 1014 5504
-> 15 0 23 952 topology 962 5505
-> 16 0 23 952 topology 963 5505
-> 15 0 24 952 topology 963 5506
+> 15 0 24 952 topology 1005 5503
+> 16 0 24 952 topology 1014 5503
+> 15 0 23 952 topology 1010 5504
+> 16 0 23 952 topology 1011 5504
+> 15 0 23 952 topology 977 5505
+> 16 0 23 952 topology 979 5505
+> 15 0 24 952 topology 976 5506
 > 16 0 24 952 topology 1014 5506
-> 15 0 23 952 topology 968 5507
-> 16 0 23 952 topology 969 5507
-> 15 0 24 952 topology 969 5508
+> 15 0 23 952 topology 989 5507
+> 16 0 23 952 topology 990 5507
+> 15 0 24 952 topology 960 5508
 > 16 0 24 952 topology 1014 5508
-> 15 0 23 952 topology 974 5509
-> 16 0 23 952 topology 975 5509
-> 15 0 24 952 topology 975 5510
+> 15 0 23 952 topology 1001 5509
+> 16 0 23 952 topology 1002 5509
+> 15 0 24 952 topology 1012 5510
 > 16 0 24 952 topology 1014 5510
-> 15 0 23 952 topology 983 5511
-> 16 0 23 952 topology 984 5511
-> 15 0 24 952 topology 984 5512
+> 15 0 24 952 topology 988 5511
+> 16 0 24 952 topology 1014 5511
+> 15 0 24 952 topology 972 5512
 > 16 0 24 952 topology 1014 5512
-> 15 0 23 1158 topology 1159 5513
-> 16 0 23 1158 topology 1160 5513
-> 15 0 24 1158 topology 1160 5514
-> 16 0 24 1158 topology 1184 5514
-> 15 0 24 1158 topology 1184 5515
-> 16 0 24 1158 topology 1167 5515
-> 15 0 25 1158 topology 1167 5516
-> 16 0 25 1158 topology 1165 5516
-> 15 0 24 1158 topology 1184 5517
-> 16 0 24 1158 topology 1173 5517
-> 15 0 25 1158 topology 1173 5518
-> 16 0 25 1158 topology 1171 5518
-> 15 0 24 1158 topology 1184 5519
-> 16 0 24 1158 topology 1179 5519
-> 15 0 25 1158 topology 1179 5520
-> 16 0 25 1158 topology 1177 5520
-> 15 0 26 1158 topology 1184 5521
-> 16 0 26 1158 topology 1183 5521
-> 15 0 24 1158 topology 1184 5522
-> 16 0 24 1158 topology 1164 5522
-> 15 0 25 1158 topology 1164 5523
-> 16 0 25 1158 topology 1162 5523
-> 15 0 24 1158 topology 1184 5524
-> 16 0 24 1158 topology 1170 5524
-> 15 0 25 1158 topology 1170 5525
-> 16 0 25 1158 topology 1168 5525
-> 15 0 24 1158 topology 1184 5526
-> 16 0 24 1158 topology 1176 5526
-> 15 0 25 1158 topology 1176 5527
-> 16 0 25 1158 topology 1174 5527
-> 15 0 24 1158 topology 1184 5528
-> 16 0 24 1158 topology 1182 5528
-> 15 0 25 1158 topology 1182 5529
-> 16 0 25 1158 topology 1180 5529
-> 15 0 23 1158 topology 1165 5530
-> 16 0 23 1158 topology 1166 5530
-> 15 0 24 1158 topology 1166 5531
+> 15 0 24 1158 topology 1175 5513
+> 16 0 24 1158 topology 1184 5513
+> 15 0 23 1158 topology 1159 5514
+> 16 0 23 1158 topology 1161 5514
+> 15 0 23 1158 topology 1162 5515
+> 16 0 23 1158 topology 1164 5515
+> 15 0 23 1158 topology 1165 5516
+> 16 0 23 1158 topology 1167 5516
+> 15 0 23 1158 topology 1168 5517
+> 16 0 23 1158 topology 1170 5517
+> 15 0 23 1158 topology 1171 5518
+> 16 0 23 1158 topology 1173 5518
+> 15 0 23 1158 topology 1174 5519
+> 16 0 23 1158 topology 1176 5519
+> 15 0 24 1158 topology 1164 5520
+> 16 0 24 1158 topology 1184 5520
+> 15 0 23 1158 topology 1177 5521
+> 16 0 23 1158 topology 1179 5521
+> 15 0 23 1158 topology 1180 5522
+> 16 0 23 1158 topology 1182 5522
+> 15 0 23 1158 topology 1162 5523
+> 16 0 23 1158 topology 1163 5523
+> 15 0 24 1158 topology 1176 5524
+> 16 0 24 1158 topology 1184 5524
+> 15 0 23 1158 topology 1168 5525
+> 16 0 23 1158 topology 1169 5525
+> 15 0 24 1158 topology 1160 5526
+> 16 0 24 1158 topology 1184 5526
+> 15 0 23 1158 topology 1174 5527
+> 16 0 23 1158 topology 1175 5527
+> 15 0 24 1158 topology 1172 5528
+> 16 0 24 1158 topology 1184 5528
+> 15 0 23 1158 topology 1180 5529
+> 16 0 23 1158 topology 1181 5529
+> 15 0 24 1158 topology 1167 5530
+> 16 0 24 1158 topology 1184 5530
+> 15 0 24 1158 topology 1179 5531
 > 16 0 24 1158 topology 1184 5531
-> 15 0 24 1158 topology 1184 5532
-> 16 0 24 1158 topology 1161 5532
-> 15 0 25 1158 topology 1161 5533
-> 16 0 25 1158 topology 1159 5533
-> 15 0 23 1158 topology 1171 5534
-> 16 0 23 1158 topology 1172 5534
-> 15 0 24 1158 topology 1172 5535
-> 16 0 24 1158 topology 1184 5535
-> 15 0 23 1158 topology 1177 5536
-> 16 0 23 1158 topology 1178 5536
-> 15 0 24 1158 topology 1178 5537
-> 16 0 24 1158 topology 1184 5537
-> 15 0 23 1158 topology 1162 5538
-> 16 0 23 1158 topology 1163 5538
-> 15 0 24 1158 topology 1163 5539
-> 16 0 24 1158 topology 1184 5539
-> 15 0 23 1158 topology 1168 5540
-> 16 0 23 1158 topology 1169 5540
-> 15 0 24 1158 topology 1169 5541
-> 16 0 24 1158 topology 1184 5541
-> 15 0 23 1158 topology 1174 5542
-> 16 0 23 1158 topology 1175 5542
-> 15 0 24 1158 topology 1175 5543
+> 15 0 25 1158 topology 1183 5532
+> 16 0 25 1158 topology 1184 5532
+> 15 0 24 1158 topology 1169 5533
+> 16 0 24 1158 topology 1184 5533
+> 15 0 24 1158 topology 1181 5534
+> 16 0 24 1158 topology 1184 5534
+> 15 0 23 1158 topology 1159 5535
+> 16 0 23 1158 topology 1160 5535
+> 15 0 24 1158 topology 1170 5536
+> 16 0 24 1158 topology 1184 5536
+> 15 0 23 1158 topology 1165 5537
+> 16 0 23 1158 topology 1166 5537
+> 15 0 24 1158 topology 1182 5538
+> 16 0 24 1158 topology 1184 5538
+> 15 0 23 1158 topology 1171 5539
+> 16 0 23 1158 topology 1172 5539
+> 15 0 24 1158 topology 1166 5540
+> 16 0 24 1158 topology 1184 5540
+> 15 0 23 1158 topology 1177 5541
+> 16 0 23 1158 topology 1178 5541
+> 15 0 24 1158 topology 1178 5542
+> 16 0 24 1158 topology 1184 5542
+> 15 0 24 1158 topology 1161 5543
 > 16 0 24 1158 topology 1184 5543
-> 15 0 23 1158 topology 1180 5544
-> 16 0 23 1158 topology 1181 5544
-> 15 0 24 1158 topology 1181 5545
+> 15 0 24 1158 topology 1173 5544
+> 16 0 24 1158 topology 1184 5544
+> 15 0 24 1158 topology 1163 5545
 > 16 0 24 1158 topology 1184 5545
-> 15 0 23 870 topology 931 5546
-> 16 0 23 870 topology 932 5546
-> 15 0 24 870 topology 932 5547
-> 16 0 24 870 topology 950 5547
-> 15 0 24 870 topology 950 5548
-> 16 0 24 870 topology 939 5548
-> 15 0 25 870 topology 939 5549
-> 16 0 25 870 topology 937 5549
-> 15 0 24 870 topology 950 5550
-> 16 0 24 870 topology 945 5550
-> 15 0 25 870 topology 945 5551
-> 16 0 25 870 topology 943 5551
-> 15 0 24 870 topology 950 5552
-> 16 0 24 870 topology 876 5552
-> 15 0 25 870 topology 876 5553
-> 16 0 25 870 topology 874 5553
-> 15 0 24 870 topology 950 5554
-> 16 0 24 870 topology 882 5554
-> 15 0 25 870 topology 882 5555
-> 16 0 25 870 topology 880 5555
-> 15 0 24 870 topology 950 5556
-> 16 0 24 870 topology 888 5556
-> 15 0 25 870 topology 888 5557
-> 16 0 25 870 topology 886 5557
-> 15 0 24 870 topology 950 5558
-> 16 0 24 870 topology 894 5558
-> 15 0 25 870 topology 894 5559
-> 16 0 25 870 topology 892 5559
-> 15 0 24 870 topology 950 5560
-> 16 0 24 870 topology 903 5560
-> 15 0 25 870 topology 903 5561
-> 16 0 25 870 topology 901 5561
-> 15 0 24 870 topology 950 5562
-> 16 0 24 870 topology 909 5562
-> 15 0 25 870 topology 909 5563
-> 16 0 25 870 topology 907 5563
-> 15 0 24 870 topology 950 5564
-> 16 0 24 870 topology 915 5564
-> 15 0 25 870 topology 915 5565
-> 16 0 25 870 topology 913 5565
-> 15 0 26 870 topology 950 5566
-> 16 0 26 870 topology 949 5566
-> 15 0 24 870 topology 950 5567
-> 16 0 24 870 topology 921 5567
-> 15 0 25 870 topology 921 5568
-> 16 0 25 870 topology 919 5568
-> 15 0 24 870 topology 950 5569
-> 16 0 24 870 topology 927 5569
-> 15 0 25 870 topology 927 5570
-> 16 0 25 870 topology 925 5570
-> 15 0 24 870 topology 950 5571
-> 16 0 24 870 topology 930 5571
-> 15 0 25 870 topology 930 5572
-> 16 0 25 870 topology 928 5572
-> 15 0 24 870 topology 950 5573
-> 16 0 24 870 topology 936 5573
-> 15 0 25 870 topology 936 5574
-> 16 0 25 870 topology 934 5574
-> 15 0 24 870 topology 950 5575
-> 16 0 24 870 topology 942 5575
-> 15 0 25 870 topology 942 5576
-> 16 0 25 870 topology 940 5576
-> 15 0 24 870 topology 950 5577
-> 16 0 24 870 topology 948 5577
-> 15 0 25 870 topology 948 5578
-> 16 0 25 870 topology 946 5578
-> 15 0 24 870 topology 950 5579
-> 16 0 24 870 topology 873 5579
-> 15 0 25 870 topology 873 5580
-> 16 0 25 870 topology 871 5580
-> 15 0 24 870 topology 950 5581
-> 16 0 24 870 topology 879 5581
-> 15 0 25 870 topology 879 5582
-> 16 0 25 870 topology 877 5582
-> 15 0 24 870 topology 950 5583
-> 16 0 24 870 topology 885 5583
-> 15 0 25 870 topology 885 5584
-> 16 0 25 870 topology 883 5584
-> 15 0 24 870 topology 950 5585
-> 16 0 24 870 topology 891 5585
-> 15 0 25 870 topology 891 5586
-> 16 0 25 870 topology 889 5586
-> 15 0 24 870 topology 950 5587
-> 16 0 24 870 topology 897 5587
-> 15 0 25 870 topology 897 5588
-> 16 0 25 870 topology 895 5588
-> 15 0 24 870 topology 950 5589
-> 16 0 24 870 topology 900 5589
-> 15 0 25 870 topology 900 5590
-> 16 0 25 870 topology 898 5590
-> 15 0 24 870 topology 950 5591
-> 16 0 24 870 topology 906 5591
-> 15 0 25 870 topology 906 5592
-> 16 0 25 870 topology 904 5592
-> 15 0 24 870 topology 950 5593
-> 16 0 24 870 topology 912 5593
-> 15 0 25 870 topology 912 5594
-> 16 0 25 870 topology 910 5594
-> 15 0 24 870 topology 950 5595
-> 16 0 24 870 topology 918 5595
-> 15 0 25 870 topology 918 5596
-> 16 0 25 870 topology 916 5596
-> 15 0 24 870 topology 950 5597
-> 16 0 24 870 topology 924 5597
-> 15 0 25 870 topology 924 5598
-> 16 0 25 870 topology 922 5598
-> 15 0 23 870 topology 937 5599
-> 16 0 23 870 topology 938 5599
-> 15 0 24 870 topology 938 5600
-> 16 0 24 870 topology 950 5600
-> 15 0 24 870 topology 950 5601
-> 16 0 24 870 topology 933 5601
-> 15 0 25 870 topology 933 5602
-> 16 0 25 870 topology 931 5602
-> 15 0 23 870 topology 943 5603
-> 16 0 23 870 topology 944 5603
-> 15 0 24 870 topology 944 5604
+> 15 0 23 870 topology 874 5546
+> 16 0 23 870 topology 875 5546
+> 15 0 23 870 topology 901 5547
+> 16 0 23 870 topology 902 5547
+> 15 0 24 870 topology 891 5548
+> 16 0 24 870 topology 950 5548
+> 15 0 23 870 topology 895 5549
+> 16 0 23 870 topology 897 5549
+> 15 0 24 870 topology 926 5550
+> 16 0 24 870 topology 950 5550
+> 15 0 23 870 topology 904 5551
+> 16 0 23 870 topology 905 5551
+> 15 0 23 870 topology 925 5552
+> 16 0 23 870 topology 927 5552
+> 15 0 23 870 topology 907 5553
+> 16 0 23 870 topology 908 5553
+> 15 0 23 870 topology 910 5554
+> 16 0 23 870 topology 911 5554
+> 15 0 25 870 topology 949 5555
+> 16 0 25 870 topology 950 5555
+> 15 0 23 870 topology 886 5556
+> 16 0 23 870 topology 887 5556
+> 15 0 23 870 topology 913 5557
+> 16 0 23 870 topology 914 5557
+> 15 0 23 870 topology 916 5558
+> 16 0 23 870 topology 917 5558
+> 15 0 24 870 topology 881 5559
+> 16 0 24 870 topology 950 5559
+> 15 0 24 870 topology 903 5560
+> 16 0 24 870 topology 950 5560
+> 15 0 23 870 topology 919 5561
+> 16 0 23 870 topology 920 5561
+> 15 0 23 870 topology 922 5562
+> 16 0 23 870 topology 923 5562
+> 15 0 24 870 topology 893 5563
+> 16 0 24 870 topology 950 5563
+> 15 0 24 870 topology 939 5564
+> 16 0 24 870 topology 950 5564
+> 15 0 24 870 topology 915 5565
+> 16 0 24 870 topology 950 5565
+> 15 0 23 870 topology 925 5566
+> 16 0 23 870 topology 926 5566
+> 15 0 23 870 topology 874 5567
+> 16 0 23 870 topology 876 5567
+> 15 0 24 870 topology 927 5568
+> 16 0 24 870 topology 950 5568
+> 15 0 24 870 topology 899 5569
+> 16 0 24 870 topology 950 5569
+> 15 0 24 870 topology 929 5570
+> 16 0 24 870 topology 950 5570
+> 15 0 23 870 topology 886 5571
+> 16 0 23 870 topology 888 5571
+> 15 0 24 870 topology 911 5572
+> 16 0 24 870 topology 950 5572
+> 15 0 24 870 topology 941 5573
+> 16 0 24 870 topology 950 5573
+> 15 0 23 870 topology 871 5574
+> 16 0 23 870 topology 872 5574
+> 15 0 24 870 topology 882 5575
+> 16 0 24 870 topology 950 5575
+> 15 0 24 870 topology 923 5576
+> 16 0 24 870 topology 950 5576
+> 15 0 24 870 topology 894 5577
+> 16 0 24 870 topology 950 5577
+> 15 0 23 870 topology 883 5578
+> 16 0 23 870 topology 884 5578
+> 15 0 24 870 topology 878 5579
+> 16 0 24 870 topology 950 5579
+> 15 0 24 870 topology 930 5580
+> 16 0 24 870 topology 950 5580
+> 15 0 24 870 topology 906 5581
+> 16 0 24 870 topology 950 5581
+> 15 0 24 870 topology 890 5582
+> 16 0 24 870 topology 950 5582
+> 15 0 23 870 topology 895 5583
+> 16 0 23 870 topology 896 5583
+> 15 0 24 870 topology 942 5584
+> 16 0 24 870 topology 950 5584
+> 15 0 23 870 topology 898 5585
+> 16 0 23 870 topology 900 5585
+> 15 0 24 870 topology 918 5586
+> 16 0 24 870 topology 950 5586
+> 15 0 23 870 topology 928 5587
+> 16 0 23 870 topology 930 5587
+> 15 0 23 870 topology 877 5588
+> 16 0 23 870 topology 879 5588
+> 15 0 23 870 topology 904 5589
+> 16 0 23 870 topology 906 5589
+> 15 0 23 870 topology 934 5590
+> 16 0 23 870 topology 936 5590
+> 15 0 23 870 topology 910 5591
+> 16 0 23 870 topology 912 5591
+> 15 0 24 870 topology 873 5592
+> 16 0 24 870 topology 950 5592
+> 15 0 24 870 topology 908 5593
+> 16 0 24 870 topology 950 5593
+> 15 0 23 870 topology 940 5594
+> 16 0 23 870 topology 942 5594
+> 15 0 24 870 topology 938 5595
+> 16 0 24 870 topology 950 5595
+> 15 0 23 870 topology 889 5596
+> 16 0 23 870 topology 891 5596
+> 15 0 23 870 topology 916 5597
+> 16 0 23 870 topology 918 5597
+> 15 0 24 870 topology 885 5598
+> 16 0 24 870 topology 950 5598
+> 15 0 24 870 topology 920 5599
+> 16 0 24 870 topology 950 5599
+> 15 0 23 870 topology 946 5600
+> 16 0 23 870 topology 948 5600
+> 15 0 23 870 topology 928 5601
+> 16 0 23 870 topology 929 5601
+> 15 0 23 870 topology 922 5602
+> 16 0 23 870 topology 924 5602
+> 15 0 23 870 topology 931 5603
+> 16 0 23 870 topology 932 5603
+> 15 0 24 870 topology 897 5604
 > 16 0 24 870 topology 950 5604
-> 15 0 23 870 topology 874 5605
-> 16 0 23 870 topology 875 5605
-> 15 0 24 870 topology 875 5606
-> 16 0 24 870 topology 950 5606
-> 15 0 23 870 topology 880 5607
-> 16 0 23 870 topology 881 5607
-> 15 0 24 870 topology 881 5608
-> 16 0 24 870 topology 950 5608
-> 15 0 23 870 topology 886 5609
-> 16 0 23 870 topology 887 5609
-> 15 0 24 870 topology 887 5610
-> 16 0 24 870 topology 950 5610
+> 15 0 23 870 topology 880 5605
+> 16 0 23 870 topology 881 5605
+> 15 0 23 870 topology 934 5606
+> 16 0 23 870 topology 935 5606
+> 15 0 23 870 topology 937 5607
+> 16 0 23 870 topology 938 5607
+> 15 0 23 870 topology 940 5608
+> 16 0 23 870 topology 941 5608
+> 15 0 24 870 topology 875 5609
+> 16 0 24 870 topology 950 5609
+> 15 0 23 870 topology 943 5610
+> 16 0 23 870 topology 944 5610
 > 15 0 23 870 topology 892 5611
 > 16 0 23 870 topology 893 5611
-> 15 0 24 870 topology 893 5612
-> 16 0 24 870 topology 950 5612
-> 15 0 23 870 topology 901 5613
-> 16 0 23 870 topology 902 5613
-> 15 0 24 870 topology 902 5614
+> 15 0 23 870 topology 946 5612
+> 16 0 23 870 topology 947 5612
+> 15 0 24 870 topology 887 5613
+> 16 0 24 870 topology 950 5613
+> 15 0 24 870 topology 933 5614
 > 16 0 24 870 topology 950 5614
-> 15 0 23 870 topology 907 5615
-> 16 0 23 870 topology 908 5615
-> 15 0 24 870 topology 908 5616
+> 15 0 24 870 topology 909 5615
+> 16 0 24 870 topology 950 5615
+> 15 0 24 870 topology 945 5616
 > 16 0 24 870 topology 950 5616
-> 15 0 23 870 topology 913 5617
-> 16 0 23 870 topology 914 5617
-> 15 0 24 870 topology 914 5618
-> 16 0 24 870 topology 950 5618
-> 15 0 23 870 topology 919 5619
-> 16 0 23 870 topology 920 5619
-> 15 0 24 870 topology 920 5620
+> 15 0 24 870 topology 921 5617
+> 16 0 24 870 topology 950 5617
+> 15 0 23 870 topology 880 5618
+> 16 0 23 870 topology 882 5618
+> 15 0 24 870 topology 905 5619
+> 16 0 24 870 topology 950 5619
+> 15 0 24 870 topology 935 5620
 > 16 0 24 870 topology 950 5620
-> 15 0 23 870 topology 925 5621
-> 16 0 23 870 topology 926 5621
-> 15 0 24 870 topology 926 5622
+> 15 0 24 870 topology 876 5621
+> 16 0 24 870 topology 950 5621
+> 15 0 24 870 topology 917 5622
 > 16 0 24 870 topology 950 5622
-> 15 0 23 870 topology 928 5623
-> 16 0 23 870 topology 929 5623
-> 15 0 24 870 topology 929 5624
+> 15 0 23 870 topology 892 5623
+> 16 0 23 870 topology 894 5623
+> 15 0 24 870 topology 947 5624
 > 16 0 24 870 topology 950 5624
-> 15 0 23 870 topology 934 5625
-> 16 0 23 870 topology 935 5625
-> 15 0 24 870 topology 935 5626
-> 16 0 24 870 topology 950 5626
-> 15 0 23 870 topology 940 5627
-> 16 0 23 870 topology 941 5627
-> 15 0 24 870 topology 941 5628
-> 16 0 24 870 topology 950 5628
-> 15 0 23 870 topology 946 5629
-> 16 0 23 870 topology 947 5629
-> 15 0 24 870 topology 947 5630
+> 15 0 24 870 topology 888 5625
+> 16 0 24 870 topology 950 5625
+> 15 0 23 870 topology 877 5626
+> 16 0 23 870 topology 878 5626
+> 15 0 24 870 topology 872 5627
+> 16 0 24 870 topology 950 5627
+> 15 0 23 870 topology 889 5628
+> 16 0 23 870 topology 890 5628
+> 15 0 24 870 topology 900 5629
+> 16 0 24 870 topology 950 5629
+> 15 0 24 870 topology 884 5630
 > 16 0 24 870 topology 950 5630
-> 15 0 23 870 topology 871 5631
-> 16 0 23 870 topology 872 5631
-> 15 0 24 870 topology 872 5632
+> 15 0 24 870 topology 936 5631
+> 16 0 24 870 topology 950 5631
+> 15 0 24 870 topology 912 5632
 > 16 0 24 870 topology 950 5632
-> 15 0 23 870 topology 877 5633
-> 16 0 23 870 topology 878 5633
-> 15 0 24 870 topology 878 5634
-> 16 0 24 870 topology 950 5634
-> 15 0 23 870 topology 883 5635
-> 16 0 23 870 topology 884 5635
-> 15 0 24 870 topology 884 5636
-> 16 0 24 870 topology 950 5636
-> 15 0 23 870 topology 889 5637
-> 16 0 23 870 topology 890 5637
-> 15 0 24 870 topology 890 5638
-> 16 0 24 870 topology 950 5638
-> 15 0 23 870 topology 895 5639
-> 16 0 23 870 topology 896 5639
-> 15 0 24 870 topology 896 5640
-> 16 0 24 870 topology 950 5640
-> 15 0 23 870 topology 898 5641
-> 16 0 23 870 topology 899 5641
-> 15 0 24 870 topology 899 5642
-> 16 0 24 870 topology 950 5642
-> 15 0 23 870 topology 904 5643
-> 16 0 23 870 topology 905 5643
-> 15 0 24 870 topology 905 5644
-> 16 0 24 870 topology 950 5644
-> 15 0 23 870 topology 910 5645
-> 16 0 23 870 topology 911 5645
-> 15 0 24 870 topology 911 5646
+> 15 0 24 870 topology 896 5633
+> 16 0 24 870 topology 950 5633
+> 15 0 23 870 topology 871 5634
+> 16 0 23 870 topology 873 5634
+> 15 0 24 870 topology 948 5635
+> 16 0 24 870 topology 950 5635
+> 15 0 23 870 topology 901 5636
+> 16 0 23 870 topology 903 5636
+> 15 0 24 870 topology 924 5637
+> 16 0 24 870 topology 950 5637
+> 15 0 23 870 topology 931 5638
+> 16 0 23 870 topology 933 5638
+> 15 0 23 870 topology 907 5639
+> 16 0 23 870 topology 909 5639
+> 15 0 23 870 topology 883 5640
+> 16 0 23 870 topology 885 5640
+> 15 0 24 870 topology 902 5641
+> 16 0 24 870 topology 950 5641
+> 15 0 23 870 topology 937 5642
+> 16 0 23 870 topology 939 5642
+> 15 0 24 870 topology 932 5643
+> 16 0 24 870 topology 950 5643
+> 15 0 23 870 topology 913 5644
+> 16 0 23 870 topology 915 5644
+> 15 0 24 870 topology 879 5645
+> 16 0 24 870 topology 950 5645
+> 15 0 24 870 topology 914 5646
 > 16 0 24 870 topology 950 5646
-> 15 0 23 870 topology 916 5647
-> 16 0 23 870 topology 917 5647
-> 15 0 24 870 topology 917 5648
-> 16 0 24 870 topology 950 5648
-> 15 0 23 870 topology 922 5649
-> 16 0 23 870 topology 923 5649
-> 15 0 24 870 topology 923 5650
-> 16 0 24 870 topology 950 5650
-> 15 0 27 869 topology 1155 5651
-> 16 0 27 869 topology 1157 5651
-> 15 0 21 869 topology 1157 5652
-> 16 0 21 869 topology 1015 5652
-> 15 0 28 869 topology 1015 5653
-> 16 0 28 869 topology 1013 5653
-> 15 0 21 869 topology 1157 5654
-> 16 0 21 869 topology 1185 5654
-> 15 0 28 869 topology 1185 5655
-> 16 0 28 869 topology 1183 5655
-> 15 0 28 869 topology 1157 5656
-> 16 0 28 869 topology 1187 5656
-> 15 0 21 869 topology 1157 5657
-> 16 0 21 869 topology 951 5657
-> 15 0 28 869 topology 951 5658
-> 16 0 28 869 topology 949 5658
-> 15 0 21 869 topology 1015 5659
-> 16 0 21 869 topology 1185 5659
-> 15 0 28 869 topology 1015 5660
-> 16 0 28 869 topology 1187 5660
-> 15 0 21 869 topology 1015 5661
-> 16 0 21 869 topology 951 5661
-> 15 0 28 869 topology 1185 5662
-> 16 0 28 869 topology 1187 5662
-> 15 0 21 869 topology 1185 5663
-> 16 0 21 869 topology 951 5663
-> 15 0 27 869 topology 1187 5664
-> 16 0 27 869 topology 951 5664
-> 15 0 23 3922 topology 3989 5665
-> 16 0 23 3922 topology 3990 5665
-> 15 0 24 3922 topology 3990 5666
-> 16 0 24 3922 topology 4092 5666
-> 15 0 24 3922 topology 4092 5667
-> 16 0 24 3922 topology 4051 5667
-> 15 0 25 3922 topology 4051 5668
-> 16 0 25 3922 topology 4049 5668
-> 15 0 24 3922 topology 4092 5669
-> 16 0 24 3922 topology 3973 5669
-> 15 0 25 3922 topology 3973 5670
-> 16 0 25 3922 topology 3971 5670
-> 15 0 24 3922 topology 4092 5671
-> 16 0 24 3922 topology 4033 5671
-> 15 0 25 3922 topology 4033 5672
-> 16 0 25 3922 topology 4031 5672
-> 15 0 24 3922 topology 4092 5673
-> 16 0 24 3922 topology 3931 5673
-> 15 0 25 3922 topology 3931 5674
-> 16 0 25 3922 topology 3929 5674
-> 15 0 24 3922 topology 4092 5675
-> 16 0 24 3922 topology 3958 5675
-> 15 0 25 3922 topology 3958 5676
-> 16 0 25 3922 topology 3956 5676
-> 15 0 24 3922 topology 4092 5677
-> 16 0 24 3922 topology 4018 5677
-> 15 0 25 3922 topology 4018 5678
-> 16 0 25 3922 topology 4016 5678
-> 15 0 24 3922 topology 4092 5679
-> 16 0 24 3922 topology 4078 5679
-> 15 0 25 3922 topology 4078 5680
-> 16 0 25 3922 topology 4076 5680
-> 15 0 24 3922 topology 4092 5681
-> 16 0 24 3922 topology 4000 5681
-> 15 0 25 3922 topology 4000 5682
-> 16 0 25 3922 topology 3998 5682
-> 15 0 24 3922 topology 4092 5683
-> 16 0 24 3922 topology 4060 5683
-> 15 0 25 3922 topology 4060 5684
-> 16 0 25 3922 topology 4058 5684
-> 15 0 24 3922 topology 4092 5685
-> 16 0 24 3922 topology 3940 5685
-> 15 0 25 3922 topology 3940 5686
-> 16 0 25 3922 topology 3938 5686
-> 15 0 24 3922 topology 4092 5687
-> 16 0 24 3922 topology 3985 5687
-> 15 0 25 3922 topology 3985 5688
-> 16 0 25 3922 topology 3983 5688
-> 15 0 24 3922 topology 4092 5689
-> 16 0 24 3922 topology 4045 5689
-> 15 0 25 3922 topology 4045 5690
-> 16 0 25 3922 topology 4043 5690
-> 15 0 24 3922 topology 4092 5691
-> 16 0 24 3922 topology 3967 5691
-> 15 0 25 3922 topology 3967 5692
-> 16 0 25 3922 topology 3965 5692
-> 15 0 24 3922 topology 4092 5693
-> 16 0 24 3922 topology 4027 5693
-> 15 0 25 3922 topology 4027 5694
-> 16 0 25 3922 topology 4025 5694
-> 15 0 24 3922 topology 4092 5695
-> 16 0 24 3922 topology 4087 5695
-> 15 0 25 3922 topology 4087 5696
-> 16 0 25 3922 topology 4085 5696
-> 15 0 24 3922 topology 4092 5697
-> 16 0 24 3922 topology 4009 5697
-> 15 0 25 3922 topology 4009 5698
-> 16 0 25 3922 topology 4007 5698
-> 15 0 24 3922 topology 4092 5699
-> 16 0 24 3922 topology 4069 5699
-> 15 0 25 3922 topology 4069 5700
-> 16 0 25 3922 topology 4067 5700
-> 15 0 24 3922 topology 4092 5701
-> 16 0 24 3922 topology 3925 5701
-> 15 0 25 3922 topology 3925 5702
-> 16 0 25 3922 topology 3923 5702
-> 15 0 24 3922 topology 4092 5703
-> 16 0 24 3922 topology 3949 5703
-> 15 0 25 3922 topology 3949 5704
-> 16 0 25 3922 topology 3947 5704
-> 15 0 24 3922 topology 4092 5705
-> 16 0 24 3922 topology 3952 5705
-> 15 0 25 3922 topology 3952 5706
-> 16 0 25 3922 topology 3950 5706
-> 15 0 24 3922 topology 4092 5707
-> 16 0 24 3922 topology 4012 5707
-> 15 0 25 3922 topology 4012 5708
-> 16 0 25 3922 topology 4010 5708
-> 15 0 24 3922 topology 4092 5709
-> 16 0 24 3922 topology 4072 5709
-> 15 0 25 3922 topology 4072 5710
-> 16 0 25 3922 topology 4070 5710
-> 15 0 24 3922 topology 4092 5711
-> 16 0 24 3922 topology 3994 5711
-> 15 0 25 3922 topology 3994 5712
-> 16 0 25 3922 topology 3992 5712
-> 15 0 24 3922 topology 4092 5713
-> 16 0 24 3922 topology 4054 5713
-> 15 0 25 3922 topology 4054 5714
-> 16 0 25 3922 topology 4052 5714
-> 15 0 24 3922 topology 4092 5715
-> 16 0 24 3922 topology 3976 5715
-> 15 0 25 3922 topology 3976 5716
-> 16 0 25 3922 topology 3974 5716
-> 15 0 24 3922 topology 4092 5717
-> 16 0 24 3922 topology 4036 5717
-> 15 0 25 3922 topology 4036 5718
-> 16 0 25 3922 topology 4034 5718
-> 15 0 24 3922 topology 4092 5719
-> 16 0 24 3922 topology 3934 5719
-> 15 0 25 3922 topology 3934 5720
-> 16 0 25 3922 topology 3932 5720
-> 15 0 24 3922 topology 4092 5721
-> 16 0 24 3922 topology 3961 5721
-> 15 0 25 3922 topology 3961 5722
-> 16 0 25 3922 topology 3959 5722
-> 15 0 24 3922 topology 4092 5723
-> 16 0 24 3922 topology 4021 5723
-> 15 0 25 3922 topology 4021 5724
-> 16 0 25 3922 topology 4019 5724
-> 15 0 24 3922 topology 4092 5725
-> 16 0 24 3922 topology 4081 5725
-> 15 0 25 3922 topology 4081 5726
-> 16 0 25 3922 topology 4079 5726
-> 15 0 24 3922 topology 4092 5727
-> 16 0 24 3922 topology 4003 5727
-> 15 0 25 3922 topology 4003 5728
-> 16 0 25 3922 topology 4001 5728
-> 15 0 24 3922 topology 4092 5729
-> 16 0 24 3922 topology 4063 5729
-> 15 0 25 3922 topology 4063 5730
-> 16 0 25 3922 topology 4061 5730
-> 15 0 24 3922 topology 4092 5731
-> 16 0 24 3922 topology 3943 5731
-> 15 0 25 3922 topology 3943 5732
-> 16 0 25 3922 topology 3941 5732
-> 15 0 24 3922 topology 4092 5733
-> 16 0 24 3922 topology 3988 5733
-> 15 0 25 3922 topology 3988 5734
-> 16 0 25 3922 topology 3986 5734
-> 15 0 24 3922 topology 4092 5735
-> 16 0 24 3922 topology 4048 5735
-> 15 0 25 3922 topology 4048 5736
-> 16 0 25 3922 topology 4046 5736
-> 15 0 24 3922 topology 4092 5737
-> 16 0 24 3922 topology 3970 5737
-> 15 0 25 3922 topology 3970 5738
-> 16 0 25 3922 topology 3968 5738
-> 15 0 24 3922 topology 4092 5739
-> 16 0 24 3922 topology 4030 5739
-> 15 0 25 3922 topology 4030 5740
-> 16 0 25 3922 topology 4028 5740
-> 15 0 24 3922 topology 4092 5741
-> 16 0 24 3922 topology 4090 5741
-> 15 0 25 3922 topology 4090 5742
-> 16 0 25 3922 topology 4088 5742
-> 15 0 24 3922 topology 4092 5743
-> 16 0 24 3922 topology 3928 5743
-> 15 0 25 3922 topology 3928 5744
-> 16 0 25 3922 topology 3926 5744
-> 15 0 26 3922 topology 4092 5745
-> 16 0 26 3922 topology 4091 5745
-> 15 0 24 3922 topology 4092 5746
-> 16 0 24 3922 topology 3955 5746
-> 15 0 25 3922 topology 3955 5747
-> 16 0 25 3922 topology 3953 5747
-> 15 0 24 3922 topology 4092 5748
-> 16 0 24 3922 topology 4015 5748
-> 15 0 25 3922 topology 4015 5749
-> 16 0 25 3922 topology 4013 5749
-> 15 0 24 3922 topology 4092 5750
-> 16 0 24 3922 topology 4075 5750
-> 15 0 25 3922 topology 4075 5751
-> 16 0 25 3922 topology 4073 5751
-> 15 0 24 3922 topology 4092 5752
-> 16 0 24 3922 topology 3997 5752
-> 15 0 25 3922 topology 3997 5753
-> 16 0 25 3922 topology 3995 5753
-> 15 0 24 3922 topology 4092 5754
-> 16 0 24 3922 topology 4057 5754
-> 15 0 25 3922 topology 4057 5755
-> 16 0 25 3922 topology 4055 5755
-> 15 0 24 3922 topology 4092 5756
-> 16 0 24 3922 topology 3979 5756
-> 15 0 25 3922 topology 3979 5757
-> 16 0 25 3922 topology 3977 5757
-> 15 0 24 3922 topology 4092 5758
-> 16 0 24 3922 topology 4039 5758
-> 15 0 25 3922 topology 4039 5759
-> 16 0 25 3922 topology 4037 5759
-> 15 0 24 3922 topology 4092 5760
-> 16 0 24 3922 topology 3937 5760
-> 15 0 25 3922 topology 3937 5761
-> 16 0 25 3922 topology 3935 5761
-> 15 0 24 3922 topology 4092 5762
-> 16 0 24 3922 topology 3982 5762
-> 15 0 25 3922 topology 3982 5763
-> 16 0 25 3922 topology 3980 5763
-> 15 0 24 3922 topology 4092 5764
-> 16 0 24 3922 topology 4042 5764
-> 15 0 25 3922 topology 4042 5765
-> 16 0 25 3922 topology 4040 5765
-> 15 0 24 3922 topology 4092 5766
-> 16 0 24 3922 topology 3964 5766
-> 15 0 25 3922 topology 3964 5767
-> 16 0 25 3922 topology 3962 5767
-> 15 0 24 3922 topology 4092 5768
-> 16 0 24 3922 topology 4024 5768
-> 15 0 25 3922 topology 4024 5769
-> 16 0 25 3922 topology 4022 5769
-> 15 0 24 3922 topology 4092 5770
-> 16 0 24 3922 topology 4084 5770
-> 15 0 25 3922 topology 4084 5771
-> 16 0 25 3922 topology 4082 5771
-> 15 0 24 3922 topology 4092 5772
-> 16 0 24 3922 topology 4006 5772
-> 15 0 25 3922 topology 4006 5773
-> 16 0 25 3922 topology 4004 5773
-> 15 0 24 3922 topology 4092 5774
-> 16 0 24 3922 topology 4066 5774
-> 15 0 25 3922 topology 4066 5775
-> 16 0 25 3922 topology 4064 5775
-> 15 0 24 3922 topology 4092 5776
-> 16 0 24 3922 topology 3946 5776
-> 15 0 25 3922 topology 3946 5777
-> 16 0 25 3922 topology 3944 5777
-> 15 0 23 3922 topology 4049 5778
-> 16 0 23 3922 topology 4050 5778
-> 15 0 24 3922 topology 4050 5779
+> 15 0 23 870 topology 943 5647
+> 16 0 23 870 topology 945 5647
+> 15 0 23 870 topology 898 5648
+> 16 0 23 870 topology 899 5648
+> 15 0 24 870 topology 944 5649
+> 16 0 24 870 topology 950 5649
+> 15 0 23 870 topology 919 5650
+> 16 0 23 870 topology 921 5650
+> 15 0 26 869 topology 1157 5651
+> 16 0 26 869 topology 1187 5651
+> 15 0 27 869 topology 949 5652
+> 16 0 27 869 topology 951 5652
+> 15 0 26 869 topology 1185 5653
+> 16 0 26 869 topology 1187 5653
+> 15 0 26 869 topology 1015 5654
+> 16 0 26 869 topology 1013 5654
+> 15 0 21 869 topology 1015 5655
+> 16 0 21 869 topology 1185 5655
+> 15 0 21 869 topology 951 5656
+> 16 0 21 869 topology 1185 5656
+> 15 0 26 869 topology 1015 5657
+> 16 0 26 869 topology 1187 5657
+> 15 0 21 869 topology 1015 5658
+> 16 0 21 869 topology 1157 5658
+> 15 0 26 869 topology 951 5659
+> 16 0 26 869 topology 1187 5659
+> 15 0 21 869 topology 1157 5660
+> 16 0 21 869 topology 1185 5660
+> 15 0 26 869 topology 1185 5661
+> 16 0 26 869 topology 1183 5661
+> 15 0 21 869 topology 951 5662
+> 16 0 21 869 topology 1015 5662
+> 15 0 26 869 topology 1157 5663
+> 16 0 26 869 topology 1155 5663
+> 15 0 21 869 topology 951 5664
+> 16 0 21 869 topology 1157 5664
+> 15 0 24 3922 topology 4059 5665
+> 16 0 24 3922 topology 4092 5665
+> 15 0 23 3922 topology 3926 5666
+> 16 0 23 3922 topology 3928 5666
+> 15 0 24 3922 topology 3952 5667
+> 16 0 24 3922 topology 4092 5667
+> 15 0 24 3922 topology 3936 5668
+> 16 0 24 3922 topology 4092 5668
+> 15 0 24 3922 topology 3988 5669
+> 16 0 24 3922 topology 4092 5669
+> 15 0 24 3922 topology 4072 5670
+> 16 0 24 3922 topology 4092 5670
+> 15 0 24 3922 topology 4024 5671
+> 16 0 24 3922 topology 4092 5671
+> 15 0 23 3922 topology 3953 5672
+> 16 0 23 3922 topology 3954 5672
+> 15 0 24 3922 topology 3976 5673
+> 16 0 24 3922 topology 4092 5673
+> 15 0 24 3922 topology 4060 5674
+> 16 0 24 3922 topology 4092 5674
+> 15 0 23 3922 topology 4013 5675
+> 16 0 23 3922 topology 4014 5675
+> 15 0 23 3922 topology 3989 5676
+> 16 0 23 3922 topology 3990 5676
+> 15 0 23 3922 topology 3938 5677
+> 16 0 23 3922 topology 3939 5677
+> 15 0 23 3922 topology 3965 5678
+> 16 0 23 3922 topology 3966 5678
+> 15 0 24 3922 topology 3984 5679
+> 16 0 24 3922 topology 4092 5679
+> 15 0 23 3922 topology 4073 5680
+> 16 0 23 3922 topology 4074 5680
+> 15 0 24 3922 topology 4044 5681
+> 16 0 24 3922 topology 4092 5681
+> 15 0 23 3922 topology 4049 5682
+> 16 0 23 3922 topology 4050 5682
+> 15 0 24 3922 topology 3966 5683
+> 16 0 24 3922 topology 4092 5683
+> 15 0 23 3922 topology 4025 5684
+> 16 0 23 3922 topology 4026 5684
+> 15 0 24 3922 topology 4026 5685
+> 16 0 24 3922 topology 4092 5685
+> 15 0 23 3922 topology 4001 5686
+> 16 0 23 3922 topology 4002 5686
+> 15 0 24 3922 topology 3943 5687
+> 16 0 24 3922 topology 4092 5687
+> 15 0 24 3922 topology 4086 5688
+> 16 0 24 3922 topology 4092 5688
+> 15 0 23 3922 topology 3977 5689
+> 16 0 23 3922 topology 3978 5689
+> 15 0 24 3922 topology 4008 5690
+> 16 0 24 3922 topology 4092 5690
+> 15 0 23 3922 topology 4085 5691
+> 16 0 23 3922 topology 4086 5691
+> 15 0 23 3922 topology 4061 5692
+> 16 0 23 3922 topology 4062 5692
+> 15 0 24 3922 topology 4068 5693
+> 16 0 24 3922 topology 4092 5693
+> 15 0 23 3922 topology 3980 5694
+> 16 0 23 3922 topology 3982 5694
+> 15 0 23 3922 topology 4037 5695
+> 16 0 23 3922 topology 4038 5695
+> 15 0 23 3922 topology 3986 5696
+> 16 0 23 3922 topology 3988 5696
+> 15 0 23 3922 topology 3935 5697
+> 16 0 23 3922 topology 3937 5697
+> 15 0 23 3922 topology 4043 5698
+> 16 0 23 3922 topology 4045 5698
+> 15 0 23 3922 topology 3992 5699
+> 16 0 23 3922 topology 3994 5699
+> 15 0 24 3922 topology 4015 5700
+> 16 0 24 3922 topology 4092 5700
+> 15 0 24 3922 topology 3945 5701
+> 16 0 24 3922 topology 4092 5701
+> 15 0 23 3922 topology 4049 5702
+> 16 0 23 3922 topology 4051 5702
+> 15 0 24 3922 topology 3967 5703
+> 16 0 24 3922 topology 4092 5703
+> 15 0 23 3922 topology 3998 5704
+> 16 0 23 3922 topology 4000 5704
+> 15 0 24 3922 topology 4051 5705
+> 16 0 24 3922 topology 4092 5705
+> 15 0 24 3922 topology 4003 5706
+> 16 0 24 3922 topology 4092 5706
+> 15 0 23 3922 topology 4055 5707
+> 16 0 23 3922 topology 4057 5707
+> 15 0 24 3922 topology 4087 5708
+> 16 0 24 3922 topology 4092 5708
+> 15 0 23 3922 topology 4004 5709
+> 16 0 23 3922 topology 4006 5709
+> 15 0 24 3922 topology 4039 5710
+> 16 0 24 3922 topology 4092 5710
+> 15 0 23 3922 topology 4061 5711
+> 16 0 23 3922 topology 4063 5711
+> 15 0 24 3922 topology 3951 5712
+> 16 0 24 3922 topology 4092 5712
+> 15 0 24 3922 topology 4011 5713
+> 16 0 24 3922 topology 4092 5713
+> 15 0 23 3922 topology 4067 5714
+> 16 0 23 3922 topology 4069 5714
+> 15 0 23 3922 topology 3941 5715
+> 16 0 23 3922 topology 3942 5715
+> 15 0 24 3922 topology 4071 5716
+> 16 0 24 3922 topology 4092 5716
+> 15 0 24 3922 topology 3993 5717
+> 16 0 24 3922 topology 4092 5717
+> 15 0 24 3922 topology 3934 5718
+> 16 0 24 3922 topology 4092 5718
+> 15 0 24 3922 topology 4053 5719
+> 16 0 24 3922 topology 4092 5719
+> 15 0 24 3922 topology 3975 5720
+> 16 0 24 3922 topology 4092 5720
+> 15 0 24 3922 topology 4035 5721
+> 16 0 24 3922 topology 4092 5721
+> 15 0 24 3922 topology 3930 5722
+> 16 0 24 3922 topology 4092 5722
+> 15 0 24 3922 topology 3958 5723
+> 16 0 24 3922 topology 4092 5723
+> 15 0 24 3922 topology 4042 5724
+> 16 0 24 3922 topology 4092 5724
+> 15 0 24 3922 topology 3994 5725
+> 16 0 24 3922 topology 4092 5725
+> 15 0 23 3922 topology 3944 5726
+> 16 0 23 3922 topology 3946 5726
+> 15 0 24 3922 topology 4078 5727
+> 16 0 24 3922 topology 4092 5727
+> 15 0 23 3922 topology 3980 5728
+> 16 0 23 3922 topology 3981 5728
+> 15 0 24 3922 topology 4030 5729
+> 16 0 24 3922 topology 4092 5729
+> 15 0 23 3922 topology 3956 5730
+> 16 0 23 3922 topology 3957 5730
+> 15 0 23 3922 topology 4040 5731
+> 16 0 23 3922 topology 4041 5731
+> 15 0 24 3922 topology 4066 5732
+> 16 0 24 3922 topology 4092 5732
+> 15 0 23 3922 topology 4016 5733
+> 16 0 23 3922 topology 4017 5733
+> 15 0 23 3922 topology 3992 5734
+> 16 0 23 3922 topology 3993 5734
+> 15 0 24 3922 topology 3925 5735
+> 16 0 24 3922 topology 4092 5735
+> 15 0 24 3922 topology 3960 5736
+> 16 0 24 3922 topology 4092 5736
+> 15 0 23 3922 topology 3968 5737
+> 16 0 23 3922 topology 3969 5737
+> 15 0 23 3922 topology 4076 5738
+> 16 0 23 3922 topology 4077 5738
+> 15 0 24 3922 topology 4020 5739
+> 16 0 24 3922 topology 4092 5739
+> 15 0 23 3922 topology 3944 5740
+> 16 0 23 3922 topology 3945 5740
+> 15 0 23 3922 topology 4052 5741
+> 16 0 23 3922 topology 4053 5741
+> 15 0 24 3922 topology 4080 5742
+> 16 0 24 3922 topology 4092 5742
+> 15 0 24 3922 topology 4002 5743
+> 16 0 24 3922 topology 4092 5743
+> 15 0 23 3922 topology 4028 5744
+> 16 0 23 3922 topology 4029 5744
+> 15 0 23 3922 topology 4004 5745
+> 16 0 23 3922 topology 4005 5745
+> 15 0 24 3922 topology 4062 5746
+> 16 0 24 3922 topology 4092 5746
+> 15 0 24 3922 topology 3949 5747
+> 16 0 24 3922 topology 4092 5747
+> 15 0 23 3922 topology 3950 5748
+> 16 0 23 3922 topology 3952 5748
+> 15 0 23 3922 topology 4088 5749
+> 16 0 23 3922 topology 4089 5749
+> 15 0 23 3922 topology 4064 5750
+> 16 0 23 3922 topology 4065 5750
+> 15 0 23 3922 topology 3929 5751
+> 16 0 23 3922 topology 3931 5751
+> 15 0 23 3922 topology 3956 5752
+> 16 0 23 3922 topology 3958 5752
+> 15 0 23 3922 topology 4013 5753
+> 16 0 23 3922 topology 4015 5753
+> 15 0 23 3922 topology 3962 5754
+> 16 0 23 3922 topology 3964 5754
+> 15 0 23 3922 topology 4070 5755
+> 16 0 23 3922 topology 4072 5755
+> 15 0 24 3922 topology 3939 5756
+> 16 0 24 3922 topology 4092 5756
+> 15 0 24 3922 topology 3985 5757
+> 16 0 24 3922 topology 4092 5757
+> 15 0 23 3922 topology 4019 5758
+> 16 0 23 3922 topology 4021 5758
+> 15 0 23 3922 topology 3968 5759
+> 16 0 23 3922 topology 3970 5759
+> 15 0 23 3922 topology 4076 5760
+> 16 0 23 3922 topology 4078 5760
+> 15 0 23 3922 topology 3923 5761
+> 16 0 23 3922 topology 3924 5761
+> 15 0 24 3922 topology 4021 5762
+> 16 0 24 3922 topology 4092 5762
+> 15 0 23 3922 topology 4025 5763
+> 16 0 23 3922 topology 4027 5763
+> 15 0 24 3922 topology 3973 5764
+> 16 0 24 3922 topology 4092 5764
+> 15 0 23 3922 topology 3974 5765
+> 16 0 23 3922 topology 3976 5765
+> 15 0 24 3922 topology 4057 5766
+> 16 0 24 3922 topology 4092 5766
+> 15 0 23 3922 topology 4082 5767
+> 16 0 23 3922 topology 4084 5767
+> 15 0 24 3922 topology 4009 5768
+> 16 0 24 3922 topology 4092 5768
+> 15 0 23 3922 topology 4031 5769
+> 16 0 23 3922 topology 4033 5769
+> 15 0 23 3922 topology 4088 5770
+> 16 0 23 3922 topology 4090 5770
+> 15 0 23 3922 topology 4037 5771
+> 16 0 23 3922 topology 4039 5771
+> 15 0 24 3922 topology 3987 5772
+> 16 0 24 3922 topology 4092 5772
+> 15 0 24 3922 topology 4047 5773
+> 16 0 24 3922 topology 4092 5773
+> 15 0 24 3922 topology 3969 5774
+> 16 0 24 3922 topology 4092 5774
+> 15 0 24 3922 topology 4029 5775
+> 16 0 24 3922 topology 4092 5775
+> 15 0 23 3922 topology 3947 5776
+> 16 0 23 3922 topology 3948 5776
+> 15 0 24 3922 topology 3940 5777
+> 16 0 24 3922 topology 4092 5777
+> 15 0 24 3922 topology 4089 5778
+> 16 0 24 3922 topology 4092 5778
+> 15 0 24 3922 topology 3924 5779
 > 16 0 24 3922 topology 4092 5779
-> 15 0 24 3922 topology 4092 5780
-> 16 0 24 3922 topology 3991 5780
-> 15 0 25 3922 topology 3991 5781
-> 16 0 25 3922 topology 3989 5781
-> 15 0 23 3922 topology 3971 5782
-> 16 0 23 3922 topology 3972 5782
-> 15 0 24 3922 topology 3972 5783
+> 15 0 24 3922 topology 4012 5780
+> 16 0 24 3922 topology 4092 5780
+> 15 0 23 3922 topology 3938 5781
+> 16 0 23 3922 topology 3940 5781
+> 15 0 24 3922 topology 3964 5782
+> 16 0 24 3922 topology 4092 5782
+> 15 0 24 3922 topology 4048 5783
 > 16 0 24 3922 topology 4092 5783
-> 15 0 23 3922 topology 4031 5784
-> 16 0 23 3922 topology 4032 5784
-> 15 0 24 3922 topology 4032 5785
+> 15 0 24 3922 topology 3948 5784
+> 16 0 24 3922 topology 4092 5784
+> 15 0 24 3922 topology 4000 5785
 > 16 0 24 3922 topology 4092 5785
-> 15 0 23 3922 topology 3929 5786
-> 16 0 23 3922 topology 3930 5786
-> 15 0 24 3922 topology 3930 5787
+> 15 0 23 3922 topology 3926 5786
+> 16 0 23 3922 topology 3927 5786
+> 15 0 24 3922 topology 4084 5787
 > 16 0 24 3922 topology 4092 5787
-> 15 0 23 3922 topology 3956 5788
-> 16 0 23 3922 topology 3957 5788
-> 15 0 24 3922 topology 3957 5789
+> 15 0 23 3922 topology 3983 5788
+> 16 0 23 3922 topology 3984 5788
+> 15 0 24 3922 topology 4036 5789
 > 16 0 24 3922 topology 4092 5789
-> 15 0 23 3922 topology 4016 5790
-> 16 0 23 3922 topology 4017 5790
-> 15 0 24 3922 topology 4017 5791
-> 16 0 24 3922 topology 4092 5791
-> 15 0 23 3922 topology 4076 5792
-> 16 0 23 3922 topology 4077 5792
-> 15 0 24 3922 topology 4077 5793
-> 16 0 24 3922 topology 4092 5793
-> 15 0 23 3922 topology 3998 5794
-> 16 0 23 3922 topology 3999 5794
-> 15 0 24 3922 topology 3999 5795
-> 16 0 24 3922 topology 4092 5795
-> 15 0 23 3922 topology 4058 5796
-> 16 0 23 3922 topology 4059 5796
-> 15 0 24 3922 topology 4059 5797
+> 15 0 23 3922 topology 3959 5790
+> 16 0 23 3922 topology 3960 5790
+> 15 0 23 3922 topology 4043 5791
+> 16 0 23 3922 topology 4044 5791
+> 15 0 24 3922 topology 3954 5792
+> 16 0 24 3922 topology 4092 5792
+> 15 0 23 3922 topology 4019 5793
+> 16 0 23 3922 topology 4020 5793
+> 15 0 24 3922 topology 4014 5794
+> 16 0 24 3922 topology 4092 5794
+> 15 0 23 3922 topology 3995 5795
+> 16 0 23 3922 topology 3996 5795
+> 15 0 24 3922 topology 3931 5796
+> 16 0 24 3922 topology 4092 5796
+> 15 0 24 3922 topology 4074 5797
 > 16 0 24 3922 topology 4092 5797
-> 15 0 23 3922 topology 3938 5798
-> 16 0 23 3922 topology 3939 5798
-> 15 0 24 3922 topology 3939 5799
-> 16 0 24 3922 topology 4092 5799
-> 15 0 23 3922 topology 3983 5800
-> 16 0 23 3922 topology 3984 5800
-> 15 0 24 3922 topology 3984 5801
+> 15 0 24 3922 topology 3996 5798
+> 16 0 24 3922 topology 4092 5798
+> 15 0 23 3922 topology 3971 5799
+> 16 0 23 3922 topology 3972 5799
+> 15 0 23 3922 topology 4079 5800
+> 16 0 23 3922 topology 4080 5800
+> 15 0 24 3922 topology 4056 5801
 > 16 0 24 3922 topology 4092 5801
-> 15 0 23 3922 topology 4043 5802
-> 16 0 23 3922 topology 4044 5802
-> 15 0 24 3922 topology 4044 5803
+> 15 0 23 3922 topology 4055 5802
+> 16 0 23 3922 topology 4056 5802
+> 15 0 24 3922 topology 3978 5803
 > 16 0 24 3922 topology 4092 5803
-> 15 0 23 3922 topology 3965 5804
-> 16 0 23 3922 topology 3966 5804
-> 15 0 24 3922 topology 3966 5805
+> 15 0 23 3922 topology 4031 5804
+> 16 0 23 3922 topology 4032 5804
+> 15 0 24 3922 topology 4038 5805
 > 16 0 24 3922 topology 4092 5805
-> 15 0 23 3922 topology 4025 5806
-> 16 0 23 3922 topology 4026 5806
-> 15 0 24 3922 topology 4026 5807
-> 16 0 24 3922 topology 4092 5807
-> 15 0 23 3922 topology 4085 5808
-> 16 0 23 3922 topology 4086 5808
-> 15 0 24 3922 topology 4086 5809
-> 16 0 24 3922 topology 4092 5809
-> 15 0 23 3922 topology 4007 5810
-> 16 0 23 3922 topology 4008 5810
-> 15 0 24 3922 topology 4008 5811
-> 16 0 24 3922 topology 4092 5811
-> 15 0 23 3922 topology 4067 5812
-> 16 0 23 3922 topology 4068 5812
-> 15 0 24 3922 topology 4068 5813
+> 15 0 23 3922 topology 3923 5806
+> 16 0 23 3922 topology 3925 5806
+> 15 0 23 3922 topology 4007 5807
+> 16 0 23 3922 topology 4008 5807
+> 15 0 23 3922 topology 3983 5808
+> 16 0 23 3922 topology 3985 5808
+> 15 0 23 3922 topology 4067 5809
+> 16 0 23 3922 topology 4068 5809
+> 15 0 23 3922 topology 4040 5810
+> 16 0 23 3922 topology 4042 5810
+> 15 0 23 3922 topology 3989 5811
+> 16 0 23 3922 topology 3991 5811
+> 15 0 24 3922 topology 3933 5812
+> 16 0 24 3922 topology 4092 5812
+> 15 0 24 3922 topology 3955 5813
 > 16 0 24 3922 topology 4092 5813
-> 15 0 23 3922 topology 3923 5814
-> 16 0 23 3922 topology 3924 5814
-> 15 0 24 3922 topology 3924 5815
-> 16 0 24 3922 topology 4092 5815
-> 15 0 23 3922 topology 3947 5816
-> 16 0 23 3922 topology 3948 5816
-> 15 0 24 3922 topology 3948 5817
+> 15 0 23 3922 topology 4046 5814
+> 16 0 23 3922 topology 4048 5814
+> 15 0 23 3922 topology 3995 5815
+> 16 0 23 3922 topology 3997 5815
+> 15 0 24 3922 topology 3991 5816
+> 16 0 24 3922 topology 4092 5816
+> 15 0 24 3922 topology 4075 5817
 > 16 0 24 3922 topology 4092 5817
-> 15 0 23 3922 topology 3950 5818
-> 16 0 23 3922 topology 3951 5818
-> 15 0 24 3922 topology 3951 5819
+> 15 0 23 3922 topology 4052 5818
+> 16 0 23 3922 topology 4054 5818
+> 15 0 24 3922 topology 4027 5819
 > 16 0 24 3922 topology 4092 5819
-> 15 0 23 3922 topology 4010 5820
-> 16 0 23 3922 topology 4011 5820
-> 15 0 24 3922 topology 4011 5821
-> 16 0 24 3922 topology 4092 5821
-> 15 0 23 3922 topology 4070 5822
-> 16 0 23 3922 topology 4071 5822
-> 15 0 24 3922 topology 4071 5823
-> 16 0 24 3922 topology 4092 5823
-> 15 0 23 3922 topology 3992 5824
-> 16 0 23 3922 topology 3993 5824
-> 15 0 24 3922 topology 3993 5825
-> 16 0 24 3922 topology 4092 5825
-> 15 0 23 3922 topology 4052 5826
-> 16 0 23 3922 topology 4053 5826
-> 15 0 24 3922 topology 4053 5827
+> 15 0 23 3922 topology 4001 5820
+> 16 0 23 3922 topology 4003 5820
+> 15 0 23 3922 topology 3947 5821
+> 16 0 23 3922 topology 3949 5821
+> 15 0 24 3922 topology 3979 5822
+> 16 0 24 3922 topology 4092 5822
+> 15 0 23 3922 topology 3929 5823
+> 16 0 23 3922 topology 3930 5823
+> 15 0 24 3922 topology 4063 5824
+> 16 0 24 3922 topology 4092 5824
+> 15 0 23 3922 topology 4058 5825
+> 16 0 23 3922 topology 4060 5825
+> 15 0 23 3922 topology 4007 5826
+> 16 0 23 3922 topology 4009 5826
+> 15 0 24 3922 topology 3981 5827
 > 16 0 24 3922 topology 4092 5827
-> 15 0 23 3922 topology 3974 5828
-> 16 0 23 3922 topology 3975 5828
-> 15 0 24 3922 topology 3975 5829
+> 15 0 23 3922 topology 4064 5828
+> 16 0 23 3922 topology 4066 5828
+> 15 0 24 3922 topology 4041 5829
 > 16 0 24 3922 topology 4092 5829
-> 15 0 23 3922 topology 4034 5830
-> 16 0 23 3922 topology 4035 5830
-> 15 0 24 3922 topology 4035 5831
+> 15 0 24 3922 topology 3963 5830
+> 16 0 24 3922 topology 4092 5830
+> 15 0 24 3922 topology 4023 5831
 > 16 0 24 3922 topology 4092 5831
-> 15 0 23 3922 topology 3932 5832
-> 16 0 23 3922 topology 3933 5832
-> 15 0 24 3922 topology 3933 5833
+> 15 0 24 3922 topology 4083 5832
+> 16 0 24 3922 topology 4092 5832
+> 15 0 24 3922 topology 4005 5833
 > 16 0 24 3922 topology 4092 5833
-> 15 0 23 3922 topology 3959 5834
-> 16 0 23 3922 topology 3960 5834
-> 15 0 24 3922 topology 3960 5835
+> 15 0 24 3922 topology 3946 5834
+> 16 0 24 3922 topology 4092 5834
+> 15 0 24 3922 topology 4065 5835
 > 16 0 24 3922 topology 4092 5835
-> 15 0 23 3922 topology 4019 5836
-> 16 0 23 3922 topology 4020 5836
-> 15 0 24 3922 topology 4020 5837
-> 16 0 24 3922 topology 4092 5837
-> 15 0 23 3922 topology 4079 5838
-> 16 0 23 3922 topology 4080 5838
-> 15 0 24 3922 topology 4080 5839
+> 15 0 23 3922 topology 3932 5836
+> 16 0 23 3922 topology 3934 5836
+> 15 0 25 3922 topology 4091 5837
+> 16 0 25 3922 topology 4092 5837
+> 15 0 24 3922 topology 3982 5838
+> 16 0 24 3922 topology 4092 5838
+> 15 0 24 3922 topology 3942 5839
 > 16 0 24 3922 topology 4092 5839
-> 15 0 23 3922 topology 4001 5840
-> 16 0 23 3922 topology 4002 5840
-> 15 0 24 3922 topology 4002 5841
-> 16 0 24 3922 topology 4092 5841
-> 15 0 23 3922 topology 4061 5842
-> 16 0 23 3922 topology 4062 5842
-> 15 0 24 3922 topology 4062 5843
+> 15 0 24 3922 topology 4018 5840
+> 16 0 24 3922 topology 4092 5840
+> 15 0 23 3922 topology 3950 5841
+> 16 0 23 3922 topology 3951 5841
+> 15 0 24 3922 topology 3970 5842
+> 16 0 24 3922 topology 4092 5842
+> 15 0 24 3922 topology 4054 5843
 > 16 0 24 3922 topology 4092 5843
-> 15 0 23 3922 topology 3941 5844
-> 16 0 23 3922 topology 3942 5844
-> 15 0 24 3922 topology 3942 5845
+> 15 0 23 3922 topology 4010 5844
+> 16 0 23 3922 topology 4011 5844
+> 15 0 24 3922 topology 4006 5845
 > 16 0 24 3922 topology 4092 5845
-> 15 0 23 3922 topology 3986 5846
-> 16 0 23 3922 topology 3987 5846
-> 15 0 24 3922 topology 3987 5847
-> 16 0 24 3922 topology 4092 5847
-> 15 0 23 3922 topology 4046 5848
-> 16 0 23 3922 topology 4047 5848
-> 15 0 24 3922 topology 4047 5849
-> 16 0 24 3922 topology 4092 5849
-> 15 0 23 3922 topology 3968 5850
-> 16 0 23 3922 topology 3969 5850
-> 15 0 24 3922 topology 3969 5851
-> 16 0 24 3922 topology 4092 5851
-> 15 0 23 3922 topology 4028 5852
-> 16 0 23 3922 topology 4029 5852
-> 15 0 24 3922 topology 4029 5853
+> 15 0 24 3922 topology 4090 5846
+> 16 0 24 3922 topology 4092 5846
+> 15 0 23 3922 topology 3986 5847
+> 16 0 23 3922 topology 3987 5847
+> 15 0 23 3922 topology 3932 5848
+> 16 0 23 3922 topology 3933 5848
+> 15 0 23 3922 topology 3962 5849
+> 16 0 23 3922 topology 3963 5849
+> 15 0 23 3922 topology 4070 5850
+> 16 0 23 3922 topology 4071 5850
+> 15 0 23 3922 topology 4046 5851
+> 16 0 23 3922 topology 4047 5851
+> 15 0 23 3922 topology 4022 5852
+> 16 0 23 3922 topology 4023 5852
+> 15 0 24 3922 topology 3990 5853
 > 16 0 24 3922 topology 4092 5853
-> 15 0 23 3922 topology 4088 5854
-> 16 0 23 3922 topology 4089 5854
-> 15 0 24 3922 topology 4089 5855
-> 16 0 24 3922 topology 4092 5855
-> 15 0 23 3922 topology 3926 5856
-> 16 0 23 3922 topology 3927 5856
-> 15 0 24 3922 topology 3927 5857
+> 15 0 24 3922 topology 4050 5854
+> 16 0 24 3922 topology 4092 5854
+> 15 0 23 3922 topology 3998 5855
+> 16 0 23 3922 topology 3999 5855
+> 15 0 24 3922 topology 3972 5856
+> 16 0 24 3922 topology 4092 5856
+> 15 0 24 3922 topology 3937 5857
 > 16 0 24 3922 topology 4092 5857
-> 15 0 23 3922 topology 3953 5858
-> 16 0 23 3922 topology 3954 5858
-> 15 0 24 3922 topology 3954 5859
-> 16 0 24 3922 topology 4092 5859
-> 15 0 23 3922 topology 4013 5860
-> 16 0 23 3922 topology 4014 5860
-> 15 0 24 3922 topology 4014 5861
-> 16 0 24 3922 topology 4092 5861
-> 15 0 23 3922 topology 4073 5862
-> 16 0 23 3922 topology 4074 5862
-> 15 0 24 3922 topology 4074 5863
-> 16 0 24 3922 topology 4092 5863
-> 15 0 23 3922 topology 3995 5864
-> 16 0 23 3922 topology 3996 5864
-> 15 0 24 3922 topology 3996 5865
-> 16 0 24 3922 topology 4092 5865
-> 15 0 23 3922 topology 4055 5866
-> 16 0 23 3922 topology 4056 5866
-> 15 0 24 3922 topology 4056 5867
-> 16 0 24 3922 topology 4092 5867
-> 15 0 23 3922 topology 3977 5868
-> 16 0 23 3922 topology 3978 5868
-> 15 0 24 3922 topology 3978 5869
-> 16 0 24 3922 topology 4092 5869
-> 15 0 23 3922 topology 4037 5870
-> 16 0 23 3922 topology 4038 5870
-> 15 0 24 3922 topology 4038 5871
+> 15 0 23 3922 topology 3974 5858
+> 16 0 23 3922 topology 3975 5858
+> 15 0 23 3922 topology 4082 5859
+> 16 0 23 3922 topology 4083 5859
+> 15 0 24 3922 topology 4032 5860
+> 16 0 24 3922 topology 4092 5860
+> 15 0 23 3922 topology 4058 5861
+> 16 0 23 3922 topology 4059 5861
+> 15 0 23 3922 topology 4034 5862
+> 16 0 23 3922 topology 4035 5862
+> 15 0 23 3922 topology 3953 5863
+> 16 0 23 3922 topology 3955 5863
+> 15 0 23 3922 topology 4010 5864
+> 16 0 23 3922 topology 4012 5864
+> 15 0 23 3922 topology 3959 5865
+> 16 0 23 3922 topology 3961 5865
+> 15 0 24 3922 topology 3927 5866
+> 16 0 24 3922 topology 4092 5866
+> 15 0 23 3922 topology 4016 5867
+> 16 0 23 3922 topology 4018 5867
+> 15 0 23 3922 topology 3965 5868
+> 16 0 23 3922 topology 3967 5868
+> 15 0 23 3922 topology 4073 5869
+> 16 0 23 3922 topology 4075 5869
+> 15 0 24 3922 topology 3961 5870
+> 16 0 24 3922 topology 4092 5870
+> 15 0 24 3922 topology 4045 5871
 > 16 0 24 3922 topology 4092 5871
-> 15 0 23 3922 topology 3935 5872
-> 16 0 23 3922 topology 3936 5872
-> 15 0 24 3922 topology 3936 5873
-> 16 0 24 3922 topology 4092 5873
-> 15 0 23 3922 topology 3980 5874
-> 16 0 23 3922 topology 3981 5874
-> 15 0 24 3922 topology 3981 5875
-> 16 0 24 3922 topology 4092 5875
-> 15 0 23 3922 topology 4040 5876
-> 16 0 23 3922 topology 4041 5876
-> 15 0 24 3922 topology 4041 5877
+> 15 0 23 3922 topology 4022 5872
+> 16 0 23 3922 topology 4024 5872
+> 15 0 23 3922 topology 3941 5873
+> 16 0 23 3922 topology 3943 5873
+> 15 0 24 3922 topology 3997 5874
+> 16 0 24 3922 topology 4092 5874
+> 15 0 23 3922 topology 3971 5875
+> 16 0 23 3922 topology 3973 5875
+> 15 0 23 3922 topology 4079 5876
+> 16 0 23 3922 topology 4081 5876
+> 15 0 24 3922 topology 4081 5877
 > 16 0 24 3922 topology 4092 5877
-> 15 0 23 3922 topology 3962 5878
-> 16 0 23 3922 topology 3963 5878
-> 15 0 24 3922 topology 3963 5879
+> 15 0 23 3922 topology 4028 5878
+> 16 0 23 3922 topology 4030 5878
+> 15 0 24 3922 topology 4033 5879
 > 16 0 24 3922 topology 4092 5879
-> 15 0 23 3922 topology 4022 5880
-> 16 0 23 3922 topology 4023 5880
-> 15 0 24 3922 topology 4023 5881
-> 16 0 24 3922 topology 4092 5881
-> 15 0 23 3922 topology 4082 5882
-> 16 0 23 3922 topology 4083 5882
-> 15 0 24 3922 topology 4083 5883
+> 15 0 23 3922 topology 3977 5880
+> 16 0 23 3922 topology 3979 5880
+> 15 0 23 3922 topology 4085 5881
+> 16 0 23 3922 topology 4087 5881
+> 15 0 23 3922 topology 4034 5882
+> 16 0 23 3922 topology 4036 5882
+> 15 0 24 3922 topology 4069 5883
 > 16 0 24 3922 topology 4092 5883
-> 15 0 23 3922 topology 4004 5884
-> 16 0 23 3922 topology 4005 5884
-> 15 0 24 3922 topology 4005 5885
+> 15 0 23 3922 topology 3935 5884
+> 16 0 23 3922 topology 3936 5884
+> 15 0 24 3922 topology 3957 5885
 > 16 0 24 3922 topology 4092 5885
-> 15 0 23 3922 topology 4064 5886
-> 16 0 23 3922 topology 4065 5886
-> 15 0 24 3922 topology 4065 5887
+> 15 0 24 3922 topology 4017 5886
+> 16 0 24 3922 topology 4092 5886
+> 15 0 24 3922 topology 3928 5887
 > 16 0 24 3922 topology 4092 5887
-> 15 0 23 3922 topology 3944 5888
-> 16 0 23 3922 topology 3945 5888
-> 15 0 24 3922 topology 3945 5889
+> 15 0 24 3922 topology 4077 5888
+> 16 0 24 3922 topology 4092 5888
+> 15 0 24 3922 topology 3999 5889
 > 16 0 24 3922 topology 4092 5889
-> 15 0 23 4248 topology 4273 5890
-> 16 0 23 4248 topology 4274 5890
-> 15 0 24 4248 topology 4274 5891
+> 15 0 24 4248 topology 4260 5890
+> 16 0 24 4248 topology 4385 5890
+> 15 0 24 4248 topology 4295 5891
 > 16 0 24 4248 topology 4385 5891
-> 15 0 24 4248 topology 4385 5892
-> 16 0 24 4248 topology 4281 5892
-> 15 0 25 4248 topology 4281 5893
-> 16 0 25 4248 topology 4279 5893
-> 15 0 24 4248 topology 4385 5894
-> 16 0 24 4248 topology 4311 5894
-> 15 0 25 4248 topology 4311 5895
-> 16 0 25 4248 topology 4309 5895
-> 15 0 24 4248 topology 4385 5896
-> 16 0 24 4248 topology 4341 5896
-> 15 0 25 4248 topology 4341 5897
-> 16 0 25 4248 topology 4339 5897
-> 15 0 24 4248 topology 4385 5898
-> 16 0 24 4248 topology 4371 5898
-> 15 0 25 4248 topology 4371 5899
-> 16 0 25 4248 topology 4369 5899
-> 15 0 24 4248 topology 4385 5900
-> 16 0 24 4248 topology 4293 5900
-> 15 0 25 4248 topology 4293 5901
-> 16 0 25 4248 topology 4291 5901
-> 15 0 24 4248 topology 4385 5902
-> 16 0 24 4248 topology 4323 5902
-> 15 0 25 4248 topology 4323 5903
-> 16 0 25 4248 topology 4321 5903
-> 15 0 24 4248 topology 4385 5904
-> 16 0 24 4248 topology 4353 5904
-> 15 0 25 4248 topology 4353 5905
-> 16 0 25 4248 topology 4351 5905
-> 15 0 24 4248 topology 4385 5906
-> 16 0 24 4248 topology 4383 5906
-> 15 0 25 4248 topology 4383 5907
-> 16 0 25 4248 topology 4381 5907
-> 15 0 24 4248 topology 4385 5908
-> 16 0 24 4248 topology 4305 5908
-> 15 0 25 4248 topology 4305 5909
-> 16 0 25 4248 topology 4303 5909
-> 15 0 24 4248 topology 4385 5910
-> 16 0 24 4248 topology 4335 5910
-> 15 0 25 4248 topology 4335 5911
-> 16 0 25 4248 topology 4333 5911
-> 15 0 24 4248 topology 4385 5912
-> 16 0 24 4248 topology 4365 5912
-> 15 0 25 4248 topology 4365 5913
-> 16 0 25 4248 topology 4363 5913
-> 15 0 24 4248 topology 4385 5914
-> 16 0 24 4248 topology 4260 5914
-> 15 0 25 4248 topology 4260 5915
-> 16 0 25 4248 topology 4258 5915
-> 15 0 24 4248 topology 4385 5916
-> 16 0 24 4248 topology 4272 5916
-> 15 0 25 4248 topology 4272 5917
-> 16 0 25 4248 topology 4270 5917
-> 15 0 24 4248 topology 4385 5918
-> 16 0 24 4248 topology 4278 5918
-> 15 0 25 4248 topology 4278 5919
-> 16 0 25 4248 topology 4276 5919
-> 15 0 24 4248 topology 4385 5920
-> 16 0 24 4248 topology 4308 5920
-> 15 0 25 4248 topology 4308 5921
-> 16 0 25 4248 topology 4306 5921
-> 15 0 24 4248 topology 4385 5922
-> 16 0 24 4248 topology 4338 5922
-> 15 0 25 4248 topology 4338 5923
-> 16 0 25 4248 topology 4336 5923
-> 15 0 24 4248 topology 4385 5924
-> 16 0 24 4248 topology 4368 5924
-> 15 0 25 4248 topology 4368 5925
-> 16 0 25 4248 topology 4366 5925
-> 15 0 24 4248 topology 4385 5926
-> 16 0 24 4248 topology 4290 5926
-> 15 0 25 4248 topology 4290 5927
-> 16 0 25 4248 topology 4288 5927
-> 15 0 24 4248 topology 4385 5928
-> 16 0 24 4248 topology 4320 5928
-> 15 0 25 4248 topology 4320 5929
-> 16 0 25 4248 topology 4318 5929
-> 15 0 24 4248 topology 4385 5930
-> 16 0 24 4248 topology 4350 5930
-> 15 0 25 4248 topology 4350 5931
-> 16 0 25 4248 topology 4348 5931
-> 15 0 24 4248 topology 4385 5932
-> 16 0 24 4248 topology 4380 5932
-> 15 0 25 4248 topology 4380 5933
-> 16 0 25 4248 topology 4378 5933
-> 15 0 24 4248 topology 4385 5934
-> 16 0 24 4248 topology 4302 5934
-> 15 0 25 4248 topology 4302 5935
-> 16 0 25 4248 topology 4300 5935
-> 15 0 24 4248 topology 4385 5936
-> 16 0 24 4248 topology 4332 5936
-> 15 0 25 4248 topology 4332 5937
-> 16 0 25 4248 topology 4330 5937
-> 15 0 24 4248 topology 4385 5938
-> 16 0 24 4248 topology 4362 5938
-> 15 0 25 4248 topology 4362 5939
-> 16 0 25 4248 topology 4360 5939
-> 15 0 24 4248 topology 4385 5940
-> 16 0 24 4248 topology 4257 5940
-> 15 0 25 4248 topology 4257 5941
-> 16 0 25 4248 topology 4255 5941
-> 15 0 24 4248 topology 4385 5942
-> 16 0 24 4248 topology 4269 5942
-> 15 0 25 4248 topology 4269 5943
-> 16 0 25 4248 topology 4267 5943
-> 15 0 26 4248 topology 4385 5944
-> 16 0 26 4248 topology 4384 5944
-> 15 0 24 4248 topology 4385 5945
-> 16 0 24 4248 topology 4287 5945
-> 15 0 25 4248 topology 4287 5946
-> 16 0 25 4248 topology 4285 5946
-> 15 0 24 4248 topology 4385 5947
-> 16 0 24 4248 topology 4317 5947
-> 15 0 25 4248 topology 4317 5948
-> 16 0 25 4248 topology 4315 5948
-> 15 0 24 4248 topology 4385 5949
-> 16 0 24 4248 topology 4347 5949
-> 15 0 25 4248 topology 4347 5950
-> 16 0 25 4248 topology 4345 5950
-> 15 0 24 4248 topology 4385 5951
-> 16 0 24 4248 topology 4377 5951
-> 15 0 25 4248 topology 4377 5952
-> 16 0 25 4248 topology 4375 5952
-> 15 0 24 4248 topology 4385 5953
-> 16 0 24 4248 topology 4299 5953
-> 15 0 25 4248 topology 4299 5954
-> 16 0 25 4248 topology 4297 5954
-> 15 0 24 4248 topology 4385 5955
-> 16 0 24 4248 topology 4329 5955
-> 15 0 25 4248 topology 4329 5956
-> 16 0 25 4248 topology 4327 5956
-> 15 0 24 4248 topology 4385 5957
-> 16 0 24 4248 topology 4359 5957
-> 15 0 25 4248 topology 4359 5958
-> 16 0 25 4248 topology 4357 5958
-> 15 0 24 4248 topology 4385 5959
-> 16 0 24 4248 topology 4254 5959
-> 15 0 25 4248 topology 4254 5960
-> 16 0 25 4248 topology 4252 5960
-> 15 0 24 4248 topology 4385 5961
-> 16 0 24 4248 topology 4266 5961
-> 15 0 25 4248 topology 4266 5962
-> 16 0 25 4248 topology 4264 5962
-> 15 0 24 4248 topology 4385 5963
-> 16 0 24 4248 topology 4284 5963
-> 15 0 25 4248 topology 4284 5964
-> 16 0 25 4248 topology 4282 5964
-> 15 0 24 4248 topology 4385 5965
-> 16 0 24 4248 topology 4314 5965
-> 15 0 25 4248 topology 4314 5966
-> 16 0 25 4248 topology 4312 5966
-> 15 0 24 4248 topology 4385 5967
-> 16 0 24 4248 topology 4344 5967
-> 15 0 25 4248 topology 4344 5968
-> 16 0 25 4248 topology 4342 5968
-> 15 0 24 4248 topology 4385 5969
-> 16 0 24 4248 topology 4374 5969
-> 15 0 25 4248 topology 4374 5970
-> 16 0 25 4248 topology 4372 5970
-> 15 0 24 4248 topology 4385 5971
-> 16 0 24 4248 topology 4296 5971
-> 15 0 25 4248 topology 4296 5972
-> 16 0 25 4248 topology 4294 5972
-> 15 0 24 4248 topology 4385 5973
-> 16 0 24 4248 topology 4326 5973
-> 15 0 25 4248 topology 4326 5974
-> 16 0 25 4248 topology 4324 5974
-> 15 0 24 4248 topology 4385 5975
-> 16 0 24 4248 topology 4356 5975
-> 15 0 25 4248 topology 4356 5976
-> 16 0 25 4248 topology 4354 5976
-> 15 0 24 4248 topology 4385 5977
-> 16 0 24 4248 topology 4251 5977
-> 15 0 25 4248 topology 4251 5978
-> 16 0 25 4248 topology 4249 5978
-> 15 0 24 4248 topology 4385 5979
-> 16 0 24 4248 topology 4263 5979
-> 15 0 25 4248 topology 4263 5980
-> 16 0 25 4248 topology 4261 5980
-> 15 0 23 4248 topology 4279 5981
-> 16 0 23 4248 topology 4280 5981
-> 15 0 24 4248 topology 4280 5982
-> 16 0 24 4248 topology 4385 5982
-> 15 0 24 4248 topology 4385 5983
-> 16 0 24 4248 topology 4275 5983
-> 15 0 25 4248 topology 4275 5984
-> 16 0 25 4248 topology 4273 5984
-> 15 0 23 4248 topology 4309 5985
-> 16 0 23 4248 topology 4310 5985
-> 15 0 24 4248 topology 4310 5986
+> 15 0 23 4248 topology 4297 5892
+> 16 0 23 4248 topology 4298 5892
+> 15 0 23 4248 topology 4351 5893
+> 16 0 23 4248 topology 4352 5893
+> 15 0 24 4248 topology 4325 5894
+> 16 0 24 4248 topology 4385 5894
+> 15 0 23 4248 topology 4300 5895
+> 16 0 23 4248 topology 4301 5895
+> 15 0 23 4248 topology 4354 5896
+> 16 0 23 4248 topology 4355 5896
+> 15 0 24 4248 topology 4355 5897
+> 16 0 24 4248 topology 4385 5897
+> 15 0 24 4248 topology 4272 5898
+> 16 0 24 4248 topology 4385 5898
+> 15 0 23 4248 topology 4303 5899
+> 16 0 23 4248 topology 4304 5899
+> 15 0 23 4248 topology 4357 5900
+> 16 0 23 4248 topology 4358 5900
+> 15 0 23 4248 topology 4276 5901
+> 16 0 23 4248 topology 4278 5901
+> 15 0 23 4248 topology 4360 5902
+> 16 0 23 4248 topology 4361 5902
+> 15 0 23 4248 topology 4252 5903
+> 16 0 23 4248 topology 4254 5903
+> 15 0 23 4248 topology 4306 5904
+> 16 0 23 4248 topology 4308 5904
+> 15 0 23 4248 topology 4363 5905
+> 16 0 23 4248 topology 4364 5905
+> 15 0 23 4248 topology 4282 5906
+> 16 0 23 4248 topology 4284 5906
+> 15 0 23 4248 topology 4336 5907
+> 16 0 23 4248 topology 4338 5907
+> 15 0 23 4248 topology 4312 5908
+> 16 0 23 4248 topology 4314 5908
+> 15 0 23 4248 topology 4366 5909
+> 16 0 23 4248 topology 4368 5909
+> 15 0 24 4248 topology 4256 5910
+> 16 0 24 4248 topology 4385 5910
+> 15 0 24 4248 topology 4278 5911
+> 16 0 24 4248 topology 4385 5911
+> 15 0 23 4248 topology 4288 5912
+> 16 0 23 4248 topology 4290 5912
+> 15 0 23 4248 topology 4342 5913
+> 16 0 23 4248 topology 4344 5913
+> 15 0 23 4248 topology 4264 5914
+> 16 0 23 4248 topology 4266 5914
+> 15 0 23 4248 topology 4318 5915
+> 16 0 23 4248 topology 4320 5915
+> 15 0 24 4248 topology 4338 5916
+> 16 0 24 4248 topology 4385 5916
+> 15 0 23 4248 topology 4372 5917
+> 16 0 23 4248 topology 4374 5917
+> 15 0 24 4248 topology 4268 5918
+> 16 0 24 4248 topology 4385 5918
+> 15 0 24 4248 topology 4314 5919
+> 16 0 24 4248 topology 4385 5919
+> 15 0 24 4248 topology 4290 5920
+> 16 0 24 4248 topology 4385 5920
+> 15 0 23 4248 topology 4294 5921
+> 16 0 23 4248 topology 4296 5921
+> 15 0 23 4248 topology 4348 5922
+> 16 0 23 4248 topology 4350 5922
+> 15 0 24 4248 topology 4374 5923
+> 16 0 24 4248 topology 4385 5923
+> 15 0 23 4248 topology 4324 5924
+> 16 0 23 4248 topology 4326 5924
+> 15 0 24 4248 topology 4350 5925
+> 16 0 24 4248 topology 4385 5925
+> 15 0 23 4248 topology 4378 5926
+> 16 0 23 4248 topology 4380 5926
+> 15 0 23 4248 topology 4252 5927
+> 16 0 23 4248 topology 4253 5927
+> 15 0 24 4248 topology 4326 5928
+> 16 0 24 4248 topology 4385 5928
+> 15 0 23 4248 topology 4300 5929
+> 16 0 23 4248 topology 4302 5929
+> 15 0 24 4248 topology 4302 5930
+> 16 0 24 4248 topology 4385 5930
+> 15 0 23 4248 topology 4354 5931
+> 16 0 23 4248 topology 4356 5931
+> 15 0 23 4248 topology 4330 5932
+> 16 0 23 4248 topology 4332 5932
+> 15 0 24 4248 topology 4362 5933
+> 16 0 24 4248 topology 4385 5933
+> 15 0 23 4248 topology 4360 5934
+> 16 0 23 4248 topology 4362 5934
+> 15 0 24 4248 topology 4280 5935
+> 16 0 24 4248 topology 4385 5935
+> 15 0 23 4248 topology 4264 5936
+> 16 0 23 4248 topology 4265 5936
+> 15 0 24 4248 topology 4310 5937
+> 16 0 24 4248 topology 4385 5937
+> 15 0 24 4248 topology 4251 5938
+> 16 0 24 4248 topology 4385 5938
+> 15 0 24 4248 topology 4340 5939
+> 16 0 24 4248 topology 4385 5939
+> 15 0 24 4248 topology 4370 5940
+> 16 0 24 4248 topology 4385 5940
+> 15 0 24 4248 topology 4292 5941
+> 16 0 24 4248 topology 4385 5941
+> 15 0 24 4248 topology 4322 5942
+> 16 0 24 4248 topology 4385 5942
+> 15 0 24 4248 topology 4263 5943
+> 16 0 24 4248 topology 4385 5943
+> 15 0 24 4248 topology 4352 5944
+> 16 0 24 4248 topology 4385 5944
+> 15 0 24 4248 topology 4382 5945
+> 16 0 24 4248 topology 4385 5945
+> 15 0 24 4248 topology 4304 5946
+> 16 0 24 4248 topology 4385 5946
+> 15 0 24 4248 topology 4334 5947
+> 16 0 24 4248 topology 4385 5947
+> 15 0 24 4248 topology 4275 5948
+> 16 0 24 4248 topology 4385 5948
+> 15 0 24 4248 topology 4364 5949
+> 16 0 24 4248 topology 4385 5949
+> 15 0 23 4248 topology 4255 5950
+> 16 0 23 4248 topology 4257 5950
+> 15 0 24 4248 topology 4253 5951
+> 16 0 24 4248 topology 4385 5951
+> 15 0 24 4248 topology 4281 5952
+> 16 0 24 4248 topology 4385 5952
+> 15 0 24 4248 topology 4265 5953
+> 16 0 24 4248 topology 4385 5953
+> 15 0 24 4248 topology 4341 5954
+> 16 0 24 4248 topology 4385 5954
+> 15 0 23 4248 topology 4267 5955
+> 16 0 23 4248 topology 4269 5955
+> 15 0 24 4248 topology 4317 5956
+> 16 0 24 4248 topology 4385 5956
+> 15 0 23 4248 topology 4249 5957
+> 16 0 23 4248 topology 4250 5957
+> 15 0 24 4248 topology 4293 5958
+> 16 0 24 4248 topology 4385 5958
+> 15 0 24 4248 topology 4377 5959
+> 16 0 24 4248 topology 4385 5959
+> 15 0 23 4248 topology 4306 5960
+> 16 0 23 4248 topology 4307 5960
+> 15 0 24 4248 topology 4353 5961
+> 16 0 24 4248 topology 4385 5961
+> 15 0 24 4248 topology 4329 5962
+> 16 0 24 4248 topology 4385 5962
+> 15 0 24 4248 topology 4305 5963
+> 16 0 24 4248 topology 4385 5963
+> 15 0 23 4248 topology 4309 5964
+> 16 0 23 4248 topology 4310 5964
+> 15 0 23 4248 topology 4312 5965
+> 16 0 23 4248 topology 4313 5965
+> 15 0 24 4248 topology 4365 5966
+> 16 0 24 4248 topology 4385 5966
+> 15 0 23 4248 topology 4366 5967
+> 16 0 23 4248 topology 4367 5967
+> 15 0 23 4248 topology 4261 5968
+> 16 0 23 4248 topology 4262 5968
+> 15 0 24 4248 topology 4277 5969
+> 16 0 24 4248 topology 4385 5969
+> 15 0 23 4248 topology 4315 5970
+> 16 0 23 4248 topology 4316 5970
+> 15 0 23 4248 topology 4369 5971
+> 16 0 23 4248 topology 4370 5971
+> 15 0 24 4248 topology 4307 5972
+> 16 0 24 4248 topology 4385 5972
+> 15 0 23 4248 topology 4318 5973
+> 16 0 23 4248 topology 4319 5973
+> 15 0 24 4248 topology 4337 5974
+> 16 0 24 4248 topology 4385 5974
+> 15 0 23 4248 topology 4372 5975
+> 16 0 23 4248 topology 4373 5975
+> 15 0 24 4248 topology 4367 5976
+> 16 0 24 4248 topology 4385 5976
+> 15 0 24 4248 topology 4254 5977
+> 16 0 24 4248 topology 4385 5977
+> 15 0 24 4248 topology 4289 5978
+> 16 0 24 4248 topology 4385 5978
+> 15 0 23 4248 topology 4321 5979
+> 16 0 23 4248 topology 4322 5979
+> 15 0 23 4248 topology 4375 5980
+> 16 0 23 4248 topology 4376 5980
+> 15 0 24 4248 topology 4319 5981
+> 16 0 24 4248 topology 4385 5981
+> 15 0 23 4248 topology 4324 5982
+> 16 0 23 4248 topology 4325 5982
+> 15 0 24 4248 topology 4349 5983
+> 16 0 24 4248 topology 4385 5983
+> 15 0 23 4248 topology 4378 5984
+> 16 0 23 4248 topology 4379 5984
+> 15 0 24 4248 topology 4379 5985
+> 16 0 24 4248 topology 4385 5985
+> 15 0 24 4248 topology 4266 5986
 > 16 0 24 4248 topology 4385 5986
-> 15 0 23 4248 topology 4339 5987
-> 16 0 23 4248 topology 4340 5987
-> 15 0 24 4248 topology 4340 5988
+> 15 0 23 4248 topology 4273 5987
+> 16 0 23 4248 topology 4274 5987
+> 15 0 24 4248 topology 4301 5988
 > 16 0 24 4248 topology 4385 5988
-> 15 0 23 4248 topology 4369 5989
-> 16 0 23 4248 topology 4370 5989
-> 15 0 24 4248 topology 4370 5990
-> 16 0 24 4248 topology 4385 5990
-> 15 0 23 4248 topology 4291 5991
-> 16 0 23 4248 topology 4292 5991
-> 15 0 24 4248 topology 4292 5992
-> 16 0 24 4248 topology 4385 5992
-> 15 0 23 4248 topology 4321 5993
-> 16 0 23 4248 topology 4322 5993
-> 15 0 24 4248 topology 4322 5994
-> 16 0 24 4248 topology 4385 5994
-> 15 0 23 4248 topology 4351 5995
-> 16 0 23 4248 topology 4352 5995
-> 15 0 24 4248 topology 4352 5996
-> 16 0 24 4248 topology 4385 5996
-> 15 0 23 4248 topology 4381 5997
-> 16 0 23 4248 topology 4382 5997
-> 15 0 24 4248 topology 4382 5998
-> 16 0 24 4248 topology 4385 5998
-> 15 0 23 4248 topology 4303 5999
-> 16 0 23 4248 topology 4304 5999
-> 15 0 24 4248 topology 4304 6000
-> 16 0 24 4248 topology 4385 6000
-> 15 0 23 4248 topology 4333 6001
-> 16 0 23 4248 topology 4334 6001
-> 15 0 24 4248 topology 4334 6002
-> 16 0 24 4248 topology 4385 6002
-> 15 0 23 4248 topology 4363 6003
-> 16 0 23 4248 topology 4364 6003
-> 15 0 24 4248 topology 4364 6004
+> 15 0 23 4248 topology 4327 5989
+> 16 0 23 4248 topology 4328 5989
+> 15 0 23 4248 topology 4381 5990
+> 16 0 23 4248 topology 4382 5990
+> 15 0 24 4248 topology 4331 5991
+> 16 0 24 4248 topology 4385 5991
+> 15 0 23 4248 topology 4330 5992
+> 16 0 23 4248 topology 4331 5992
+> 15 0 24 4248 topology 4361 5993
+> 16 0 24 4248 topology 4385 5993
+> 15 0 23 4248 topology 4333 5994
+> 16 0 23 4248 topology 4334 5994
+> 15 0 23 4248 topology 4279 5995
+> 16 0 23 4248 topology 4281 5995
+> 15 0 23 4248 topology 4309 5996
+> 16 0 23 4248 topology 4311 5996
+> 15 0 24 4248 topology 4250 5997
+> 16 0 24 4248 topology 4385 5997
+> 15 0 23 4248 topology 4258 5998
+> 16 0 23 4248 topology 4260 5998
+> 15 0 23 4248 topology 4285 5999
+> 16 0 23 4248 topology 4287 5999
+> 15 0 23 4248 topology 4339 6000
+> 16 0 23 4248 topology 4341 6000
+> 15 0 23 4248 topology 4315 6001
+> 16 0 23 4248 topology 4317 6001
+> 15 0 23 4248 topology 4369 6002
+> 16 0 23 4248 topology 4371 6002
+> 15 0 24 4248 topology 4262 6003
+> 16 0 24 4248 topology 4385 6003
+> 15 0 24 4248 topology 4308 6004
 > 16 0 24 4248 topology 4385 6004
-> 15 0 23 4248 topology 4258 6005
-> 16 0 23 4248 topology 4259 6005
-> 15 0 24 4248 topology 4259 6006
-> 16 0 24 4248 topology 4385 6006
-> 15 0 23 4248 topology 4270 6007
-> 16 0 23 4248 topology 4271 6007
-> 15 0 24 4248 topology 4271 6008
+> 15 0 24 4248 topology 4284 6005
+> 16 0 24 4248 topology 4385 6005
+> 15 0 23 4248 topology 4291 6006
+> 16 0 23 4248 topology 4293 6006
+> 15 0 23 4248 topology 4345 6007
+> 16 0 23 4248 topology 4347 6007
+> 15 0 24 4248 topology 4368 6008
 > 16 0 24 4248 topology 4385 6008
-> 15 0 23 4248 topology 4276 6009
-> 16 0 23 4248 topology 4277 6009
-> 15 0 24 4248 topology 4277 6010
+> 15 0 23 4248 topology 4321 6009
+> 16 0 23 4248 topology 4323 6009
+> 15 0 24 4248 topology 4344 6010
 > 16 0 24 4248 topology 4385 6010
-> 15 0 23 4248 topology 4306 6011
-> 16 0 23 4248 topology 4307 6011
-> 15 0 24 4248 topology 4307 6012
+> 15 0 23 4248 topology 4375 6011
+> 16 0 23 4248 topology 4377 6011
+> 15 0 24 4248 topology 4274 6012
 > 16 0 24 4248 topology 4385 6012
-> 15 0 23 4248 topology 4336 6013
-> 16 0 23 4248 topology 4337 6013
-> 15 0 24 4248 topology 4337 6014
-> 16 0 24 4248 topology 4385 6014
-> 15 0 23 4248 topology 4366 6015
-> 16 0 23 4248 topology 4367 6015
-> 15 0 24 4248 topology 4367 6016
-> 16 0 24 4248 topology 4385 6016
-> 15 0 23 4248 topology 4288 6017
-> 16 0 23 4248 topology 4289 6017
-> 15 0 24 4248 topology 4289 6018
+> 15 0 24 4248 topology 4320 6013
+> 16 0 24 4248 topology 4385 6013
+> 15 0 23 4248 topology 4270 6014
+> 16 0 23 4248 topology 4272 6014
+> 15 0 24 4248 topology 4296 6015
+> 16 0 24 4248 topology 4385 6015
+> 15 0 23 4248 topology 4297 6016
+> 16 0 23 4248 topology 4299 6016
+> 15 0 23 4248 topology 4351 6017
+> 16 0 23 4248 topology 4353 6017
+> 15 0 24 4248 topology 4380 6018
 > 16 0 24 4248 topology 4385 6018
-> 15 0 23 4248 topology 4318 6019
-> 16 0 23 4248 topology 4319 6019
-> 15 0 24 4248 topology 4319 6020
+> 15 0 23 4248 topology 4327 6019
+> 16 0 23 4248 topology 4329 6019
+> 15 0 24 4248 topology 4356 6020
 > 16 0 24 4248 topology 4385 6020
-> 15 0 23 4248 topology 4348 6021
-> 16 0 23 4248 topology 4349 6021
-> 15 0 24 4248 topology 4349 6022
+> 15 0 23 4248 topology 4381 6021
+> 16 0 23 4248 topology 4383 6021
+> 15 0 24 4248 topology 4332 6022
 > 16 0 24 4248 topology 4385 6022
-> 15 0 23 4248 topology 4378 6023
-> 16 0 23 4248 topology 4379 6023
-> 15 0 24 4248 topology 4379 6024
-> 16 0 24 4248 topology 4385 6024
-> 15 0 23 4248 topology 4300 6025
-> 16 0 23 4248 topology 4301 6025
-> 15 0 24 4248 topology 4301 6026
-> 16 0 24 4248 topology 4385 6026
-> 15 0 23 4248 topology 4330 6027
-> 16 0 23 4248 topology 4331 6027
-> 15 0 24 4248 topology 4331 6028
+> 15 0 23 4248 topology 4303 6023
+> 16 0 23 4248 topology 4305 6023
+> 15 0 23 4248 topology 4357 6024
+> 16 0 23 4248 topology 4359 6024
+> 15 0 23 4248 topology 4258 6025
+> 16 0 23 4248 topology 4259 6025
+> 15 0 23 4248 topology 4333 6026
+> 16 0 23 4248 topology 4335 6026
+> 15 0 23 4248 topology 4363 6027
+> 16 0 23 4248 topology 4365 6027
+> 15 0 24 4248 topology 4286 6028
 > 16 0 24 4248 topology 4385 6028
-> 15 0 23 4248 topology 4360 6029
-> 16 0 23 4248 topology 4361 6029
-> 15 0 24 4248 topology 4361 6030
+> 15 0 24 4248 topology 4316 6029
+> 16 0 24 4248 topology 4385 6029
+> 15 0 24 4248 topology 4257 6030
 > 16 0 24 4248 topology 4385 6030
-> 15 0 23 4248 topology 4255 6031
-> 16 0 23 4248 topology 4256 6031
-> 15 0 24 4248 topology 4256 6032
-> 16 0 24 4248 topology 4385 6032
-> 15 0 23 4248 topology 4267 6033
-> 16 0 23 4248 topology 4268 6033
-> 15 0 24 4248 topology 4268 6034
+> 15 0 24 4248 topology 4346 6031
+> 16 0 24 4248 topology 4385 6031
+> 15 0 23 4248 topology 4270 6032
+> 16 0 23 4248 topology 4271 6032
+> 15 0 24 4248 topology 4376 6033
+> 16 0 24 4248 topology 4385 6033
+> 15 0 24 4248 topology 4298 6034
 > 16 0 24 4248 topology 4385 6034
-> 15 0 23 4248 topology 4285 6035
-> 16 0 23 4248 topology 4286 6035
-> 15 0 24 4248 topology 4286 6036
+> 15 0 24 4248 topology 4328 6035
+> 16 0 24 4248 topology 4385 6035
+> 15 0 24 4248 topology 4269 6036
 > 16 0 24 4248 topology 4385 6036
-> 15 0 23 4248 topology 4315 6037
-> 16 0 23 4248 topology 4316 6037
-> 15 0 24 4248 topology 4316 6038
-> 16 0 24 4248 topology 4385 6038
-> 15 0 23 4248 topology 4345 6039
-> 16 0 23 4248 topology 4346 6039
-> 15 0 24 4248 topology 4346 6040
+> 15 0 24 4248 topology 4358 6037
+> 16 0 24 4248 topology 4385 6037
+> 15 0 23 4248 topology 4249 6038
+> 16 0 23 4248 topology 4251 6038
+> 15 0 25 4248 topology 4384 6039
+> 16 0 25 4248 topology 4385 6039
+> 15 0 24 4248 topology 4259 6040
 > 16 0 24 4248 topology 4385 6040
-> 15 0 23 4248 topology 4375 6041
-> 16 0 23 4248 topology 4376 6041
-> 15 0 24 4248 topology 4376 6042
+> 15 0 23 4248 topology 4261 6041
+> 16 0 23 4248 topology 4263 6041
+> 15 0 24 4248 topology 4311 6042
 > 16 0 24 4248 topology 4385 6042
-> 15 0 23 4248 topology 4297 6043
-> 16 0 23 4248 topology 4298 6043
-> 15 0 24 4248 topology 4298 6044
+> 15 0 24 4248 topology 4287 6043
+> 16 0 24 4248 topology 4385 6043
+> 15 0 24 4248 topology 4271 6044
 > 16 0 24 4248 topology 4385 6044
-> 15 0 23 4248 topology 4327 6045
-> 16 0 23 4248 topology 4328 6045
-> 15 0 24 4248 topology 4328 6046
-> 16 0 24 4248 topology 4385 6046
-> 15 0 23 4248 topology 4357 6047
-> 16 0 23 4248 topology 4358 6047
-> 15 0 24 4248 topology 4358 6048
+> 15 0 24 4248 topology 4371 6045
+> 16 0 24 4248 topology 4385 6045
+> 15 0 23 4248 topology 4276 6046
+> 16 0 23 4248 topology 4277 6046
+> 15 0 24 4248 topology 4347 6047
+> 16 0 24 4248 topology 4385 6047
+> 15 0 24 4248 topology 4323 6048
 > 16 0 24 4248 topology 4385 6048
-> 15 0 23 4248 topology 4252 6049
-> 16 0 23 4248 topology 4253 6049
-> 15 0 24 4248 topology 4253 6050
+> 15 0 23 4248 topology 4279 6049
+> 16 0 23 4248 topology 4280 6049
+> 15 0 24 4248 topology 4299 6050
 > 16 0 24 4248 topology 4385 6050
-> 15 0 23 4248 topology 4264 6051
-> 16 0 23 4248 topology 4265 6051
-> 15 0 24 4248 topology 4265 6052
+> 15 0 23 4248 topology 4273 6051
+> 16 0 23 4248 topology 4275 6051
+> 15 0 24 4248 topology 4383 6052
 > 16 0 24 4248 topology 4385 6052
-> 15 0 23 4248 topology 4282 6053
-> 16 0 23 4248 topology 4283 6053
-> 15 0 24 4248 topology 4283 6054
-> 16 0 24 4248 topology 4385 6054
-> 15 0 23 4248 topology 4312 6055
-> 16 0 23 4248 topology 4313 6055
-> 15 0 24 4248 topology 4313 6056
+> 15 0 23 4248 topology 4255 6053
+> 16 0 23 4248 topology 4256 6053
+> 15 0 23 4248 topology 4282 6054
+> 16 0 23 4248 topology 4283 6054
+> 15 0 23 4248 topology 4336 6055
+> 16 0 23 4248 topology 4337 6055
+> 15 0 24 4248 topology 4359 6056
 > 16 0 24 4248 topology 4385 6056
-> 15 0 23 4248 topology 4342 6057
-> 16 0 23 4248 topology 4343 6057
-> 15 0 24 4248 topology 4343 6058
-> 16 0 24 4248 topology 4385 6058
-> 15 0 23 4248 topology 4372 6059
-> 16 0 23 4248 topology 4373 6059
-> 15 0 24 4248 topology 4373 6060
-> 16 0 24 4248 topology 4385 6060
-> 15 0 23 4248 topology 4294 6061
-> 16 0 23 4248 topology 4295 6061
-> 15 0 24 4248 topology 4295 6062
+> 15 0 24 4248 topology 4335 6057
+> 16 0 24 4248 topology 4385 6057
+> 15 0 23 4248 topology 4285 6058
+> 16 0 23 4248 topology 4286 6058
+> 15 0 23 4248 topology 4339 6059
+> 16 0 23 4248 topology 4340 6059
+> 15 0 23 4248 topology 4288 6060
+> 16 0 23 4248 topology 4289 6060
+> 15 0 23 4248 topology 4342 6061
+> 16 0 23 4248 topology 4343 6061
+> 15 0 24 4248 topology 4283 6062
 > 16 0 24 4248 topology 4385 6062
-> 15 0 23 4248 topology 4324 6063
-> 16 0 23 4248 topology 4325 6063
-> 15 0 24 4248 topology 4325 6064
-> 16 0 24 4248 topology 4385 6064
-> 15 0 23 4248 topology 4354 6065
-> 16 0 23 4248 topology 4355 6065
-> 15 0 24 4248 topology 4355 6066
-> 16 0 24 4248 topology 4385 6066
-> 15 0 23 4248 topology 4249 6067
-> 16 0 23 4248 topology 4250 6067
-> 15 0 24 4248 topology 4250 6068
+> 15 0 23 4248 topology 4291 6063
+> 16 0 23 4248 topology 4292 6063
+> 15 0 23 4248 topology 4345 6064
+> 16 0 23 4248 topology 4346 6064
+> 15 0 24 4248 topology 4313 6065
+> 16 0 24 4248 topology 4385 6065
+> 15 0 23 4248 topology 4267 6066
+> 16 0 23 4248 topology 4268 6066
+> 15 0 23 4248 topology 4294 6067
+> 16 0 23 4248 topology 4295 6067
+> 15 0 24 4248 topology 4343 6068
 > 16 0 24 4248 topology 4385 6068
-> 15 0 23 4248 topology 4261 6069
-> 16 0 23 4248 topology 4262 6069
-> 15 0 24 4248 topology 4262 6070
+> 15 0 23 4248 topology 4348 6069
+> 16 0 23 4248 topology 4349 6069
+> 15 0 24 4248 topology 4373 6070
 > 16 0 24 4248 topology 4385 6070
-> 15 0 23 4094 topology 4095 6071
-> 16 0 23 4094 topology 4096 6071
-> 15 0 24 4094 topology 4096 6072
+> 15 0 24 4094 topology 4130 6071
+> 16 0 24 4094 topology 4246 6071
+> 15 0 24 4094 topology 4114 6072
 > 16 0 24 4094 topology 4246 6072
-> 15 0 24 4094 topology 4246 6073
-> 16 0 24 4094 topology 4109 6073
-> 15 0 25 4094 topology 4109 6074
-> 16 0 25 4094 topology 4107 6074
-> 15 0 24 4094 topology 4246 6075
-> 16 0 24 4094 topology 4121 6075
-> 15 0 25 4094 topology 4121 6076
-> 16 0 25 4094 topology 4119 6076
-> 15 0 24 4094 topology 4246 6077
-> 16 0 24 4094 topology 4130 6077
-> 15 0 25 4094 topology 4130 6078
-> 16 0 25 4094 topology 4128 6078
-> 15 0 24 4094 topology 4246 6079
-> 16 0 24 4094 topology 4160 6079
-> 15 0 25 4094 topology 4160 6080
-> 16 0 25 4094 topology 4158 6080
-> 15 0 24 4094 topology 4246 6081
-> 16 0 24 4094 topology 4190 6081
-> 15 0 25 4094 topology 4190 6082
-> 16 0 25 4094 topology 4188 6082
-> 15 0 24 4094 topology 4246 6083
-> 16 0 24 4094 topology 4220 6083
-> 15 0 25 4094 topology 4220 6084
-> 16 0 25 4094 topology 4218 6084
-> 15 0 24 4094 topology 4246 6085
-> 16 0 24 4094 topology 4142 6085
-> 15 0 25 4094 topology 4142 6086
-> 16 0 25 4094 topology 4140 6086
-> 15 0 24 4094 topology 4246 6087
-> 16 0 24 4094 topology 4172 6087
-> 15 0 25 4094 topology 4172 6088
-> 16 0 25 4094 topology 4170 6088
-> 15 0 24 4094 topology 4246 6089
-> 16 0 24 4094 topology 4202 6089
-> 15 0 25 4094 topology 4202 6090
-> 16 0 25 4094 topology 4200 6090
-> 15 0 24 4094 topology 4246 6091
-> 16 0 24 4094 topology 4232 6091
-> 15 0 25 4094 topology 4232 6092
-> 16 0 25 4094 topology 4230 6092
-> 15 0 24 4094 topology 4246 6093
-> 16 0 24 4094 topology 4106 6093
-> 15 0 25 4094 topology 4106 6094
-> 16 0 25 4094 topology 4104 6094
-> 15 0 24 4094 topology 4246 6095
-> 16 0 24 4094 topology 4118 6095
-> 15 0 25 4094 topology 4118 6096
-> 16 0 25 4094 topology 4116 6096
-> 15 0 24 4094 topology 4246 6097
-> 16 0 24 4094 topology 4127 6097
-> 15 0 25 4094 topology 4127 6098
-> 16 0 25 4094 topology 4125 6098
-> 15 0 24 4094 topology 4246 6099
-> 16 0 24 4094 topology 4157 6099
-> 15 0 25 4094 topology 4157 6100
-> 16 0 25 4094 topology 4155 6100
-> 15 0 24 4094 topology 4246 6101
-> 16 0 24 4094 topology 4187 6101
-> 15 0 25 4094 topology 4187 6102
-> 16 0 25 4094 topology 4185 6102
-> 15 0 24 4094 topology 4246 6103
-> 16 0 24 4094 topology 4217 6103
-> 15 0 25 4094 topology 4217 6104
-> 16 0 25 4094 topology 4215 6104
-> 15 0 24 4094 topology 4246 6105
-> 16 0 24 4094 topology 4139 6105
-> 15 0 25 4094 topology 4139 6106
-> 16 0 25 4094 topology 4137 6106
-> 15 0 24 4094 topology 4246 6107
-> 16 0 24 4094 topology 4169 6107
-> 15 0 25 4094 topology 4169 6108
-> 16 0 25 4094 topology 4167 6108
-> 15 0 24 4094 topology 4246 6109
-> 16 0 24 4094 topology 4199 6109
-> 15 0 25 4094 topology 4199 6110
-> 16 0 25 4094 topology 4197 6110
-> 15 0 24 4094 topology 4246 6111
-> 16 0 24 4094 topology 4229 6111
-> 15 0 25 4094 topology 4229 6112
-> 16 0 25 4094 topology 4227 6112
-> 15 0 24 4094 topology 4246 6113
-> 16 0 24 4094 topology 4151 6113
-> 15 0 25 4094 topology 4151 6114
-> 16 0 25 4094 topology 4149 6114
-> 15 0 24 4094 topology 4246 6115
-> 16 0 24 4094 topology 4181 6115
-> 15 0 25 4094 topology 4181 6116
-> 16 0 25 4094 topology 4179 6116
-> 15 0 24 4094 topology 4246 6117
-> 16 0 24 4094 topology 4211 6117
-> 15 0 25 4094 topology 4211 6118
-> 16 0 25 4094 topology 4209 6118
-> 15 0 24 4094 topology 4246 6119
-> 16 0 24 4094 topology 4241 6119
-> 15 0 25 4094 topology 4241 6120
-> 16 0 25 4094 topology 4239 6120
-> 15 0 24 4094 topology 4246 6121
-> 16 0 24 4094 topology 4103 6121
-> 15 0 25 4094 topology 4103 6122
-> 16 0 25 4094 topology 4101 6122
-> 15 0 24 4094 topology 4246 6123
-> 16 0 24 4094 topology 4115 6123
-> 15 0 25 4094 topology 4115 6124
-> 16 0 25 4094 topology 4113 6124
-> 15 0 24 4094 topology 4246 6125
-> 16 0 24 4094 topology 4124 6125
-> 15 0 25 4094 topology 4124 6126
-> 16 0 25 4094 topology 4122 6126
-> 15 0 26 4094 topology 4246 6127
-> 16 0 26 4094 topology 4245 6127
-> 15 0 24 4094 topology 4246 6128
-> 16 0 24 4094 topology 4154 6128
-> 15 0 25 4094 topology 4154 6129
-> 16 0 25 4094 topology 4152 6129
-> 15 0 24 4094 topology 4246 6130
-> 16 0 24 4094 topology 4184 6130
-> 15 0 25 4094 topology 4184 6131
-> 16 0 25 4094 topology 4182 6131
-> 15 0 24 4094 topology 4246 6132
-> 16 0 24 4094 topology 4214 6132
-> 15 0 25 4094 topology 4214 6133
-> 16 0 25 4094 topology 4212 6133
-> 15 0 24 4094 topology 4246 6134
-> 16 0 24 4094 topology 4136 6134
-> 15 0 25 4094 topology 4136 6135
-> 16 0 25 4094 topology 4134 6135
-> 15 0 24 4094 topology 4246 6136
-> 16 0 24 4094 topology 4244 6136
-> 15 0 25 4094 topology 4244 6137
-> 16 0 25 4094 topology 4242 6137
-> 15 0 24 4094 topology 4246 6138
-> 16 0 24 4094 topology 4166 6138
-> 15 0 25 4094 topology 4166 6139
-> 16 0 25 4094 topology 4164 6139
-> 15 0 24 4094 topology 4246 6140
-> 16 0 24 4094 topology 4196 6140
-> 15 0 25 4094 topology 4196 6141
-> 16 0 25 4094 topology 4194 6141
-> 15 0 24 4094 topology 4246 6142
-> 16 0 24 4094 topology 4226 6142
-> 15 0 25 4094 topology 4226 6143
-> 16 0 25 4094 topology 4224 6143
-> 15 0 24 4094 topology 4246 6144
-> 16 0 24 4094 topology 4148 6144
-> 15 0 25 4094 topology 4148 6145
-> 16 0 25 4094 topology 4146 6145
-> 15 0 24 4094 topology 4246 6146
-> 16 0 24 4094 topology 4178 6146
-> 15 0 25 4094 topology 4178 6147
-> 16 0 25 4094 topology 4176 6147
-> 15 0 24 4094 topology 4246 6148
-> 16 0 24 4094 topology 4208 6148
-> 15 0 25 4094 topology 4208 6149
-> 16 0 25 4094 topology 4206 6149
-> 15 0 24 4094 topology 4246 6150
-> 16 0 24 4094 topology 4238 6150
-> 15 0 25 4094 topology 4238 6151
-> 16 0 25 4094 topology 4236 6151
-> 15 0 24 4094 topology 4246 6152
-> 16 0 24 4094 topology 4100 6152
-> 15 0 25 4094 topology 4100 6153
-> 16 0 25 4094 topology 4098 6153
-> 15 0 24 4094 topology 4246 6154
-> 16 0 24 4094 topology 4112 6154
-> 15 0 25 4094 topology 4112 6155
-> 16 0 25 4094 topology 4110 6155
-> 15 0 24 4094 topology 4246 6156
-> 16 0 24 4094 topology 4133 6156
-> 15 0 25 4094 topology 4133 6157
-> 16 0 25 4094 topology 4131 6157
-> 15 0 24 4094 topology 4246 6158
-> 16 0 24 4094 topology 4163 6158
-> 15 0 25 4094 topology 4163 6159
-> 16 0 25 4094 topology 4161 6159
-> 15 0 24 4094 topology 4246 6160
-> 16 0 24 4094 topology 4193 6160
-> 15 0 25 4094 topology 4193 6161
-> 16 0 25 4094 topology 4191 6161
-> 15 0 24 4094 topology 4246 6162
-> 16 0 24 4094 topology 4223 6162
-> 15 0 25 4094 topology 4223 6163
-> 16 0 25 4094 topology 4221 6163
-> 15 0 24 4094 topology 4246 6164
-> 16 0 24 4094 topology 4145 6164
-> 15 0 25 4094 topology 4145 6165
-> 16 0 25 4094 topology 4143 6165
-> 15 0 24 4094 topology 4246 6166
-> 16 0 24 4094 topology 4175 6166
-> 15 0 25 4094 topology 4175 6167
-> 16 0 25 4094 topology 4173 6167
-> 15 0 24 4094 topology 4246 6168
-> 16 0 24 4094 topology 4205 6168
-> 15 0 25 4094 topology 4205 6169
-> 16 0 25 4094 topology 4203 6169
-> 15 0 24 4094 topology 4246 6170
-> 16 0 24 4094 topology 4235 6170
-> 15 0 25 4094 topology 4235 6171
-> 16 0 25 4094 topology 4233 6171
+> 15 0 24 4094 topology 4214 6073
+> 16 0 24 4094 topology 4246 6073
+> 15 0 23 4094 topology 4167 6074
+> 16 0 23 4094 topology 4169 6074
+> 15 0 23 4094 topology 4122 6075
+> 16 0 23 4094 topology 4123 6075
+> 15 0 24 4094 topology 4166 6076
+> 16 0 24 4094 topology 4246 6076
+> 15 0 23 4094 topology 4146 6077
+> 16 0 23 4094 topology 4148 6077
+> 15 0 24 4094 topology 4202 6078
+> 16 0 24 4094 topology 4246 6078
+> 15 0 23 4094 topology 4155 6079
+> 16 0 23 4094 topology 4156 6079
+> 15 0 24 4094 topology 4238 6080
+> 16 0 24 4094 topology 4246 6080
+> 15 0 23 4094 topology 4233 6081
+> 16 0 23 4094 topology 4235 6081
+> 15 0 23 4094 topology 4188 6082
+> 16 0 23 4094 topology 4189 6082
+> 15 0 24 4094 topology 4132 6083
+> 16 0 24 4094 topology 4246 6083
+> 15 0 23 4094 topology 4221 6084
+> 16 0 23 4094 topology 4222 6084
+> 15 0 24 4094 topology 4192 6085
+> 16 0 24 4094 topology 4246 6085
+> 15 0 24 4094 topology 4109 6086
+> 16 0 24 4094 topology 4246 6086
+> 15 0 23 4094 topology 4146 6087
+> 16 0 23 4094 topology 4147 6087
+> 15 0 24 4094 topology 4174 6088
+> 16 0 24 4094 topology 4246 6088
+> 15 0 24 4094 topology 4234 6089
+> 16 0 24 4094 topology 4246 6089
+> 15 0 23 4094 topology 4179 6090
+> 16 0 23 4094 topology 4180 6090
+> 15 0 23 4094 topology 4125 6091
+> 16 0 23 4094 topology 4127 6091
+> 15 0 24 4094 topology 4099 6092
+> 16 0 24 4094 topology 4246 6092
+> 15 0 23 4094 topology 4212 6093
+> 16 0 23 4094 topology 4214 6093
+> 15 0 24 4094 topology 4157 6094
+> 16 0 24 4094 topology 4246 6094
+> 15 0 23 4094 topology 4191 6095
+> 16 0 23 4094 topology 4193 6095
+> 15 0 24 4094 topology 4193 6096
+> 16 0 24 4094 topology 4246 6096
+> 15 0 23 4094 topology 4170 6097
+> 16 0 23 4094 topology 4172 6097
+> 15 0 24 4094 topology 4145 6098
+> 16 0 24 4094 topology 4246 6098
+> 15 0 23 4094 topology 4152 6099
+> 16 0 23 4094 topology 4153 6099
+> 15 0 25 4094 topology 4245 6100
+> 16 0 25 4094 topology 4246 6100
+> 15 0 24 4094 topology 4229 6101
+> 16 0 24 4094 topology 4246 6101
+> 15 0 23 4094 topology 4149 6102
+> 16 0 23 4094 topology 4151 6102
+> 15 0 24 4094 topology 4181 6103
+> 16 0 24 4094 topology 4246 6103
+> 15 0 23 4094 topology 4104 6104
+> 16 0 23 4094 topology 4105 6104
+> 15 0 23 4094 topology 4185 6105
+> 16 0 23 4094 topology 4186 6105
+> 15 0 23 4094 topology 4236 6106
+> 16 0 23 4094 topology 4238 6106
+> 15 0 23 4094 topology 4218 6107
+> 16 0 23 4094 topology 4219 6107
+> 15 0 24 4094 topology 4159 6108
+> 16 0 24 4094 topology 4246 6108
+> 15 0 24 4094 topology 4100 6109
+> 16 0 24 4094 topology 4246 6109
+> 15 0 24 4094 topology 4219 6110
+> 16 0 24 4094 topology 4246 6110
+> 15 0 23 4094 topology 4116 6111
+> 16 0 23 4094 topology 4117 6111
+> 15 0 24 4094 topology 4141 6112
+> 16 0 24 4094 topology 4246 6112
+> 15 0 23 4094 topology 4143 6113
+> 16 0 23 4094 topology 4144 6113
+> 15 0 24 4094 topology 4201 6114
+> 16 0 24 4094 topology 4246 6114
+> 15 0 23 4094 topology 4176 6115
+> 16 0 23 4094 topology 4177 6115
+> 15 0 23 4094 topology 4209 6116
+> 16 0 23 4094 topology 4210 6116
+> 15 0 23 4094 topology 4128 6117
+> 16 0 23 4094 topology 4130 6117
+> 15 0 23 4094 topology 4215 6118
+> 16 0 23 4094 topology 4217 6118
+> 15 0 24 4094 topology 4108 6119
+> 16 0 24 4094 topology 4246 6119
+> 15 0 24 4094 topology 4184 6120
+> 16 0 24 4094 topology 4246 6120
+> 15 0 24 4094 topology 4136 6121
+> 16 0 24 4094 topology 4246 6121
+> 15 0 23 4094 topology 4194 6122
+> 16 0 23 4094 topology 4196 6122
+> 15 0 24 4094 topology 4220 6123
+> 16 0 24 4094 topology 4246 6123
+> 15 0 24 4094 topology 4172 6124
+> 16 0 24 4094 topology 4246 6124
+> 15 0 23 4094 topology 4173 6125
+> 16 0 23 4094 topology 4175 6125
+> 15 0 23 4094 topology 4182 6126
+> 16 0 23 4094 topology 4183 6126
+> 15 0 24 4094 topology 4208 6127
+> 16 0 24 4094 topology 4246 6127
+> 15 0 23 4094 topology 4215 6128
+> 16 0 23 4094 topology 4216 6128
+> 15 0 24 4094 topology 4126 6129
+> 16 0 24 4094 topology 4246 6129
+> 15 0 24 4094 topology 4186 6130
+> 16 0 24 4094 topology 4246 6130
+> 15 0 23 4094 topology 4239 6131
+> 16 0 23 4094 topology 4241 6131
+> 15 0 23 4094 topology 4140 6132
+> 16 0 23 4094 topology 4141 6132
+> 15 0 24 4094 topology 4168 6133
+> 16 0 24 4094 topology 4246 6133
+> 15 0 23 4094 topology 4173 6134
+> 16 0 23 4094 topology 4174 6134
+> 15 0 24 4094 topology 4228 6135
+> 16 0 24 4094 topology 4246 6135
+> 15 0 24 4094 topology 4115 6136
+> 16 0 24 4094 topology 4246 6136
+> 15 0 24 4094 topology 4150 6137
+> 16 0 24 4094 topology 4246 6137
+> 15 0 24 4094 topology 4210 6138
+> 16 0 24 4094 topology 4246 6138
+> 15 0 23 4094 topology 4206 6139
+> 16 0 23 4094 topology 4207 6139
+> 15 0 23 4094 topology 4152 6140
+> 16 0 23 4094 topology 4154 6140
+> 15 0 23 4094 topology 4239 6141
+> 16 0 23 4094 topology 4240 6141
+> 15 0 23 4094 topology 4131 6142
+> 16 0 23 4094 topology 4133 6142
+> 15 0 24 4094 topology 4127 6143
+> 16 0 24 4094 topology 4246 6143
+> 15 0 23 4094 topology 4218 6144
+> 16 0 23 4094 topology 4220 6144
+> 15 0 24 4094 topology 4117 6145
+> 16 0 24 4094 topology 4246 6145
+> 15 0 24 4094 topology 4163 6146
+> 16 0 24 4094 topology 4246 6146
+> 15 0 23 4094 topology 4197 6147
+> 16 0 23 4094 topology 4199 6147
+> 15 0 24 4094 topology 4199 6148
+> 16 0 24 4094 topology 4246 6148
+> 15 0 23 4094 topology 4101 6149
+> 16 0 23 4094 topology 4102 6149
+> 15 0 24 4094 topology 4151 6150
+> 16 0 24 4094 topology 4246 6150
+> 15 0 23 4094 topology 4176 6151
+> 16 0 23 4094 topology 4178 6151
+> 15 0 24 4094 topology 4235 6152
+> 16 0 24 4094 topology 4246 6152
+> 15 0 23 4094 topology 4212 6153
+> 16 0 23 4094 topology 4213 6153
+> 15 0 24 4094 topology 4153 6154
+> 16 0 24 4094 topology 4246 6154
+> 15 0 23 4094 topology 4137 6155
+> 16 0 23 4094 topology 4138 6155
+> 15 0 24 4094 topology 4213 6156
+> 16 0 24 4094 topology 4246 6156
+> 15 0 23 4094 topology 4113 6157
+> 16 0 23 4094 topology 4114 6157
+> 15 0 24 4094 topology 4135 6158
+> 16 0 24 4094 topology 4246 6158
+> 15 0 24 4094 topology 4106 6159
+> 16 0 24 4094 topology 4246 6159
+> 15 0 23 4094 topology 4170 6160
+> 16 0 23 4094 topology 4171 6160
+> 15 0 24 4094 topology 4195 6161
+> 16 0 24 4094 topology 4246 6161
+> 15 0 24 4094 topology 4177 6162
+> 16 0 24 4094 topology 4246 6162
+> 15 0 23 4094 topology 4203 6163
+> 16 0 23 4094 topology 4204 6163
+> 15 0 23 4094 topology 4095 6164
+> 16 0 23 4094 topology 4097 6164
+> 15 0 24 4094 topology 4237 6165
+> 16 0 24 4094 topology 4246 6165
+> 15 0 23 4094 topology 4098 6166
+> 16 0 23 4094 topology 4100 6166
+> 15 0 23 4094 topology 4236 6167
+> 16 0 23 4094 topology 4237 6167
+> 15 0 23 4094 topology 4101 6168
+> 16 0 23 4094 topology 4103 6168
+> 15 0 23 4094 topology 4155 6169
+> 16 0 23 4094 topology 4157 6169
+> 15 0 23 4094 topology 4104 6170
+> 16 0 23 4094 topology 4106 6170
+> 15 0 24 4094 topology 4102 6171
+> 16 0 24 4094 topology 4246 6171
 > 15 0 23 4094 topology 4107 6172
-> 16 0 23 4094 topology 4108 6172
-> 15 0 24 4094 topology 4108 6173
-> 16 0 24 4094 topology 4246 6173
-> 15 0 24 4094 topology 4246 6174
-> 16 0 24 4094 topology 4097 6174
-> 15 0 25 4094 topology 4097 6175
-> 16 0 25 4094 topology 4095 6175
-> 15 0 23 4094 topology 4119 6176
-> 16 0 23 4094 topology 4120 6176
-> 15 0 24 4094 topology 4120 6177
-> 16 0 24 4094 topology 4246 6177
-> 15 0 23 4094 topology 4128 6178
-> 16 0 23 4094 topology 4129 6178
-> 15 0 24 4094 topology 4129 6179
-> 16 0 24 4094 topology 4246 6179
-> 15 0 23 4094 topology 4158 6180
-> 16 0 23 4094 topology 4159 6180
-> 15 0 24 4094 topology 4159 6181
-> 16 0 24 4094 topology 4246 6181
-> 15 0 23 4094 topology 4188 6182
-> 16 0 23 4094 topology 4189 6182
-> 15 0 24 4094 topology 4189 6183
-> 16 0 24 4094 topology 4246 6183
-> 15 0 23 4094 topology 4218 6184
-> 16 0 23 4094 topology 4219 6184
-> 15 0 24 4094 topology 4219 6185
+> 16 0 23 4094 topology 4109 6172
+> 15 0 23 4094 topology 4134 6173
+> 16 0 23 4094 topology 4136 6173
+> 15 0 23 4094 topology 4242 6174
+> 16 0 23 4094 topology 4244 6174
+> 15 0 24 4094 topology 4154 6175
+> 16 0 24 4094 topology 4246 6175
+> 15 0 23 4094 topology 4110 6176
+> 16 0 23 4094 topology 4112 6176
+> 15 0 23 4094 topology 4221 6177
+> 16 0 23 4094 topology 4223 6177
+> 15 0 24 4094 topology 4190 6178
+> 16 0 24 4094 topology 4246 6178
+> 15 0 23 4094 topology 4113 6179
+> 16 0 23 4094 topology 4115 6179
+> 15 0 24 4094 topology 4142 6180
+> 16 0 24 4094 topology 4246 6180
+> 15 0 23 4094 topology 4116 6181
+> 16 0 23 4094 topology 4118 6181
+> 15 0 24 4094 topology 4226 6182
+> 16 0 24 4094 topology 4246 6182
+> 15 0 23 4094 topology 4200 6183
+> 16 0 23 4094 topology 4202 6183
+> 15 0 23 4094 topology 4119 6184
+> 16 0 23 4094 topology 4121 6184
+> 15 0 24 4094 topology 4178 6185
 > 16 0 24 4094 topology 4246 6185
-> 15 0 23 4094 topology 4140 6186
-> 16 0 23 4094 topology 4141 6186
-> 15 0 24 4094 topology 4141 6187
-> 16 0 24 4094 topology 4246 6187
-> 15 0 23 4094 topology 4170 6188
-> 16 0 23 4094 topology 4171 6188
-> 15 0 24 4094 topology 4171 6189
+> 15 0 23 4094 topology 4179 6186
+> 16 0 23 4094 topology 4181 6186
+> 15 0 23 4094 topology 4134 6187
+> 16 0 23 4094 topology 4135 6187
+> 15 0 23 4094 topology 4242 6188
+> 16 0 23 4094 topology 4243 6188
+> 15 0 24 4094 topology 4097 6189
 > 16 0 24 4094 topology 4246 6189
-> 15 0 23 4094 topology 4200 6190
-> 16 0 23 4094 topology 4201 6190
-> 15 0 24 4094 topology 4201 6191
+> 15 0 23 4094 topology 4167 6190
+> 16 0 23 4094 topology 4168 6190
+> 15 0 24 4094 topology 4162 6191
 > 16 0 24 4094 topology 4246 6191
-> 15 0 23 4094 topology 4230 6192
-> 16 0 23 4094 topology 4231 6192
-> 15 0 24 4094 topology 4231 6193
+> 15 0 24 4094 topology 4222 6192
+> 16 0 24 4094 topology 4246 6192
+> 15 0 24 4094 topology 4144 6193
 > 16 0 24 4094 topology 4246 6193
-> 15 0 23 4094 topology 4104 6194
-> 16 0 23 4094 topology 4105 6194
-> 15 0 24 4094 topology 4105 6195
+> 15 0 23 4094 topology 4200 6194
+> 16 0 23 4094 topology 4201 6194
+> 15 0 24 4094 topology 4204 6195
 > 16 0 24 4094 topology 4246 6195
-> 15 0 23 4094 topology 4116 6196
-> 16 0 23 4094 topology 4117 6196
-> 15 0 24 4094 topology 4117 6197
-> 16 0 24 4094 topology 4246 6197
-> 15 0 23 4094 topology 4125 6198
-> 16 0 23 4094 topology 4126 6198
-> 15 0 24 4094 topology 4126 6199
-> 16 0 24 4094 topology 4246 6199
-> 15 0 23 4094 topology 4155 6200
-> 16 0 23 4094 topology 4156 6200
-> 15 0 24 4094 topology 4156 6201
+> 15 0 24 4094 topology 4121 6196
+> 16 0 24 4094 topology 4246 6196
+> 15 0 23 4094 topology 4233 6197
+> 16 0 23 4094 topology 4234 6197
+> 15 0 23 4094 topology 4158 6198
+> 16 0 23 4094 topology 4160 6198
+> 15 0 23 4094 topology 4137 6199
+> 16 0 23 4094 topology 4139 6199
+> 15 0 24 4094 topology 4111 6200
+> 16 0 24 4094 topology 4246 6200
+> 15 0 24 4094 topology 4133 6201
 > 16 0 24 4094 topology 4246 6201
-> 15 0 23 4094 topology 4185 6202
-> 16 0 23 4094 topology 4186 6202
-> 15 0 24 4094 topology 4186 6203
-> 16 0 24 4094 topology 4246 6203
-> 15 0 23 4094 topology 4215 6204
-> 16 0 23 4094 topology 4216 6204
-> 15 0 24 4094 topology 4216 6205
-> 16 0 24 4094 topology 4246 6205
-> 15 0 23 4094 topology 4137 6206
-> 16 0 23 4094 topology 4138 6206
-> 15 0 24 4094 topology 4138 6207
-> 16 0 24 4094 topology 4246 6207
-> 15 0 23 4094 topology 4167 6208
-> 16 0 23 4094 topology 4168 6208
-> 15 0 24 4094 topology 4168 6209
+> 15 0 24 4094 topology 4217 6202
+> 16 0 24 4094 topology 4246 6202
+> 15 0 23 4094 topology 4224 6203
+> 16 0 23 4094 topology 4226 6203
+> 15 0 24 4094 topology 4169 6204
+> 16 0 24 4094 topology 4246 6204
+> 15 0 23 4094 topology 4098 6205
+> 16 0 23 4094 topology 4099 6205
+> 15 0 24 4094 topology 4205 6206
+> 16 0 24 4094 topology 4246 6206
+> 15 0 23 4094 topology 4203 6207
+> 16 0 23 4094 topology 4205 6207
+> 15 0 23 4094 topology 4131 6208
+> 16 0 23 4094 topology 4132 6208
+> 15 0 24 4094 topology 4241 6209
 > 16 0 24 4094 topology 4246 6209
-> 15 0 23 4094 topology 4197 6210
-> 16 0 23 4094 topology 4198 6210
-> 15 0 24 4094 topology 4198 6211
+> 15 0 23 4094 topology 4164 6210
+> 16 0 23 4094 topology 4165 6210
+> 15 0 24 4094 topology 4129 6211
 > 16 0 24 4094 topology 4246 6211
-> 15 0 23 4094 topology 4227 6212
-> 16 0 23 4094 topology 4228 6212
-> 15 0 24 4094 topology 4228 6213
+> 15 0 23 4094 topology 4110 6212
+> 16 0 23 4094 topology 4111 6212
+> 15 0 24 4094 topology 4189 6213
 > 16 0 24 4094 topology 4246 6213
-> 15 0 23 4094 topology 4149 6214
-> 16 0 23 4094 topology 4150 6214
-> 15 0 24 4094 topology 4150 6215
+> 15 0 23 4094 topology 4197 6214
+> 16 0 23 4094 topology 4198 6214
+> 15 0 24 4094 topology 4171 6215
 > 16 0 24 4094 topology 4246 6215
-> 15 0 23 4094 topology 4179 6216
-> 16 0 23 4094 topology 4180 6216
-> 15 0 24 4094 topology 4180 6217
+> 15 0 24 4094 topology 4112 6216
+> 16 0 24 4094 topology 4246 6216
+> 15 0 24 4094 topology 4231 6217
 > 16 0 24 4094 topology 4246 6217
-> 15 0 23 4094 topology 4209 6218
-> 16 0 23 4094 topology 4210 6218
-> 15 0 24 4094 topology 4210 6219
-> 16 0 24 4094 topology 4246 6219
-> 15 0 23 4094 topology 4239 6220
-> 16 0 23 4094 topology 4240 6220
-> 15 0 24 4094 topology 4240 6221
-> 16 0 24 4094 topology 4246 6221
-> 15 0 23 4094 topology 4101 6222
-> 16 0 23 4094 topology 4102 6222
-> 15 0 24 4094 topology 4102 6223
+> 15 0 23 4094 topology 4230 6218
+> 16 0 23 4094 topology 4231 6218
+> 15 0 23 4094 topology 4182 6219
+> 16 0 23 4094 topology 4184 6219
+> 15 0 24 4094 topology 4096 6220
+> 16 0 24 4094 topology 4246 6220
+> 15 0 23 4094 topology 4161 6221
+> 16 0 23 4094 topology 4163 6221
+> 15 0 24 4094 topology 4124 6222
+> 16 0 24 4094 topology 4246 6222
+> 15 0 24 4094 topology 4160 6223
 > 16 0 24 4094 topology 4246 6223
-> 15 0 23 4094 topology 4113 6224
-> 16 0 23 4094 topology 4114 6224
-> 15 0 24 4094 topology 4114 6225
+> 15 0 23 4094 topology 4140 6224
+> 16 0 23 4094 topology 4142 6224
+> 15 0 24 4094 topology 4244 6225
 > 16 0 24 4094 topology 4246 6225
-> 15 0 23 4094 topology 4122 6226
-> 16 0 23 4094 topology 4123 6226
-> 15 0 24 4094 topology 4123 6227
+> 15 0 24 4094 topology 4120 6226
+> 16 0 24 4094 topology 4246 6226
+> 15 0 24 4094 topology 4196 6227
 > 16 0 24 4094 topology 4246 6227
-> 15 0 23 4094 topology 4152 6228
-> 16 0 23 4094 topology 4153 6228
-> 15 0 24 4094 topology 4153 6229
+> 15 0 23 4094 topology 4227 6228
+> 16 0 23 4094 topology 4229 6228
+> 15 0 24 4094 topology 4148 6229
 > 16 0 24 4094 topology 4246 6229
-> 15 0 23 4094 topology 4182 6230
-> 16 0 23 4094 topology 4183 6230
-> 15 0 24 4094 topology 4183 6231
-> 16 0 24 4094 topology 4246 6231
-> 15 0 23 4094 topology 4212 6232
-> 16 0 23 4094 topology 4213 6232
-> 15 0 24 4094 topology 4213 6233
-> 16 0 24 4094 topology 4246 6233
-> 15 0 23 4094 topology 4134 6234
-> 16 0 23 4094 topology 4135 6234
-> 15 0 24 4094 topology 4135 6235
+> 15 0 24 4094 topology 4232 6230
+> 16 0 24 4094 topology 4246 6230
+> 15 0 23 4094 topology 4128 6231
+> 16 0 23 4094 topology 4129 6231
+> 15 0 23 4094 topology 4206 6232
+> 16 0 23 4094 topology 4208 6232
+> 15 0 23 4094 topology 4161 6233
+> 16 0 23 4094 topology 4162 6233
+> 15 0 24 4094 topology 4156 6234
+> 16 0 24 4094 topology 4246 6234
+> 15 0 24 4094 topology 4216 6235
 > 16 0 24 4094 topology 4246 6235
-> 15 0 23 4094 topology 4242 6236
-> 16 0 23 4094 topology 4243 6236
-> 15 0 24 4094 topology 4243 6237
+> 15 0 23 4094 topology 4194 6236
+> 16 0 23 4094 topology 4195 6236
+> 15 0 24 4094 topology 4138 6237
 > 16 0 24 4094 topology 4246 6237
-> 15 0 23 4094 topology 4164 6238
-> 16 0 23 4094 topology 4165 6238
-> 15 0 24 4094 topology 4165 6239
+> 15 0 24 4094 topology 4103 6238
+> 16 0 24 4094 topology 4246 6238
+> 15 0 24 4094 topology 4198 6239
 > 16 0 24 4094 topology 4246 6239
-> 15 0 23 4094 topology 4194 6240
-> 16 0 23 4094 topology 4195 6240
-> 15 0 24 4094 topology 4195 6241
+> 15 0 23 4094 topology 4227 6240
+> 16 0 23 4094 topology 4228 6240
+> 15 0 24 4094 topology 4180 6241
 > 16 0 24 4094 topology 4246 6241
-> 15 0 23 4094 topology 4224 6242
-> 16 0 23 4094 topology 4225 6242
-> 15 0 24 4094 topology 4225 6243
-> 16 0 24 4094 topology 4246 6243
-> 15 0 23 4094 topology 4146 6244
-> 16 0 23 4094 topology 4147 6244
-> 15 0 24 4094 topology 4147 6245
-> 16 0 24 4094 topology 4246 6245
-> 15 0 23 4094 topology 4176 6246
-> 16 0 23 4094 topology 4177 6246
-> 15 0 24 4094 topology 4177 6247
+> 15 0 24 4094 topology 4240 6242
+> 16 0 24 4094 topology 4246 6242
+> 15 0 23 4094 topology 4185 6243
+> 16 0 23 4094 topology 4187 6243
+> 15 0 24 4094 topology 4105 6244
+> 16 0 24 4094 topology 4246 6244
+> 15 0 23 4094 topology 4164 6245
+> 16 0 23 4094 topology 4166 6245
+> 15 0 24 4094 topology 4187 6246
+> 16 0 24 4094 topology 4246 6246
+> 15 0 24 4094 topology 4139 6247
 > 16 0 24 4094 topology 4246 6247
-> 15 0 23 4094 topology 4206 6248
-> 16 0 23 4094 topology 4207 6248
-> 15 0 24 4094 topology 4207 6249
+> 15 0 23 4094 topology 4095 6248
+> 16 0 23 4094 topology 4096 6248
+> 15 0 24 4094 topology 4223 6249
 > 16 0 24 4094 topology 4246 6249
-> 15 0 23 4094 topology 4236 6250
-> 16 0 23 4094 topology 4237 6250
-> 15 0 24 4094 topology 4237 6251
-> 16 0 24 4094 topology 4246 6251
-> 15 0 23 4094 topology 4098 6252
-> 16 0 23 4094 topology 4099 6252
-> 15 0 24 4094 topology 4099 6253
-> 16 0 24 4094 topology 4246 6253
-> 15 0 23 4094 topology 4110 6254
-> 16 0 23 4094 topology 4111 6254
-> 15 0 24 4094 topology 4111 6255
-> 16 0 24 4094 topology 4246 6255
-> 15 0 23 4094 topology 4131 6256
-> 16 0 23 4094 topology 4132 6256
-> 15 0 24 4094 topology 4132 6257
-> 16 0 24 4094 topology 4246 6257
-> 15 0 23 4094 topology 4161 6258
-> 16 0 23 4094 topology 4162 6258
-> 15 0 24 4094 topology 4162 6259
-> 16 0 24 4094 topology 4246 6259
-> 15 0 23 4094 topology 4191 6260
-> 16 0 23 4094 topology 4192 6260
-> 15 0 24 4094 topology 4192 6261
+> 15 0 23 4094 topology 4143 6250
+> 16 0 23 4094 topology 4145 6250
+> 15 0 23 4094 topology 4125 6251
+> 16 0 23 4094 topology 4126 6251
+> 15 0 24 4094 topology 4175 6252
+> 16 0 24 4094 topology 4246 6252
+> 15 0 23 4094 topology 4230 6253
+> 16 0 23 4094 topology 4232 6253
+> 15 0 24 4094 topology 4211 6254
+> 16 0 24 4094 topology 4246 6254
+> 15 0 23 4094 topology 4158 6255
+> 16 0 23 4094 topology 4159 6255
+> 15 0 24 4094 topology 4123 6256
+> 16 0 24 4094 topology 4246 6256
+> 15 0 23 4094 topology 4107 6257
+> 16 0 23 4094 topology 4108 6257
+> 15 0 23 4094 topology 4209 6258
+> 16 0 23 4094 topology 4211 6258
+> 15 0 23 4094 topology 4191 6259
+> 16 0 23 4094 topology 4192 6259
+> 15 0 24 4094 topology 4183 6260
+> 16 0 24 4094 topology 4246 6260
+> 15 0 24 4094 topology 4243 6261
 > 16 0 24 4094 topology 4246 6261
-> 15 0 23 4094 topology 4221 6262
-> 16 0 23 4094 topology 4222 6262
-> 15 0 24 4094 topology 4222 6263
-> 16 0 24 4094 topology 4246 6263
-> 15 0 23 4094 topology 4143 6264
-> 16 0 23 4094 topology 4144 6264
-> 15 0 24 4094 topology 4144 6265
+> 15 0 24 4094 topology 4165 6262
+> 16 0 24 4094 topology 4246 6262
+> 15 0 23 4094 topology 4224 6263
+> 16 0 23 4094 topology 4225 6263
+> 15 0 24 4094 topology 4225 6264
+> 16 0 24 4094 topology 4246 6264
+> 15 0 24 4094 topology 4147 6265
 > 16 0 24 4094 topology 4246 6265
-> 15 0 23 4094 topology 4173 6266
-> 16 0 23 4094 topology 4174 6266
-> 15 0 24 4094 topology 4174 6267
+> 15 0 23 4094 topology 4119 6266
+> 16 0 23 4094 topology 4120 6266
+> 15 0 24 4094 topology 4207 6267
 > 16 0 24 4094 topology 4246 6267
-> 15 0 23 4094 topology 4203 6268
-> 16 0 23 4094 topology 4204 6268
-> 15 0 24 4094 topology 4204 6269
+> 15 0 23 4094 topology 4149 6268
+> 16 0 23 4094 topology 4150 6268
+> 15 0 24 4094 topology 4118 6269
 > 16 0 24 4094 topology 4246 6269
-> 15 0 23 4094 topology 4233 6270
-> 16 0 23 4094 topology 4234 6270
-> 15 0 24 4094 topology 4234 6271
-> 16 0 24 4094 topology 4246 6271
+> 15 0 23 4094 topology 4122 6270
+> 16 0 23 4094 topology 4124 6270
+> 15 0 23 4094 topology 4188 6271
+> 16 0 23 4094 topology 4190 6271
 > 15 0 27 3921 topology 4091 6272
 > 16 0 27 3921 topology 4093 6272
-> 15 0 28 3921 topology 4093 6273
-> 16 0 28 3921 topology 4388 6273
-> 15 0 21 3921 topology 4093 6274
-> 16 0 21 3921 topology 4386 6274
-> 15 0 28 3921 topology 4386 6275
-> 16 0 28 3921 topology 4384 6275
+> 15 0 21 3921 topology 4093 6273
+> 16 0 21 3921 topology 4386 6273
+> 15 0 26 3921 topology 4093 6274
+> 16 0 26 3921 topology 4388 6274
+> 15 0 26 3921 topology 4386 6275
+> 16 0 26 3921 topology 4388 6275
 > 15 0 21 3921 topology 4093 6276
 > 16 0 21 3921 topology 4247 6276
-> 15 0 28 3921 topology 4247 6277
-> 16 0 28 3921 topology 4245 6277
-> 15 0 27 3921 topology 4388 6278
-> 16 0 27 3921 topology 4386 6278
-> 15 0 27 3921 topology 4388 6279
-> 16 0 27 3921 topology 4247 6279
-> 15 0 21 3921 topology 4386 6280
-> 16 0 21 3921 topology 4247 6280
-> 15 0 38 0 topology 10 6281
-> 16 0 38 0 topology 4797 6281
-> 15 0 28 4390 topology 4797 6282
-> 16 0 28 4390 topology 4796 6282
-> 15 0 38 0 topology 5 6283
-> 16 0 38 0 topology 3920 6283
-> 15 0 28 3415 topology 3920 6284
-> 16 0 28 3415 topology 3919 6284
-> 15 0 38 0 topology 8 6285
-> 16 0 38 0 topology 868 6285
-> 15 0 28 499 topology 868 6286
-> 16 0 28 499 topology 867 6286
-> 15 0 38 0 topology 3 6287
-> 16 0 38 0 topology 3414 6287
-> 15 0 28 2349 topology 3414 6288
-> 16 0 28 2349 topology 3413 6288
-> 15 0 38 0 topology 4 6289
-> 16 0 38 0 topology 2348 6289
-> 15 0 28 1606 topology 2348 6290
-> 16 0 28 1606 topology 2347 6290
-> 15 0 38 0 topology 7 6291
-> 16 0 38 0 topology 498 6291
-> 15 0 28 21 topology 498 6292
-> 16 0 28 21 topology 497 6292
-> 15 0 38 0 topology 6 6293
-> 16 0 38 0 topology 1605 6293
-> 15 0 28 1189 topology 1605 6294
-> 16 0 28 1189 topology 1604 6294
-> 15 0 38 0 topology 2 6295
-> 16 0 38 0 topology 1188 6295
-> 15 0 28 869 topology 1188 6296
-> 16 0 28 869 topology 1187 6296
-> 15 0 38 0 topology 11 6297
-> 16 0 38 0 topology 4389 6297
-> 15 0 28 3921 topology 4389 6298
-> 16 0 28 3921 topology 4388 6298
-> 15 0 39 0 topology 4797 6299
-> 16 0 39 0 topology 20 6299
-> 15 0 39 0 topology 14 6300
-> 16 0 39 0 topology 3920 6300
-> 15 0 39 0 topology 17 6301
-> 16 0 39 0 topology 868 6301
-> 15 0 39 0 topology 15 6302
-> 16 0 39 0 topology 3414 6302
-> 15 0 39 0 topology 13 6303
-> 16 0 39 0 topology 2348 6303
-> 15 0 39 0 topology 16 6304
-> 16 0 39 0 topology 498 6304
-> 15 0 39 0 topology 18 6305
-> 16 0 39 0 topology 1605 6305
-> 15 0 39 0 topology 12 6306
-> 16 0 39 0 topology 1188 6306
-> 15 0 39 0 topology 19 6307
-> 16 0 39 0 topology 4389 6307
-> 15 0 39 0 topology 14 6308
-> 16 0 39 0 topology 3414 6308
-> 15 0 39 0 topology 15 6309
-> 16 0 39 0 topology 1605 6309
-> 15 0 39 0 topology 17 6310
-> 16 0 39 0 topology 1605 6310
-> 15 0 39 0 topology 3414 6311
-> 16 0 39 0 topology 13 6311
-> 15 0 39 0 topology 3414 6312
-> 16 0 39 0 topology 12 6312
-> 15 0 39 0 topology 16 6313
-> 16 0 39 0 topology 1605 6313
+> 15 0 26 3921 topology 4247 6277
+> 16 0 26 3921 topology 4388 6277
+> 15 0 26 3921 topology 4247 6278
+> 16 0 26 3921 topology 4245 6278
+> 15 0 26 3921 topology 4386 6279
+> 16 0 26 3921 topology 4384 6279
+> 15 0 21 3921 topology 4247 6280
+> 16 0 21 3921 topology 4386 6280
+> 15 0 26 21 topology 498 6281
+> 16 0 26 21 topology 497 6281
+> 15 0 35 0 topology 17 6282
+> 16 0 35 0 topology 1605 6282
+> 15 0 26 4390 topology 4797 6283
+> 16 0 26 4390 topology 4796 6283
+> 15 0 26 1189 topology 1605 6284
+> 16 0 26 1189 topology 1604 6284
+> 15 0 36 0 topology 11 6285
+> 16 0 36 0 topology 4389 6285
+> 15 0 36 0 topology 4 6286
+> 16 0 36 0 topology 2348 6286
+> 15 0 35 0 topology 498 6287
+> 16 0 35 0 topology 16 6287
+> 15 0 36 0 topology 5 6288
+> 16 0 36 0 topology 3920 6288
+> 15 0 35 0 topology 3414 6289
+> 16 0 35 0 topology 14 6289
+> 15 0 26 499 topology 868 6290
+> 16 0 26 499 topology 867 6290
+> 15 0 35 0 topology 16 6291
+> 16 0 35 0 topology 1605 6291
+> 15 0 35 0 topology 12 6292
+> 16 0 35 0 topology 3414 6292
+> 15 0 26 869 topology 1188 6293
+> 16 0 26 869 topology 1187 6293
+> 15 0 35 0 topology 15 6294
+> 16 0 35 0 topology 1605 6294
+> 15 0 36 0 topology 7 6295
+> 16 0 36 0 topology 498 6295
+> 15 0 35 0 topology 14 6296
+> 16 0 35 0 topology 3920 6296
+> 15 0 35 0 topology 17 6297
+> 16 0 35 0 topology 868 6297
+> 15 0 35 0 topology 20 6298
+> 16 0 35 0 topology 4797 6298
+> 15 0 36 0 topology 10 6299
+> 16 0 36 0 topology 4797 6299
+> 15 0 35 0 topology 12 6300
+> 16 0 35 0 topology 1188 6300
+> 15 0 36 0 topology 6 6301
+> 16 0 36 0 topology 1605 6301
+> 15 0 26 3921 topology 4389 6302
+> 16 0 26 3921 topology 4388 6302
+> 15 0 35 0 topology 19 6303
+> 16 0 35 0 topology 4389 6303
+> 15 0 35 0 topology 13 6304
+> 16 0 35 0 topology 3414 6304
+> 15 0 26 1606 topology 2348 6305
+> 16 0 26 1606 topology 2347 6305
+> 15 0 26 3415 topology 3920 6306
+> 16 0 26 3415 topology 3919 6306
+> 15 0 26 2349 topology 3414 6307
+> 16 0 26 2349 topology 3413 6307
+> 15 0 36 0 topology 8 6308
+> 16 0 36 0 topology 868 6308
+> 15 0 35 0 topology 1605 6309
+> 16 0 35 0 topology 18 6309
+> 15 0 36 0 topology 2 6310
+> 16 0 36 0 topology 1188 6310
+> 15 0 36 0 topology 3 6311
+> 16 0 36 0 topology 3414 6311
+> 15 0 35 0 topology 15 6312
+> 16 0 35 0 topology 3414 6312
+> 15 0 35 0 topology 13 6313
+> 16 0 35 0 topology 2348 6313
 > 7 0 2 9
 > 7 0 3 18
 > 7 0 3 19
index 91c8327..6c679ab 100644 (file)
@@ -16,16 +16,15 @@ endif()
 
 ### Add definitions for compile
 if(NOT WIN32)
-  target_link_libraries(ex_sd_test simgrid pthread m )
-  target_link_libraries(sd_test2 simgrid pthread m )
-  target_link_libraries(sd_fail simgrid pthread m )
-  target_link_libraries(sd_avail simgrid pthread m )
-  target_link_libraries(sd_typed_tasks_test simgrid pthread m )
-  target_link_libraries(sd_comm_throttling simgrid pthread m )
-  target_link_libraries(sd_seq_access simgrid pthread m )
-  
+  target_link_libraries(ex_sd_test simgrid pthread )
+  target_link_libraries(sd_test2 simgrid pthread )
+  target_link_libraries(sd_fail simgrid pthread )
+  target_link_libraries(sd_avail simgrid pthread )
+  target_link_libraries(sd_typed_tasks_test simgrid pthread )
+  target_link_libraries(sd_comm_throttling simgrid pthread )
+  target_link_libraries(sd_seq_access simgrid pthread )
   if (HAVE_TRACING)
-    target_link_libraries(simdag_tracing simgrid pthread m )
+  target_link_libraries(simdag_tracing simgrid pthread )
   endif()
 
   add_custom_command(TARGET ex_sd_test
index 585e989..669dd41 100644 (file)
@@ -6,7 +6,7 @@ add_executable(dax_test dax_test.c)
 
 ### Add definitions for compile
 if(NOT WIN32)
-  target_link_libraries(dax_test simgrid pthread )
+  target_link_libraries(dax_test simgrid pthread )
 else()
   target_link_libraries(dax_test simgrid)
 endif()
index 2182a0e..2f5c323 100644 (file)
@@ -1,5 +1,5 @@
 digraph G {
-end [size="10000000129.452715" performer="100" order="1"];
+end [size="10000000129.452715"];
 0 [size="10000000129.452715" category="taskA" performer="1" order="1"];
 1 [size="10000000131.133657" category="taskA" performer="0"];
 2 [size="10000000121.12487" category="taskA"  performer="1" order="1"];
index 58addb1..05eb34f 100644 (file)
@@ -99,22 +99,19 @@ int main(int argc, char **argv)
     SD_workstation_t *wsl = SD_task_get_workstation_list(task);
     switch (kind) {
     case SD_TASK_COMP_SEQ:
-      fprintf(out, "[%f] %s compute %f # %s\n",
-              SD_task_get_start_time(task),
-              SD_workstation_get_name(wsl[0]), SD_task_get_amount(task),
-              SD_task_get_name(task));
+      fprintf(out, "[%f->%f] %s compute %f flops # %s\n",
+          SD_task_get_start_time(task),
+          SD_task_get_finish_time(task),
+          SD_workstation_get_name(wsl[0]), SD_task_get_amount(task),
+          SD_task_get_name(task));
       break;
     case SD_TASK_COMM_E2E:
-      fprintf(out, "[%f] %s send %s %f # %s\n",
-              SD_task_get_start_time(task),
-              SD_workstation_get_name(wsl[0]),
-              SD_workstation_get_name(wsl[1]), SD_task_get_amount(task),
-              SD_task_get_name(task));
-      fprintf(out, "[%f] %s recv %s %f # %s\n",
-              SD_task_get_finish_time(task),
-              SD_workstation_get_name(wsl[1]),
-              SD_workstation_get_name(wsl[0]), SD_task_get_amount(task),
-              SD_task_get_name(task));
+      fprintf(out, "[%f -> %f] %s -> %s transfer of %.0f bytes # %s\n",
+          SD_task_get_start_time(task),
+          SD_task_get_finish_time(task),
+          SD_workstation_get_name(wsl[0]),
+          SD_workstation_get_name(wsl[1]), SD_task_get_amount(task),
+          SD_task_get_name(task));
       break;
     default:
       xbt_die("Task %s is of unknown kind %d", SD_task_get_name(task),
index ff0dd78..3643f2b 100644 (file)
@@ -15,7 +15,7 @@
 #include <libgen.h>
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(test,
-                             "Logging specific to this SimDag example");
+    "Logging specific to this SimDag example");
 
 int main(int argc, char **argv)
 {
@@ -23,7 +23,7 @@ int main(int argc, char **argv)
   unsigned int cursor;
   SD_task_t task;
 
-  /* initialisation of SD */
+  /* initialization of SD */
   SD_init(&argc, argv);
 
   /* Check our arguments */
@@ -38,8 +38,8 @@ int main(int argc, char **argv)
 
     tracefilename =
         bprintf("%.*s.trace",
-                (int) (last == NULL ? strlen(argv[2]) : last - argv[2]),
-                argv[2]);
+            (int) (last == NULL ? strlen(argv[2]) : last - argv[2]),
+            argv[2]);
   } else {
     tracefilename = xbt_strdup(argv[3]);
   }
@@ -56,7 +56,7 @@ int main(int argc, char **argv)
 
   /* Display all the tasks */
   XBT_INFO
-      ("------------------- Display all tasks of the loaded DAG ---------------------------");
+  ("------------------- Display all tasks of the loaded DAG ---------------------------");
   xbt_dynar_foreach(dot, cursor, task) {
     SD_task_dump(task);
   }
@@ -70,11 +70,11 @@ int main(int argc, char **argv)
   fclose(dotout);
 
   XBT_INFO
-      ("------------------- Run the schedule ---------------------------");
+  ("------------------- Run the schedule ---------------------------");
   changed = SD_simulate(-1);
   xbt_dynar_free_container(&changed);
   XBT_INFO
-      ("------------------- Produce the trace file---------------------------");
+  ("------------------- Produce the trace file---------------------------");
   XBT_INFO("Producing the trace of the run into %s", basename(tracefilename));
   FILE *out = fopen(tracefilename, "w");
   xbt_assert(out, "Cannot write to %s", tracefilename);
@@ -85,26 +85,23 @@ int main(int argc, char **argv)
     SD_workstation_t *wsl = SD_task_get_workstation_list(task);
     switch (kind) {
     case SD_TASK_COMP_SEQ:
-      fprintf(out, "[%f] %s compute %f # %s\n",
-              SD_task_get_start_time(task),
-              SD_workstation_get_name(wsl[0]), SD_task_get_amount(task),
-              SD_task_get_name(task));
+      fprintf(out, "[%f->%f] %s compute %f flops # %s\n",
+          SD_task_get_start_time(task),
+          SD_task_get_finish_time(task),
+          SD_workstation_get_name(wsl[0]), SD_task_get_amount(task),
+          SD_task_get_name(task));
       break;
     case SD_TASK_COMM_E2E:
-      fprintf(out, "[%f] %s send %s %f # %s\n",
-              SD_task_get_start_time(task),
-              SD_workstation_get_name(wsl[0]),
-              SD_workstation_get_name(wsl[1]), SD_task_get_amount(task),
-              SD_task_get_name(task));
-      fprintf(out, "[%f] %s recv %s %f # %s\n",
-              SD_task_get_finish_time(task),
-              SD_workstation_get_name(wsl[1]),
-              SD_workstation_get_name(wsl[0]), SD_task_get_amount(task),
-              SD_task_get_name(task));
+      fprintf(out, "[%f -> %f] %s -> %s transfer of %.0f bytes # %s\n",
+          SD_task_get_start_time(task),
+          SD_task_get_finish_time(task),
+          SD_workstation_get_name(wsl[0]),
+          SD_workstation_get_name(wsl[1]), SD_task_get_amount(task),
+          SD_task_get_name(task));
       break;
     default:
       xbt_die("Task %s is of unknown kind %d", SD_task_get_name(task),
-              SD_task_get_kind(task));
+          SD_task_get_kind(task));
     }
     SD_task_destroy(task);
   }
index 36f69d9..7bbed3d 100644 (file)
@@ -3,16 +3,6 @@ p Test the loader of DAG written in the DOT format
 
 $ $SG_TEST_EXENV ./dot_test --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:=.}/dag.dot
 > [0.000000] [surf_workstation/INFO] surf_workstation_model_init_ptask_L07
-> [0.000000] [sd_dotparse/WARNING] 'end' node is explicitly declared in the DOT file. Update it
-> [0.000000] [sd_dotparse/WARNING] 0->1 already exists
-> [0.000000] [sd_dotparse/WARNING] 1->2 already exists
-> [0.000000] [sd_dotparse/WARNING] 2->3 already exists
-> [0.000000] [sd_dotparse/WARNING] 4->5 already exists
-> [0.000000] [sd_dotparse/WARNING] 6->7 already exists
-> [0.000000] [sd_dotparse/WARNING] 7->end already exists
-> [0.000000] [sd_dotparse/WARNING] 7->8 already exists
-> [0.000000] [sd_dotparse/WARNING] 'root' node is explicitly declared in the DOT file. Update it
-> [0.000000] [sd_dotparse/WARNING] root->5 already exists
 > [0.000000] [test/INFO] ------------------- Display all tasks of the loaded DAG ---------------------------
 > [0.000000] [sd_task/INFO] Displaying task root
 > [0.000000] [sd_task/INFO]   - state:  schedulable  not runnable    
@@ -21,8 +11,8 @@ $ $SG_TEST_EXENV ./dot_test --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:
 > [0.000000] [sd_task/INFO]   - amount: 0
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 0
 > [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     0
 > [0.000000] [sd_task/INFO]     root->5
+> [0.000000] [sd_task/INFO]     0
 > [0.000000] [sd_task/INFO] Displaying task 0
 > [0.000000] [sd_task/INFO]   - state: not scheduled   not runnable    
 > [0.000000] [sd_task/INFO]   - kind: sequential computation
@@ -125,86 +115,86 @@ $ $SG_TEST_EXENV ./dot_test --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:
 > [0.000000] [sd_task/INFO]     8
 > [0.000000] [sd_task/INFO]   - post-dependencies:
 > [0.000000] [sd_task/INFO]     end
-> [0.000000] [sd_task/INFO] Displaying task 2->3
+> [0.000000] [sd_task/INFO] Displaying task 0->1
 > [0.000000] [sd_task/INFO]   - state: not scheduled   not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10002
+> [0.000000] [sd_task/INFO]   - tracing category: taskA
+> [0.000000] [sd_task/INFO]   - amount: 10001
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     2
+> [0.000000] [sd_task/INFO]     0
 > [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     3
-> [0.000000] [sd_task/INFO] Displaying task 6->7
+> [0.000000] [sd_task/INFO]     1
+> [0.000000] [sd_task/INFO] Displaying task 1->2
 > [0.000000] [sd_task/INFO]   - state: not scheduled   not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10005
+> [0.000000] [sd_task/INFO]   - tracing category: taskA
+> [0.000000] [sd_task/INFO]   - amount: 10004
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     6
+> [0.000000] [sd_task/INFO]     1
 > [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     7
-> [0.000000] [sd_task/INFO] Displaying task root->5
+> [0.000000] [sd_task/INFO]     2
+> [0.000000] [sd_task/INFO] Displaying task 2->3
 > [0.000000] [sd_task/INFO]   - state: not scheduled   not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10014000
+> [0.000000] [sd_task/INFO]   - tracing category: taskA
+> [0.000000] [sd_task/INFO]   - amount: 10002
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     root
+> [0.000000] [sd_task/INFO]     2
 > [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     5
-> [0.000000] [sd_task/INFO] Displaying task 1->2
+> [0.000000] [sd_task/INFO]     3
+> [0.000000] [sd_task/INFO] Displaying task 4->5
 > [0.000000] [sd_task/INFO]   - state: not scheduled   not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10004
+> [0.000000] [sd_task/INFO]   - tracing category: taskB
+> [0.000000] [sd_task/INFO]   - amount: 10029
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     1
+> [0.000000] [sd_task/INFO]     4
 > [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     2
-> [0.000000] [sd_task/INFO] Displaying task 7->end
+> [0.000000] [sd_task/INFO]     5
+> [0.000000] [sd_task/INFO] Displaying task 6->7
 > [0.000000] [sd_task/INFO]   - state: not scheduled   not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10014000
+> [0.000000] [sd_task/INFO]   - tracing category: taskB
+> [0.000000] [sd_task/INFO]   - amount: 10005
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     7
+> [0.000000] [sd_task/INFO]     6
 > [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     end
-> [0.000000] [sd_task/INFO] Displaying task 0->1
+> [0.000000] [sd_task/INFO]     7
+> [0.000000] [sd_task/INFO] Displaying task 7->8
 > [0.000000] [sd_task/INFO]   - state: not scheduled   not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: oi
-> [0.000000] [sd_task/INFO]   - amount: 10001
+> [0.000000] [sd_task/INFO]   - tracing category: taskB
+> [0.000000] [sd_task/INFO]   - amount: 10000
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     0
+> [0.000000] [sd_task/INFO]     7
 > [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     1
-> [0.000000] [sd_task/INFO] Displaying task 4->5
+> [0.000000] [sd_task/INFO]     8
+> [0.000000] [sd_task/INFO] Displaying task 7->end
 > [0.000000] [sd_task/INFO]   - state: not scheduled   not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10029
+> [0.000000] [sd_task/INFO]   - tracing category: taskB
+> [0.000000] [sd_task/INFO]   - amount: 10014000
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     4
+> [0.000000] [sd_task/INFO]     7
 > [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     5
-> [0.000000] [sd_task/INFO] Displaying task 7->8
+> [0.000000] [sd_task/INFO]     end
+> [0.000000] [sd_task/INFO] Displaying task root->5
 > [0.000000] [sd_task/INFO]   - state: not scheduled   not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
 > [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10000
+> [0.000000] [sd_task/INFO]   - amount: 10014000
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     7
+> [0.000000] [sd_task/INFO]     root
 > [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     8
+> [0.000000] [sd_task/INFO]     5
 > [0.000000] [sd_task/INFO] Displaying task end
 > [0.000000] [sd_task/INFO]   - state: not scheduled   not runnable    
 > [0.000000] [sd_task/INFO]   - kind: sequential computation
@@ -216,78 +206,46 @@ $ $SG_TEST_EXENV ./dot_test --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:
 > [0.000000] [sd_task/INFO]     9
 > [0.000000] [test/INFO] ------------------- Schedule tasks ---------------------------
 > [0.000000] [test/INFO] ------------------- Run the schedule ---------------------------
-> [60.002281] [test/INFO] ------------------- Produce the trace file---------------------------
-> [60.002281] [test/INFO] Producing the trace of the run into dag.trace
+> [62.002281] [test/INFO] ------------------- Produce the trace file---------------------------
+> [62.002281] [test/INFO] Producing the trace of the run into dag.trace
 
 $ cat ${srcdir:=.}/dag.trace
-> [0.000000] C2-05 compute 0.000000 # root
-> [0.000000] C2-06 compute 10000000129.452715 # 0
-> [2.000380] C2-07 compute 10000000131.133657 # 1
-> [4.000760] C2-08 compute 10000000121.124870 # 2
-> [6.001140] C2-09 compute 10000000230.608025 # 3
-> [8.001140] C1-00 compute 10000000004.994019 # 4
-> [18.001520] C1-01 compute 10000000046.016401 # 5
-> [28.001520] C1-02 compute 10000000091.598791 # 6
-> [38.001901] C1-03 compute 10000000040.679438 # 7
-> [48.002281] C1-04 compute 10000000250.490017 # 8
-> [58.002281] C2-05 compute 10000000079.267649 # 9
-> [6.000760] C2-08 send C2-09 10001.781645 # 2->3
-> [6.001140] C2-09 recv C2-08 10001.781645 # 2->3
-> [38.001521] C1-02 send C1-03 10004.920415 # 6->7
-> [38.001901] C1-03 recv C1-02 10004.920415 # 6->7
-> [0.000000] C2-05 send C1-01 10014000.000000 # root->5
-> [0.292217] C1-01 recv C2-05 10014000.000000 # root->5
-> [4.000380] C2-07 send C2-08 10004.164631 # 1->2
-> [4.000760] C2-08 recv C2-07 10004.164631 # 1->2
-> [48.001901] C1-03 send C2-05 10014000.000000 # 7->end
-> [48.294118] C2-05 recv C1-03 10014000.000000 # 7->end
-> [2.000000] C2-06 send C2-07 10001.389601 # 0->1
-> [2.000380] C2-07 recv C2-06 10001.389601 # 0->1
-> [18.001140] C1-00 send C1-01 10029.262823 # 4->5
-> [18.001520] C1-01 recv C1-00 10029.262823 # 4->5
-> [48.001901] C1-03 send C1-04 10000.234049 # 7->8
-> [48.002281] C1-04 recv C1-03 10000.234049 # 7->8
-> [60.002281] C2-05 compute 10000000129.452715 # end
+> [0.000000->0.000000] C2-05 compute 0.000000 flops # root
+> [0.000000->2.000000] C2-06 compute 10000000129.452715 flops # 0
+> [2.000380->4.000380] C2-07 compute 10000000131.133657 flops # 1
+> [4.000760->6.000760] C2-08 compute 10000000121.124870 flops # 2
+> [6.001140->8.001140] C2-09 compute 10000000230.608025 flops # 3
+> [8.001140->18.001140] C1-00 compute 10000000004.994019 flops # 4
+> [18.001520->28.001520] C1-01 compute 10000000046.016401 flops # 5
+> [28.001520->38.001521] C1-02 compute 10000000091.598791 flops # 6
+> [38.001901->48.001901] C1-03 compute 10000000040.679438 flops # 7
+> [48.002281->58.002281] C1-04 compute 10000000250.490017 flops # 8
+> [58.002281->60.002281] C2-05 compute 10000000079.267649 flops # 9
+> [2.000000 -> 2.000380] C2-06 -> C2-07 transfer of 10001 bytes # 0->1
+> [4.000380 -> 4.000760] C2-07 -> C2-08 transfer of 10004 bytes # 1->2
+> [6.000760 -> 6.001140] C2-08 -> C2-09 transfer of 10002 bytes # 2->3
+> [18.001140 -> 18.001520] C1-00 -> C1-01 transfer of 10029 bytes # 4->5
+> [38.001521 -> 38.001901] C1-02 -> C1-03 transfer of 10005 bytes # 6->7
+> [48.001901 -> 48.002281] C1-03 -> C1-04 transfer of 10000 bytes # 7->8
+> [48.001901 -> 48.294118] C1-03 -> C2-05 transfer of 10014000 bytes # 7->end
+> [0.000000 -> 0.292217] C2-05 -> C1-01 transfer of 10014000 bytes # root->5
+> [60.002281->62.002281] C2-05 compute 10000000129.452715 flops # end
 
 $ rm -f dag.trace
 
 ! expect signal SIGABRT
 $ $SG_TEST_EXENV ./simulate_dot --log=no_loc  "--log=sd_dotparse.thres:verbose" ${srcdir:=.}/../2clusters.xml ${srcdir:=.}/dag_with_bad_schedule.dot
 > [0.000000] [surf_workstation/INFO] surf_workstation_model_init_ptask_L07
-> [0.000000] [sd_dotparse/WARNING] 'end' node is explicitly declared in the DOT file. Update it
-> [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, there are not enough computers
-> [0.000000] [sd_dotparse/WARNING] 0->1 already exists
-> [0.000000] [sd_dotparse/WARNING]  is not an integer
+> [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, the task end is not correctly scheduled
 > [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, the task 1 is not correctly scheduled
-> [0.000000] [sd_dotparse/WARNING] 1->2 already exists
 > [0.000000] [sd_dotparse/VERBOSE] The task 0 starts on the computer 1 at the position : 1 like the task 2
-> [0.000000] [sd_dotparse/WARNING] 2->3 already exists
-> [0.000000] [sd_dotparse/WARNING]  is not an integer
 > [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, the task 3 is not correctly scheduled
-> [0.000000] [sd_dotparse/WARNING] 4->5 already exists
-> [0.000000] [sd_dotparse/WARNING] 6->7 already exists
-> [0.000000] [sd_dotparse/WARNING] 7->end already exists
-> [0.000000] [sd_dotparse/WARNING] 7->8 already exists
-> [0.000000] [sd_dotparse/WARNING] 'root' node is explicitly declared in the DOT file. Update it
-> [0.000000] [sd_dotparse/WARNING] root->5 already exists
-> [0.000000] [sd_dotparse/WARNING]  is not an integer
-> [0.000000] [sd_dotparse/WARNING]  is not an integer
 > [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, the task root is not correctly scheduled
 > [0.000000] [sd_dotparse/WARNING] The scheduling is ignored
 > [0.000000] [xbt/CRITICAL] The dot file with the provided scheduling is wrong, more information with the option : --log=sd_dotparse.thres:verbose
 
 $ $SG_TEST_EXENV ./simulate_dot --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:=.}/dag_with_good_schedule.dot
 > [0.000000] [surf_workstation/INFO] surf_workstation_model_init_ptask_L07
-> [0.000000] [sd_dotparse/WARNING] 'end' node is explicitly declared in the DOT file. Update it
-> [0.000000] [sd_dotparse/WARNING] 'root' node is explicitly declared in the DOT file. Update it
-> [0.000000] [sd_dotparse/WARNING] 0->2 already exists
-> [0.000000] [sd_dotparse/WARNING] 1->2 already exists
-> [0.000000] [sd_dotparse/WARNING] 2->3 already exists
-> [0.000000] [sd_dotparse/WARNING] root->5 already exists
-> [0.000000] [sd_dotparse/WARNING] 4->5 already exists
-> [0.000000] [sd_dotparse/WARNING] 6->7 already exists
-> [0.000000] [sd_dotparse/WARNING] 7->end already exists
-> [0.000000] [sd_dotparse/WARNING] 7->8 already exists
 > [0.000000] [test/INFO] ------------------- Display all tasks of the loaded DAG ---------------------------
 > [0.000000] [sd_task/INFO] Displaying task root
 > [0.000000] [sd_task/INFO]   - state:    runnable    
@@ -415,26 +373,6 @@ $ $SG_TEST_EXENV ./simulate_dot --log=no_loc ${srcdir:=.}/../2clusters.xml ${src
 > [0.000000] [sd_task/INFO]     8
 > [0.000000] [sd_task/INFO]   - post-dependencies:
 > [0.000000] [sd_task/INFO]     end
-> [0.000000] [sd_task/INFO] Displaying task 2->3
-> [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
-> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10002
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     2
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     3
-> [0.000000] [sd_task/INFO] Displaying task 6->7
-> [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
-> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10005
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     6
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     7
 > [0.000000] [sd_task/INFO] Displaying task root->5
 > [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
@@ -445,56 +383,76 @@ $ $SG_TEST_EXENV ./simulate_dot --log=no_loc ${srcdir:=.}/../2clusters.xml ${src
 > [0.000000] [sd_task/INFO]     root
 > [0.000000] [sd_task/INFO]   - post-dependencies:
 > [0.000000] [sd_task/INFO]     5
-> [0.000000] [sd_task/INFO] Displaying task 1->2
+> [0.000000] [sd_task/INFO] Displaying task 0->2
 > [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10004
+> [0.000000] [sd_task/INFO]   - tracing category: taskA
+> [0.000000] [sd_task/INFO]   - amount: 10001
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     1
+> [0.000000] [sd_task/INFO]     0
 > [0.000000] [sd_task/INFO]   - post-dependencies:
 > [0.000000] [sd_task/INFO]     2
-> [0.000000] [sd_task/INFO] Displaying task 7->end
+> [0.000000] [sd_task/INFO] Displaying task 1->2
 > [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
-> [0.000000] [sd_task/INFO]   - amount: 10014000
+> [0.000000] [sd_task/INFO]   - tracing category: taskA
+> [0.000000] [sd_task/INFO]   - amount: 10004
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     7
+> [0.000000] [sd_task/INFO]     1
 > [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     end
-> [0.000000] [sd_task/INFO] Displaying task 0->2
+> [0.000000] [sd_task/INFO]     2
+> [0.000000] [sd_task/INFO] Displaying task 2->3
 > [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: oi
-> [0.000000] [sd_task/INFO]   - amount: 10001
+> [0.000000] [sd_task/INFO]   - tracing category: taskA
+> [0.000000] [sd_task/INFO]   - amount: 10002
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     0
-> [0.000000] [sd_task/INFO]   - post-dependencies:
 > [0.000000] [sd_task/INFO]     2
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     3
 > [0.000000] [sd_task/INFO] Displaying task 4->5
 > [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
+> [0.000000] [sd_task/INFO]   - tracing category: taskB
 > [0.000000] [sd_task/INFO]   - amount: 10029
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
 > [0.000000] [sd_task/INFO]     4
 > [0.000000] [sd_task/INFO]   - post-dependencies:
 > [0.000000] [sd_task/INFO]     5
+> [0.000000] [sd_task/INFO] Displaying task 6->7
+> [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
+> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
+> [0.000000] [sd_task/INFO]   - tracing category: taskB
+> [0.000000] [sd_task/INFO]   - amount: 10005
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
+> [0.000000] [sd_task/INFO]   - pre-dependencies:
+> [0.000000] [sd_task/INFO]     6
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     7
 > [0.000000] [sd_task/INFO] Displaying task 7->8
 > [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
 > [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - tracing category: COMM_E2E
+> [0.000000] [sd_task/INFO]   - tracing category: taskB
 > [0.000000] [sd_task/INFO]   - amount: 10000
 > [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
 > [0.000000] [sd_task/INFO]   - pre-dependencies:
 > [0.000000] [sd_task/INFO]     7
 > [0.000000] [sd_task/INFO]   - post-dependencies:
 > [0.000000] [sd_task/INFO]     8
+> [0.000000] [sd_task/INFO] Displaying task 7->end
+> [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
+> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
+> [0.000000] [sd_task/INFO]   - tracing category: taskB
+> [0.000000] [sd_task/INFO]   - amount: 10014000
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
+> [0.000000] [sd_task/INFO]   - pre-dependencies:
+> [0.000000] [sd_task/INFO]     7
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     end
 > [0.000000] [sd_task/INFO] Displaying task end
 > [0.000000] [sd_task/INFO]   - state:   scheduled not runnable    
 > [0.000000] [sd_task/INFO]   - kind: sequential computation
@@ -506,55 +464,36 @@ $ $SG_TEST_EXENV ./simulate_dot --log=no_loc ${srcdir:=.}/../2clusters.xml ${src
 > [0.000000] [sd_task/INFO]     9
 > [0.000000] [sd_task/INFO]     7
 > [0.000000] [test/INFO] ------------------- Run the schedule ---------------------------
-> [18.000866] [test/INFO] ------------------- Produce the trace file---------------------------
-> [18.000866] [test/INFO] Producing the trace of the run into dag_with_good_schedule.trace
+> [20.000866] [test/INFO] ------------------- Produce the trace file---------------------------
+> [20.000866] [test/INFO] Producing the trace of the run into dag_with_good_schedule.trace
 
 $ cat ${srcdir:=.}/dag_with_good_schedule.trace
-> [0.000000] C2-05 compute 0.000000 # root
-> [0.000000] C2-06 compute 10000000129.452715 # 0
-> [0.000000] C2-05 compute 10000000131.133657 # 1
-> [2.000380] C2-06 compute 10000000121.124870 # 2
-> [4.000415] C2-06 compute 10000000230.608025 # 3
-> [6.000415] C2-05 compute 10000000004.994019 # 4
-> [8.000450] C2-05 compute 10000000046.016401 # 5
-> [10.000450] C2-05 compute 10000000091.598791 # 6
-> [12.000485] C2-05 compute 10000000040.679438 # 7
-> [14.000865] C2-06 compute 10000000250.490017 # 8
-> [16.000866] C2-06 compute 10000000079.267649 # 9
-> [4.000380] C2-06 send C2-06 10001.781645 # 2->3
-> [4.000415] C2-06 recv C2-06 10001.781645 # 2->3
-> [12.000450] C2-05 send C2-05 10004.920415 # 6->7
-> [12.000485] C2-05 recv C2-05 10004.920415 # 6->7
-> [0.000000] C2-05 send C2-05 10014000.000000 # root->5
-> [0.020123] C2-05 recv C2-05 10014000.000000 # root->5
-> [2.000000] C2-05 send C2-06 10004.164631 # 1->2
-> [2.000380] C2-06 recv C2-05 10004.164631 # 1->2
-> [14.000485] C2-05 send C2-05 10014000.000000 # 7->end
-> [14.020609] C2-05 recv C2-05 10014000.000000 # 7->end
-> [2.000000] C2-06 send C2-06 10001.389601 # 0->2
-> [2.000035] C2-06 recv C2-06 10001.389601 # 0->2
-> [8.000415] C2-05 send C2-05 10029.262823 # 4->5
-> [8.000450] C2-05 recv C2-05 10029.262823 # 4->5
-> [14.000485] C2-05 send C2-06 10000.234049 # 7->8
-> [14.000865] C2-06 recv C2-05 10000.234049 # 7->8
-> [18.000866] C2-05 compute 10000000129.452715 # end
-
+> [0.000000->0.000000] C2-05 compute 0.000000 flops # root
+> [0.000000->2.000000] C2-06 compute 10000000129.452715 flops # 0
+> [0.000000->2.000000] C2-05 compute 10000000131.133657 flops # 1
+> [2.000380->4.000380] C2-06 compute 10000000121.124870 flops # 2
+> [4.000415->6.000415] C2-06 compute 10000000230.608025 flops # 3
+> [6.000415->8.000415] C2-05 compute 10000000004.994019 flops # 4
+> [8.000450->10.000450] C2-05 compute 10000000046.016401 flops # 5
+> [10.000450->12.000450] C2-05 compute 10000000091.598791 flops # 6
+> [12.000485->14.000485] C2-05 compute 10000000040.679438 flops # 7
+> [14.000865->16.000866] C2-06 compute 10000000250.490017 flops # 8
+> [16.000866->18.000866] C2-06 compute 10000000079.267649 flops # 9
+> [0.000000 -> 0.020123] C2-05 -> C2-05 transfer of 10014000 bytes # root->5
+> [2.000000 -> 2.000035] C2-06 -> C2-06 transfer of 10001 bytes # 0->2
+> [2.000000 -> 2.000380] C2-05 -> C2-06 transfer of 10004 bytes # 1->2
+> [4.000380 -> 4.000415] C2-06 -> C2-06 transfer of 10002 bytes # 2->3
+> [8.000415 -> 8.000450] C2-05 -> C2-05 transfer of 10029 bytes # 4->5
+> [12.000450 -> 12.000485] C2-05 -> C2-05 transfer of 10005 bytes # 6->7
+> [14.000485 -> 14.000865] C2-05 -> C2-06 transfer of 10000 bytes # 7->8
+> [14.000485 -> 14.020609] C2-05 -> C2-05 transfer of 10014000 bytes # 7->end
+> [18.000866->20.000866] C2-05 compute 10000000129.452715 flops # end
 
 $ rm -f ${srcdir:=.}/dag_with_good_schedule.trace
 
 ! expect signal SIGABRT
 $ $SG_TEST_EXENV ./dot_test --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:=.}/dag_with_cycle.dot
 > [0.000000] [surf_workstation/INFO] surf_workstation_model_init_ptask_L07
-> [0.000000] [sd_dotparse/WARNING] 'end' node is explicitly declared in the DOT file. Update it
-> [0.000000] [sd_dotparse/WARNING] 0->2 already exists
-> [0.000000] [sd_dotparse/WARNING] 1->2 already exists
-> [0.000000] [sd_dotparse/WARNING] 2->3 already exists
-> [0.000000] [sd_dotparse/WARNING] 4->5 already exists
-> [0.000000] [sd_dotparse/WARNING] 6->7 already exists
-> [0.000000] [sd_dotparse/WARNING] 7->end already exists
-> [0.000000] [sd_dotparse/WARNING] 7->8 already exists
-> [0.000000] [sd_dotparse/WARNING] 'root' node is explicitly declared in the DOT file. Update it
-> [0.000000] [sd_dotparse/WARNING] root->5 already exists
 > [0.000000] [sd_daxparse/WARNING] the task root is not marked
 > [0.000000] [sd_daxparse/WARNING] the task 0 is in a cycle
 > [0.000000] [sd_daxparse/WARNING] the task 1 is in a cycle
index c6267e4..4c43abb 100644 (file)
@@ -6,7 +6,7 @@ add_executable(goal_test goal_test.c)
 
 ### Add definitions for compile
 if(NOT WIN32)
-  target_link_libraries(goal_test simgrid pthread )
+  target_link_libraries(goal_test simgrid pthread )
 else()
   target_link_libraries(goal_test simgrid)
 endif()
index 3f0417f..b08db6d 100644 (file)
@@ -6,7 +6,7 @@ add_executable(sd_meta sd_meta.c)
 
 ### Add definitions for compile
 if(NOT WIN32)
-  target_link_libraries(sd_meta simgrid pthread )
+  target_link_libraries(sd_meta simgrid pthread )
 else()
   target_link_libraries(sd_meta simgrid)
 endif()
index 04e4cce..833a9fc 100644 (file)
@@ -6,7 +6,7 @@ add_executable(sd_prop sd_prop.c)
 
 ### Add definitions for compile
 if(NOT WIN32)
-  target_link_libraries(sd_prop simgrid pthread )
+  target_link_libraries(sd_prop simgrid pthread )
 else()
   target_link_libraries(sd_prop simgrid)
 endif()
index b413126..f4e160a 100644 (file)
@@ -157,9 +157,9 @@ $ tail -n +3 ./simgrid.trace
 > 6 0 23 3 0 "13"
 > 6 0 24 3 0 "10"
 > 6 0 25 3 0 "5"
-> 4 6 0 1 3 0-HOST1-LINK3
-> 4 7 0 3 3 0-LINK3-LINK3
-> 4 8 0 3 1 0-LINK3-HOST1
+> 4 6 0 3 3 0-LINK3-LINK3
+> 4 7 0 3 1 0-LINK3-HOST1
+> 4 8 0 1 3 0-HOST1-LINK3
 > 8 0 2 1 5000000000.000000
 > 8 0 2 2 1000000000.000000
 > 8 0 2 3 5000000000.000000
@@ -200,54 +200,54 @@ $ tail -n +3 ./simgrid.trace
 > 8 0 5 24 0.000100
 > 8 0 4 25 125000000.000000
 > 8 0 5 25 0.000100
-> 15 0 6 0 topology 10 0
-> 16 0 6 0 topology 25 0
-> 15 0 7 0 topology 25 1
-> 16 0 7 0 topology 12 1
-> 15 0 7 0 topology 12 2
-> 16 0 7 0 topology 11 2
-> 15 0 8 0 topology 11 3
-> 16 0 8 0 topology 1 3
-> 15 0 7 0 topology 12 4
-> 16 0 7 0 topology 14 4
-> 15 0 8 0 topology 14 5
-> 16 0 8 0 topology 3 5
-> 15 0 7 0 topology 12 6
-> 16 0 7 0 topology 19 6
-> 15 0 8 0 topology 19 7
-> 16 0 8 0 topology 6 7
-> 15 0 7 0 topology 12 8
-> 16 0 7 0 topology 15 8
-> 15 0 8 0 topology 15 9
-> 16 0 8 0 topology 4 9
-> 15 0 7 0 topology 12 10
-> 16 0 7 0 topology 23 10
-> 15 0 7 0 topology 23 11
-> 16 0 7 0 topology 18 11
-> 15 0 7 0 topology 18 12
-> 16 0 7 0 topology 16 12
-> 15 0 7 0 topology 16 13
-> 16 0 7 0 topology 24 13
-> 15 0 7 0 topology 24 14
-> 16 0 7 0 topology 22 14
-> 15 0 8 0 topology 22 15
-> 16 0 8 0 topology 9 15
-> 15 0 7 0 topology 24 16
-> 16 0 7 0 topology 20 16
-> 15 0 8 0 topology 20 17
-> 16 0 8 0 topology 7 17
-> 15 0 7 0 topology 24 18
-> 16 0 7 0 topology 17 18
-> 15 0 8 0 topology 17 19
-> 16 0 8 0 topology 5 19
-> 15 0 7 0 topology 24 20
-> 16 0 7 0 topology 13 20
-> 15 0 8 0 topology 13 21
-> 16 0 8 0 topology 2 21
-> 15 0 7 0 topology 24 22
-> 16 0 7 0 topology 21 22
-> 15 0 8 0 topology 21 23
-> 16 0 8 0 topology 8 23
+> 15 0 6 0 topology 12 0
+> 16 0 6 0 topology 23 0
+> 15 0 6 0 topology 24 1
+> 16 0 6 0 topology 22 1
+> 15 0 6 0 topology 24 2
+> 16 0 6 0 topology 17 2
+> 15 0 6 0 topology 24 3
+> 16 0 6 0 topology 21 3
+> 15 0 7 0 topology 13 4
+> 16 0 7 0 topology 2 4
+> 15 0 6 0 topology 12 5
+> 16 0 6 0 topology 19 5
+> 15 0 7 0 topology 14 6
+> 16 0 7 0 topology 3 6
+> 15 0 7 0 topology 22 7
+> 16 0 7 0 topology 9 7
+> 15 0 7 0 topology 21 8
+> 16 0 7 0 topology 8 8
+> 15 0 8 0 topology 1 9
+> 16 0 8 0 topology 11 9
+> 15 0 7 0 topology 19 10
+> 16 0 7 0 topology 6 10
+> 15 0 6 0 topology 16 11
+> 16 0 6 0 topology 24 11
+> 15 0 6 0 topology 18 12
+> 16 0 6 0 topology 16 12
+> 15 0 6 0 topology 23 13
+> 16 0 6 0 topology 18 13
+> 15 0 6 0 topology 24 14
+> 16 0 6 0 topology 20 14
+> 15 0 7 0 topology 20 15
+> 16 0 7 0 topology 7 15
+> 15 0 6 0 topology 24 16
+> 16 0 6 0 topology 13 16
+> 15 0 6 0 topology 12 17
+> 16 0 6 0 topology 25 17
+> 15 0 6 0 topology 11 18
+> 16 0 6 0 topology 12 18
+> 15 0 6 0 topology 12 19
+> 16 0 6 0 topology 14 19
+> 15 0 6 0 topology 12 20
+> 16 0 6 0 topology 15 20
+> 15 0 7 0 topology 25 21
+> 16 0 7 0 topology 10 21
+> 15 0 7 0 topology 15 22
+> 16 0 7 0 topology 4 22
+> 15 0 7 0 topology 17 23
+> 16 0 7 0 topology 5 23
 > 1 9 3 bCOMP_SEQ "0.800026 0.545312 0.857926"
 > 1 10 1 pCOMP_SEQ "0.800026 0.545312 0.857926"
 > 1 11 3 bCOMM_E2E "0.904944 0.089118 0.069832"
index 85ee3e6..eda1d82 100644 (file)
@@ -20,13 +20,13 @@ if(enable_smpi)
   add_executable(mc_bugged2 mc_bugged2.c)
   add_executable(smpi_replay replay/replay.c)
 
-  target_link_libraries(bcbench simgrid smpi )
-  target_link_libraries(mvmul simgrid smpi )
-  target_link_libraries(smpi_traced simgrid smpi )
-  target_link_libraries(smpi_traced_simple simgrid smpi )
-  target_link_libraries(mc_bugged1 simgrid smpi )
-  target_link_libraries(mc_bugged2 simgrid smpi )
-  target_link_libraries(smpi_replay simgrid smpi )
+  target_link_libraries(bcbench simgrid smpi )
+  target_link_libraries(mvmul simgrid smpi )
+  target_link_libraries(smpi_traced simgrid smpi )
+  target_link_libraries(smpi_traced_simple simgrid smpi )
+  target_link_libraries(mc_bugged1 simgrid smpi )
+  target_link_libraries(mc_bugged2 simgrid smpi )
+  target_link_libraries(smpi_replay simgrid smpi )
 
 endif()
 
@@ -59,12 +59,16 @@ set(bin_files
   )
 set(txt_files
   ${txt_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_bcast.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions0.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions1.txt
-  ${CMAKE_CURRENT_SOURCE_DIR}/replay/split_traces
   ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_allReduce.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_alltoall.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_alltoallv.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_barrier.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_bcast.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_bcast_reduce_datatypes.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_waitall.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_with_isend.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/replay/split_traces
   PARENT_SCOPE
   )  
index 054cdf1..bf3c9bb 100644 (file)
@@ -7,6 +7,7 @@
 #include "Summa.h"
 #include "2.5D_MM.h"
 #include <stdlib.h>
+#include <stdio.h>
 #include "xbt/log.h"
 #define CHECK_25D 1
 
index ece8c47..2965048 100644 (file)
@@ -8,7 +8,7 @@ if(enable_smpi)
   if(NOT WIN32)
     add_executable(MM_mpi MM_mpi.c 2.5D_MM.c Summa.c Matrix_init.c)
     ### Add definitions for compile
-    target_link_libraries(MM_mpi simgrid pthread smpi)
+    target_link_libraries(MM_mpi simgrid pthread smpi)
   endif()
 endif()
 
index 07ac234..0d0bab9 100644 (file)
@@ -6,6 +6,8 @@
 #include "Matrix_init.h"
 #include "Summa.h"
 #include "xbt/log.h"
+#include <stdio.h>
+
  XBT_LOG_NEW_DEFAULT_CATEGORY(MM_Summa,
                              "Messages specific for this msg example");
 
diff --git a/examples/smpi/replay/actions_alltoall.txt b/examples/smpi/replay/actions_alltoall.txt
new file mode 100644 (file)
index 0000000..7660765
--- /dev/null
@@ -0,0 +1,12 @@
+0 init
+1 init
+2 init
+
+0 allToAll 500 500
+1 allToAll 500 500
+2 allToAll 500 500
+
+
+0 finalize
+1 finalize
+2 finalize
diff --git a/examples/smpi/replay/actions_alltoallv.txt b/examples/smpi/replay/actions_alltoallv.txt
new file mode 100644 (file)
index 0000000..cd4f95c
--- /dev/null
@@ -0,0 +1,12 @@
+0 init
+1 init
+2 init
+
+0 allToAllV 100 1 40 30 1 20 150 1000 1 80 100 1 20 110
+1 allToAllV 1000 80 1 40 1 100 160 1000 40 1 30 10 70 140
+2 allToAllV 1000 100 30 1 1 120 150 1000 30 40 1 1 50 60
+
+
+0 finalize
+1 finalize
+2 finalize
diff --git a/examples/smpi/replay/actions_bcast_reduce_datatypes.txt b/examples/smpi/replay/actions_bcast_reduce_datatypes.txt
new file mode 100644 (file)
index 0000000..69545b7
--- /dev/null
@@ -0,0 +1,27 @@
+0 init 1
+1 init 1
+2 init 1
+
+0 bcast 5e8 1 0
+1 bcast 5e8 1 0
+2 bcast 5e8 1 0
+
+0 compute 5e8
+1 compute 2e8
+2 compute 5e8
+
+0 bcast 5e8 0 3
+1 bcast 5e8 0 3
+2 bcast 5e8 0 3
+
+0 compute 5e8
+1 compute 2e8
+2 compute 5e8
+
+0 reduce 5e8 5e8 0 4
+1 reduce 5e8 5e8 0 4
+2 reduce 5e8 5e8 0 4
+
+0 finalize
+1 finalize
+2 finalize
diff --git a/examples/smpi/replay/actions_waitall.txt b/examples/smpi/replay/actions_waitall.txt
new file mode 100644 (file)
index 0000000..d7e3799
--- /dev/null
@@ -0,0 +1,19 @@
+0 init
+1 init
+2 init
+
+0 Irecv 1 2000
+1 Isend 0 2000
+2 Irecv 1 3000
+
+0 Irecv 2 3000
+1 Isend 2 3000
+2 Isend 0 3000
+
+0 waitAll
+1 waitAll
+2 waitAll
+
+0 finalize
+1 finalize
+2 finalize
index 0ac1715..29b8acd 100644 (file)
@@ -25,10 +25,10 @@ $ ../../bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_rep
 > [Tremblay:0:(0) 152.576600] [smpi_replay/VERBOSE] 0 bcast 5e8 73.739750
 > [Jupiter:1:(0) 155.197969] [smpi_replay/VERBOSE] 1 compute 2e8 2.621369
 > [Tremblay:0:(0) 157.673699] [smpi_replay/VERBOSE] 0 compute 5e8 5.097100
-> [Fafard:2:(0) 222.850234] [smpi_replay/VERBOSE] 2 reduce 5e8 5e8 72.283426
-> [Jupiter:1:(0) 231.413449] [smpi_replay/VERBOSE] 1 reduce 5e8 5e8 76.215480
-> [Tremblay:0:(0) 231.413449] [smpi_replay/VERBOSE] 0 reduce 5e8 5e8 73.739750
-> [Tremblay:0:(0) 231.413449] [smpi_replay/INFO] Simulation time 231.413
+> [Fafard:2:(0) 229.403658] [smpi_replay/VERBOSE] 2 reduce 5e8 5e8 78.836850
+> [Tremblay:0:(0) 236.510549] [smpi_replay/VERBOSE] 0 reduce 5e8 5e8 78.836850
+> [Jupiter:1:(0) 237.966873] [smpi_replay/VERBOSE] 1 reduce 5e8 5e8 82.768904
+> [Jupiter:1:(0) 237.966873] [smpi_replay/INFO] Simulation time 237.967
 
 $ rm -f replay/one_trace
 
@@ -46,7 +46,7 @@ $ ../../bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=no_loc
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/computing' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
-> [Tremblay:0:(0) 231.413449] [smpi_replay/INFO] Simulation time 231.413
+> [Jupiter:1:(0) 237.966873] [smpi_replay/INFO] Simulation time 237.967
 
 $ rm -f replay/one_trace
 
@@ -202,18 +202,18 @@ $ tail -n +3 ./simgrid.trace
 > 12 155.197969 2 2 6
 > 13 157.673699 2 1
 > 12 157.673699 2 1 6
-> 13 222.850234 2 3
-> 12 222.850234 2 3 4
-> 13 222.850234 2 3
-> 7 222.850234 1 3
-> 13 231.413449 2 2
-> 12 231.413449 2 2 4
-> 13 231.413449 2 2
-> 7 231.413449 1 2
-> 13 231.413449 2 1
-> 12 231.413449 2 1 4
-> 13 231.413449 2 1
-> 7 231.413449 1 1
+> 13 229.403658 2 3
+> 12 229.403658 2 3 4
+> 13 229.403658 2 3
+> 7 229.403658 1 3
+> 13 236.510549 2 1
+> 12 236.510549 2 1 4
+> 13 236.510549 2 1
+> 7 236.510549 1 1
+> 13 237.966873 2 2
+> 12 237.966873 2 2 4
+> 13 237.966873 2 2
+> 7 237.966873 1 2
 
 $ rm -f ./simgrid.trace
 
@@ -305,3 +305,63 @@ $ ../../bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_rep
 > [Jupiter:1:(0) 160.586347] [smpi_replay/INFO] Simulation time 160.586
 
 $ rm -f replay/one_trace
+
+p Test of AllToAll replay with SMPI (one trace for all processes)
+
+< replay/actions_alltoall.txt
+$ mkfile replay/one_trace
+
+$ ../../bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+> [Tremblay:0:(0) 0.004041] [smpi_replay/VERBOSE] 0 allToAll 500 500 0.004041
+> [Jupiter:1:(0) 0.006920] [smpi_replay/VERBOSE] 1 allToAll 500 500 0.006920
+> [Fafard:2:(0) 0.006920] [smpi_replay/VERBOSE] 2 allToAll 500 500 0.006920
+> [Fafard:2:(0) 0.006920] [smpi_replay/INFO] Simulation time 0.00692004
+
+$ rm -f replay/one_trace
+
+p Test of AllToAllv replay with SMPI (one trace for all processes)
+
+< replay/actions_alltoallv.txt
+$ mkfile replay/one_trace
+
+$ ../../bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+> [Tremblay:0:(0) 0.003999] [smpi_replay/VERBOSE] 0 allToAllV 100 1 40 30 1 20 150 1000 1 80 100 1 20 110 0.003999
+> [Jupiter:1:(0) 0.006934] [smpi_replay/VERBOSE] 1 allToAllV 1000 80 1 40 1 100 160 1000 40 1 30 10 70 140 0.006934
+> [Fafard:2:(0) 0.006936] [smpi_replay/VERBOSE] 2 allToAllV 1000 100 30 1 1 120 150 1000 30 40 1 1 50 60 0.006936
+> [Fafard:2:(0) 0.006936] [smpi_replay/INFO] Simulation time 0.00693554
+
+$ rm -f replay/one_trace
+
+p Test of waitall replay with SMPI (one trace for all processes)
+
+< replay/actions_waitall.txt
+$ mkfile replay/one_trace
+
+$ ../../bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+> [Tremblay:0:(0) 0.000000] [smpi_replay/VERBOSE] 0 Irecv 1 2000 0.000000
+> [Jupiter:1:(0) 0.000000] [smpi_replay/VERBOSE] 1 Isend 0 2000 0.000000
+> [Fafard:2:(0) 0.000000] [smpi_replay/VERBOSE] 2 Irecv 1 3000 0.000000
+> [Tremblay:0:(0) 0.000000] [smpi_replay/VERBOSE] 0 Irecv 2 3000 0.000000
+> [Jupiter:1:(0) 0.000000] [smpi_replay/VERBOSE] 1 Isend 2 3000 0.000000
+> [Jupiter:1:(0) 0.000000] [smpi_replay/VERBOSE] 1 waitAll 0.000000
+> [Fafard:2:(0) 0.000000] [smpi_replay/VERBOSE] 2 Isend 0 3000 0.000000
+> [Tremblay:0:(0) 0.003787] [smpi_replay/VERBOSE] 0 waitAll 0.003787
+> [Fafard:2:(0) 0.006220] [smpi_replay/VERBOSE] 2 waitAll 0.006220
+> [Fafard:2:(0) 0.006220] [smpi_replay/INFO] Simulation time 0.00622039
+
+$ rm -f replay/one_trace
index f48b710..7e02849 100644 (file)
@@ -4,26 +4,26 @@
 
 p Test instrumentation of SMPI
 $ ../../bin/smpirun -trace -trace-resource -trace-file smpi_traced.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../msg/tracing/platform.xml -np 3 ./smpi_traced
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_traced.trace'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 
 p Another SMPI test
 $ ../../bin/smpirun -trace -trace-resource -trace-file smpi_traced.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../msg/tracing/platform.xml -np 3 ./smpi_traced_simple
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_traced.trace'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 
 p Testing without trace parameters
@@ -35,20 +35,17 @@ $ ../../bin/smpirun -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../ms
 
 p Testing grouped tracing
 $ ../../bin/smpirun -trace -trace-grouped -trace-file smpi_traced.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../msg/tracing/platform.xml -np 3 ./smpi_traced_simple
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_traced.trace'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/group' to '1'
-> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
-
-p Testing generation of viva configuration files
-$ ../../bin/smpirun -trace -trace-resource -trace-viva -trace-file smpi_traced.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../msg/tracing/platform.xml -np 3 ./smpi_traced_simple
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+
+p Testing generation of viva configuration files
+$ ../../bin/smpirun -trace -trace-resource -trace-viva -trace-file smpi_traced.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../msg/tracing/platform.xml --cfg=smpi/cpu_threshold:1 -np 3 ./smpi_traced_simple
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_traced.trace'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to '1'
@@ -56,6 +53,10 @@ $ ../../bin/smpirun -trace -trace-resource -trace-viva -trace-file smpi_traced.t
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/categorized' to 'smpi_cat.plist'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'smpi_uncat.plist'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 > [0.013981] [instr_config/INFO] No categories declared, ignoring generation of viva graph configuration
 
index cf50969..aab5e22 100644 (file)
@@ -52,7 +52,7 @@ typedef struct msg_host_priv {
 } s_msg_host_priv_t, *msg_host_priv_t;
 
 static inline msg_host_priv_t MSG_host_priv(msg_host_t host){
-  return xbt_lib_get_level(host, MSG_HOST_LEVEL);
+  return (msg_host_priv_t )xbt_lib_get_level(host, MSG_HOST_LEVEL);
 }
 
 
@@ -88,7 +88,6 @@ static inline msg_vm_priv_t MSG_vm_priv(msg_vm_t vm){
   return xbt_lib_get_level(vm, MSG_HOST_LEVEL);
 }
 
-
 /* ******************************** File ************************************ */
 typedef struct simdata_file *simdata_file_t;
 
index 885f7ef..a739ece 100644 (file)
@@ -43,16 +43,16 @@ XBT_PUBLIC(void) MSG_config(const char *key, const char *value);
  *
  *  We allow to link against compiled versions that differ in the patch level.
  */
-#define MSG_init(argc,argv)  {                      \
-         int ver_major,ver_minor,ver_patch;              \
-         sg_version(&ver_major,&ver_minor,&ver_patch);   \
-         if ((ver_major != SIMGRID_VERSION_MAJOR) ||     \
-             (ver_minor != SIMGRID_VERSION_MINOR)) {     \
-           fprintf(stderr,"FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, and then linked against SimGrid %d.%d.%d. Please fix this.\n", \
-               SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH,ver_major,ver_minor,ver_patch);                          \
-         }                                               \
-         MSG_init_nocheck(argc,argv);                    \
-       }
+#define MSG_init(argc,argv)  {                                          \
+    int ver_major,ver_minor,ver_patch;                                  \
+    sg_version(&ver_major,&ver_minor,&ver_patch);                       \
+    if ((ver_major != SIMGRID_VERSION_MAJOR) ||                         \
+        (ver_minor != SIMGRID_VERSION_MINOR)) {                         \
+      fprintf(stderr,"FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, and then linked against SimGrid %d.%d.%d. Please fix this.\n", \
+              SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH,ver_major,ver_minor,ver_patch); \
+    }                                                                   \
+    MSG_init_nocheck(argc,argv);                                        \
+  }
 
 XBT_PUBLIC(void) MSG_init_nocheck(int *argc, char **argv);
 XBT_PUBLIC(msg_error_t) MSG_main(void);
@@ -195,6 +195,8 @@ XBT_PUBLIC(msg_error_t) MSG_task_destroy(msg_task_t task);
 
 XBT_PUBLIC(msg_error_t) MSG_task_receive_from_host(msg_task_t * task, const char *alias,
                                        msg_host_t host);
+XBT_PUBLIC(msg_error_t) MSG_task_receive_from_host_bounded(msg_task_t * task, const char *alias,
+                                       msg_host_t host, double rate);
 
 XBT_PUBLIC(msg_error_t) MSG_task_execute(msg_task_t task);
 XBT_PUBLIC(msg_error_t) MSG_parallel_task_execute(msg_task_t task);
@@ -206,7 +208,7 @@ XBT_PUBLIC(double) MSG_task_get_compute_duration(msg_task_t task);
 XBT_PUBLIC(void) MSG_task_set_compute_duration(msg_task_t task,
                                                double compute_duration);
 XBT_PUBLIC(void) MSG_task_set_data_size(msg_task_t task,
-                                              double data_size);
+                                        double data_size);
 
 XBT_PUBLIC(double) MSG_task_get_remaining_computation(msg_task_t task);
 XBT_PUBLIC(double) MSG_task_get_remaining_communication(msg_task_t task);
@@ -226,6 +228,20 @@ XBT_PUBLIC(msg_error_t)
     MSG_task_receive(msg_task_t * task, const char *alias);
 #define MSG_task_recv(t,a) MSG_task_receive(t,a)
 
+
+
+XBT_PUBLIC(msg_error_t)
+    MSG_task_receive_ext_bounded(msg_task_t * task, const char *alias, double timeout,
+                     msg_host_t host, double rate);
+
+XBT_PUBLIC(msg_error_t)
+    MSG_task_receive_with_timeout_bounded(msg_task_t * task, const char *alias,
+                              double timeout, double rate);
+
+XBT_PUBLIC(msg_error_t)
+    MSG_task_receive_bounded(msg_task_t * task, const char *alias,double rate);
+#define MSG_task_recv_bounded(t,a,r) MSG_task_receive_bounded(t,a,r)
+
 XBT_PUBLIC(msg_comm_t) MSG_task_isend(msg_task_t task, const char *alias);
 XBT_PUBLIC(msg_comm_t) MSG_task_isend_bounded(msg_task_t task, const char *alias, double maxrate);
 XBT_PUBLIC(msg_comm_t) MSG_task_isend_with_matching(msg_task_t task,
@@ -236,6 +252,7 @@ XBT_PUBLIC(msg_comm_t) MSG_task_isend_with_matching(msg_task_t task,
 XBT_PUBLIC(void) MSG_task_dsend(msg_task_t task, const char *alias, void_f_pvoid_t cleanup);
 XBT_PUBLIC(void) MSG_task_dsend_bounded(msg_task_t task, const char *alias, void_f_pvoid_t cleanup, double maxrate);
 XBT_PUBLIC(msg_comm_t) MSG_task_irecv(msg_task_t * task, const char *alias);
+XBT_PUBLIC(msg_comm_t) MSG_task_irecv_bounded(msg_task_t * task, const char *alias, double rate);
 XBT_PUBLIC(int) MSG_comm_test(msg_comm_t comm);
 XBT_PUBLIC(int) MSG_comm_testany(xbt_dynar_t comms);
 XBT_PUBLIC(void) MSG_comm_destroy(msg_comm_t comm);
@@ -254,7 +271,7 @@ XBT_PUBLIC(int) MSG_task_listen_from_host(const char *alias,
 XBT_PUBLIC(msg_error_t)
     MSG_task_send_with_timeout(msg_task_t task, const char *alias,
                            double timeout);
-    
+
 XBT_PUBLIC(msg_error_t)
     MSG_task_send_with_timeout_bounded(msg_task_t task, const char *alias,
                            double timeout, double maxrate);
@@ -275,6 +292,10 @@ XBT_PUBLIC(msg_error_t)
     MSG_mailbox_get_task_ext(msg_mailbox_t mailbox, msg_task_t * task,
                          msg_host_t host, double timeout);
 
+XBT_PUBLIC(msg_error_t)
+    MSG_mailbox_get_task_ext_bounded(msg_mailbox_t mailbox, msg_task_t *task,
+                                     msg_host_t host, double timeout, double rate);
+
 XBT_PUBLIC(msg_error_t)
     MSG_mailbox_put_with_timeout(msg_mailbox_t mailbox, msg_task_t task,
                              double timeout);
index fca2ef2..7beb631 100644 (file)
@@ -167,12 +167,6 @@ extern char* smx_context_factory_name;
 extern int smx_context_stack_size;
 extern int smx_context_stack_size_was_set;
 
-#ifdef HAVE_THREAD_LOCAL_STORAGE
-extern __thread smx_context_t smx_current_context;
-#else
-extern smx_context_t smx_current_context;
-#endif
-
 /* *********************** */
 /* Context type definition */
 /* *********************** */
@@ -283,7 +277,6 @@ XBT_PUBLIC(void) SIMIX_process_on_exit(smx_process_t process, int_f_pvoid_t fun,
 XBT_PUBLIC(void) SIMIX_comm_set_copy_data_callback(void (*callback) (smx_action_t, void*, size_t));
 XBT_PUBLIC(void) SIMIX_comm_copy_pointer_callback(smx_action_t comm, void* buff, size_t buff_size);
 XBT_PUBLIC(void) SIMIX_comm_copy_buffer_callback(smx_action_t comm, void* buff, size_t buff_size);
-XBT_PUBLIC(void) smpi_comm_copy_data_callback(smx_action_t comm, void* buff, size_t buff_size);
 
 XBT_PUBLIC(smx_action_t) SIMIX_comm_get_send_match(smx_rdv_t rdv, int (*match_fun)(void*, void*), void* data);
 XBT_PUBLIC(int) SIMIX_comm_has_send_match(smx_rdv_t rdv, int (*match_fun)(void*, void*), void* data);
@@ -299,7 +292,6 @@ XBT_PUBLIC(void) SIMIX_comm_finish(smx_action_t action);
 
 /******************************* Host simcalls ********************************/
 /* TODO use handlers and keep smx_host_t hidden from higher levels */
-XBT_PUBLIC(xbt_dict_t) simcall_host_get_dict(void);
 XBT_PUBLIC(smx_host_t) simcall_host_get_by_name(const char *name);
 XBT_PUBLIC(const char *) simcall_host_get_name(smx_host_t host);
 XBT_PUBLIC(xbt_dict_t) simcall_host_get_properties(smx_host_t host);
@@ -416,6 +408,16 @@ XBT_PUBLIC(smx_action_t) simcall_comm_irecv(smx_rdv_t rdv, void *dst_buff,
                                               int (*match_fun)(void *, void *, smx_action_t),
                                               void *data);
 
+XBT_PUBLIC(void) simcall_comm_recv_bounded(smx_rdv_t rdv, void *dst_buff,
+                                     size_t * dst_buff_size,
+                                     int (*match_fun)(void *, void *, smx_action_t),
+                                     void *data, double timeout, double rate);
+
+XBT_PUBLIC(smx_action_t) simcall_comm_irecv_bounded(smx_rdv_t rdv, void *dst_buff,
+                                              size_t * dst_buff_size,
+                                              int (*match_fun)(void *, void *, smx_action_t),
+                                              void *data, double rate);
+
 XBT_PUBLIC(void) simcall_comm_destroy(smx_action_t comm);
 XBT_PUBLIC(smx_action_t) simcall_comm_iprobe(smx_rdv_t rdv, int src, int tag,
                                 int (*match_fun)(void *, void *, smx_action_t), void *data);
@@ -464,13 +466,10 @@ XBT_PUBLIC(void) simcall_cond_broadcast(smx_cond_t cond);
 XBT_PUBLIC(smx_sem_t) simcall_sem_init(int capacity);
 XBT_PUBLIC(void) simcall_sem_destroy(smx_sem_t sem);
 XBT_PUBLIC(void) simcall_sem_release(smx_sem_t sem);
-XBT_PUBLIC(void) simcall_sem_release_forever(smx_sem_t sem);
 XBT_PUBLIC(int) simcall_sem_would_block(smx_sem_t sem);
-XBT_PUBLIC(void) simcall_sem_block_onto(smx_sem_t sem);
 XBT_PUBLIC(void) simcall_sem_acquire(smx_sem_t sem);
 XBT_PUBLIC(void) simcall_sem_acquire_timeout(smx_sem_t sem,
                                            double max_duration);
-XBT_PUBLIC(unsigned int) simcall_sem_acquire_any(xbt_dynar_t sems);
 XBT_PUBLIC(int) simcall_sem_get_capacity(smx_sem_t sem);
 
 XBT_PUBLIC(double) simcall_file_read(void* ptr, size_t size, size_t nmemb, smx_file_t stream);
index de9e3f1..be5c24d 100644 (file)
@@ -71,21 +71,11 @@ XBT_PUBLIC_DATA(xbt_dynar_t) sg_cmdline;
 #cmakedefine HAVE_MMAP @HAVE_MMAP@
 
 /* Get the config */
-#undef SIMGRID_NEED_GETLINE
 #undef SIMGRID_NEED_ASPRINTF
 #undef SIMGRID_NEED_VASPRINTF
-@need_getline@
 @simgrid_need_asprintf@
 @simgrid_need_vasprintf@
 
-#include <stdio.h>  /* FILE, getline if it exists  */
-
-/* Use that config to declare missing elements */
-#ifdef SIMGRID_NEED_GETLINE
-#include <stdlib.h> /* size_t */
-XBT_PUBLIC(long) getline(char **lineptr, size_t * n, FILE * stream);
-#endif
-
 #include <stdarg.h>
 
 /* snprintf related functions */
index 5ab2199..08874c7 100644 (file)
@@ -1,6 +1,6 @@
-#define main smpi_simulated_main__(int argc, char **argv);\
+#define main smpi_windows_main__(int argc, char **argv);\
 int main(int argc, char **argv){\
-MAIN__(&smpi_simulated_main__,&argc,argv);\
+smpi_main(&smpi_windows_main__,argc,argv);\
 return 0;\
 }\
-int smpi_simulated_main__
+int smpi_windows_main__
index 47e90bb..00bea13 100644 (file)
@@ -2,8 +2,8 @@
  *
  * This program was generated with the FleXML XML processor generator.
  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
- * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
- * (Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp).
+ * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
+ * (1.9.6).
  * 
  * There are two, intertwined parts to this program, part A and part B.
  *
@@ -12,7 +12,7 @@
  * 
  * Some parts, here collectively called "Part A", are found in the 
  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
- * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
+ * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
  *
  * You can redistribute, use, perform, display and/or modify "Part A"
  * provided the following two conditions hold:
 #define _FLEXML_simgrid_H
 
 /* XML application entry points. */
-XBT_PUBLIC(void ) STag_surfxml_platform(void);
-XBT_PUBLIC(void ) ETag_surfxml_platform(void);
-XBT_PUBLIC(void ) STag_surfxml_include(void);
-XBT_PUBLIC(void ) ETag_surfxml_include(void);
-XBT_PUBLIC(void ) STag_surfxml_trace(void);
-XBT_PUBLIC(void ) ETag_surfxml_trace(void);
-XBT_PUBLIC(void ) STag_surfxml_random(void);
-XBT_PUBLIC(void ) ETag_surfxml_random(void);
-XBT_PUBLIC(void ) STag_surfxml_trace___connect(void);
-XBT_PUBLIC(void ) ETag_surfxml_trace___connect(void);
-XBT_PUBLIC(void ) STag_surfxml_AS(void);
-XBT_PUBLIC(void ) ETag_surfxml_AS(void);
-XBT_PUBLIC(void ) STag_surfxml_storage___type(void);
-XBT_PUBLIC(void ) ETag_surfxml_storage___type(void);
-XBT_PUBLIC(void ) STag_surfxml_storage(void);
-XBT_PUBLIC(void ) ETag_surfxml_storage(void);
-XBT_PUBLIC(void ) STag_surfxml_mount(void);
-XBT_PUBLIC(void ) ETag_surfxml_mount(void);
-XBT_PUBLIC(void ) STag_surfxml_mstorage(void);
-XBT_PUBLIC(void ) ETag_surfxml_mstorage(void);
-XBT_PUBLIC(void ) STag_surfxml_host(void);
-XBT_PUBLIC(void ) ETag_surfxml_host(void);
-XBT_PUBLIC(void ) STag_surfxml_gpu(void);
-XBT_PUBLIC(void ) ETag_surfxml_gpu(void);
-XBT_PUBLIC(void ) STag_surfxml_host___link(void);
-XBT_PUBLIC(void ) ETag_surfxml_host___link(void);
-XBT_PUBLIC(void ) STag_surfxml_cluster(void);
-XBT_PUBLIC(void ) ETag_surfxml_cluster(void);
-XBT_PUBLIC(void ) STag_surfxml_cabinet(void);
-XBT_PUBLIC(void ) ETag_surfxml_cabinet(void);
-XBT_PUBLIC(void ) STag_surfxml_peer(void);
-XBT_PUBLIC(void ) ETag_surfxml_peer(void);
-XBT_PUBLIC(void ) STag_surfxml_router(void);
-XBT_PUBLIC(void ) ETag_surfxml_router(void);
-XBT_PUBLIC(void ) STag_surfxml_backbone(void);
-XBT_PUBLIC(void ) ETag_surfxml_backbone(void);
-XBT_PUBLIC(void ) STag_surfxml_link(void);
-XBT_PUBLIC(void ) ETag_surfxml_link(void);
-XBT_PUBLIC(void ) STag_surfxml_route(void);
-XBT_PUBLIC(void ) ETag_surfxml_route(void);
-XBT_PUBLIC(void ) STag_surfxml_ASroute(void);
-XBT_PUBLIC(void ) ETag_surfxml_ASroute(void);
-XBT_PUBLIC(void ) STag_surfxml_link___ctn(void);
-XBT_PUBLIC(void ) ETag_surfxml_link___ctn(void);
-XBT_PUBLIC(void ) STag_surfxml_bypassRoute(void);
-XBT_PUBLIC(void ) ETag_surfxml_bypassRoute(void);
-XBT_PUBLIC(void ) STag_surfxml_bypassASroute(void);
-XBT_PUBLIC(void ) ETag_surfxml_bypassASroute(void);
-XBT_PUBLIC(void ) STag_surfxml_process(void);
-XBT_PUBLIC(void ) ETag_surfxml_process(void);
-XBT_PUBLIC(void ) STag_surfxml_argument(void);
-XBT_PUBLIC(void ) ETag_surfxml_argument(void);
-XBT_PUBLIC(void ) STag_surfxml_config(void);
-XBT_PUBLIC(void ) ETag_surfxml_config(void);
-XBT_PUBLIC(void ) STag_surfxml_prop(void);
-XBT_PUBLIC(void ) ETag_surfxml_prop(void);
+XBT_PUBLIC(void) STag_surfxml_platform(void);
+XBT_PUBLIC(void) ETag_surfxml_platform(void);
+XBT_PUBLIC(void) STag_surfxml_include(void);
+XBT_PUBLIC(void) ETag_surfxml_include(void);
+XBT_PUBLIC(void) STag_surfxml_trace(void);
+XBT_PUBLIC(void) ETag_surfxml_trace(void);
+XBT_PUBLIC(void) STag_surfxml_random(void);
+XBT_PUBLIC(void) ETag_surfxml_random(void);
+XBT_PUBLIC(void) STag_surfxml_trace___connect(void);
+XBT_PUBLIC(void) ETag_surfxml_trace___connect(void);
+XBT_PUBLIC(void) STag_surfxml_AS(void);
+XBT_PUBLIC(void) ETag_surfxml_AS(void);
+XBT_PUBLIC(void) STag_surfxml_storage___type(void);
+XBT_PUBLIC(void) ETag_surfxml_storage___type(void);
+XBT_PUBLIC(void) STag_surfxml_storage(void);
+XBT_PUBLIC(void) ETag_surfxml_storage(void);
+XBT_PUBLIC(void) STag_surfxml_mount(void);
+XBT_PUBLIC(void) ETag_surfxml_mount(void);
+XBT_PUBLIC(void) STag_surfxml_mstorage(void);
+XBT_PUBLIC(void) ETag_surfxml_mstorage(void);
+XBT_PUBLIC(void) STag_surfxml_host(void);
+XBT_PUBLIC(void) ETag_surfxml_host(void);
+XBT_PUBLIC(void) STag_surfxml_gpu(void);
+XBT_PUBLIC(void) ETag_surfxml_gpu(void);
+XBT_PUBLIC(void) STag_surfxml_host___link(void);
+XBT_PUBLIC(void) ETag_surfxml_host___link(void);
+XBT_PUBLIC(void) STag_surfxml_cluster(void);
+XBT_PUBLIC(void) ETag_surfxml_cluster(void);
+XBT_PUBLIC(void) STag_surfxml_cabinet(void);
+XBT_PUBLIC(void) ETag_surfxml_cabinet(void);
+XBT_PUBLIC(void) STag_surfxml_peer(void);
+XBT_PUBLIC(void) ETag_surfxml_peer(void);
+XBT_PUBLIC(void) STag_surfxml_router(void);
+XBT_PUBLIC(void) ETag_surfxml_router(void);
+XBT_PUBLIC(void) STag_surfxml_backbone(void);
+XBT_PUBLIC(void) ETag_surfxml_backbone(void);
+XBT_PUBLIC(void) STag_surfxml_link(void);
+XBT_PUBLIC(void) ETag_surfxml_link(void);
+XBT_PUBLIC(void) STag_surfxml_route(void);
+XBT_PUBLIC(void) ETag_surfxml_route(void);
+XBT_PUBLIC(void) STag_surfxml_ASroute(void);
+XBT_PUBLIC(void) ETag_surfxml_ASroute(void);
+XBT_PUBLIC(void) STag_surfxml_link___ctn(void);
+XBT_PUBLIC(void) ETag_surfxml_link___ctn(void);
+XBT_PUBLIC(void) STag_surfxml_bypassRoute(void);
+XBT_PUBLIC(void) ETag_surfxml_bypassRoute(void);
+XBT_PUBLIC(void) STag_surfxml_bypassASroute(void);
+XBT_PUBLIC(void) ETag_surfxml_bypassASroute(void);
+XBT_PUBLIC(void) STag_surfxml_process(void);
+XBT_PUBLIC(void) ETag_surfxml_process(void);
+XBT_PUBLIC(void) STag_surfxml_argument(void);
+XBT_PUBLIC(void) ETag_surfxml_argument(void);
+XBT_PUBLIC(void) STag_surfxml_config(void);
+XBT_PUBLIC(void) ETag_surfxml_config(void);
+XBT_PUBLIC(void) STag_surfxml_prop(void);
+XBT_PUBLIC(void) ETag_surfxml_prop(void);
 
 /* XML application data. */
 typedef int AT_surfxml_mount_name;
@@ -314,342 +314,342 @@ typedef int AT_surfxml_platform_version;
 #define AU_surfxml_platform_version NULL
 
 /* FleXML-provided data. */
-XBT_PUBLIC_DATA(int ) surfxml_pcdata_ix;
+XBT_PUBLIC_DATA(int) surfxml_pcdata_ix;
 XBT_PUBLIC_DATA(char *) surfxml_bufferstack;
 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
-XBT_PUBLIC_DATA(AT_surfxml_mount_name ) AX_surfxml_mount_name;
+XBT_PUBLIC_DATA(AT_surfxml_mount_name) AX_surfxml_mount_name;
 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
-XBT_PUBLIC_DATA(short ) int surfxml_mount_name_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_generator ) AX_surfxml_random_generator;
+XBT_PUBLIC_DATA(short int) surfxml_mount_name_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_generator) AX_surfxml_random_generator;
 #define A_surfxml_random_generator AX_surfxml_random_generator
-XBT_PUBLIC_DATA(short ) int surfxml_random_generator_isset;
-XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___dst ) AX_surfxml_ASroute_gw___dst;
+XBT_PUBLIC_DATA(short int) surfxml_random_generator_isset;
+XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___dst) AX_surfxml_ASroute_gw___dst;
 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
-XBT_PUBLIC_DATA(short ) int surfxml_ASroute_gw___dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace___connect_element ) AX_surfxml_trace___connect_element;
+XBT_PUBLIC_DATA(short int) surfxml_ASroute_gw___dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace___connect_element) AX_surfxml_trace___connect_element;
 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
-XBT_PUBLIC_DATA(short ) int surfxml_trace___connect_element_isset;
-XBT_PUBLIC_DATA(AT_surfxml_prop_id ) AX_surfxml_prop_id;
+XBT_PUBLIC_DATA(short int) surfxml_trace___connect_element_isset;
+XBT_PUBLIC_DATA(AT_surfxml_prop_id) AX_surfxml_prop_id;
 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
-XBT_PUBLIC_DATA(short ) int surfxml_prop_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host___link_up ) AX_surfxml_host___link_up;
+XBT_PUBLIC_DATA(short int) surfxml_prop_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host___link_up) AX_surfxml_host___link_up;
 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
-XBT_PUBLIC_DATA(short ) int surfxml_host___link_up_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_id ) AX_surfxml_host_id;
+XBT_PUBLIC_DATA(short int) surfxml_host___link_up_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_id) AX_surfxml_host_id;
 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
-XBT_PUBLIC_DATA(short ) int surfxml_host_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_ASroute_symmetrical ) AX_surfxml_ASroute_symmetrical;
+XBT_PUBLIC_DATA(short int) surfxml_host_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_ASroute_symmetrical) AX_surfxml_ASroute_symmetrical;
 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
-XBT_PUBLIC_DATA(short ) int surfxml_ASroute_symmetrical_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_lat ) AX_surfxml_peer_lat;
+XBT_PUBLIC_DATA(short int) surfxml_ASroute_symmetrical_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_lat) AX_surfxml_peer_lat;
 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
-XBT_PUBLIC_DATA(short ) int surfxml_peer_lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_process_on___failure ) AX_surfxml_process_on___failure;
+XBT_PUBLIC_DATA(short int) surfxml_peer_lat_isset;
+XBT_PUBLIC_DATA(AT_surfxml_process_on___failure) AX_surfxml_process_on___failure;
 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
-XBT_PUBLIC_DATA(short ) int surfxml_process_on___failure_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_latency___file ) AX_surfxml_link_latency___file;
+XBT_PUBLIC_DATA(short int) surfxml_process_on___failure_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_latency___file) AX_surfxml_link_latency___file;
 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
-XBT_PUBLIC_DATA(short ) int surfxml_link_latency___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_availability___file ) AX_surfxml_peer_availability___file;
+XBT_PUBLIC_DATA(short int) surfxml_link_latency___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_availability___file) AX_surfxml_peer_availability___file;
 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
-XBT_PUBLIC_DATA(short ) int surfxml_peer_availability___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link___ctn_direction ) AX_surfxml_link___ctn_direction;
+XBT_PUBLIC_DATA(short int) surfxml_peer_availability___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link___ctn_direction) AX_surfxml_link___ctn_direction;
 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
-XBT_PUBLIC_DATA(short ) int surfxml_link___ctn_direction_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_state ) AX_surfxml_host_state;
+XBT_PUBLIC_DATA(short int) surfxml_link___ctn_direction_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_state) AX_surfxml_host_state;
 #define A_surfxml_host_state AX_surfxml_host_state
-XBT_PUBLIC_DATA(short ) int surfxml_host_state_isset;
-XBT_PUBLIC_DATA(AT_surfxml_AS_id ) AX_surfxml_AS_id;
+XBT_PUBLIC_DATA(short int) surfxml_host_state_isset;
+XBT_PUBLIC_DATA(AT_surfxml_AS_id) AX_surfxml_AS_id;
 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
-XBT_PUBLIC_DATA(short ) int surfxml_AS_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_power ) AX_surfxml_host_power;
+XBT_PUBLIC_DATA(short int) surfxml_AS_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_power) AX_surfxml_host_power;
 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
-XBT_PUBLIC_DATA(short ) int surfxml_host_power_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_suffix ) AX_surfxml_cabinet_suffix;
+XBT_PUBLIC_DATA(short int) surfxml_host_power_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_suffix) AX_surfxml_cabinet_suffix;
 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
-XBT_PUBLIC_DATA(short ) int surfxml_cabinet_suffix_isset;
-XBT_PUBLIC_DATA(AT_surfxml_gpu_name ) AX_surfxml_gpu_name;
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_suffix_isset;
+XBT_PUBLIC_DATA(AT_surfxml_gpu_name) AX_surfxml_gpu_name;
 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
-XBT_PUBLIC_DATA(short ) int surfxml_gpu_name_isset;
-XBT_PUBLIC_DATA(AT_surfxml_router_id ) AX_surfxml_router_id;
+XBT_PUBLIC_DATA(short int) surfxml_gpu_name_isset;
+XBT_PUBLIC_DATA(AT_surfxml_router_id) AX_surfxml_router_id;
 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
-XBT_PUBLIC_DATA(short ) int surfxml_router_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage___type_id ) AX_surfxml_storage___type_id;
+XBT_PUBLIC_DATA(short int) surfxml_router_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage___type_id) AX_surfxml_storage___type_id;
 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
-XBT_PUBLIC_DATA(short ) int surfxml_storage___type_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_process_start___time ) AX_surfxml_process_start___time;
+XBT_PUBLIC_DATA(short int) surfxml_storage___type_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_process_start___time) AX_surfxml_process_start___time;
 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
-XBT_PUBLIC_DATA(short ) int surfxml_process_start___time_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_bw ) AX_surfxml_cabinet_bw;
+XBT_PUBLIC_DATA(short int) surfxml_process_start___time_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_bw) AX_surfxml_cabinet_bw;
 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
-XBT_PUBLIC_DATA(short ) int surfxml_cabinet_bw_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_suffix ) AX_surfxml_cluster_suffix;
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_bw_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_suffix) AX_surfxml_cluster_suffix;
 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_suffix_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_dst ) AX_surfxml_bypassASroute_dst;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_suffix_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_dst) AX_surfxml_bypassASroute_dst;
 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
-XBT_PUBLIC_DATA(short ) int surfxml_bypassASroute_dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host___link_id ) AX_surfxml_host___link_id;
+XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host___link_id) AX_surfxml_host___link_id;
 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
-XBT_PUBLIC_DATA(short ) int surfxml_host___link_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_ASroute_src ) AX_surfxml_ASroute_src;
+XBT_PUBLIC_DATA(short int) surfxml_host___link_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_ASroute_src) AX_surfxml_ASroute_src;
 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
-XBT_PUBLIC_DATA(short ) int surfxml_ASroute_src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_prefix ) AX_surfxml_cluster_prefix;
+XBT_PUBLIC_DATA(short int) surfxml_ASroute_src_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_prefix) AX_surfxml_cluster_prefix;
 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_prefix_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_prefix ) AX_surfxml_cabinet_prefix;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_prefix_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_prefix) AX_surfxml_cabinet_prefix;
 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
-XBT_PUBLIC_DATA(short ) int surfxml_cabinet_prefix_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace_file ) AX_surfxml_trace_file;
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_prefix_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace_file) AX_surfxml_trace_file;
 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
-XBT_PUBLIC_DATA(short ) int surfxml_trace_file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_sharing___policy ) AX_surfxml_link_sharing___policy;
+XBT_PUBLIC_DATA(short int) surfxml_trace_file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_sharing___policy) AX_surfxml_link_sharing___policy;
 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
-XBT_PUBLIC_DATA(short ) int surfxml_link_sharing___policy_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage_typeId ) AX_surfxml_storage_typeId;
+XBT_PUBLIC_DATA(short int) surfxml_link_sharing___policy_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage_typeId) AX_surfxml_storage_typeId;
 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
-XBT_PUBLIC_DATA(short ) int surfxml_storage_typeId_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_min ) AX_surfxml_random_min;
+XBT_PUBLIC_DATA(short int) surfxml_storage_typeId_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_min) AX_surfxml_random_min;
 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
-XBT_PUBLIC_DATA(short ) int surfxml_random_min_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link___ctn_id ) AX_surfxml_link___ctn_id;
+XBT_PUBLIC_DATA(short int) surfxml_random_min_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link___ctn_id) AX_surfxml_link___ctn_id;
 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
-XBT_PUBLIC_DATA(short ) int surfxml_link___ctn_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_bw___out ) AX_surfxml_peer_bw___out;
+XBT_PUBLIC_DATA(short int) surfxml_link___ctn_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_bw___out) AX_surfxml_peer_bw___out;
 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
-XBT_PUBLIC_DATA(short ) int surfxml_peer_bw___out_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_availability___file ) AX_surfxml_cluster_availability___file;
+XBT_PUBLIC_DATA(short int) surfxml_peer_bw___out_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_availability___file) AX_surfxml_cluster_availability___file;
 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_availability___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage_content ) AX_surfxml_storage_content;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_availability___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage_content) AX_surfxml_storage_content;
 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
-XBT_PUBLIC_DATA(short ) int surfxml_storage_content_isset;
-XBT_PUBLIC_DATA(AT_surfxml_process_kill___time ) AX_surfxml_process_kill___time;
+XBT_PUBLIC_DATA(short int) surfxml_storage_content_isset;
+XBT_PUBLIC_DATA(AT_surfxml_process_kill___time) AX_surfxml_process_kill___time;
 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
-XBT_PUBLIC_DATA(short ) int surfxml_process_kill___time_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___bw ) AX_surfxml_cluster_bb___bw;
+XBT_PUBLIC_DATA(short int) surfxml_process_kill___time_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___bw) AX_surfxml_cluster_bb___bw;
 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_bb___bw_isset;
-XBT_PUBLIC_DATA(AT_surfxml_argument_value ) AX_surfxml_argument_value;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___bw_isset;
+XBT_PUBLIC_DATA(AT_surfxml_argument_value) AX_surfxml_argument_value;
 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
-XBT_PUBLIC_DATA(short ) int surfxml_argument_value_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_state ) AX_surfxml_link_state;
+XBT_PUBLIC_DATA(short int) surfxml_argument_value_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_state) AX_surfxml_link_state;
 #define A_surfxml_link_state AX_surfxml_link_state
-XBT_PUBLIC_DATA(short ) int surfxml_link_state_isset;
-XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___src ) AX_surfxml_ASroute_gw___src;
+XBT_PUBLIC_DATA(short int) surfxml_link_state_isset;
+XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___src) AX_surfxml_ASroute_gw___src;
 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
-XBT_PUBLIC_DATA(short ) int surfxml_ASroute_gw___src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_AS_routing ) AX_surfxml_AS_routing;
+XBT_PUBLIC_DATA(short int) surfxml_ASroute_gw___src_isset;
+XBT_PUBLIC_DATA(AT_surfxml_AS_routing) AX_surfxml_AS_routing;
 #define A_surfxml_AS_routing AX_surfxml_AS_routing
-XBT_PUBLIC_DATA(short ) int surfxml_AS_routing_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth ) AX_surfxml_link_bandwidth;
+XBT_PUBLIC_DATA(short int) surfxml_AS_routing_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth) AX_surfxml_link_bandwidth;
 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
-XBT_PUBLIC_DATA(short ) int surfxml_link_bandwidth_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_id ) AX_surfxml_cluster_id;
+XBT_PUBLIC_DATA(short int) surfxml_link_bandwidth_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_id) AX_surfxml_cluster_id;
 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_bw___in ) AX_surfxml_peer_bw___in;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_bw___in) AX_surfxml_peer_bw___in;
 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
-XBT_PUBLIC_DATA(short ) int surfxml_peer_bw___in_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_mean ) AX_surfxml_random_mean;
+XBT_PUBLIC_DATA(short int) surfxml_peer_bw___in_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_mean) AX_surfxml_random_mean;
 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
-XBT_PUBLIC_DATA(short ) int surfxml_random_mean_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage___type_size ) AX_surfxml_storage___type_size;
+XBT_PUBLIC_DATA(short int) surfxml_random_mean_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage___type_size) AX_surfxml_storage___type_size;
 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
-XBT_PUBLIC_DATA(short ) int surfxml_storage___type_size_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___lat ) AX_surfxml_cluster_bb___lat;
+XBT_PUBLIC_DATA(short int) surfxml_storage___type_size_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___lat) AX_surfxml_cluster_bb___lat;
 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_bb___lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_latency ) AX_surfxml_link_latency;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___lat_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_latency) AX_surfxml_link_latency;
 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
-XBT_PUBLIC_DATA(short ) int surfxml_link_latency_isset;
-XBT_PUBLIC_DATA(AT_surfxml_backbone_bandwidth ) AX_surfxml_backbone_bandwidth;
+XBT_PUBLIC_DATA(short int) surfxml_link_latency_isset;
+XBT_PUBLIC_DATA(AT_surfxml_backbone_bandwidth) AX_surfxml_backbone_bandwidth;
 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
-XBT_PUBLIC_DATA(short ) int surfxml_backbone_bandwidth_isset;
-XBT_PUBLIC_DATA(AT_surfxml_backbone_id ) AX_surfxml_backbone_id;
+XBT_PUBLIC_DATA(short int) surfxml_backbone_bandwidth_isset;
+XBT_PUBLIC_DATA(AT_surfxml_backbone_id) AX_surfxml_backbone_id;
 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
-XBT_PUBLIC_DATA(short ) int surfxml_backbone_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace___connect_kind ) AX_surfxml_trace___connect_kind;
+XBT_PUBLIC_DATA(short int) surfxml_backbone_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace___connect_kind) AX_surfxml_trace___connect_kind;
 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
-XBT_PUBLIC_DATA(short ) int surfxml_trace___connect_kind_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_lat ) AX_surfxml_cabinet_lat;
+XBT_PUBLIC_DATA(short int) surfxml_trace___connect_kind_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_lat) AX_surfxml_cabinet_lat;
 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
-XBT_PUBLIC_DATA(short ) int surfxml_cabinet_lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_seed ) AX_surfxml_random_seed;
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_lat_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_seed) AX_surfxml_random_seed;
 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
-XBT_PUBLIC_DATA(short ) int surfxml_random_seed_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_state___file ) AX_surfxml_cluster_state___file;
+XBT_PUBLIC_DATA(short int) surfxml_random_seed_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_state___file) AX_surfxml_cluster_state___file;
 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_state___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth___file ) AX_surfxml_link_bandwidth___file;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_state___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth___file) AX_surfxml_link_bandwidth___file;
 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
-XBT_PUBLIC_DATA(short ) int surfxml_link_bandwidth___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage___type_content ) AX_surfxml_storage___type_content;
+XBT_PUBLIC_DATA(short int) surfxml_link_bandwidth___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage___type_content) AX_surfxml_storage___type_content;
 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
-XBT_PUBLIC_DATA(short ) int surfxml_storage___type_content_isset;
-XBT_PUBLIC_DATA(AT_surfxml_route_symmetrical ) AX_surfxml_route_symmetrical;
+XBT_PUBLIC_DATA(short int) surfxml_storage___type_content_isset;
+XBT_PUBLIC_DATA(AT_surfxml_route_symmetrical) AX_surfxml_route_symmetrical;
 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
-XBT_PUBLIC_DATA(short ) int surfxml_route_symmetrical_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_id ) AX_surfxml_random_id;
+XBT_PUBLIC_DATA(short int) surfxml_route_symmetrical_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_id) AX_surfxml_random_id;
 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
-XBT_PUBLIC_DATA(short ) int surfxml_random_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_mstorage_name ) AX_surfxml_mstorage_name;
+XBT_PUBLIC_DATA(short int) surfxml_random_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_mstorage_name) AX_surfxml_mstorage_name;
 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
-XBT_PUBLIC_DATA(short ) int surfxml_mstorage_name_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_max ) AX_surfxml_random_max;
+XBT_PUBLIC_DATA(short int) surfxml_mstorage_name_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_max) AX_surfxml_random_max;
 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
-XBT_PUBLIC_DATA(short ) int surfxml_random_max_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_id ) AX_surfxml_link_id;
+XBT_PUBLIC_DATA(short int) surfxml_random_max_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_id) AX_surfxml_link_id;
 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
-XBT_PUBLIC_DATA(short ) int surfxml_link_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_process_host ) AX_surfxml_process_host;
+XBT_PUBLIC_DATA(short int) surfxml_link_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_process_host) AX_surfxml_process_host;
 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
-XBT_PUBLIC_DATA(short ) int surfxml_process_host_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_id ) AX_surfxml_cabinet_id;
+XBT_PUBLIC_DATA(short int) surfxml_process_host_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_id) AX_surfxml_cabinet_id;
 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
-XBT_PUBLIC_DATA(short ) int surfxml_cabinet_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_availability___file ) AX_surfxml_host_availability___file;
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_availability___file) AX_surfxml_host_availability___file;
 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
-XBT_PUBLIC_DATA(short ) int surfxml_host_availability___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_lat ) AX_surfxml_cluster_lat;
+XBT_PUBLIC_DATA(short int) surfxml_host_availability___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_lat) AX_surfxml_cluster_lat;
 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_router_coordinates ) AX_surfxml_router_coordinates;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_lat_isset;
+XBT_PUBLIC_DATA(AT_surfxml_router_coordinates) AX_surfxml_router_coordinates;
 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
-XBT_PUBLIC_DATA(short ) int surfxml_router_coordinates_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace_periodicity ) AX_surfxml_trace_periodicity;
+XBT_PUBLIC_DATA(short int) surfxml_router_coordinates_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace_periodicity) AX_surfxml_trace_periodicity;
 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
-XBT_PUBLIC_DATA(short ) int surfxml_trace_periodicity_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___sharing___policy ) AX_surfxml_cluster_bb___sharing___policy;
+XBT_PUBLIC_DATA(short int) surfxml_trace_periodicity_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___sharing___policy) AX_surfxml_cluster_bb___sharing___policy;
 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_bb___sharing___policy_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_state___file ) AX_surfxml_peer_state___file;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___sharing___policy_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_state___file) AX_surfxml_peer_state___file;
 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
-XBT_PUBLIC_DATA(short ) int surfxml_peer_state___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_coordinates ) AX_surfxml_peer_coordinates;
+XBT_PUBLIC_DATA(short int) surfxml_peer_state___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_coordinates) AX_surfxml_peer_coordinates;
 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
-XBT_PUBLIC_DATA(short ) int surfxml_peer_coordinates_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_src ) AX_surfxml_bypassASroute_src;
+XBT_PUBLIC_DATA(short int) surfxml_peer_coordinates_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_src) AX_surfxml_bypassASroute_src;
 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
-XBT_PUBLIC_DATA(short ) int surfxml_bypassASroute_src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_prop_value ) AX_surfxml_prop_value;
+XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_src_isset;
+XBT_PUBLIC_DATA(AT_surfxml_prop_value) AX_surfxml_prop_value;
 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
-XBT_PUBLIC_DATA(short ) int surfxml_prop_value_isset;
-XBT_PUBLIC_DATA(AT_surfxml_mstorage_typeId ) AX_surfxml_mstorage_typeId;
+XBT_PUBLIC_DATA(short int) surfxml_prop_value_isset;
+XBT_PUBLIC_DATA(AT_surfxml_mstorage_typeId) AX_surfxml_mstorage_typeId;
 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
-XBT_PUBLIC_DATA(short ) int surfxml_mstorage_typeId_isset;
-XBT_PUBLIC_DATA(AT_surfxml_ASroute_dst ) AX_surfxml_ASroute_dst;
+XBT_PUBLIC_DATA(short int) surfxml_mstorage_typeId_isset;
+XBT_PUBLIC_DATA(AT_surfxml_ASroute_dst) AX_surfxml_ASroute_dst;
 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
-XBT_PUBLIC_DATA(short ) int surfxml_ASroute_dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_state___file ) AX_surfxml_link_state___file;
+XBT_PUBLIC_DATA(short int) surfxml_ASroute_dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_state___file) AX_surfxml_link_state___file;
 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
-XBT_PUBLIC_DATA(short ) int surfxml_link_state___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_radical ) AX_surfxml_random_radical;
+XBT_PUBLIC_DATA(short int) surfxml_link_state___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_radical) AX_surfxml_random_radical;
 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
-XBT_PUBLIC_DATA(short ) int surfxml_random_radical_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___src ) AX_surfxml_bypassASroute_gw___src;
+XBT_PUBLIC_DATA(short int) surfxml_random_radical_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___src) AX_surfxml_bypassASroute_gw___src;
 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
-XBT_PUBLIC_DATA(short ) int surfxml_bypassASroute_gw___src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace___connect_trace ) AX_surfxml_trace___connect_trace;
+XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_gw___src_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace___connect_trace) AX_surfxml_trace___connect_trace;
 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
-XBT_PUBLIC_DATA(short ) int surfxml_trace___connect_trace_isset;
-XBT_PUBLIC_DATA(AT_surfxml_mount_id ) AX_surfxml_mount_id;
+XBT_PUBLIC_DATA(short int) surfxml_trace___connect_trace_isset;
+XBT_PUBLIC_DATA(AT_surfxml_mount_id) AX_surfxml_mount_id;
 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
-XBT_PUBLIC_DATA(short ) int surfxml_mount_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_power ) AX_surfxml_cluster_power;
+XBT_PUBLIC_DATA(short int) surfxml_mount_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_power) AX_surfxml_cluster_power;
 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_power_isset;
-XBT_PUBLIC_DATA(AT_surfxml_process_function ) AX_surfxml_process_function;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_power_isset;
+XBT_PUBLIC_DATA(AT_surfxml_process_function) AX_surfxml_process_function;
 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
-XBT_PUBLIC_DATA(short ) int surfxml_process_function_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_id ) AX_surfxml_peer_id;
+XBT_PUBLIC_DATA(short int) surfxml_process_function_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_id) AX_surfxml_peer_id;
 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
-XBT_PUBLIC_DATA(short ) int surfxml_peer_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_router___id ) AX_surfxml_cluster_router___id;
+XBT_PUBLIC_DATA(short int) surfxml_peer_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_router___id) AX_surfxml_cluster_router___id;
 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_router___id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_radical ) AX_surfxml_cabinet_radical;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_router___id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_radical) AX_surfxml_cabinet_radical;
 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
-XBT_PUBLIC_DATA(short ) int surfxml_cabinet_radical_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_sharing___policy ) AX_surfxml_cluster_sharing___policy;
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_radical_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_sharing___policy) AX_surfxml_cluster_sharing___policy;
 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_sharing___policy_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_dst ) AX_surfxml_bypassRoute_dst;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_sharing___policy_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_dst) AX_surfxml_bypassRoute_dst;
 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
-XBT_PUBLIC_DATA(short ) int surfxml_bypassRoute_dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_power ) AX_surfxml_cabinet_power;
+XBT_PUBLIC_DATA(short int) surfxml_bypassRoute_dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_power) AX_surfxml_cabinet_power;
 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
-XBT_PUBLIC_DATA(short ) int surfxml_cabinet_power_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_core ) AX_surfxml_host_core;
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_power_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_core) AX_surfxml_host_core;
 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
-XBT_PUBLIC_DATA(short ) int surfxml_host_core_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage___type_model ) AX_surfxml_storage___type_model;
+XBT_PUBLIC_DATA(short int) surfxml_host_core_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage___type_model) AX_surfxml_storage___type_model;
 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
-XBT_PUBLIC_DATA(short ) int surfxml_storage___type_model_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_availability ) AX_surfxml_host_availability;
+XBT_PUBLIC_DATA(short int) surfxml_storage___type_model_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_availability) AX_surfxml_host_availability;
 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
-XBT_PUBLIC_DATA(short ) int surfxml_host_availability_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_src ) AX_surfxml_bypassRoute_src;
+XBT_PUBLIC_DATA(short int) surfxml_host_availability_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_src) AX_surfxml_bypassRoute_src;
 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
-XBT_PUBLIC_DATA(short ) int surfxml_bypassRoute_src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_backbone_latency ) AX_surfxml_backbone_latency;
+XBT_PUBLIC_DATA(short int) surfxml_bypassRoute_src_isset;
+XBT_PUBLIC_DATA(AT_surfxml_backbone_latency) AX_surfxml_backbone_latency;
 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
-XBT_PUBLIC_DATA(short ) int surfxml_backbone_latency_isset;
-XBT_PUBLIC_DATA(AT_surfxml_route_src ) AX_surfxml_route_src;
+XBT_PUBLIC_DATA(short int) surfxml_backbone_latency_isset;
+XBT_PUBLIC_DATA(AT_surfxml_route_src) AX_surfxml_route_src;
 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
-XBT_PUBLIC_DATA(short ) int surfxml_route_src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage_id ) AX_surfxml_storage_id;
+XBT_PUBLIC_DATA(short int) surfxml_route_src_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage_id) AX_surfxml_storage_id;
 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
-XBT_PUBLIC_DATA(short ) int surfxml_storage_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_coordinates ) AX_surfxml_host_coordinates;
+XBT_PUBLIC_DATA(short int) surfxml_storage_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_coordinates) AX_surfxml_host_coordinates;
 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
-XBT_PUBLIC_DATA(short ) int surfxml_host_coordinates_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace_id ) AX_surfxml_trace_id;
+XBT_PUBLIC_DATA(short int) surfxml_host_coordinates_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace_id) AX_surfxml_trace_id;
 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
-XBT_PUBLIC_DATA(short ) int surfxml_trace_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_power ) AX_surfxml_peer_power;
+XBT_PUBLIC_DATA(short int) surfxml_trace_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_power) AX_surfxml_peer_power;
 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
-XBT_PUBLIC_DATA(short ) int surfxml_peer_power_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_radical ) AX_surfxml_cluster_radical;
+XBT_PUBLIC_DATA(short int) surfxml_peer_power_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_radical) AX_surfxml_cluster_radical;
 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_radical_isset;
-XBT_PUBLIC_DATA(AT_surfxml_config_id ) AX_surfxml_config_id;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_radical_isset;
+XBT_PUBLIC_DATA(AT_surfxml_config_id) AX_surfxml_config_id;
 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
-XBT_PUBLIC_DATA(short ) int surfxml_config_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___dst ) AX_surfxml_bypassASroute_gw___dst;
+XBT_PUBLIC_DATA(short int) surfxml_config_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___dst) AX_surfxml_bypassASroute_gw___dst;
 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
-XBT_PUBLIC_DATA(short ) int surfxml_bypassASroute_gw___dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host___link_down ) AX_surfxml_host___link_down;
+XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_gw___dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host___link_down) AX_surfxml_host___link_down;
 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
-XBT_PUBLIC_DATA(short ) int surfxml_host___link_down_isset;
-XBT_PUBLIC_DATA(AT_surfxml_include_file ) AX_surfxml_include_file;
+XBT_PUBLIC_DATA(short int) surfxml_host___link_down_isset;
+XBT_PUBLIC_DATA(AT_surfxml_include_file) AX_surfxml_include_file;
 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
-XBT_PUBLIC_DATA(short ) int surfxml_include_file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_std___deviation ) AX_surfxml_random_std___deviation;
+XBT_PUBLIC_DATA(short int) surfxml_include_file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_std___deviation) AX_surfxml_random_std___deviation;
 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
-XBT_PUBLIC_DATA(short ) int surfxml_random_std___deviation_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_core ) AX_surfxml_cluster_core;
+XBT_PUBLIC_DATA(short int) surfxml_random_std___deviation_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_core) AX_surfxml_cluster_core;
 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_core_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_state___file ) AX_surfxml_host_state___file;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_core_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_state___file) AX_surfxml_host_state___file;
 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
-XBT_PUBLIC_DATA(short ) int surfxml_host_state___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_route_dst ) AX_surfxml_route_dst;
+XBT_PUBLIC_DATA(short int) surfxml_host_state___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_route_dst) AX_surfxml_route_dst;
 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
-XBT_PUBLIC_DATA(short ) int surfxml_route_dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_bw ) AX_surfxml_cluster_bw;
+XBT_PUBLIC_DATA(short int) surfxml_route_dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_bw) AX_surfxml_cluster_bw;
 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
-XBT_PUBLIC_DATA(short ) int surfxml_cluster_bw_isset;
-XBT_PUBLIC_DATA(AT_surfxml_platform_version ) AX_surfxml_platform_version;
+XBT_PUBLIC_DATA(short int) surfxml_cluster_bw_isset;
+XBT_PUBLIC_DATA(AT_surfxml_platform_version) AX_surfxml_platform_version;
 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
-XBT_PUBLIC_DATA(short ) int surfxml_platform_version_isset;
+XBT_PUBLIC_DATA(short int) surfxml_platform_version_isset;
 
 /* XML application utilities. */
-XBT_PUBLIC(int ) surfxml_element_context(int);
+XBT_PUBLIC(int) surfxml_element_context(int);
 
 /* XML processor entry point. */
-XBT_PUBLIC(int ) yylex(void);
+XBT_PUBLIC(int) yylex(void);
 
 /* Flexml error handling function (useful only when -q flag passed to flexml) */
 const char * surfxml_parse_err_msg(void);
index 1e710f4..4cf11cc 100644 (file)
@@ -52,6 +52,12 @@ SG_BEGIN_DECL()
   * \skip end_of_doxygen
   * \until }
   *
+  * Note that if you use dynars to store pointed data, the
+  * xbt_dynar_search(), xbt_dynar_search_or_negative() and
+  * xbt_dynar_member() won't be for you. Instead of comparing
+  * your pointed elements, they compare the pointer to them. See
+  * the documentation of xbt_dynar_search() for more info.
+  * 
   */
 /** @defgroup XBT_dynar_cons Dynar constructor and destructor
  *  @ingroup XBT_dynar
@@ -64,8 +70,6 @@ typedef struct xbt_dynar_s *xbt_dynar_t;
 
 XBT_PUBLIC(xbt_dynar_t) xbt_dynar_new(const unsigned long elm_size,
                                       void_f_pvoid_t const free_f);
-XBT_PUBLIC(xbt_dynar_t) xbt_dynar_new_sync(const unsigned long elm_size,
-                                           void_f_pvoid_t const free_f);
 XBT_PUBLIC(void) xbt_dynar_free(xbt_dynar_t * dynar);
 XBT_PUBLIC(void) xbt_dynar_free_voidp(void *dynar);
 XBT_PUBLIC(void) xbt_dynar_free_container(xbt_dynar_t * dynar);
@@ -200,19 +204,14 @@ XBT_PUBLIC(void *) xbt_dynar_pop_ptr(xbt_dynar_t const dynar);
  * DynArr during the traversal. To remove elements, use the
  * xbt_dynar_cursor_rm() function.
  *
- * Do not call these functions directly, but only the xbt_dynar_foreach macro.
- * 
- * For synchronized dynars, the dynar will be locked during the whole
- * loop and it will get unlocked automatically if you traverse all
- * elements. If you want to break the loop before the end, make sure
- * to call xbt_dynar_cursor_unlock() before the <tt>break;</tt>
+ * Do not call these function directly, but only within the xbt_dynar_foreach
+ * macro.
  *
  *  @{
  */
 
 XBT_PUBLIC(void) xbt_dynar_cursor_rm(xbt_dynar_t dynar,
                                      unsigned int *const cursor);
-XBT_PUBLIC(void) xbt_dynar_cursor_unlock(xbt_dynar_t dynar);
 
 /* do not use this structure internals directly, but use the public interface
  * This was made public to allow:
@@ -220,7 +219,6 @@ XBT_PUBLIC(void) xbt_dynar_cursor_unlock(xbt_dynar_t dynar);
  *  - sending such beasts over the network
  */
 
-#include "xbt/synchro_core.h"
 typedef struct xbt_dynar_s {
   unsigned long size;
   unsigned long used;
@@ -230,7 +228,7 @@ typedef struct xbt_dynar_s {
 } s_xbt_dynar_t;
 
 static XBT_INLINE void
-_xbt_dynar_cursor_first(const xbt_dynar_t dynar,
+_xbt_dynar_cursor_first(const xbt_dynar_t dynar _XBT_GNUC_UNUSED,
                         unsigned int *const cursor)
 {
   /* iterating over a NULL dynar is a no-op (but we don't want to have uninitialized counters) */
@@ -267,7 +265,7 @@ _xbt_dynar_cursor_get(const xbt_dynar_t dynar,
  *  @param _data
  *  @hideinitializer
  *
- * \note An example of usage:
+ * Here is an example of usage:
  * \code
 xbt_dynar_t dyn;
 unsigned int cpt;
@@ -276,6 +274,10 @@ xbt_dynar_foreach (dyn,cpt,str) {
   printf("Seen %s\n",str);
 }
 \endcode
+ * 
+ * Note that underneath, that's a simple for loop with no real black
+ * magic involved. It's perfectly safe to interrupt a foreach with a
+ * break or a return statement. 
  */
 #define xbt_dynar_foreach(_dynar,_cursor,_data) \
        for (_xbt_dynar_cursor_first(_dynar,&(_cursor))      ; \
index b101562..da2e6e8 100644 (file)
@@ -477,7 +477,7 @@ XBT_PUBLIC(void) xbt_ex_free(xbt_ex_t e);
 /** @brief Shows a backtrace of the current location */
 XBT_PUBLIC(void) xbt_backtrace_display_current(void);
 /** @brief reimplementation of glibc backtrace based directly on gcc library, without implicit malloc  */
-XBT_PUBLIC(int)xbt_backtrace_no_malloc(void**bt, int size);
+XBT_PUBLIC(int) xbt_backtrace_no_malloc(void**bt, int size);
 /** @brief Captures a backtrace for further use */
 XBT_PUBLIC(void) xbt_backtrace_current(xbt_ex_t * e);
 /** @brief Display a previously captured backtrace */
index 824144c..6c92508 100644 (file)
@@ -2,8 +2,8 @@
  *
  * This program was generated with the FleXML XML processor generator.
  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
- * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
- * (Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp).
+ * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
+ * (1.9.6).
  * 
  * There are two, intertwined parts to this program, part A and part B.
  *
@@ -12,7 +12,7 @@
  * 
  * Some parts, here collectively called "Part A", are found in the 
  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
- * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
+ * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
  *
  * You can redistribute, use, perform, display and/or modify "Part A"
  * provided the following two conditions hold:
 #define _FLEXML_graphxml_H
 
 /* XML application entry points. */
-XBT_PUBLIC(void ) STag_graphxml_graph(void);
-XBT_PUBLIC(void ) ETag_graphxml_graph(void);
-XBT_PUBLIC(void ) STag_graphxml_node(void);
-XBT_PUBLIC(void ) ETag_graphxml_node(void);
-XBT_PUBLIC(void ) STag_graphxml_edge(void);
-XBT_PUBLIC(void ) ETag_graphxml_edge(void);
+XBT_PUBLIC(void) STag_graphxml_graph(void);
+XBT_PUBLIC(void) ETag_graphxml_graph(void);
+XBT_PUBLIC(void) STag_graphxml_node(void);
+XBT_PUBLIC(void) ETag_graphxml_node(void);
+XBT_PUBLIC(void) STag_graphxml_edge(void);
+XBT_PUBLIC(void) ETag_graphxml_edge(void);
 
 /* XML application data. */
 typedef int AT_graphxml_node_name;
@@ -81,51 +81,51 @@ typedef int AT_graphxml_edge_name;
 #define AU_graphxml_edge_name NULL
 
 /* FleXML-provided data. */
-XBT_PUBLIC_DATA(int ) graphxml_pcdata_ix;
+XBT_PUBLIC_DATA(int) graphxml_pcdata_ix;
 XBT_PUBLIC_DATA(char *) graphxml_bufferstack;
 #define graphxml_pcdata (graphxml_bufferstack + graphxml_pcdata_ix)
-XBT_PUBLIC_DATA(AT_graphxml_node_name ) AX_graphxml_node_name;
+XBT_PUBLIC_DATA(AT_graphxml_node_name) AX_graphxml_node_name;
 #define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name)
-XBT_PUBLIC_DATA(short ) int graphxml_node_name_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_source ) AX_graphxml_edge_source;
+XBT_PUBLIC_DATA(short int) graphxml_node_name_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_source) AX_graphxml_edge_source;
 #define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source)
-XBT_PUBLIC_DATA(short ) int graphxml_edge_source_isset;
-XBT_PUBLIC_DATA(AT_graphxml_node_position___y ) AX_graphxml_node_position___y;
+XBT_PUBLIC_DATA(short int) graphxml_edge_source_isset;
+XBT_PUBLIC_DATA(AT_graphxml_node_position___y) AX_graphxml_node_position___y;
 #define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y)
-XBT_PUBLIC_DATA(short ) int graphxml_node_position___y_isset;
-XBT_PUBLIC_DATA(AT_graphxml_node_position___x ) AX_graphxml_node_position___x;
+XBT_PUBLIC_DATA(short int) graphxml_node_position___y_isset;
+XBT_PUBLIC_DATA(AT_graphxml_node_position___x) AX_graphxml_node_position___x;
 #define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x)
-XBT_PUBLIC_DATA(short ) int graphxml_node_position___x_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_data ) AX_graphxml_edge_data;
+XBT_PUBLIC_DATA(short int) graphxml_node_position___x_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_data) AX_graphxml_edge_data;
 #define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data)
-XBT_PUBLIC_DATA(short ) int graphxml_edge_data_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_target ) AX_graphxml_edge_target;
+XBT_PUBLIC_DATA(short int) graphxml_edge_data_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_target) AX_graphxml_edge_target;
 #define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target)
-XBT_PUBLIC_DATA(short ) int graphxml_edge_target_isset;
-XBT_PUBLIC_DATA(AT_graphxml_graph_isDirected ) AX_graphxml_graph_isDirected;
+XBT_PUBLIC_DATA(short int) graphxml_edge_target_isset;
+XBT_PUBLIC_DATA(AT_graphxml_graph_isDirected) AX_graphxml_graph_isDirected;
 #define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected
-XBT_PUBLIC_DATA(short ) int graphxml_graph_isDirected_isset;
-XBT_PUBLIC_DATA(AT_graphxml_node_label ) AX_graphxml_node_label;
+XBT_PUBLIC_DATA(short int) graphxml_graph_isDirected_isset;
+XBT_PUBLIC_DATA(AT_graphxml_node_label) AX_graphxml_node_label;
 #define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label)
-XBT_PUBLIC_DATA(short ) int graphxml_node_label_isset;
-XBT_PUBLIC_DATA(AT_graphxml_node_data ) AX_graphxml_node_data;
+XBT_PUBLIC_DATA(short int) graphxml_node_label_isset;
+XBT_PUBLIC_DATA(AT_graphxml_node_data) AX_graphxml_node_data;
 #define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data)
-XBT_PUBLIC_DATA(short ) int graphxml_node_data_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_label ) AX_graphxml_edge_label;
+XBT_PUBLIC_DATA(short int) graphxml_node_data_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_label) AX_graphxml_edge_label;
 #define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label)
-XBT_PUBLIC_DATA(short ) int graphxml_edge_label_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_length ) AX_graphxml_edge_length;
+XBT_PUBLIC_DATA(short int) graphxml_edge_label_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_length) AX_graphxml_edge_length;
 #define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length)
-XBT_PUBLIC_DATA(short ) int graphxml_edge_length_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_name ) AX_graphxml_edge_name;
+XBT_PUBLIC_DATA(short int) graphxml_edge_length_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_name) AX_graphxml_edge_name;
 #define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name)
-XBT_PUBLIC_DATA(short ) int graphxml_edge_name_isset;
+XBT_PUBLIC_DATA(short int) graphxml_edge_name_isset;
 
 /* XML application utilities. */
-XBT_PUBLIC(int ) graphxml_element_context(int);
+XBT_PUBLIC(int) graphxml_element_context(int);
 
 /* XML processor entry point. */
-XBT_PUBLIC(int ) yylex(void);
+XBT_PUBLIC(int) yylex(void);
 
 /* Flexml error handling function (useful only when -q flag passed to flexml) */
 const char * graphxml_parse_err_msg(void);
index c259bf6..5e254ea 100644 (file)
@@ -42,12 +42,6 @@ XBT_PUBLIC( void ) *mrealloc(xbt_mheap_t md, void *ptr, size_t size);
 /* Free a block allocated by `mmalloc', `mrealloc' or `mcalloc'.  */
 XBT_PUBLIC( void ) mfree(xbt_mheap_t md, void *ptr);
 
-/* Allocate SIZE bytes allocated to ALIGNMENT bytes.  */
-XBT_PUBLIC( void ) *mmemalign(xbt_mheap_t md, size_t alignment, size_t size);
-
-/* Allocate SIZE bytes on a page boundary.  */
-XBT_PUBLIC( void ) *mvalloc(xbt_mheap_t md, size_t size);
-
 XBT_PUBLIC( xbt_mheap_t ) xbt_mheap_new(int fd, void *baseaddr);
 
 XBT_PUBLIC( void ) xbt_mheap_destroy_no_free(xbt_mheap_t md);
@@ -61,11 +55,12 @@ XBT_PUBLIC( xbt_mheap_t ) mmalloc_get_default_md(void);
 void mmalloc_set_current_heap(xbt_mheap_t new_heap);
 xbt_mheap_t mmalloc_get_current_heap(void);
 
-int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stacks1, xbt_dynar_t *stacks2, xbt_dynar_t equals);
+int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2);
 int mmalloc_linear_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2);
-void init_heap_information(xbt_mheap_t heap1, xbt_mheap_t heap2);
-void match_equals(xbt_dynar_t list, xbt_dynar_t equals);
-int compare_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dynar_t equals);
+void init_heap_information(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t to_ignore1, xbt_dynar_t to_ignore2);
+void match_equals(xbt_dynar_t list);
+int compare_area(void *area1, void* area2, xbt_dynar_t previous);
+void reset_heap_information(void);
 
 void mmalloc_backtrace_block_display(void* heapinfo, int block);
 void mmalloc_backtrace_fragment_display(void* heapinfo, int block, int frag);
@@ -73,6 +68,6 @@ void mmalloc_backtrace_display(void *addr);
 
 int is_free_area(void *area, xbt_mheap_t heap);
 
-size_t mmalloc_get_chunks_used(xbt_mheap_t);
+size_t mmalloc_get_bytes_used(xbt_mheap_t);
 
 #endif                          /* MMALLOC_H */
index fb2bc39..cddd67d 100644 (file)
@@ -21,10 +21,15 @@ SG_BEGIN_DECL()
  *  @brief String manipulation functions
  *
  * This module defines several string related functions. We redefine some quite classical
- * functions on the platforms were they are not nativaly defined (such as getline() or
+ * functions on the platforms were they are not nativaly defined (such as xbt_getline() or
  * asprintf()), while some other are a bit more exotic.
  * @{
  */
+/* Our own implementation of getline, mainly useful on the platforms not enjoying this function */
+#include <stdio.h>  /* FILE */
+#include <stdlib.h> /* size_t, ssize_t */
+XBT_PUBLIC(ssize_t) xbt_getline(char **lineptr, size_t * n, FILE * stream);
+
 /* Trim related functions */
 XBT_PUBLIC(void) xbt_str_rtrim(char *s, const char *char_list);
 XBT_PUBLIC(void) xbt_str_ltrim(char *s, const char *char_list);
index afa9207..8eae773 100644 (file)
@@ -82,9 +82,6 @@ XBT_PUBLIC(void) xbt_mutex_acquire(xbt_mutex_t mutex);
 /** @brief Releases the given mutex variable */
 XBT_PUBLIC(void) xbt_mutex_release(xbt_mutex_t mutex);
 
-/** @brief Blocks onto the given mutex variable, but only for the given amount of time. a timeout exception is raised if it was impossible to acquire it in the given time frame */
-XBT_PUBLIC(void) xbt_mutex_timedacquire(xbt_mutex_t mutex, double delay);
-
 /** @brief Destroyes the given mutex variable */
 XBT_PUBLIC(void) xbt_mutex_destroy(xbt_mutex_t mutex);
 
index 1d8f1af..a4c652f 100644 (file)
@@ -19,21 +19,18 @@ SG_BEGIN_DECL()
 /* Get the PID of the current (simulated) process */
 XBT_PUBLIC_DATA(int_f_void_t) xbt_getpid;
 
-/* Current time */
-XBT_PUBLIC(double) xbt_time(void);
-
-    /* Get the name of the UNIX process englobing the world */
-    XBT_PUBLIC_DATA(char*) xbt_binary_name;
+/* Get the name of the UNIX process englobing the world */
+XBT_PUBLIC_DATA(char*) xbt_binary_name;
 
-    /** Contains all the parameters we got from the command line (including argv[0]) */
-    XBT_PUBLIC_DATA(xbt_dynar_t) xbt_cmdline;
+/** Contains all the parameters we got from the command line (including argv[0]) */
+XBT_PUBLIC_DATA(xbt_dynar_t) xbt_cmdline;
 
-    /**
    *
    * Time management functions, returns the system time or sleeps a process. They work both on the simulated and real systems(GRAS).
    */
-    XBT_PUBLIC(double) xbt_time(void);
-    XBT_PUBLIC(void) xbt_sleep(double sec);
+/**
+ *
* Time management functions, returns the system time or sleeps a process.
+ */
+XBT_PUBLIC(double) xbt_time(void);
+XBT_PUBLIC(void) xbt_sleep(double sec);
 
 
 SG_END_DECL()
diff --git a/simgrid-java/.gitignore b/simgrid-java/.gitignore
deleted file mode 100644 (file)
index 7cae982..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-*.tag
-Doxyfile
-footer.html
-doc/html
-*.class
-simgrid.jar
-libSG_java.so*
-build/
-*.dylib
-.project
-.cproject
-.classpath
-*~
\ No newline at end of file
diff --git a/simgrid-java/CMakeLists.txt b/simgrid-java/CMakeLists.txt
deleted file mode 100644 (file)
index 230d671..0000000
+++ /dev/null
@@ -1,614 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-project(SimGrid-Java C)
-set(UPDATE_TYPE svn)
-set(CMAKE_C_FLAGS "" CACHE TYPE INTERNAL FORCE)
-set(CMAKE_EXE_LINKER_FLAGS "" CACHE TYPE INTERNAL FORCE)
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/lib")
-set(soversion 1)
-
-set(SIMGRID_JAVA_VERSION_MAJOR "3")
-set(SIMGRID_JAVA_VERSION_MINOR "10")
-set(SIMGRID_JAVA_VERSION_PATCH "0")
-set(DIST_NAME ${PROJECT_NAME}-${SIMGRID_JAVA_VERSION_MAJOR}.${SIMGRID_JAVA_VERSION_MINOR}.${SIMGRID_JAVA_VERSION_PATCH})
-
-########
-## GCC #
-########
-exec_program("${CMAKE_C_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_C_VERSION")
-string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_C_VERSION "${COMPILER_C_VERSION}")
-string(REGEX MATCH "^[0-9].[0-9]" COMPILER_C_VERSION_MAJOR_MINOR "${COMPILER_C_VERSION}")
-string(REPLACE "${COMPILER_C_VERSION_MAJOR_MINOR}." "" COMPILER_C_VERSION_PATCH "${COMPILER_C_VERSION}")
-
-########
-## GIT #
-########
-if(EXISTS ${CMAKE_HOME_DIRECTORY}/.git/ AND NOT WIN32)
-  exec_program("git remote | head -n 1" OUTPUT_VARIABLE remote RETURN_VALUE ret)
-  exec_program("git config --get remote.${remote}.url" OUTPUT_VARIABLE url RETURN_VALUE ret)
-
-  if(url)
-    exec_program("git --git-dir=${CMAKE_HOME_DIRECTORY}/.git log --oneline -1" OUTPUT_VARIABLE "GIT_VERSION")
-    message(STATUS "Git version: ${GIT_VERSION}")
-    exec_program("git --git-dir=${CMAKE_HOME_DIRECTORY}/.git log -n 1 --format=%ai ." OUTPUT_VARIABLE "GIT_DATE")
-    message(STATUS "Git date: ${GIT_DATE}")
-    string(REGEX REPLACE " .*" "" GIT_VERSION "${GIT_VERSION}")
-    STRING(REPLACE " +0000" "" GIT_DATE ${GIT_DATE})
-    STRING(REPLACE " " "~" GIT_DATE ${GIT_DATE})
-    STRING(REPLACE ":" "-" GIT_DATE ${GIT_DATE})
-  endif(url)
-endif(EXISTS ${CMAKE_HOME_DIRECTORY}/.git/ AND NOT WIN32)
-
-#########
-# CDASH #
-#########
-SET(DROP_METHOD "http")
-SET(DROP_SITE "cdash.inria.fr/CDash")
-SET(DROP_LOCATION "/submit.php?project=simgrid")
-SET(DROP_SITE_CDASH TRUE)
-SET(TRIGGER_SITE "http://cdash.inria.fr/CDash/cgi-bin/Submit-Random-TestingResults.cgi")
-SET(BUILDNAME "SimGrid-Java" CACHE TYPE INTERNAL FORCE)
-set(osname ${CMAKE_SYSTEM_NAME})
-set(cpu ${CMAKE_SYSTEM_PROCESSOR})
-set(DISTRIB2 ${CMAKE_SYSTEM_VERSION})
-SET(SITE "${osname}_${DISTRIB2}_${cpu}")
-SET(CTEST_SITE "${osname}_${DISTRIB2}_${cpu}")
-SET(CTEST_PROJECT_NAME "${PROJECT_NAME}")
-SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE "3000000")
-SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE "3000000")
-set(PIPOL_IMAGE $ENV{PIPOL_IMAGE})
-if(NOT ${PIPOL_IMAGE} MATCHES "\n")
-set(SITE ${PIPOL_IMAGE})
-endif(NOT ${PIPOL_IMAGE} MATCHES "\n")
-message(STATUS "SITE        : ${SITE}")
-message(STATUS "BUILDNAME   : ${BUILDNAME}")
-
-###############################
-# Test the build dependencies #
-###############################
-include(FindSimGrid.cmake)
-include(FindJavaSG.cmake)
-
-# Check for option tracing in SimGrid
-include(CheckLibraryExists)
-CHECK_LIBRARY_EXISTS(${SIMGRID_LIB} TRACE_start "" HAVE_TRACING)
-if(NOT HAVE_TRACING)
-  message(STATUS "Warning: SimGrid-java must be linked with library Simgrid included trace option to enable tracing.")
-  message(STATUS "Warning: See http://simgrid.gforge.inria.fr/simgrid/3.8/doc/tracing.html to see how compile SimGrid library with this option.")
-endif(NOT HAVE_TRACING)
-
-###############################
-# Declare our package content #
-###############################
-set(JMSG_C_SRC
-  ${CMAKE_HOME_DIRECTORY}/src/smx_context_cojava.h
-  ${CMAKE_HOME_DIRECTORY}/src/smx_context_cojava.c
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_file.c
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_file.h
-  ${CMAKE_HOME_DIRECTORY}/src/smx_context_java.h
-  ${CMAKE_HOME_DIRECTORY}/src/smx_context_java.c
-  ${CMAKE_HOME_DIRECTORY}/src/jxbt_utilities.c
-  ${CMAKE_HOME_DIRECTORY}/src/jxbt_utilities.h
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg.c 
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg.h
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_comm.c
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_comm.h
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_host.c
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_host.h
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_process.c
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_process.h
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_task.c
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_task.h
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_synchro.c
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_synchro.h
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_rngstream.c
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_rngstream.h
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_vm.c
-  ${CMAKE_HOME_DIRECTORY}/src/jmsg_vm.h
-)
-
-set(JTRACE_C_SRC
-  ${CMAKE_HOME_DIRECTORY}/src/jtrace.c
-  ${CMAKE_HOME_DIRECTORY}/src/jtrace.h
-)      
-
-set(JMSG_JAVA_SRC
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Host.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/HostFailureException.java    
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/HostNotFoundException.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/File.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/JniException.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Msg.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/MsgException.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/NativeException.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Process.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/ProcessKilledError.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/ProcessNotFoundException.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Task.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/TaskCancelledException.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/TimeoutException.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/TransferFailureException.java        
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Mutex.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Comm.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/RngStream.java
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/VM.java
-)
-set(JTRACE_JAVA_SRC
-  ${CMAKE_HOME_DIRECTORY}/org/simgrid/trace/Trace.java
-)
-
-set(JAVA_EXAMPLES
-  ${CMAKE_HOME_DIRECTORY}/examples/async/AsyncTest.java
-  ${CMAKE_HOME_DIRECTORY}/examples/async/FinalizeTask.java  
-  ${CMAKE_HOME_DIRECTORY}/examples/async/Forwarder.java
-  ${CMAKE_HOME_DIRECTORY}/examples/async/Master.java  
-  ${CMAKE_HOME_DIRECTORY}/examples/async/Slave.java
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Bittorrent.java
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Common.java
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Connection.java
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/MessageTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Peer.java
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Tracker.java
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/TrackerTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/Chord.java
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/Common.java
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/Node.java
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/ChordTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/FindSuccessorAnswerTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/FindSuccessorTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/GetPredecessorAnswerTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/GetPredecessorTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/NotifyTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/cloud/Cloud.java
-  ${CMAKE_HOME_DIRECTORY}/examples/cloud/FinalizeTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/cloud/Master.java
-  ${CMAKE_HOME_DIRECTORY}/examples/cloud/Slave.java
-  ${CMAKE_HOME_DIRECTORY}/examples/commTime/FinalizeTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/commTime/Master.java
-  ${CMAKE_HOME_DIRECTORY}/examples/commTime/Slave.java
-  ${CMAKE_HOME_DIRECTORY}/examples/commTime/CommTimeTest.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Answer.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Bucket.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Common.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Contact.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Kademlia.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Node.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/RoutingTable.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/FindNodeAnswerTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/FindNodeTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/KademliaTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/PingAnswerTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/PingTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/io/IO.java
-  ${CMAKE_HOME_DIRECTORY}/examples/io/Node.java
-  ${CMAKE_HOME_DIRECTORY}/examples/masterslave/FinalizeTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/masterslave/Forwarder.java
-  ${CMAKE_HOME_DIRECTORY}/examples/masterslave/Master.java
-  ${CMAKE_HOME_DIRECTORY}/examples/masterslave/Masterslave.java
-  ${CMAKE_HOME_DIRECTORY}/examples/masterslave/Slave.java      
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/Master.java
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/MsBypass.java
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/Slave.java
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/FinalizeTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/Master.java
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/MsKill.java
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/Slave.java
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/FinalizeTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/migration/Emigrant.java
-  ${CMAKE_HOME_DIRECTORY}/examples/migration/Migration.java
-  ${CMAKE_HOME_DIRECTORY}/examples/migration/Policeman.java
-  ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/MutexCentral.java
-  ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/GrantTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/Coordinator.java
-  ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/ReleaseTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/Node.java
-  ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/RequestTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/pingPong/PingPongTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/pingPong/Sender.java
-  ${CMAKE_HOME_DIRECTORY}/examples/pingPong/Receiver.java
-  ${CMAKE_HOME_DIRECTORY}/examples/pingPong/PingPongTest.java
-  ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/Master.java
-  ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/Slave.java
-  ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/StartKillTime.java
-  ${CMAKE_HOME_DIRECTORY}/examples/suspend/DreamMaster.java
-  ${CMAKE_HOME_DIRECTORY}/examples/suspend/LazyGuy.java
-  ${CMAKE_HOME_DIRECTORY}/examples/suspend/Suspend.java
-)
-set(JAVA_TRACING_EXAMPLES
-  ${CMAKE_HOME_DIRECTORY}/examples/tracing/PingPongTask.java
-  ${CMAKE_HOME_DIRECTORY}/examples/tracing/Sender.java
-  ${CMAKE_HOME_DIRECTORY}/examples/tracing/Receiver.java
-  ${CMAKE_HOME_DIRECTORY}/examples/tracing/TracingTest.java
-)
-
-set(CMAKE_SRC
-  ${CMAKE_HOME_DIRECTORY}/ChangeLog
-  ${CMAKE_HOME_DIRECTORY}/MANIFEST.MF
-  ${CMAKE_HOME_DIRECTORY}/COPYING
-  ${CMAKE_HOME_DIRECTORY}/CMakeLists.txt
-  ${CMAKE_HOME_DIRECTORY}/doxygen_postprocesser.pl
-  ${CMAKE_HOME_DIRECTORY}/FindJavaSG.cmake
-  ${CMAKE_HOME_DIRECTORY}/FindSimGrid.cmake
-  ${CMAKE_HOME_DIRECTORY}/GenerateDoc.cmake
-  ${CMAKE_HOME_DIRECTORY}/README
-)
-
-set(CMAKE_DOC_SRC
-  ${CMAKE_HOME_DIRECTORY}/doc/Doxyfile.in
-  ${CMAKE_HOME_DIRECTORY}/doc/footer.html.in
-  ${CMAKE_HOME_DIRECTORY}/doc/index.doc
-  ${CMAKE_HOME_DIRECTORY}/doc/install.doc
-)
-
-set(XML_FILES
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/platform.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/bittorrent.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/platform.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/commTime/commTimeDeployment.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/async/asyncDeployment.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/migration/migrationDeployment.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/masterslave/deploy.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/masterslave/masterslaveDeployment.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/chord100.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/chord.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/chord10.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/chord10000.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/chord1000.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/chord90.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/kademlia/kademlia.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/platform.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/mutex_centralized_deployment.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/ring3.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/priority/priorityDeployment.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/pingPong/pingPongDeployment.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/deployment_kill.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/deployment_start.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/deployment_start_kill.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/deployment.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/suspend/suspendDeployment.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/io/storage.xml
-  ${CMAKE_HOME_DIRECTORY}/examples/tracing/tracingPingPongDeployment.xml
-)
-
-set(TESH_FILES
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/bypass.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/bittorrent.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/commTime/commtime.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/async/async.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/migration/migration.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/masterslave/masterslave.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/chord.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/cloud/cloud.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/suspend/suspend.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/kill.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/mutualexclusion.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/priority/priority.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/pingPong/pingpong.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/startKillTime.tesh
-  ${CMAKE_HOME_DIRECTORY}/examples/tracing/tracingPingPong.tesh
-)
-
-set(source_to_pack
-  ${CMAKE_SRC}
-  ${JMSG_C_SRC}
-  ${JTRACE_C_SRC}
-  ${JMSG_JAVA_SRC}
-  ${JTRACE_JAVA_SRC}
-  ${JAVA_EXAMPLES}
-  ${JAVA_TRACING_EXAMPLES}
-  ${XML_FILES}
-  ${CMAKE_DOC_SRC}
-  ${TESH_FILES}
-)
-
-string(REPLACE "org/" "classes/org/" JMSG_JAVA_SRC_CLASS "${JMSG_JAVA_SRC}")
-string(REPLACE ".java" ".class" JMSG_JAVA_SRC_CLASS "${JMSG_JAVA_SRC_CLASS}")
-
-string(REPLACE "org/" "classes/org/" JTRACE_JAVA_SRC_CLASS "${JTRACE_JAVA_SRC}")
-string(REPLACE ".java" ".class" JTRACE_JAVA_SRC_CLASS "${JTRACE_JAVA_SRC_CLASS}")
-
-string(REPLACE ".java" ".class" JAVA_EXAMPLES_CLASS "${JAVA_EXAMPLES}")
-string(REPLACE ".java" ".class" JAVA_TRACING_EXAMPLES_CLASS "${JAVA_TRACING_EXAMPLES}")
-
-#########
-# FLAGS #
-#########
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror ")
-set(INCLUDE_PATH "-I${CMAKE_HOME_DIRECTORY}/src -I${SIMGRID_INCLUDES} ")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${INCLUDE_PATH}")
-
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=int-to-pointer-cast -Wno-error=pointer-to-int-cast")
-if(COMPILER_C_VERSION_MAJOR_MINOR MATCHES "4.6")
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=unused-but-set-variable")
-endif(COMPILER_C_VERSION_MAJOR_MINOR MATCHES "4.6")
-
-###########
-# TARGETS #
-###########
-# SG_java
-add_library(SG_java SHARED ${JMSG_C_SRC})
-if(WIN32)
-  set_target_properties(SG_java PROPERTIES LINK_FLAGS "-Wl,--subsystem,windows,--kill-at ${SIMGRID_LIB}" PREFIX "")
-  find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
-  message(STATUS "pexports: ${PEXPORTS_PATH}")
-  if(PEXPORTS_PATH)
-    add_custom_command(TARGET SG_java POST_BUILD
-    COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/SG_java.dll > ${CMAKE_BINARY_DIR}/SG_java.def)
-  endif(PEXPORTS_PATH)
-else(WIN32)
-  target_link_libraries(SG_java pcre pthread simgrid)
-  set_target_properties(SG_java PROPERTIES LINK_FLAGS "-L${SIMGRID_LIB_PATH}")
-endif(WIN32)
-
-if(HAVE_TRACING)
-# SG_java_tracing
-add_library(SG_java_tracing SHARED ${JTRACE_C_SRC})
-  if(WIN32)
-    set_target_properties(SG_java_tracing PROPERTIES LINK_FLAGS "-Wl,--subsystem,windows,--kill-at ${SIMGRID_LIB}" PREFIX "")
-    find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
-    message(STATUS "pexports: ${PEXPORTS_PATH}")
-    if(PEXPORTS_PATH)
-      add_custom_command(TARGET SG_java_tracing POST_BUILD
-      COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/SG_java_tracing.dll > ${CMAKE_BINARY_DIR}/SG_java_tracing.def)
-    endif(PEXPORTS_PATH)
-  else(WIN32)
-    target_link_libraries(SG_java_tracing pcre pthread simgrid)
-    set_target_properties(SG_java_tracing PROPERTIES LINK_FLAGS "-L${SIMGRID_LIB_PATH}")
-  endif(WIN32)
-endif(HAVE_TRACING)
-
-set(JAVA_SRC
-  ${JMSG_JAVA_SRC}
-)
-set(JAVA_SRC_CLASS
-  ${JMSG_JAVA_SRC_CLASS}
-)
-if(HAVE_TRACING)
-  set(JAVA_SRC
-    ${JAVA_SRC}
-    ${JTRACE_JAVA_SRC}
-  )
-  set(JAVA_SRC_CLASS
-    ${JAVA_SRC_CLASS}
-    ${JTRACE_JAVA_SRC_CLASS}
-  )
-endif(HAVE_TRACING)
-
-IF(CMAKE_SYSTEM_PROCESSOR MATCHES ".86")
-  IF(${ARCH_32_BITS})
-      set(JSG_BUNDLE NATIVE/${CMAKE_SYSTEM_NAME}/x86/)
-  ELSE()
-      set(JSG_BUNDLE NATIVE/${CMAKE_SYSTEM_NAME}/amd64/)
-  ENDIF()
-ELSE() 
-  error("Unknown system type. Processor: ${CMAKE_SYSTEM_PROCESSOR}; System: ${CMAKE_SYSTEM_NAME}")
-ENDIF()
-message("Native libraries bundeled into: ${JSG_BUNDLE}")
-
-# java_classes
-add_custom_command(
-  OUTPUT  ${JAVA_SRC_CLASS}
-  DEPENDS ${JAVA_SRC}
-  COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_HOME_DIRECTORY}/classes/"
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/classes/
-    -cp ${CMAKE_HOME_DIRECTORY}/classes/ ${JAVA_SRC}
-  COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/classes/${JSG_BUNDLE}
-  COMMAND ${CMAKE_COMMAND} -E copy ${SIMGRID_LIB_PATH}/libsimgrid.so ${CMAKE_HOME_DIRECTORY}/classes/${JSG_BUNDLE}
-  COMMAND strip --strip-debug ${CMAKE_HOME_DIRECTORY}/classes/${JSG_BUNDLE}/libsimgrid.so
-  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/lib/libSG_java.so ${CMAKE_HOME_DIRECTORY}/classes/${JSG_BUNDLE}
-  COMMAND strip --strip-debug ${CMAKE_HOME_DIRECTORY}/classes/${JSG_BUNDLE}/libSG_java.so
-  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/ChangeLog ${CMAKE_HOME_DIRECTORY}/classes/${JSG_BUNDLE}
-  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/COPYING ${CMAKE_HOME_DIRECTORY}/classes/${JSG_BUNDLE}
-  COMMENT "Compiling java sources of core library..."                                  
-)
-
-add_custom_target(java_classes ALL
-  DEPENDS ${JAVA_SRC_CLASS}
-)
-
-# simgrid_jar
-add_custom_target(simgrid_jar ALL
-  COMMAND ${JAVA_ARCHIVE} -cmvf ${CMAKE_HOME_DIRECTORY}/MANIFEST.MF ${CMAKE_HOME_DIRECTORY}/simgrid.jar .
-  COMMENT "Building simgrid.jar..."
-  WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/classes 
-)
-
-# simgrid_java_examples
-set(JAVA_EXAMPLES_CLASS
-  ${JAVA_EXAMPLES_CLASS}
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/MessageTask$Type.class
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Peer$1.class
-  ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/TrackerTask$Type.class
-  ${CMAKE_HOME_DIRECTORY}/examples/chord/GetPredecessorTask.class
-  ${CMAKE_HOME_DIRECTORY}/examples/priority/Test.class
-  ${CMAKE_HOME_DIRECTORY}/examples/priority/Priority.class
-)
-
-add_custom_command(
-  COMMENT "Build examples for java"
-  OUTPUT  ${JAVA_EXAMPLES_CLASS}
-  DEPENDS ${JAVA_EXAMPLES}
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/async/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/chord/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/cloud/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/commTime/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/kademlia/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/io/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/masterslave/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/migration/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/*.java                                      
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/pingPong/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/priority/*.java         
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/*.java
-  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/suspend/*.java
-)
-if(HAVE_TRACING)
-    add_custom_command(
-      COMMENT "Build examples for tracing java"
-      OUTPUT  ${JAVA_TRACING_EXAMPLES_CLASS} 
-      DEPENDS ${JAVA_TRACING_EXAMPLES} ${JAVA_EXAMPLES_CLASS}
-      COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/tracing/*.java
-  )
-  add_custom_target(simgrid_java_examples ALL
-    DEPENDS ${JAVA_EXAMPLES_CLASS} ${JAVA_TRACING_EXAMPLES_CLASS}
-  )
-else(HAVE_TRACING)
-  add_custom_target(simgrid_java_examples ALL
-    DEPENDS ${JAVA_EXAMPLES_CLASS}
-  )
-endif(HAVE_TRACING)
-
-
-########################
-# Declare dependencies #
-########################
-add_dependencies(simgrid_jar java_classes)
-add_dependencies(simgrid_java_examples simgrid_jar SG_java)
-if(HAVE_TRACING)
-  add_dependencies(simgrid_java_examples SG_java_tracing)
-endif(HAVE_TRACING)
-
-#####################
-# Declare our tests #
-#####################
-INCLUDE(CTest)
-ENABLE_TESTING()
-
-ADD_TEST(async           ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/async/async.tesh)
-ADD_TEST(bittorrent      ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/bittorrent.tesh)
-ADD_TEST(bypass          ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/bypass.tesh)
-ADD_TEST(commTime        ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/commTime/commtime.tesh)
-ADD_TEST(chord          ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/chord/chord.tesh)
-ADD_TEST(cloud          ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/cloud/cloud.tesh)
-ADD_TEST(kademlia       ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/kademlia/kademlia.tesh)
-ADD_TEST(kill            ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/kill.tesh)
-ADD_TEST(masterslave     ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/masterslave/masterslave.tesh)
-ADD_TEST(migration       ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/migration/migration.tesh)
-ADD_TEST(mutualExclusion ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/mutualexclusion.tesh)
-ADD_TEST(pingPong        ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/pingPong/pingpong.tesh)
-ADD_TEST(priority        ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/priority/priority.tesh)
-ADD_TEST(startKillTime   ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/startKillTime.tesh)
-ADD_TEST(suspend         ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/suspend/suspend.tesh)
-#Don't forget to put new test in this list!!!
-set(test_list async bittorrent bypass chord cloud commTime kademlia kill masterslave migration mutualExclusion pingPong priority startKillTime suspend)
-if(HAVE_TRACING)
-  ADD_TEST(tracing         ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/tracing/tracingPingPong.tesh)
-  set(test_list ${test_list} tracing)
-endif(HAVE_TRACING)
-##########################################
-# Set the  DYLD_LIBRARY_PATH for mac     #
-##########################################
-if(APPLE)
-  if($ENV{DYLD_LIBRARY_PATH})
-    set_tests_properties(${test_list}
-    PROPERTIES ENVIRONMENT "DYLD_LIBRARY_PATH=${CMAKE_HOME_DIRECTORY}/lib:${SIMGRID_LIB_PATH}")
-  else($ENV{DYLD_LIBRARY_PATH})
-    set_tests_properties(${test_list}
-    PROPERTIES ENVIRONMENT "DYLD_LIBRARY_PATH=$ENV{DYLD_LIBRARY_PATH}:${CMAKE_HOME_DIRECTORY}/lib:${SIMGRID_LIB_PATH}")
-  endif($ENV{DYLD_LIBRARY_PATH})
-else(APPLE)
-##########################################
-# Set the  LD_LIBRARY_PATH for our tests #
-##########################################
-  if(NOT WIN32)
-    if($ENV{LD_LIBRARY_PATH})
-      set_tests_properties(${test_list}
-      PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_HOME_DIRECTORY}/lib:${SIMGRID_LIB_PATH}")
-    else($ENV{LD_LIBRARY_PATH})
-      set_tests_properties(${test_list}
-      PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}:${CMAKE_HOME_DIRECTORY}/lib:${SIMGRID_LIB_PATH}")
-    endif($ENV{LD_LIBRARY_PATH})
-  endif(NOT WIN32)
-endif(APPLE)
-
-###########
-# Install #
-###########
-install(TARGETS SG_java
-  DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/java/)
-
-if(HAVE_TRACING)
-  install(TARGETS SG_java_tracing
-    DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/java/)
-endif(HAVE_TRACING)
-install(FILES ${CMAKE_HOME_DIRECTORY}/simgrid.jar
-  DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/java/)
-
-
-#########
-# Dist  #
-#########
-add_custom_target(dist-dir
-  COMMENT "Generating the distribution directory"
-  COMMAND test -e ${DIST_NAME}/ && chmod -R a+w ${DIST_NAME}/ || true
-  COMMAND ${CMAKE_COMMAND} -E remove_directory ${DIST_NAME}/
-  COMMAND ${CMAKE_COMMAND} -E make_directory ${DIST_NAME}
-  COMMAND ${CMAKE_COMMAND} -E make_directory ${DIST_NAME}/doc/html/
-  COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_HOME_DIRECTORY}/doc/html/ ${DIST_NAME}/doc/html/
-)
-
-set(dirs_in_tarball "")
-foreach(file ${source_to_pack})
-
-  # This damn prefix is still set somewhere (seems to be in subdirs)
-  string(REPLACE "${CMAKE_HOME_DIRECTORY}/" "" file "${file}")
-  
-  # Create the directory on need
-  get_filename_component(file_location ${file} PATH)
-  string(REGEX MATCH ";${file_location};" OPERATION "${dirs_in_tarball}")
-  if(NOT OPERATION)
-    set(dirs_in_tarball "${dirs_in_tarball};${file_location};")
-    add_custom_command(
-      TARGET dist-dir
-      COMMAND ${CMAKE_COMMAND} -E make_directory ${DIST_NAME}/${file_location}/
-    )       
-  endif(NOT OPERATION)
-   
-   # Actually copy the file
-  add_custom_command(
-    TARGET dist-dir
-    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/${file} ${DIST_NAME}/${file_location}/
-  )
-endforeach(file ${source_to_pack})
-
-add_custom_target(dist
-  DEPENDS ${CMAKE_BINARY_DIR}/${DIST_NAME}.tar.gz
-  COMMENT "Generated ${DIST_NAME}"
-)
-add_custom_command(
-  OUTPUT ${CMAKE_BINARY_DIR}/${DIST_NAME}.tar.gz       
-  COMMENT "Compressing the archive from the distribution directory"
-  COMMAND ${CMAKE_COMMAND} -E tar cf ${DIST_NAME}.tar ${DIST_NAME}/
-  COMMAND gzip -9v ${DIST_NAME}.tar
-  COMMAND ${CMAKE_COMMAND} -E remove_directory ${DIST_NAME}/
-)
-add_dependencies(dist dist-dir)
-
-##########################
-# Extra make clean files #
-##########################
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
-  ${CMAKE_HOME_DIRECTORY}/simgrid.jar
-)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
-  ${CMAKE_BINARY_DIR}/simulation.trace
-)
-
-########
-# NOTE #
-########
-file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Testing/Notes/)
-file(WRITE ${CMAKE_BINARY_DIR}/Testing/Notes/Build  "GIT version : ${GIT_VERSION}\n")
-file(APPEND ${CMAKE_BINARY_DIR}/Testing/Notes/Build "Release     : ${DIST_NAME}\n")
-file(APPEND ${CMAKE_BINARY_DIR}/Testing/Notes/Build "Pipol user  : $ENV{PIPOL_USER}\n")
-file(APPEND ${CMAKE_BINARY_DIR}/Testing/Notes/Build "Pipol image : $ENV{PIPOL_IMAGE}\n")
-
-#######
-# DOC #
-#######
-set(WARNING "This file is generated, don't edit it!")
-set(srcdir ${CMAKE_HOME_DIRECTORY})
-include(GenerateDoc.cmake)
index 41d7f36..8a6a626 100644 (file)
@@ -62,7 +62,7 @@ void jmsg_throw_status(JNIEnv *env, msg_error_t status) {
         jxbt_throw_host_failure(env,NULL);
     break;
     default:
-        jxbt_throw_native(env,bprintf("communication failed"));
+        jxbt_throw_native(env,xbt_strdup("communication failed"));
   }
 }
 
@@ -86,6 +86,11 @@ Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, jobjectArray jargs)
   jstring jval;
   const char *tmp;
 
+  XBT_LOG_CONNECT(jmsg);
+#ifdef HAVE_TRACING
+  XBT_LOG_CONNECT(jtrace);
+#endif
+
   (*env)->GetJavaVM(env, &__java_vm);
 
   if ((*env)->FindClass(env, "java/dyn/Coroutine")) {
@@ -139,8 +144,7 @@ JNIEXPORT void JNICALL
   rv = MSG_main();
   XBT_DEBUG("Done running MSG_MAIN");
   jxbt_check_res("MSG_main()", rv, MSG_OK,
-                 bprintf
-                 ("unexpected error : MSG_main() failed .. please report this bug "));
+                 xbt_strdup("unexpected error : MSG_main() failed .. please report this bug "));
 
   XBT_INFO("MSG_main finished; Cleaning up the simulation...");
   /* Cleanup java hosts */
index 9fae142..669e91f 100644 (file)
@@ -82,28 +82,17 @@ Java_org_simgrid_msg_Comm_test(JNIEnv *env, jobject jcomm) {
     jxbt_throw_native(env,bprintf("comm is null"));
     return JNI_FALSE;
   }
-  xbt_ex_t e;
-  TRY {
-    if (MSG_comm_test(comm)) {
-      msg_error_t status = MSG_comm_get_status(comm);
-      if (status == MSG_OK) {
-        jcomm_bind_task(env,jcomm);
-        return JNI_TRUE;
-      }
-      else {
-        //send the correct exception
-        jmsg_throw_status(env,status);
-        return JNI_FALSE;
-      }
-    }
-    else {
-      return JNI_FALSE;
+
+  if (MSG_comm_test(comm)) {
+    msg_error_t status = MSG_comm_get_status(comm);
+    if (status == MSG_OK) {
+      jcomm_bind_task(env,jcomm);
+      return JNI_TRUE;
+    } else {
+      //send the correct exception
+      jmsg_throw_status(env,status);
     }
   }
-  CATCH(e) {
-    xbt_ex_free(e);
-  }
-
   return JNI_FALSE;
 }
 JNIEXPORT void JNICALL
index 1d45583..9266483 100644 (file)
@@ -6,12 +6,14 @@
   * under the terms of the license (GNU LGPL) which comes with this package. */
 #include "jmsg_file.h"
 #include "jxbt_utilities.h"
+
 void jfile_bind(JNIEnv *env, jobject jfile, msg_file_t stream) {
-  (*env)->SetLongField(env, jfile, jfile_field_bind, (jlong) (long) (stream));
+  (*env)->SetLongField(env, jfile, jfile_field_bind, (intptr_t)stream);
 }
 
 msg_file_t jfile_get_native(JNIEnv *env, jobject jfile) {
-  msg_file_t file = (msg_file_t)(*env)->GetLongField(env, jfile, jfile_field_bind);
+  msg_file_t file =
+    (msg_file_t)(intptr_t)(*env)->GetLongField(env, jfile, jfile_field_bind);
   return file;
 }
 
index 300c773..2f6216e 100644 (file)
@@ -56,17 +56,21 @@ void jprocess_join(jobject jprocess, JNIEnv * env)
 
 msg_process_t jprocess_to_native_process(jobject jprocess, JNIEnv * env)
 {
-  return (msg_process_t) (long) (*env)->GetLongField(env, jprocess, jprocess_field_Process_bind);
+  return
+    (msg_process_t)(intptr_t)(*env)->GetLongField(env, jprocess,
+                                                  jprocess_field_Process_bind);
 }
 
 void jprocess_bind(jobject jprocess, msg_process_t process, JNIEnv * env)
 {
-  (*env)->SetLongField(env, jprocess, jprocess_field_Process_bind, (jlong)(process));
+  (*env)->SetLongField(env, jprocess, jprocess_field_Process_bind,
+                       (intptr_t)process);
 }
 
 jlong jprocess_get_id(jobject jprocess, JNIEnv * env)
 {
-  return (*env)->GetLongField(env, jprocess, jprocess_field_Process_id);
+  return
+    (intptr_t)(*env)->GetLongField(env, jprocess, jprocess_field_Process_id);
 }
 
 jstring jprocess_get_name(jobject jprocess, JNIEnv * env)
@@ -128,7 +132,7 @@ Java_org_simgrid_msg_Process_create(JNIEnv * env,
   /* bind/retrieve the msg host */
   host = MSG_get_host_by_name(hostname);
 
-  if (!(host)) {    /* not binded */
+  if (!(host)) {    /* not bound */
     jxbt_throw_host_not_found(env, hostname);
     return;
   }
@@ -344,8 +348,10 @@ Java_org_simgrid_msg_Process_waitFor(JNIEnv * env, jobject jprocess,
 {
   msg_error_t rv;
   rv = MSG_process_sleep((double)jseconds);
+  if ((*env)->ExceptionOccurred(env))
+    return;
   if (rv != MSG_OK) {
-    XBT_INFO("Status NOK");
+    XBT_DEBUG("Status NOK");
     jmsg_throw_status(env,rv);
   }
 }
@@ -385,6 +391,7 @@ Java_org_simgrid_msg_Process_migrate(JNIEnv * env,
   msg_error_t rv = MSG_process_migrate(process, host);
   if (rv != MSG_OK) {
     jmsg_throw_status(env,rv);
+    return;
   }
   /* change the host java side */
   (*env)->SetObjectField(env, jprocess, jprocess_field_Process_host, jhost);
index a51c4cc..6610b84 100644 (file)
@@ -13,7 +13,8 @@
 jfieldID jrngstream_bind;
 
 RngStream jrngstream_to_native(JNIEnv *env, jobject jrngstream) {
-  RngStream rngstream = (RngStream) (*env)->GetLongField(env, jrngstream, jrngstream_bind);
+  RngStream rngstream =
+    (RngStream)(intptr_t)(*env)->GetLongField(env, jrngstream, jrngstream_bind);
   if (!rngstream) {
     jxbt_throw_notbound(env, "rngstream", jrngstream);
     return NULL;
@@ -33,7 +34,7 @@ Java_org_simgrid_msg_RngStream_create(JNIEnv *env, jobject jrngstream, jstring j
   const char *name = (*env)->GetStringUTFChars(env, jname, 0);
   RngStream rngstream = RngStream_CreateStream(name);
   //Bind the RngStream object
-  (*env)->SetLongField(env, jrngstream, jrngstream_bind, (jlong)rngstream);
+  (*env)->SetLongField(env, jrngstream, jrngstream_bind, (intptr_t)rngstream);
 
   (*env)->ReleaseStringUTFChars(env, jname, name);
 }
@@ -41,7 +42,7 @@ JNIEXPORT void JNICALL
 Java_org_simgrid_msg_RngStream_destroy(JNIEnv *env, jobject jrngstream) {
   RngStream rngstream = jrngstream_to_native(env, jrngstream);
   RngStream_DeleteStream(&rngstream);
-  (*env)->SetLongField(env, jrngstream, jrngstream_bind, (jlong)NULL);
+  (*env)->SetLongField(env, jrngstream, jrngstream_bind, (intptr_t)NULL);
 }
 JNIEXPORT jboolean JNICALL
 Java_org_simgrid_msg_RngStream_setPackageSeed(JNIEnv *env, jobject jrngstream, jintArray jseed) {
index 35acc6f..cbccf4c 100644 (file)
@@ -5,6 +5,7 @@
 /* This program is free software; you can redistribute it and/or modify it
   * under the terms of the license (GNU LGPL) which comes with this package.    */
 
+#include "xbt/synchro_core.h"
 #include "jmsg_synchro.h"
 #include "jxbt_utilities.h"
 
index 832b832..ddc1740 100644 (file)
@@ -23,18 +23,19 @@ static jmethodID jtask_method_Comm_constructor;
 
 static jfieldID jtask_field_Task_bind;
 static jfieldID jtask_field_Task_name;
+static jfieldID jtask_field_Task_messageSize;
 static jfieldID jtask_field_Comm_bind;
 static jfieldID jtask_field_Comm_taskBind;
 static jfieldID jtask_field_Comm_receiving;
 
 void jtask_bind(jobject jtask, msg_task_t task, JNIEnv * env)
 {
-  (*env)->SetLongField(env, jtask, jtask_field_Task_bind, (jlong) (long) (task));
+  (*env)->SetLongField(env, jtask, jtask_field_Task_bind, (intptr_t)task);
 }
 
 msg_task_t jtask_to_native_task(jobject jtask, JNIEnv * env)
 {
-  return (msg_task_t) (long) (*env)->GetLongField(env, jtask, jtask_field_Task_bind);
+  return (msg_task_t)(intptr_t)(*env)->GetLongField(env, jtask, jtask_field_Task_bind);
 }
 
 jboolean jtask_is_valid(jobject jtask, JNIEnv * env)
@@ -50,6 +51,7 @@ Java_org_simgrid_msg_Task_nativeInit(JNIEnv *env, jclass cls) {
   jtask_method_Comm_constructor = (*env)->GetMethodID(env, jtask_class_Comm, "<init>", "()V");
   jtask_field_Task_bind = jxbt_get_jfield(env, jtask_class_Task, "bind", "J");
   jtask_field_Task_name = jxbt_get_jfield(env, jtask_class_Task, "name", "Ljava/lang/String;");
+  jtask_field_Task_messageSize = jxbt_get_jfield(env, jtask_class_Task, "messageSize", "D");
   jtask_field_Comm_bind = jxbt_get_jfield(env, jtask_class_Comm, "bind", "J");
   jtask_field_Comm_taskBind = jxbt_get_jfield(env, jtask_class_Comm, "taskBind", "J");
   jtask_field_Comm_receiving = jxbt_get_jfield(env, jtask_class_Comm, "receiving", "Z");
@@ -216,6 +218,8 @@ Java_org_simgrid_msg_Task_execute(JNIEnv * env, jobject jtask)
   }
   msg_error_t rv;
   rv = MSG_task_execute(task);
+  if ((*env)->ExceptionOccurred(env))
+    return;
   if (rv != MSG_OK) {
     jmsg_throw_status(env, rv);
   }
@@ -348,6 +352,7 @@ Java_org_simgrid_msg_Task_setDataSize
     jxbt_throw_notbound(env, "task", jtask);
     return;
        }
+        (*env)->SetDoubleField(env, jtask, jtask_field_Task_messageSize, dataSize);
        MSG_task_set_data_size(task, (double) dataSize);
 }
 
@@ -430,6 +435,8 @@ Java_org_simgrid_msg_Task_receive(JNIEnv * env, jclass cls,
 
   alias = (*env)->GetStringUTFChars(env, jalias, 0);
   rv = MSG_task_receive_ext(task, alias, (double) jtimeout, host);
+  if ((*env)->ExceptionOccurred(env))
+    return NULL;
   if (rv != MSG_OK) {
     jmsg_throw_status(env,rv);
     return NULL;
index 2bae18d..b014776 100644 (file)
@@ -22,7 +22,7 @@
  * @return                             The global reference to the original java task 
  *                                             instance.
  */
-jobject jtask_new_global_ref(jobject jtask, JNIEnv * env);
+/* jobject jtask_new_global_ref(jobject jtask, JNIEnv * env); */
 
 /**
  * This function delete a global reference to a java task instance.
@@ -30,7 +30,7 @@ jobject jtask_new_global_ref(jobject jtask, JNIEnv * env);
  * @param                              The global refernce to delete.
  * @param env                  The environment of the current thread.
  */
-void jtask_delete_global_ref(jobject jtask, JNIEnv * env);
+/* void jtask_delete_global_ref(jobject jtask, JNIEnv * env); */
 
 /**
  * This function associated a native task to a java task instance.
@@ -105,8 +105,8 @@ Java_org_simgrid_msg_Task_parallelCreate
  * Method              destroy
  * Signature   (Lsimgrid/msg/Task;)V
  */
-JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_destroy
-    (JNIEnv *, jobject);
+/* JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_destroy */
+/*     (JNIEnv *, jobject); */
 
 /*
  * Class               org_simgrid_msg_Task
index 7e98a81..0980d90 100644 (file)
 #include "msg/msg.h"
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(jmsg);
 
+static jfieldID jvm_field_bind;
+
 void jvm_bind(JNIEnv *env, jobject jvm, msg_vm_t vm) {
-  (*env)->SetLongField(env, jvm, jvm_field_bind, (jlong) (long) (vm));
+  (*env)->SetLongField(env, jvm, jvm_field_bind, (intptr_t)vm);
 }
 msg_vm_t jvm_get_native(JNIEnv *env, jobject jvm) {
-       msg_vm_t vm = (msg_vm_t)(*env)->GetLongField(env, jvm, jvm_field_bind);
-       return vm;
+  return (msg_vm_t)(intptr_t)(*env)->GetLongField(env, jvm, jvm_field_bind);
 }
 
 JNIEXPORT void JNICALL
@@ -61,8 +62,8 @@ Java_org_simgrid_msg_VM_bind(JNIEnv *env, jobject jvm, jobject jprocess) {
   msg_vm_t vm = jvm_get_native(env,jvm);
   msg_process_t process = jprocess_to_native_process(jprocess,env);
 
-  xbt_assert((vm != NULL), "VM object is not binded");
-  xbt_assert((process != NULL), "Process object is not binded.");
+  xbt_assert((vm != NULL), "VM object is not bound");
+  xbt_assert((process != NULL), "Process object is not bound.");
 
   MSG_vm_bind(vm,process);
 }
index 4933969..b0146de 100644 (file)
@@ -12,8 +12,6 @@
 #include <jni.h>
 #include "msg/msg.h"
 
-jfieldID jvm_field_bind;
-
 void jvm_bind(JNIEnv *env, jobject jvm, msg_vm_t vm);
 msg_vm_t jvm_get_native(JNIEnv *env, jobject jvm);
 
index 4752c7c..8d5084c 100644 (file)
@@ -10,6 +10,7 @@
 #define JXBT_UTILITY_H
 
 #include <jni.h>
+#include <stdint.h>
 
 /* *********** */
 /* JNI GETTERS */
index 9076bcf..032a6bb 100644 (file)
@@ -38,21 +38,18 @@ public class File {
        protected native void open(String storage, String path, String mode);
        /**
         * Read elements of a file. 
-        * @param storage is the name where you can find the stream
         * @param size of each element
         * @param nMemb is the number of elements of data to write 
         */
        public native long read(long size, long nMemb);
        /**
         * Write elements into a file. 
-        * @param storage is the name where you can find the stream 
         * @param size of each element  
         * @param nMemb is the number of elements of data to write 
         */
        public native long write(long size, long nMemb);
        /**
         * Close the file.      
-        * @param storage is the name where you can find the stream 
         */
        public native void close();
        
index 4683f5d..c00dd54 100644 (file)
@@ -16,7 +16,7 @@ package org.simgrid.msg;
  * Thus it is represented as a physical resource with computing capabilities, some 
  * mailboxes to enable running process to communicate with remote ones, and some private 
  * data that can be only accessed by local process. An instance of this class is always 
- * binded with the corresponding native host. All the native hosts are automatically created 
+ * bound with the corresponding native host. All the native hosts are automatically created
  * during the call of the method Msg.createEnvironment(). This method take as parameter a
  * platform file which describes all elements of the platform (host, link, root..).
  * You cannot create a host yourself.
@@ -73,7 +73,7 @@ public class Host {
         *
         * @param name          The name of the host to get.
         *
-     * @return
+        * @return              The host object with the given name.
      * @exception              HostNotFoundException if the name of the host is not valid.
         *                                      NativeException if the native version of this method failed.
         */ 
@@ -117,9 +117,9 @@ public class Host {
                this.data = data;
        } 
        /**
-        * Gets the d   ata of the host.
+        * Gets the data of the host.
      *
-     * @return
+     * @return The data object associated with the host.
      */
        public Object getData() {
                return this.data;
@@ -128,7 +128,7 @@ public class Host {
        /**
         * Checks whether a host has data.
      *
-     * @return
+     * @return True if the host has an associated data object.
      */
        public boolean hasData() {
                return null != this.data;
@@ -151,15 +151,15 @@ public class Host {
         */ 
        public native double getSpeed();
        /**
-        * @brief Returns the value of a given host property. 
+        * Returns the value of a given host property. 
         */
        public native String getProperty(String name);
        /**
-        * @brief Change the value of a given host property. 
+        * Change the value of a given host property. 
         */
        public native void setProperty(String name, String value);
-    /** This method tests if a host is avail.
-     * @return
+    /** This method tests if a host is available.
+     * @return True if the host is available.
      */
        public native boolean isAvail();
        
index 895fadf..2cf133a 100644 (file)
@@ -37,7 +37,11 @@ public final class Msg {
                nativeInit();
        }
        private static void loadLib (String name) {
-               String Path = "NATIVE/"+System.getProperty("os.name")+"/"+System.getProperty("os.arch")+"/";
+         String Os = System.getProperty("os.name");
+         //Windows may report its name in java differently from cmake, which generated the path
+               if(Os.toLowerCase().indexOf("win") >= 0) Os = "Windows";
+               String Path = "NATIVE/"+Os+"/"+System.getProperty("os.arch")+"/";
+
                String filename=name;
                InputStream in = Msg.class.getClassLoader().getResourceAsStream(Path+filename);
                
@@ -112,7 +116,7 @@ public final class Msg {
        }
 
     /** Retrieve the simulation time
-     * @return
+     * @return The simulation time.
      */
        public final static native double getClock();
        /**
@@ -154,8 +158,6 @@ public final class Msg {
         * The natively implemented method to initialize a MSG simulation.
         *
         * @param args            The arguments of the command line of the simulation.
-        *
-        * @see                    Msg.init()
         */
        public final static native void init(String[]args);
 
@@ -166,8 +168,6 @@ public final class Msg {
         * {@link #clean()} if you really insist on cleaning the C side), so you can freely 
         * retrieve the informations that you want from the simulation. In particular, retrieving the status 
         * of a process or the current date is perfectly ok. 
-        *
-        * @see                    MSG_run
         */
        public final static native void run() ;
        
index 0f5ada6..2b2c4b2 100644 (file)
@@ -195,7 +195,7 @@ public abstract class Process implements Runnable {
        }
        /**
         * The natively implemented method to create an MSG process.
-        * @param host    A valid (binded) host where create the process.
+        * @param hostName    A valid (bound) host where create the process.
         */
        protected native void create(String hostName) throws HostNotFoundException;
        /**
@@ -291,7 +291,7 @@ public abstract class Process implements Runnable {
                return ppid;
        }
        /**
-        * @brief Returns the value of a given process property. 
+        * Returns the value of a given process property. 
         */
        public native String getProperty(String name);
        
@@ -311,7 +311,6 @@ public abstract class Process implements Runnable {
        /**
         * Migrates a process to another host.
         *
-        * @param process               The process to migrate.
         * @param host                  The host where to migrate the process.
         *
         */
index 525ea39..13fa595 100644 (file)
@@ -25,8 +25,8 @@ public class VM {
 
         private String name;
        /**
-        * @brief Create a new empty VM.
-        * @bug it is expected that in the future, the coreAmount parameter will be used
+        * Create a new empty VM.
+        * NOTE: it is expected that in the future, the coreAmount parameter will be used
         * to add extra constraints on the execution, but the argument is ignored for now.
         */
        public VM(Host host, String name, int coreAmount) {
@@ -47,35 +47,35 @@ public class VM {
         */
        private native void start(Host host, String name, int coreAmount);
                
-       /** @brief Returns whether the given VM is currently suspended
+       /** Returns whether the given VM is currently suspended
         */     
        public native boolean isSuspended();
-       /** @brief Returns whether the given VM is currently running
+       /** Returns whether the given VM is currently running
         */
        public native boolean isRunning();
-       /** @brief Add the given process into the VM.
+       /** Add the given process into the VM.
         * Afterward, when the VM is migrated or suspended or whatever, the process will have the corresponding handling, too.
         */     
        public native void bind(Process process);
-       /** @brief Removes the given process from the given VM, and kill it
-        *  Will raise a ProcessNotFound exception if the process were not binded to that VM
+       /** Removes the given process from the given VM, and kill it
+        *  Will raise a ProcessNotFound exception if the process were not bound to that VM
         */     
        public native void unbind(Process process);
-       /** @brief Immediately change the host on which all processes are running
+       /** Immediately change the host on which all processes are running
         *
         * No migration cost occurs. If you want to simulate this too, you want to use a
         * Task.send() before or after, depending on whether you want to do cold or hot
         * migration.
         */     
        public native void migrate(Host destination);
-       /** @brief Immediately suspend the execution of all processes within the given VM
+       /** Immediately suspend the execution of all processes within the given VM
         *
         * No suspension cost occurs. If you want to simulate this too, you want to
         * use a \ref File.write() before or after, depending on the exact semantic
         * of VM suspend to you.
         */     
        public native void suspend();
-       /** @brief Immediately resumes the execution of all processes within the given VM
+       /** Immediately resumes the execution of all processes within the given VM
         *
         * No resume cost occurs. If you want to simulate this too, you want to
         * use a \ref File.read() before or after, depending on the exact semantic
@@ -83,16 +83,24 @@ public class VM {
         */
        public native void resume();
        /**
-        * @brief Immediately kills all processes within the given VM. Any memory that they allocated will be leaked.
+        * Immediately kills all processes within the given VM. Any memory that they allocated will be leaked.
         * No extra delay occurs. If you want to simulate this too, you want to use a MSG_process_sleep() or something
         */
        public native void shutdown();
        /**
-        * @brief Reboot the VM, restarting all the processes in it.
+        * Reboot the VM, restarting all the processes in it.
         */
        public native void reboot();
 
        public String getName() {
                return name;
        }               
+
+       /**
+        * Class initializer, to initialize various JNI stuff
+        */
+       public static native void nativeInit();
+       static {
+               nativeInit();
+       }
 }
index 7943ed4..3ad5f92 100644 (file)
@@ -16,15 +16,6 @@ public final class Trace {
        /* Statically load the library which contains all native functions used in here */
        static {
                Msg.nativeInit();
-               try {
-                       System.loadLibrary("SG_java_tracing");
-               } catch(UnsatisfiedLinkError e) {
-                       System.err.println("Cannot load the bindings to the simgrid library: ");
-                       e.printStackTrace();
-                       System.err.println(
-                                       "Please check your LD_LIBRARY_PATH, or copy the simgrid and SG_java_tracing libraries to the current directory");
-                       System.exit(1);
-               }
        }
 
        // TODO complete the binding of the tracing API 
index 00fe9b5..5e135f2 100644 (file)
@@ -45,7 +45,6 @@ smx_ctx_cojava_factory_create_context(xbt_main_func_t code, int argc,
                                     void *data);
 
 static void smx_ctx_cojava_free(smx_context_t context);
-static void smx_ctx_cojava_start(smx_context_t context);
 static void smx_ctx_cojava_suspend(smx_context_t context);
 static void smx_ctx_cojava_resume(smx_context_t new_context);
 static void smx_ctx_cojava_runall(void);
@@ -182,7 +181,7 @@ void smx_ctx_cojava_stop(smx_context_t context)
   if (context->iwannadie) {
     context->iwannadie = 0;
     JNIEnv *env = get_current_thread_env();
-    jxbt_throw_by_name(env, "org/simgrid/msg/ProcessKilledError", bprintf("Process killed :)"));
+    jxbt_throw_by_name(env, "org/simgrid/msg/ProcessKilledError", xbt_strdup("Process killed :)"));
     THROWF(cancel_error, 0, "process cancelled");
   }
   else {
@@ -204,13 +203,15 @@ static void smx_ctx_cojava_suspend(smx_context_t context)
     XBT_DEBUG("Switching to %p",my_current_context);
     smx_ctx_cojava_t java_context = (smx_ctx_cojava_t)(next_context);
     if (!java_context->jprocess) {
-      (*(java_context->super.code))(java_context->super.argc, java_context->super.argv);
+      java_context->super.code(java_context->super.argc, java_context->super.argv);
       smx_ctx_cojava_create_coroutine(java_context);
     }
     else if (!java_context->bound) {
       java_context->bound = 1;
       smx_process_t process = SIMIX_process_self();
-      (*global_env)->SetLongField(global_env, java_context->jprocess, jprocess_field_Process_bind, (jlong)process);
+      (*global_env)->SetLongField(global_env, java_context->jprocess,
+                                  jprocess_field_Process_bind,
+                                  (intptr_t)process);
     }
 
     next_coroutine = java_context->jcoroutine;
@@ -229,14 +230,15 @@ static void smx_ctx_cojava_resume(smx_context_t new_context) {
   smx_ctx_cojava_t java_context = (smx_ctx_cojava_t)(new_context);
 
   if (!java_context->jprocess) {
-    (*(java_context->super.code))(java_context->super.argc, java_context->super.argv);
+    java_context->super.code(java_context->super.argc, java_context->super.argv);
     smx_ctx_cojava_create_coroutine(java_context);
     java_context->bound = 1;
   }
   else if (!java_context->bound) {
     java_context->bound = 1;
     smx_process_t process = SIMIX_process_self();
-    (*global_env)->SetLongField(global_env, java_context->jprocess, jprocess_field_Process_bind, (jlong)process);
+    (*global_env)->SetLongField(global_env, java_context->jprocess,
+                                jprocess_field_Process_bind, (intptr_t)process);
   }
   (*global_env)->CallStaticVoidMethod(global_env, coclass, coroutine_yieldTo, java_context->jcoroutine);
 }
@@ -245,7 +247,7 @@ static void smx_ctx_cojava_runall(void)
 {
   cojava_processes = SIMIX_process_get_runnable();
   smx_process_t process;
-  if (xbt_dynar_length(cojava_processes) > 0) {
+  if (!xbt_dynar_is_empty(cojava_processes)) {
     process = xbt_dynar_get_as(cojava_processes, 0, smx_process_t);
     cojava_process_index = 1;
     /* Execute the first process */
index 1f7a8de..695af57 100644 (file)
@@ -18,7 +18,7 @@ SG_BEGIN_DECL()
 
 typedef struct s_smx_ctx_cojava {
   s_smx_ctx_base_t super;       /* Fields of super implementation */
-  jobject jprocess;             /* the java process instance binded with the msg process structure */
+  jobject jprocess;             /* the java process instance bound with the msg process structure */
   JNIEnv *jenv;                 /* jni interface pointer associated to this thread */
   jobject jcoroutine;                                          /* java coroutine object */
   int bound:1;
index 02f6f7b..92005a4 100644 (file)
@@ -24,7 +24,6 @@ smx_ctx_java_factory_create_context(xbt_main_func_t code, int argc,
                                     void *data);
 
 static void smx_ctx_java_free(smx_context_t context);
-static void smx_ctx_java_start(smx_context_t context);
 static void smx_ctx_java_suspend(smx_context_t context);
 static void smx_ctx_java_resume(smx_context_t new_context);
 static void smx_ctx_java_runall(void);
@@ -56,10 +55,9 @@ smx_ctx_java_factory_create_context(xbt_main_func_t code, int argc,
                                     void_pfn_smxprocess_t cleanup_func,
                                     void* data)
 {
-       xbt_ex_t e;
-       static int thread_amount=0;
-       smx_ctx_java_t context = xbt_new0(s_smx_ctx_java_t, 1);
-       thread_amount++;
+  static int thread_amount=0;
+  smx_ctx_java_t context = xbt_new0(s_smx_ctx_java_t, 1);
+  thread_amount++;
   /* If the user provided a function for the process then use it
      otherwise is the context for maestro */
   if (code) {
@@ -79,13 +77,13 @@ smx_ctx_java_factory_create_context(xbt_main_func_t code, int argc,
 
     TRY {        
        context->thread = xbt_os_thread_create(NULL,smx_ctx_java_thread_run,context,NULL);
-    } CATCH(e) {
-       RETHROWF("Failed to create context #%d. You may want to switch to Java coroutines to increase your limits (error: %s)."
-                "See the Install section of simgrid-java documentation (in doc/install.html) for more on coroutines.",
-                       thread_amount);
     }
-  }
-  else {
+    CATCH_ANONYMOUS {
+      RETHROWF("Failed to create context #%d. You may want to switch to Java coroutines to increase your limits (error: %s)."
+               "See the Install section of simgrid-java documentation (in doc/install.html) for more on coroutines.",
+               thread_amount);
+    }
+  } else {
        context->thread = NULL;
     xbt_os_thread_set_extra_data(context);
   }
@@ -106,11 +104,12 @@ static void* smx_ctx_java_thread_run(void *data) {
   xbt_os_sem_acquire(context->begin);
   //Create the "Process" object if needed.
   if (context->super.argc > 0) {
-    (*(context->super.code))(context->super.argc, context->super.argv);
+    context->super.code(context->super.argc, context->super.argv);
   }
   else {
     smx_process_t process = SIMIX_process_self();
-    (*env)->SetLongField(env, context->jprocess, jprocess_field_Process_bind, (jlong)process);
+    (*env)->SetLongField(env, context->jprocess, jprocess_field_Process_bind,
+                         (intptr_t)process);
   }
   xbt_assert((context->jprocess != NULL), "Process not created...");
   //wait for the process to be able to begin
@@ -148,12 +147,11 @@ void smx_ctx_java_stop(smx_context_t context)
   smx_ctx_java_t ctx_java = (smx_ctx_java_t)context;
   /* I am the current process and I am dying */
   if (context->iwannadie) {
-       context->iwannadie = 0;
-       JNIEnv *env = get_current_thread_env();
-       jxbt_throw_by_name(env, "org/simgrid/msg/ProcessKilledError", bprintf("Process killed :)"));
-       THROWF(cancel_error, 0, "process cancelled");
-  }
-  else {
+    context->iwannadie = 0;
+    JNIEnv *env = get_current_thread_env();
+    jxbt_throw_by_name(env, "org/simgrid/msg/ProcessKilledError", xbt_strdup("Process killed :)"));
+    THROWF(cancel_error, 0, "process cancelled");
+  } else {
     smx_ctx_base_stop(context);
     /* detach the thread and kills it */
     JNIEnv *env = ctx_java->jenv;
index 084c5d4..789bf17 100644 (file)
@@ -18,7 +18,7 @@ SG_BEGIN_DECL()
 
 typedef struct s_smx_ctx_java {
   s_smx_ctx_base_t super;       /* Fields of super implementation */
-  jobject jprocess;             /* the java process instance binded with the msg process structure */
+  jobject jprocess;             /* the java process instance bound with the msg process structure */
   JNIEnv *jenv;                 /* jni interface pointer associated to this thread */
   xbt_os_thread_t thread;
   xbt_os_sem_t begin;           /* this semaphore is used to schedule/yield the process  */
index 2400d7f..af2b38d 100644 (file)
@@ -4,27 +4,8 @@
 #ifndef SIMGRID_LUA_H
 #define SIMGRID_LUA_H
 
-#include "xbt/dict.h"
-#include "xbt/dynar.h"
 #include <lua.h>
 
-extern xbt_dynar_t process_list;
-extern xbt_dict_t machine_set;
-
-typedef struct s_process_t {
-  int argc;
-  char **argv;
-  char *host;
-} s_process_t;
-
-void s_process_free(void *process);
-
-/* UNIX files */
-void generate_sim(const char *project);
-void generate_rl(const char *project);
-void generate_makefile_am(const char *project);
-void generate_makefile_local(const char *project);
-
 /* ********************************************************************************* */
 /*                           Plaftorm functions                                      */
 /* ********************************************************************************* */
index 2ae6f3c..52664c7 100644 (file)
@@ -1,8 +1,10 @@
-int TRACE_start (void);
-int TRACE_end (void);
-void TRACE_global_init(int *argc, char **argv);
-void TRACE_help(int detailed);
-void TRACE_surf_resource_utilization_alloc(void);
-void TRACE_surf_resource_utilization_release(void);
-void TRACE_add_start_function(void (*func)(void));
-void TRACE_add_end_function(void (*func)(void));
+#include "xbt.h"
+
+XBT_PUBLIC(int) TRACE_start (void);
+XBT_PUBLIC(int) TRACE_end (void);
+XBT_PUBLIC(void) TRACE_global_init(int *argc, char **argv);
+XBT_PUBLIC(void) TRACE_help(int detailed);
+XBT_PUBLIC(void) TRACE_surf_resource_utilization_alloc(void);
+XBT_PUBLIC(void) TRACE_surf_resource_utilization_release(void);
+XBT_PUBLIC(void) TRACE_add_start_function(void (*func)(void));
+XBT_PUBLIC(void) TRACE_add_end_function(void (*func)(void));
index d21613c..307e3ea 100644 (file)
@@ -40,6 +40,7 @@ typedef struct s_stack_region{
   char *process_name;
   void *context;
   size_t size;
+  int block;
 }s_stack_region_t, *stack_region_t;
 
 typedef struct s_heap_equality{
@@ -50,5 +51,8 @@ typedef struct s_heap_equality{
 void heap_equality_free_voidp(void *e);
 void stack_region_free_voidp(void *s);
 
+void heap_ignore_region_free(mc_heap_ignore_region_t r);
+void heap_ignore_region_free_voidp(void *r);
+
 SG_END_DECL()
 #endif                          /* _MC_MC_H */
index 4680251..8be2fd4 100644 (file)
@@ -28,10 +28,10 @@ extern int _sg_mc_timeout;
 extern int _sg_mc_max_depth;
 extern int _sg_mc_visited;
 
-extern char*_surf_mc_property_file; /* fixme: better location? */
-
 extern xbt_dynar_t mc_heap_comparison_ignore;
 extern xbt_dynar_t stacks_areas;
+extern void *maestro_stack_start;
+extern void *maestro_stack_end;
 
 /********************************* Global *************************************/
 void _mc_cfg_cb_reduce(const char *name, int pos);
@@ -45,7 +45,6 @@ XBT_PUBLIC(void) MC_do_the_modelcheck_for_real(void);
 
 XBT_PUBLIC(void) MC_init(void);
 XBT_PUBLIC(void) MC_exit(void);
-XBT_PUBLIC(void) MC_exit_liveness(void);
 XBT_PUBLIC(void) MC_modelcheck_safety(void);
 XBT_PUBLIC(void) MC_modelcheck_liveness(void);
 XBT_PUBLIC(void) MC_process_clock_add(smx_process_t, double);
index 1b24074..c975477 100644 (file)
@@ -1,5 +1,3 @@
-#include "smpi/smpi.h"
-
 /********** Tracing **********/
 /* from smpi_instr.c */
 void TRACE_smpi_alloc(void);
index f76bebc..b13bff2 100644 (file)
@@ -29,7 +29,6 @@ extern double sg_sender_gap;
 extern double sg_latency_factor;
 extern double sg_bandwidth_factor;
 extern double sg_weight_S_parameter;
-extern int sg_maxmin_selective_update;
 extern int sg_network_crosstraffic;
 #ifdef HAVE_GTNETS
 extern double sg_gtnets_jitter;
@@ -454,10 +453,7 @@ XBT_PUBLIC_DATA(surf_model_t) surf_cpu_model_vm;
  *  You can change this behavior by setting the cpu/optim configuration
  *  variable to a different value.
  *
- *  This function is called by surf_workstation_model_init_CLM03
- *  so you shouldn't have to call it by yourself.
- *
- *  \see surf_workstation_model_init_CLM03()
+ *  You shouldn't have to call it by yourself.
  */
 XBT_PUBLIC(void) surf_cpu_model_init_Cas01(void);
 
@@ -465,20 +461,9 @@ XBT_PUBLIC(void) surf_cpu_model_init_Cas01(void);
  *  \brief Initializes the CPU model with trace integration [Deprecated]
  *
  *  You shouldn't have to call it by yourself.
- *  \see surf_workstation_model_init_CLM03()
  */
 XBT_PUBLIC(surf_model_t) surf_cpu_model_init_ti(void);
 
-/** \brief This function call the share resources function needed
- *
- */
-XBT_PUBLIC(double) generic_share_resources(double now);
-
-/** \brief This function call the update action state function needed
- *
- */
-XBT_PUBLIC(void)   generic_update_actions_state(double now, double delta);
-
 /** \ingroup SURF_models
  *  \brief The list of all available optimization modes (both for cpu and networks).
  *  These optimization modes can be set using --cfg=cpu/optim:... and --cfg=network/optim:...
@@ -490,8 +475,6 @@ XBT_PUBLIC_DATA(s_surf_model_description_t) surf_optimization_mode_description[]
  */
 XBT_PUBLIC_DATA(s_surf_model_description_t) surf_cpu_model_description[];
 
-XBT_PUBLIC(void) create_workstations(void);
-
 /**\brief create new host bypass the parser
  *
  */
@@ -546,21 +529,12 @@ XBT_PUBLIC(void) surf_network_model_init_Constant(void);
 /** \ingroup SURF_models
  *  \brief Initializes the platform with the network model CM02
  *
- *  This function is called by surf_workstation_model_init_CLM03
- *  or by yourself only if you plan using surf_workstation_model_init_compound
+ *  You sould call this function by yourself only if you plan using
+ *  surf_workstation_model_init_compound.
  *  See comments in the code for more information.
- *
- *  \see surf_workstation_model_init_CLM03()
  */
 XBT_PUBLIC(void) surf_network_model_init_CM02(void);
 
-/**
- * brief initialize the the network model bypassing the XML parser
- */
-XBT_PUBLIC(void) surf_network_model_init_bypass(const char *id,
-                                                double initial_bw,
-                                                double initial_lat);
-
 #ifdef HAVE_GTNETS
 /** \ingroup SURF_models
  *  \brief Initializes the platform with the network model GTNETS
@@ -691,18 +665,6 @@ XBT_PUBLIC(void) surf_workstation_model_init_compound(void);
  */
 XBT_PUBLIC(void) surf_workstation_model_init_current_default(void);
 
-/** \ingroup SURF_models
- *  \brief Initializes the platform with the workstation model CLM03
- *
- *  This platform model seperates the workstation model and the network model.
- *  The workstation model will be initialized with the model CLM03, the network
- *  model with the model CM02 and the CPU model with the model Cas01.
- *  In future releases, some other network models will be implemented and will be
- *  combined with the workstation model CLM03.
- *
- */
-XBT_PUBLIC(void) surf_workstation_model_init_CLM03(void);
-
 /** \ingroup SURF_models
  *  \brief Initializes the platform with the model KCCFLN05
  *
@@ -744,9 +706,9 @@ XBT_PUBLIC_DATA(xbt_dynar_t) model_list_invoke;
  *  This function has to be called to initialize the common
  *  structures.  Then you will have to create the environment by
  *  calling 
- *  e.g. surf_workstation_model_init_CLM03()
+ *  e.g. surf_workstation_model_init_CM02()
  *
- *  \see surf_workstation_model_init_CLM03(), surf_workstation_model_init_compound(), surf_exit()
+ *  \see surf_workstation_model_init_CM02(), surf_workstation_model_init_compound(), surf_exit()
  */
 XBT_PUBLIC(void) surf_init(int *argc, char **argv);     /* initialize common structures */
 
@@ -788,14 +750,10 @@ XBT_PUBLIC(void) surf_exit(void);
 
 /* Prototypes of the functions that handle the properties */
 XBT_PUBLIC_DATA(xbt_dict_t) current_property_set;       /* the prop set for the currently parsed element (also used in SIMIX) */
-XBT_PUBLIC(void) parse_properties(void);
 
 /* surf parse file related (public because called from a test suite) */
 XBT_PUBLIC(void) parse_platform_file(const char *file);
 
-/* Stores the sets */
-XBT_PUBLIC_DATA(xbt_dict_t) set_list;
-
 /* For the trace and trace:connect tag (store their content till the end of the parsing) */
 XBT_PUBLIC_DATA(xbt_dict_t) traces_set_list;
 XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_host_avail;
index 6846474..7febbb3 100644 (file)
@@ -229,7 +229,7 @@ void PJ_container_free_all ()
   rootContainer = NULL;
 
   //checks
-  if (xbt_dict_length(allContainers) != 0){
+  if (!xbt_dict_is_empty(allContainers)){
     THROWF(tracing_error, 0, "some containers still present even after destroying all of them");
   }
 }
index b6f1e60..6773dd9 100644 (file)
@@ -32,15 +32,16 @@ val_t PJ_value_new (const char *name, const char *color, type_t father)
 
 val_t PJ_value_get_or_new (const char *name, const char *color, type_t father)
 {
+  val_t ret = 0;
   xbt_ex_t e;
   TRY {
-    return PJ_value_get(name, father);
+    ret = PJ_value_get(name, father);
   }
   CATCH(e) {
     xbt_ex_free(e);
-    return PJ_value_new(name, color, father);
+    ret = PJ_value_new(name, color, father);
   }
-  THROW_IMPOSSIBLE;
+  return ret;
 }
 
 val_t PJ_value_get (const char *name, type_t father)
index ea02f0a..88210b6 100644 (file)
@@ -109,24 +109,24 @@ void TRACE_header(int basic);
 void TRACE_paje_start(void);
 void TRACE_paje_end(void);
 void TRACE_paje_dump_buffer (int force);
-void new_pajeDefineContainerType(type_t type);
-void new_pajeDefineVariableType(type_t type);
-void new_pajeDefineStateType(type_t type);
-void new_pajeDefineEventType(type_t type);
-void new_pajeDefineLinkType(type_t type, type_t source, type_t dest);
-void new_pajeDefineEntityValue (val_t type);
-void new_pajeCreateContainer (container_t container);
-void new_pajeDestroyContainer (container_t container);
-void new_pajeSetVariable (double timestamp, container_t container, type_t type, double value);
-void new_pajeAddVariable (double timestamp, container_t container, type_t type, double value);
-void new_pajeSubVariable (double timestamp, container_t container, type_t type, double value);
-void new_pajeSetState (double timestamp, container_t container, type_t type, val_t value);
-void new_pajePushState (double timestamp, container_t container, type_t type, val_t value);
-void new_pajePopState (double timestamp, container_t container, type_t type);
-void new_pajeResetState (double timestamp, container_t container, type_t type);
-void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key);
-void new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer, const char *value, const char *key);
-void new_pajeNewEvent (double timestamp, container_t container, type_t type, val_t value);
+XBT_PUBLIC(void) new_pajeDefineContainerType(type_t type);
+XBT_PUBLIC(void) new_pajeDefineVariableType(type_t type);
+XBT_PUBLIC(void) new_pajeDefineStateType(type_t type);
+XBT_PUBLIC(void) new_pajeDefineEventType(type_t type);
+XBT_PUBLIC(void) new_pajeDefineLinkType(type_t type, type_t source, type_t dest);
+XBT_PUBLIC(void) new_pajeDefineEntityValue (val_t type);
+XBT_PUBLIC(void) new_pajeCreateContainer (container_t container);
+XBT_PUBLIC(void) new_pajeDestroyContainer (container_t container);
+XBT_PUBLIC(void) new_pajeSetVariable (double timestamp, container_t container, type_t type, double value);
+XBT_PUBLIC(void) new_pajeAddVariable (double timestamp, container_t container, type_t type, double value);
+XBT_PUBLIC(void) new_pajeSubVariable (double timestamp, container_t container, type_t type, double value);
+XBT_PUBLIC(void) new_pajeSetState (double timestamp, container_t container, type_t type, val_t value);
+XBT_PUBLIC(void) new_pajePushState (double timestamp, container_t container, type_t type, val_t value);
+XBT_PUBLIC(void) new_pajePopState (double timestamp, container_t container, type_t type);
+XBT_PUBLIC(void) new_pajeResetState (double timestamp, container_t container, type_t type);
+XBT_PUBLIC(void) new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key);
+XBT_PUBLIC(void) new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer, const char *value, const char *key);
+XBT_PUBLIC(void) new_pajeNewEvent (double timestamp, container_t container, type_t type, val_t value);
 
 //for tracing gtnets
 void TRACE_surf_gtnets_communicate(void *action, void *src, void *dst);
@@ -137,9 +137,6 @@ int TRACE_is_enabled(void);
 int TRACE_platform(void);
 int TRACE_platform_topology(void);
 int TRACE_is_configured(void);
-int TRACE_smpi_is_enabled(void);
-int TRACE_smpi_is_grouped(void);
-int TRACE_smpi_is_computing(void);
 int TRACE_categorized (void);
 int TRACE_uncategorized (void);
 int TRACE_msg_process_is_enabled(void);
@@ -158,6 +155,11 @@ void TRACE_generate_viva_cat_conf (void);
 void instr_pause_tracing (void);
 void instr_resume_tracing (void);
 
+/* Public functions used in SMPI */
+XBT_PUBLIC(int) TRACE_smpi_is_enabled(void);
+XBT_PUBLIC(int) TRACE_smpi_is_grouped(void);
+XBT_PUBLIC(int) TRACE_smpi_is_computing(void);
+
 /* from resource_utilization.c */
 void TRACE_surf_host_set_utilization(const char *resource,
                                      const char *category,
@@ -177,33 +179,33 @@ extern xbt_dict_t trivaEdgeTypes;
 long long int instr_new_paje_id (void);
 void PJ_container_alloc (void);
 void PJ_container_release (void);
-container_t PJ_container_new (const char *name, e_container_types kind, container_t father);
-container_t PJ_container_get (const char *name);
-container_t PJ_container_get_or_null (const char *name);
-container_t PJ_container_get_root (void);
-void PJ_container_set_root (container_t root);
-void PJ_container_free (container_t container);
-void PJ_container_free_all (void);
-void PJ_container_remove_from_parent (container_t container);
+XBT_PUBLIC(container_t) PJ_container_new (const char *name, e_container_types kind, container_t father);
+XBT_PUBLIC(container_t) PJ_container_get (const char *name);
+XBT_PUBLIC(container_t) PJ_container_get_or_null (const char *name);
+XBT_PUBLIC(container_t) PJ_container_get_root (void);
+XBT_PUBLIC(void) PJ_container_set_root (container_t root);
+XBT_PUBLIC(void) PJ_container_free (container_t container);
+XBT_PUBLIC(void) PJ_container_free_all (void);
+XBT_PUBLIC(void) PJ_container_remove_from_parent (container_t container);
 
 /* instr_paje_types.c */
 void PJ_type_alloc (void);
 void PJ_type_release (void);
-type_t PJ_type_get_root (void);
+XBT_PUBLIC(type_t)  PJ_type_get_root (void);
 type_t PJ_type_container_new (const char *name, type_t father);
 type_t PJ_type_event_new (const char *name, type_t father);
 type_t PJ_type_variable_new (const char *name, const char *color, type_t father);
 type_t PJ_type_link_new (const char *name, type_t father, type_t source, type_t dest);
 type_t PJ_type_state_new (const char *name, type_t father);
-type_t PJ_type_get (const char *name, const type_t father);
-type_t PJ_type_get_or_null (const char *name, type_t father);
+XBT_PUBLIC(type_t)  PJ_type_get (const char *name, const type_t father);
+XBT_PUBLIC(type_t)  PJ_type_get_or_null (const char *name, type_t father);
 void PJ_type_free (type_t type);
 void PJ_type_free_all (void);
 
 /* instr_paje_values.c */
-val_t PJ_value_new (const char *name, const char *color, type_t father);
-val_t PJ_value_get_or_new (const char *name, const char *color, type_t father);
-val_t PJ_value_get (const char *name, const type_t father);
+XBT_PUBLIC(val_t)  PJ_value_new (const char *name, const char *color, type_t father);
+XBT_PUBLIC(val_t)  PJ_value_get_or_new (const char *name, const char *color, type_t father);
+XBT_PUBLIC(val_t)  PJ_value_get (const char *name, const type_t father);
 void PJ_value_free (val_t value);
 
 #endif /* HAVE_TRACING */
index 70cdb6e..a8591ee 100644 (file)
@@ -23,7 +23,6 @@ char *libsimgrid_path;
 void *start_data_libsimgrid, *start_bss_libsimgrid;
 void *start_data_binary, *start_bss_binary;
 void *start_text_binary;
-void *end_raw_heap;
 
 static mc_mem_region_t MC_region_new(int type, void *start_addr, size_t size);
 static void MC_region_restore(mc_mem_region_t reg);
@@ -38,6 +37,7 @@ static void print_local_variables_values(xbt_dynar_t all_variables);
 static void *get_stack_pointer(void *stack_context, void *heap);
 
 static void snapshot_stack_free(mc_snapshot_stack_t s);
+static xbt_dynar_t take_snapshot_ignore(void);
 
 static mc_mem_region_t MC_region_new(int type, void *start_addr, size_t size)
 {
@@ -107,8 +107,9 @@ void MC_init_memory_map_info(){
             start_bss_binary = reg.start_addr;
             i++;
           }
-        }else if(!memcmp(maps->regions[i].pathname, "[heap]", 6)){
-          end_raw_heap = reg.end_addr;
+        }else if(!memcmp(maps->regions[i].pathname, "[stack]", 7)){
+          maestro_stack_start = reg.start_addr;
+          maestro_stack_end = reg.end_addr;
           i++;
         }
       }
@@ -150,7 +151,6 @@ mc_snapshot_t MC_take_snapshot()
   unsigned int i = 0;
   s_map_region_t reg;
   memory_map_t maps = get_memory_map();
-  int nb_reg = 0;
   void *heap = NULL;
   size_t size = 0;
   void *start = NULL;
@@ -162,16 +162,14 @@ mc_snapshot_t MC_take_snapshot()
       if (maps->regions[i].pathname == NULL){
         if (reg.start_addr == std_heap){ // only save the std heap (and not the raw one)
           MC_snapshot_add_region(snapshot, 0, reg.start_addr, (char*)reg.end_addr - (char*)reg.start_addr);
-          snapshot->heap_chunks_used = mmalloc_get_chunks_used(std_heap);
-          heap = snapshot->regions[nb_reg]->data;
-          nb_reg++;
+          snapshot->heap_bytes_used = mmalloc_get_bytes_used(std_heap);
+          heap = snapshot->regions[snapshot->num_reg - 1]->data;
         }
         i++;
       } else{ 
         if (!memcmp(basename(maps->regions[i].pathname), "libsimgrid", 10)){
           size = (char*)reg.end_addr - (char*)reg.start_addr;
           start = reg.start_addr;
-          nb_reg++;
           i++;
           reg = maps->regions[i];
           if(reg.pathname == NULL && (reg.prot & PROT_WRITE) && i < maps->mapsize){
@@ -180,13 +178,13 @@ mc_snapshot_t MC_take_snapshot()
             i++;
           }
           MC_snapshot_add_region(snapshot, 1, start, size);
-        }else if(!memcmp(maps->regions[i].pathname, "[heap]", 6)){
-          end_raw_heap = reg.end_addr;
+        }else if(!memcmp(maps->regions[i].pathname, "[stack]", 7)){
+          maestro_stack_start = reg.start_addr;
+          maestro_stack_end = reg.end_addr;
           i++;
         } else if (!memcmp(basename(maps->regions[i].pathname), basename(xbt_binary_name), strlen(basename(xbt_binary_name)))){
           size = (char*)reg.end_addr - (char*)reg.start_addr;
           start = reg.start_addr;
-          nb_reg++;
           i++;
           reg = maps->regions[i];
           if(reg.pathname == NULL && (reg.prot & PROT_WRITE) && reg.start_addr != std_heap && reg.start_addr != raw_heap && i < maps->mapsize){
@@ -204,6 +202,8 @@ mc_snapshot_t MC_take_snapshot()
     }
   }
 
+  snapshot->to_ignore = take_snapshot_ignore();
+
   if(_sg_mc_visited > 0 || strcmp(_sg_mc_property_file,""))
     snapshot->stacks = take_snapshot_stacks(&snapshot, heap);
   
@@ -235,6 +235,7 @@ void MC_free_snapshot(mc_snapshot_t snapshot)
 
   xbt_free(snapshot->regions);
   xbt_dynar_free(&(snapshot->stacks));
+  xbt_dynar_free(&(snapshot->to_ignore));
   xbt_free(snapshot);
 }
 
@@ -244,7 +245,7 @@ void get_libsimgrid_plt_section(){
   FILE *fp;
   char *line = NULL;            /* Temporal storage for each line that is readed */
   ssize_t read;                 /* Number of bytes readed */
-  size_t n = 0;                 /* Amount of bytes to read by getline */
+  size_t n = 0;                 /* Amount of bytes to read by xbt_getline */
 
   char *lfields[7];
   int i, plt_found = 0;
@@ -259,7 +260,7 @@ void get_libsimgrid_plt_section(){
     xbt_abort();
   }
 
-  while ((read = getline(&line, &n, fp)) != -1 && plt_found != 2) {
+  while ((read = xbt_getline(&line, &n, fp)) != -1 && plt_found != 2) {
 
     if(n == 0)
       continue;
@@ -309,7 +310,7 @@ void get_binary_plt_section(){
   FILE *fp;
   char *line = NULL;            /* Temporal storage for each line that is readed */
   ssize_t read;                 /* Number of bytes readed */
-  size_t n = 0;                 /* Amount of bytes to read by getline */
+  size_t n = 0;                 /* Amount of bytes to read by xbt_getline */
 
   char *lfields[7];
   int i, plt_found = 0;
@@ -324,7 +325,7 @@ void get_binary_plt_section(){
     xbt_abort();
   }
 
-  while ((read = getline(&line, &n, fp)) != -1 && plt_found != 2) {
+  while ((read = xbt_getline(&line, &n, fp)) != -1 && plt_found != 2) {
 
     if(n == 0)
       continue;
@@ -497,7 +498,7 @@ static xbt_strbuff_t get_local_variables_values(void *stack_context, void *heap)
               cursor2++;
             }
 
-            if(xbt_dynar_length(compose) > 0){
+            if(!xbt_dynar_is_empty(compose)){
               frame_pointer_address = xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1, variable_value_t)->value.address ; 
             }
             break;
@@ -545,7 +546,7 @@ static xbt_strbuff_t get_local_variables_values(void *stack_context, void *heap)
             cursor++;
           }
           
-          if(xbt_dynar_length(compose) > 0){
+          if(!xbt_dynar_is_empty(compose)){
             if(strcmp(xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1, variable_value_t)->type, "value") == 0){
               to_append = bprintf("%s=%lx\n", current_variable->name, xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1, variable_value_t)->value.res);
               xbt_strbuff_append(variables, to_append);
@@ -556,7 +557,7 @@ static xbt_strbuff_t get_local_variables_values(void *stack_context, void *heap)
                 xbt_strbuff_append(variables, to_append);
                 xbt_free(to_append);
               }else if(((long)*((void**)xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1,variable_value_t)->value.address) > 0xffffffff) || ((long)*((void**)xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1,variable_value_t)->value.address) < (long)start_text_binary)){
-                to_append = bprintf("%s=%d\n", current_variable->name, (int)(long)*((void**)xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1, variable_value_t)->value.address));
+                to_append = bprintf("%s=%u\n", current_variable->name, (unsigned int)(long)*((void**)xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1, variable_value_t)->value.address));
                 xbt_strbuff_append(variables, to_append);
                 xbt_free(to_append);
               }else{ 
@@ -632,3 +633,26 @@ void variable_value_free_voidp(void* v){
   variable_value_free((variable_value_t) * (void **)v);
 }
 
+static xbt_dynar_t take_snapshot_ignore(){
+  
+  if(mc_heap_comparison_ignore == NULL)
+    return NULL;
+
+  xbt_dynar_t cpy = xbt_dynar_new(sizeof(mc_heap_ignore_region_t), heap_ignore_region_free_voidp);
+
+  unsigned int cursor = 0;
+  mc_heap_ignore_region_t current_region;
+
+  xbt_dynar_foreach(mc_heap_comparison_ignore, cursor, current_region){
+    mc_heap_ignore_region_t new_region = NULL;
+    new_region = xbt_new0(s_mc_heap_ignore_region_t, 1);
+    new_region->address = current_region->address;
+    new_region->size = current_region->size;
+    new_region->block = current_region->block;
+    new_region->fragment = current_region->fragment;
+    xbt_dynar_push(cpy, &new_region);
+  }
+
+  return cpy;
+
+}
index 711fd83..d0b8fff 100644 (file)
@@ -12,7 +12,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_compare, mc,
 
 static int heap_region_compare(void *d1, void *d2, size_t size);
 
-static int compare_stack(stack_region_t s1, stack_region_t s2, void *sp1, void *sp2, void *heap1, void *heap2, xbt_dynar_t equals);
 static int is_heap_equality(xbt_dynar_t equals, void *a1, void *a2);
 static size_t heap_ignore_size(void *address);
 
@@ -20,7 +19,8 @@ static void stack_region_free(stack_region_t s);
 static void heap_equality_free(heap_equality_t e);
 
 static int is_stack_ignore_variable(char *frame, char *var_name);
-static int compare_local_variables(char *s1, char *s2, xbt_dynar_t heap_equals);
+static int compare_local_variables(char *s1, char *s2);
+static int compare_global_variables(int region_type, void *d1, void *d2);
 
 static size_t heap_ignore_size(void *address){
   unsigned int cursor = 0;
@@ -42,7 +42,7 @@ static size_t heap_ignore_size(void *address){
   return 0;
 }
 
-static int compare_global_variables(int region_type, void *d1, void *d2, xbt_dynar_t equals){
+static int compare_global_variables(int region_type, void *d1, void *d2){
 
   unsigned int cursor = 0;
   size_t offset; 
@@ -68,7 +68,7 @@ static int compare_global_variables(int region_type, void *d1, void *d2, xbt_dyn
             continue;
           }else{
             if((addr_pointed1 > std_heap) && ((char *)addr_pointed1 < (char *)std_heap + STD_HEAP_SIZE) && (addr_pointed2 > std_heap) && ((char *)addr_pointed2 < (char *)std_heap + STD_HEAP_SIZE)){
-              res_compare = compare_area(addr_pointed1, addr_pointed2, NULL, equals);
+              res_compare = compare_area(addr_pointed1, addr_pointed2, NULL);
               if(res_compare == 1){
                 #ifdef MC_VERBOSE
                   XBT_VERB("Different global variable in libsimgrid : %s at addresses %p - %p (size = %zu)", current_var->name, (char *)d1+offset, (char *)d2+offset, current_var->size);
@@ -103,7 +103,7 @@ static int compare_global_variables(int region_type, void *d1, void *d2, xbt_dyn
             continue;
           }else{
             if((addr_pointed1 > std_heap) && ((char *)addr_pointed1 < (char *)std_heap + STD_HEAP_SIZE) && (addr_pointed2 > std_heap) && ((char *)addr_pointed2 < (char *)std_heap + STD_HEAP_SIZE)){
-              res_compare = compare_area(addr_pointed1, addr_pointed2, NULL, equals);
+              res_compare = compare_area(addr_pointed1, addr_pointed2, NULL);
               if(res_compare == 1){
                 #ifdef MC_VERBOSE
                   XBT_VERB("Different global variable in binary : %s at addresses %p - %p (size = %zu)", current_var->name, (char *)d1+offset, (char *)d2+offset, current_var->size);
@@ -225,16 +225,20 @@ int snapshot_compare(mc_snapshot_t s1, mc_snapshot_t s2){
     #endif
   }
 
-  /* Compare number of blocks/fragments used in each heap */
-  if(s1->heap_chunks_used != s2->heap_chunks_used){
+  #ifdef MC_DEBUG
+    xbt_os_timer_start(timer);
+  #endif
+
+  /* Compare number of bytes used in each heap */
+  if(s1->heap_bytes_used != s2->heap_bytes_used){
     #ifdef MC_DEBUG
       xbt_os_timer_stop(timer);
-      mc_comp_times->chunks_used_comparison_time = xbt_os_timer_elapsed(timer);
-      XBT_DEBUG("Different number of chunks used in each heap : %zu - %zu", s1->heap_chunks_used, s2->heap_chunks_used);
+      mc_comp_times->bytes_used_comparison_time = xbt_os_timer_elapsed(timer);
+      XBT_DEBUG("Different number of bytes used in each heap : %zu - %zu", s1->heap_bytes_used, s2->heap_bytes_used);
       errors++;
     #else
       #ifdef MC_VERBOSE
-        XBT_VERB("Different number of chunks used in each heap : %zu - %zu", s1->heap_chunks_used, s2->heap_chunks_used);
+        XBT_VERB("Different number of bytes used in each heap : %zu - %zu", s1->heap_bytes_used, s2->heap_bytes_used);
       #endif
 
       xbt_os_timer_free(timer);
@@ -324,12 +328,10 @@ int snapshot_compare(mc_snapshot_t s1, mc_snapshot_t s2){
   }
 
   /* Init heap information used in heap comparison algorithm */
-  init_heap_information((xbt_mheap_t)s1->regions[heap_index]->data, (xbt_mheap_t)s2->regions[heap_index]->data);
-
-  xbt_dynar_t equals = xbt_dynar_new(sizeof(heap_equality_t), heap_equality_free_voidp);
+  init_heap_information((xbt_mheap_t)s1->regions[heap_index]->data, (xbt_mheap_t)s2->regions[heap_index]->data, s1->to_ignore, s2->to_ignore);
 
   /* Compare binary global variables */
-  is_diff = compare_global_variables(s1->region_type[data_program_index], s1->regions[data_program_index]->data, s2->regions[data_program_index]->data, equals);
+  is_diff = compare_global_variables(s1->region_type[data_program_index], s1->regions[data_program_index]->data, s2->regions[data_program_index]->data);
   if(is_diff != 0){
     #ifdef MC_DEBUG
       xbt_os_timer_stop(timer);
@@ -353,14 +355,14 @@ int snapshot_compare(mc_snapshot_t s1, mc_snapshot_t s2){
     #endif
   }
 
-  #ifdef MC_VERBOSE
+  #ifdef MC_DEBUG
     if(is_diff == 0)
       xbt_os_timer_stop(timer);
     xbt_os_timer_start(timer);
   #endif
 
   /* Compare libsimgrid global variables */
-    is_diff = compare_global_variables(s1->region_type[data_libsimgrid_index], s1->regions[data_libsimgrid_index]->data, s2->regions[data_libsimgrid_index]->data, equals);
+    is_diff = compare_global_variables(s1->region_type[data_libsimgrid_index], s1->regions[data_libsimgrid_index]->data, s2->regions[data_libsimgrid_index]->data);
   if(is_diff != 0){
     #ifdef MC_DEBUG
       xbt_os_timer_stop(timer);
@@ -390,11 +392,50 @@ int snapshot_compare(mc_snapshot_t s1, mc_snapshot_t s2){
     xbt_os_timer_start(timer);
   #endif
 
+    /* Stacks comparison */
+    unsigned int  cursor = 0;
+    int diff_local = 0;
+    is_diff = 0;
+    
+    while(cursor < xbt_dynar_length(s1->stacks)){
+      diff_local = compare_local_variables(((mc_snapshot_stack_t)xbt_dynar_get_as(s1->stacks, cursor, mc_snapshot_stack_t))->local_variables->data, ((mc_snapshot_stack_t)xbt_dynar_get_as(s2->stacks, cursor, mc_snapshot_stack_t))->local_variables->data);
+      if(diff_local > 0){
+        #ifdef MC_DEBUG
+          if(is_diff == 0){
+            xbt_os_timer_stop(timer);
+            mc_comp_times->stacks_comparison_time = xbt_os_timer_elapsed(timer); 
+          }
+          XBT_DEBUG("Different local variables between stacks %d", cursor + 1);
+          errors++;
+          is_diff = 1;
+        #else
+        
+          #ifdef MC_VERBOSE
+            XBT_VERB("Different local variables between stacks %d", cursor + 1);
+          #endif
+          
+            reset_heap_information();
+            xbt_os_timer_free(timer);
+            xbt_os_timer_stop(global_timer);
+            mc_snapshot_comparison_time = xbt_os_timer_elapsed(global_timer);
+            xbt_os_timer_free(global_timer);
+            
+            if(!raw_mem)
+              MC_UNSET_RAW_MEM;
+            
+            return 1;
+        #endif
+      }
+      cursor++;
+    }
+    
+    #ifdef MC_DEBUG
+      xbt_os_timer_start(timer);
+    #endif
+
   /* Compare heap */
-  xbt_dynar_t stacks1 = xbt_dynar_new(sizeof(stack_region_t), stack_region_free_voidp);
-  xbt_dynar_t stacks2 = xbt_dynar_new(sizeof(stack_region_t), stack_region_free_voidp);
  
-  if(mmalloc_compare_heap((xbt_mheap_t)s1->regions[heap_index]->data, (xbt_mheap_t)s2->regions[heap_index]->data, &stacks1, &stacks2, equals)){
+  if(mmalloc_compare_heap((xbt_mheap_t)s1->regions[heap_index]->data, (xbt_mheap_t)s2->regions[heap_index]->data)){
 
     #ifdef MC_DEBUG
       xbt_os_timer_stop(timer);
@@ -404,14 +445,12 @@ int snapshot_compare(mc_snapshot_t s1, mc_snapshot_t s2){
     #else
 
       xbt_os_timer_free(timer);
-      xbt_dynar_free(&stacks1);
-      xbt_dynar_free(&stacks2);
-      xbt_dynar_free(&equals);
  
       #ifdef MC_VERBOSE
         XBT_VERB("Different heap (mmalloc_compare)");
       #endif
        
+      reset_heap_information();
       xbt_os_timer_stop(global_timer);
       mc_snapshot_comparison_time = xbt_os_timer_elapsed(global_timer);
       xbt_os_timer_free(global_timer);
@@ -427,52 +466,7 @@ int snapshot_compare(mc_snapshot_t s1, mc_snapshot_t s2){
     #endif
   }
 
-  #ifdef MC_DEBUG
-    xbt_os_timer_start(timer);
-  #endif
-
-  /* Stacks comparison */
-  unsigned int  cursor = 0;
-  int diff_local = 0;
-  is_diff = 0;
-
-  while(cursor < xbt_dynar_length(stacks1)){
-    diff_local = compare_local_variables(((mc_snapshot_stack_t)xbt_dynar_get_as(s1->stacks, cursor, mc_snapshot_stack_t))->local_variables->data, ((mc_snapshot_stack_t)xbt_dynar_get_as(s2->stacks, cursor, mc_snapshot_stack_t))->local_variables->data, equals);
-    if(diff_local > 0){
-      #ifdef MC_DEBUG
-        if(is_diff == 0){
-          xbt_os_timer_stop(timer);
-          mc_comp_times->stacks_comparison_time = xbt_os_timer_elapsed(timer); 
-        }
-        XBT_DEBUG("Different local variables between stacks %d", cursor + 1);
-        errors++;
-        is_diff = 1;
-      #else
-        xbt_dynar_free(&stacks1);
-        xbt_dynar_free(&stacks2);
-        xbt_dynar_free(&equals);
-        
-      #ifdef MC_VERBOSE
-        XBT_VERB("Different local variables between stacks %d", cursor + 1);
-      #endif
-          
-        xbt_os_timer_free(timer);
-        xbt_os_timer_stop(global_timer);
-        mc_snapshot_comparison_time = xbt_os_timer_elapsed(global_timer);
-        xbt_os_timer_free(global_timer);
-        
-        if(!raw_mem)
-          MC_UNSET_RAW_MEM;
-        
-        return 1;
-      #endif
-    }
-    cursor++;
-  }
-
-  xbt_dynar_free(&stacks1);
-  xbt_dynar_free(&stacks2);
-  xbt_dynar_free(&equals);
+  reset_heap_information();
    
   xbt_os_timer_free(timer);
 
@@ -521,7 +515,7 @@ static int is_stack_ignore_variable(char *frame, char *var_name){
   return 0;
 }
 
-static int compare_local_variables(char *s1, char *s2, xbt_dynar_t heap_equals){
+static int compare_local_variables(char *s1, char *s2){
   
   xbt_dynar_t tokens1 = xbt_str_split(s1, NULL);
   xbt_dynar_t tokens2 = xbt_str_split(s2, NULL);
@@ -530,37 +524,47 @@ static int compare_local_variables(char *s1, char *s2, xbt_dynar_t heap_equals){
   unsigned int cursor = 0;
   void *addr1, *addr2;
   char *ip1 = NULL, *ip2 = NULL;
-  
+  int res_compare = 0;
+
+  #ifdef MC_VERBOSE
+    char *var_name;
+  #endif
+
   while(cursor < xbt_dynar_length(tokens1)){
     s_tokens1 = xbt_str_split(xbt_dynar_get_as(tokens1, cursor, char *), "=");
     s_tokens2 = xbt_str_split(xbt_dynar_get_as(tokens2, cursor, char *), "=");
     if(xbt_dynar_length(s_tokens1) > 1 && xbt_dynar_length(s_tokens2) > 1){
+      #ifdef MC_VERBOSE
+        var_name = xbt_dynar_get_as(s_tokens1, 0, char *);
+      #endif
       if((strcmp(xbt_dynar_get_as(s_tokens1, 0, char *), "ip") == 0) && (strcmp(xbt_dynar_get_as(s_tokens2, 0, char *), "ip") == 0)){
         xbt_free(ip1);
         xbt_free(ip2);
         ip1 = strdup(xbt_dynar_get_as(s_tokens1, 1, char *));
         ip2 = strdup(xbt_dynar_get_as(s_tokens2, 1, char *));
       }
-      if(strcmp(xbt_dynar_get_as(s_tokens1, 1, char *), xbt_dynar_get_as(s_tokens2, 1, char *)) != 0){   
-        /* Ignore this variable ?  */
-        if(is_stack_ignore_variable(ip1, xbt_dynar_get_as(s_tokens1, 0, char *)) && is_stack_ignore_variable(ip2, xbt_dynar_get_as(s_tokens2, 0, char *))){
-          xbt_dynar_free(&s_tokens1);
-          xbt_dynar_free(&s_tokens2);
-          cursor++;
-          continue;
-        }
-        addr1 = (void *) strtoul(xbt_dynar_get_as(s_tokens1, 1, char *), NULL, 16);
-        addr2 = (void *) strtoul(xbt_dynar_get_as(s_tokens2, 1, char *), NULL, 16);
-        if(is_heap_equality(heap_equals, addr1, addr2) == 0){
-          if(XBT_LOG_ISENABLED(mc_compare, xbt_log_priority_verbose))
-            XBT_VERB("Variable %s is different between stacks in %s : %s - %s", xbt_dynar_get_as(s_tokens1, 0, char *), ip1, xbt_dynar_get_as(s_tokens1, 1, char *), xbt_dynar_get_as(s_tokens2, 1, char *));
-          xbt_dynar_free(&s_tokens1);
-          xbt_dynar_free(&s_tokens2);
-          xbt_dynar_free(&tokens1);
-          xbt_dynar_free(&tokens2);
-          xbt_free(ip1);
-          xbt_free(ip2);
-          return 1;
+      addr1 = (void *) strtoul(xbt_dynar_get_as(s_tokens1, 1, char *), NULL, 16);
+      addr2 = (void *) strtoul(xbt_dynar_get_as(s_tokens2, 1, char *), NULL, 16);
+      if(addr1 > std_heap && (char *)addr1 <= (char *)std_heap + STD_HEAP_SIZE && addr2 > std_heap && (char *)addr2 <= (char *)std_heap + STD_HEAP_SIZE){
+        res_compare = compare_area(addr1, addr2, NULL);
+        if(res_compare == 1){
+          if(is_stack_ignore_variable(ip1, xbt_dynar_get_as(s_tokens1, 0, char *)) && is_stack_ignore_variable(ip2, xbt_dynar_get_as(s_tokens2, 0, char *))){
+            xbt_dynar_free(&s_tokens1);
+            xbt_dynar_free(&s_tokens2);
+            cursor++;
+            continue;
+          }else {
+            #ifdef MC_VERBOSE
+              XBT_VERB("Different local variable : %s at addresses %p - %p", var_name, addr1, addr2);
+            #endif
+            xbt_dynar_free(&s_tokens1);
+            xbt_dynar_free(&s_tokens2);
+            xbt_dynar_free(&tokens1);
+            xbt_dynar_free(&tokens2);
+            xbt_free(ip1);
+            xbt_free(ip2);
+            return 1;
+          }
         }
       }
     }
@@ -606,37 +610,6 @@ static int is_heap_equality(xbt_dynar_t equals, void *a1, void *a2){
 
 }
 
-
-static int compare_stack(stack_region_t s1, stack_region_t s2, void *sp1, void *sp2, void *heap1, void *heap2, xbt_dynar_t equals){
-  
-  size_t k = 0;
-  size_t size_used1 = s1->size - ((char*)sp1 - (char*)s1->address);
-  size_t size_used2 = s2->size - ((char*)sp2 - (char*)s2->address);
-
-  int pointer_align;
-  void *addr_pointed1 = NULL, *addr_pointed2 = NULL;  
-  
-  while(k < size_used1){
-    if(memcmp((char *)s1->address + s1->size - k, (char *)s2->address + s2->size - k, 1) != 0){
-      pointer_align = ((size_used1 - k) / sizeof(void*)) * sizeof(void*);
-      addr_pointed1 = *((void **)(((char*)s1->address + (s1->size - size_used1)) + pointer_align));
-      addr_pointed2 = *((void **)(((char*)s2->address + (s2->size - size_used2)) + pointer_align));
-      if(is_heap_equality(equals, addr_pointed1, addr_pointed2) == 0){
-        if((addr_pointed1 > std_heap) && (addr_pointed1 < (void *)((char *)std_heap + STD_HEAP_SIZE)) && (addr_pointed2 > std_heap) && (addr_pointed2 < (void *)((char *)std_heap + STD_HEAP_SIZE))){
-          if(is_free_area(addr_pointed1, (xbt_mheap_t)heap1) == 0 || is_free_area(addr_pointed2, (xbt_mheap_t)heap2) == 0){
-            return 1;
-          }
-        }else{
-          return 1;
-        } 
-      }
-    } 
-    k++;
-  }
-  return 0;
-}
-
 int MC_compare_snapshots(void *s1, void *s2){
   
   MC_ignore_stack("self", "simcall_BODY_mc_snapshot");
@@ -648,7 +621,7 @@ int MC_compare_snapshots(void *s1, void *s2){
 void print_comparison_times(){
   XBT_DEBUG("*** Comparison times ***");
   XBT_DEBUG("- Nb processes : %f", mc_comp_times->nb_processes_comparison_time);
-  XBT_DEBUG("- Nb chunks used : %f", mc_comp_times->chunks_used_comparison_time);
+  XBT_DEBUG("- Nb bytes used : %f", mc_comp_times->bytes_used_comparison_time);
   XBT_DEBUG("- Stacks sizes : %f", mc_comp_times->stacks_sizes_comparison_time);
   XBT_DEBUG("- Binary global variables : %f", mc_comp_times->binary_global_variables_comparison_time);
   XBT_DEBUG("- Libsimgrid global variables : %f", mc_comp_times->libsimgrid_global_variables_comparison_time);
index c3a3383..1768a12 100644 (file)
@@ -49,14 +49,14 @@ static int is_visited_state(){
 
     if(raw_mem_set)
       MC_SET_RAW_MEM;
+
     return 0;
 
   }else{
 
     MC_SET_RAW_MEM;
     
-    size_t current_chunks_used = new_state->system_state->heap_chunks_used;
+    size_t current_bytes_used = new_state->system_state->heap_bytes_used;
 
     unsigned int cursor = 0;
     int previous_cursor = 0, next_cursor = 0;
@@ -64,38 +64,40 @@ static int is_visited_state(){
     int end = xbt_dynar_length(visited_states) - 1;
 
     mc_safety_visited_state_t state_test = NULL;
-    size_t chunks_used_test;
-    int same_chunks_not_found = 1;
+    size_t bytes_used_test;
+    int same_bytes_not_found = 1;
 
-    while(start <= end && same_chunks_not_found){
+    while(start <= end && same_bytes_not_found){
       cursor = (start + end) / 2;
       state_test = (mc_safety_visited_state_t)xbt_dynar_get_as(visited_states, cursor, mc_safety_visited_state_t);
-      chunks_used_test = state_test->system_state->heap_chunks_used;
-      if(chunks_used_test < current_chunks_used)
+      bytes_used_test = state_test->system_state->heap_bytes_used;
+      if(bytes_used_test < current_bytes_used)
         start = cursor + 1;
-      if(chunks_used_test > current_chunks_used)
+      if(bytes_used_test > current_bytes_used)
         end = cursor - 1; 
-      if(chunks_used_test == current_chunks_used){
-        same_chunks_not_found = 0;
+      if(bytes_used_test == current_bytes_used){
+        same_bytes_not_found = 0;
         if(snapshot_compare(new_state->system_state, state_test->system_state) == 0){
           xbt_dynar_remove_at(visited_states, cursor, NULL);
           xbt_dynar_insert_at(visited_states, cursor, &new_state);
+          XBT_DEBUG("State %d already visited ! (equal to state %d)", new_state->num, state_test->num);
           if(raw_mem_set)
             MC_SET_RAW_MEM;
           else
             MC_UNSET_RAW_MEM;
           return 1;
         }else{
-          /* Search another state with same number of chunks used */
+          /* Search another state with same number of bytes used */
           previous_cursor = cursor - 1;
           while(previous_cursor >= 0){
             state_test = (mc_safety_visited_state_t)xbt_dynar_get_as(visited_states, previous_cursor, mc_safety_visited_state_t);
-            chunks_used_test = state_test->system_state->heap_chunks_used;
-            if(chunks_used_test != current_chunks_used)
+            bytes_used_test = state_test->system_state->heap_bytes_used;
+            if(bytes_used_test != current_bytes_used)
               break;
             if(snapshot_compare(new_state->system_state, state_test->system_state) == 0){
               xbt_dynar_remove_at(visited_states, previous_cursor, NULL);
               xbt_dynar_insert_at(visited_states, previous_cursor, &new_state);
+              XBT_DEBUG("State %d already visited ! (equal to state %d)", new_state->num, state_test->num);
               if(raw_mem_set)
                 MC_SET_RAW_MEM;
               else
@@ -107,12 +109,13 @@ static int is_visited_state(){
           next_cursor = cursor + 1;
           while(next_cursor < xbt_dynar_length(visited_states)){
             state_test = (mc_safety_visited_state_t)xbt_dynar_get_as(visited_states, next_cursor, mc_safety_visited_state_t);
-            chunks_used_test = state_test->system_state->heap_chunks_used;
-            if(chunks_used_test != current_chunks_used)
+            bytes_used_test = state_test->system_state->heap_bytes_used;
+            if(bytes_used_test != current_bytes_used)
               break;
             if(snapshot_compare(new_state->system_state, state_test->system_state) == 0){
               xbt_dynar_remove_at(visited_states, next_cursor, NULL);
               xbt_dynar_insert_at(visited_states, next_cursor, &new_state);
+              XBT_DEBUG("State %d already visited ! (equal to state %d)", new_state->num, state_test->num);
               if(raw_mem_set)
                 MC_SET_RAW_MEM;
               else
@@ -126,9 +129,9 @@ static int is_visited_state(){
     }
 
     state_test = (mc_safety_visited_state_t)xbt_dynar_get_as(visited_states, cursor, mc_safety_visited_state_t);
-    chunks_used_test = state_test->system_state->heap_chunks_used;
+    bytes_used_test = state_test->system_state->heap_bytes_used;
 
-    if(chunks_used_test < current_chunks_used)
+    if(bytes_used_test < current_bytes_used)
       xbt_dynar_insert_at(visited_states, cursor + 1, &new_state);
     else
       xbt_dynar_insert_at(visited_states, cursor, &new_state);
@@ -306,10 +309,6 @@ void MC_dpor(void)
           next_state->system_state = MC_take_snapshot();
         }
 
-      }else{
-
-        XBT_DEBUG("State already visited !");
-        
       }
 
       xbt_fifo_unshift(mc_stack_safety, next_state);
index 461e0b5..f9f2ad1 100644 (file)
@@ -122,8 +122,6 @@ static dw_location_t get_location(xbt_dict_t location_list, char *expr);
 static dw_frame_t get_frame_by_offset(xbt_dict_t all_variables, unsigned long int offset);
 static size_t data_bss_ignore_size(void *address);
 static void MC_get_global_variables(char *elf_file);
-static void heap_ignore_region_free(mc_heap_ignore_region_t r);
-static void heap_ignore_region_free_voidp(void *r);
 
 void MC_do_the_modelcheck_for_real() {
 
@@ -191,10 +189,6 @@ void MC_init(){
   get_libsimgrid_plt_section();
   get_binary_plt_section();
 
-  MC_ignore_data_bss(&end_raw_heap, sizeof(end_raw_heap));
-  MC_ignore_data_bss(&mc_comp_times, sizeof(mc_comp_times));
-  MC_ignore_data_bss(&mc_snapshot_comparison_time, sizeof(mc_snapshot_comparison_time)); 
-
   /* Get global variables */
   MC_get_global_variables(xbt_binary_name);
   MC_get_global_variables(libsimgrid_path);
@@ -214,6 +208,9 @@ void MC_init(){
   MC_ignore_stack("next_context", "smx_ctx_sysv_suspend_serial");
   MC_ignore_stack("i", "smx_ctx_sysv_suspend_serial");
 
+  MC_ignore_data_bss(&mc_comp_times, sizeof(mc_comp_times));
+  MC_ignore_data_bss(&mc_snapshot_comparison_time, sizeof(mc_snapshot_comparison_time)); 
+
   if(raw_mem_set)
     MC_SET_RAW_MEM;
 
@@ -746,12 +743,12 @@ void MC_automaton_new_propositional_symbol(const char* id, void* fct) {
 
 /************ MC_ignore ***********/ 
 
-static void heap_ignore_region_free(mc_heap_ignore_region_t r){
+void heap_ignore_region_free(mc_heap_ignore_region_t r){
   if(r)
     xbt_free(r);
 }
 
-static void heap_ignore_region_free_voidp(void *r){
+void heap_ignore_region_free_voidp(void *r){
   heap_ignore_region_free((mc_heap_ignore_region_t) * (void **) r);
 }
 
@@ -760,15 +757,12 @@ void MC_ignore_heap(void *address, size_t size){
   int raw_mem_set = (mmalloc_get_current_heap() == raw_heap);
 
   MC_SET_RAW_MEM;
-  
-  if(mc_heap_comparison_ignore == NULL)
-    mc_heap_comparison_ignore = xbt_dynar_new(sizeof(mc_heap_ignore_region_t), heap_ignore_region_free_voidp);
 
   mc_heap_ignore_region_t region = NULL;
   region = xbt_new0(s_mc_heap_ignore_region_t, 1);
   region->address = address;
   region->size = size;
-
+  
   region->block = ((char*)address - (char*)((xbt_mheap_t)std_heap)->heapbase) / BLOCKSIZE + 1;
   
   if(((xbt_mheap_t)std_heap)->heapinfo[region->block].type == 0){
@@ -778,15 +772,39 @@ void MC_ignore_heap(void *address, size_t size){
     region->fragment = ((uintptr_t) (ADDR2UINT (address) % (BLOCKSIZE))) >> ((xbt_mheap_t)std_heap)->heapinfo[region->block].type;
     ((xbt_mheap_t)std_heap)->heapinfo[region->block].busy_frag.ignore[region->fragment] = 1;
   }
+  
+  if(mc_heap_comparison_ignore == NULL){
+    mc_heap_comparison_ignore = xbt_dynar_new(sizeof(mc_heap_ignore_region_t), heap_ignore_region_free_voidp);
+    xbt_dynar_push(mc_heap_comparison_ignore, &region);
+    if(!raw_mem_set)
+      MC_UNSET_RAW_MEM;
+    return;
+  }
 
   unsigned int cursor = 0;
   mc_heap_ignore_region_t current_region;
-  xbt_dynar_foreach(mc_heap_comparison_ignore, cursor, current_region){
+  int start = 0;
+  int end = xbt_dynar_length(mc_heap_comparison_ignore) - 1;
+  
+  while(start <= end){
+    cursor = (start + end) / 2;
+    current_region = (mc_heap_ignore_region_t)xbt_dynar_get_as(mc_heap_comparison_ignore, cursor, mc_heap_ignore_region_t);
+    if(current_region->address == address){
+      heap_ignore_region_free(region);
+      if(!raw_mem_set)
+        MC_UNSET_RAW_MEM;
+      return;
+    }
+    if(current_region->address < address)
+      start = cursor + 1;
     if(current_region->address > address)
-      break;
+      end = cursor - 1;   
   }
 
-  xbt_dynar_insert_at(mc_heap_comparison_ignore, cursor, &region);
+  if(current_region->address < address)
+    xbt_dynar_insert_at(mc_heap_comparison_ignore, cursor + 1, &region);
+  else
+    xbt_dynar_insert_at(mc_heap_comparison_ignore, cursor, &region);
 
   MC_UNSET_RAW_MEM;
 
@@ -845,12 +863,12 @@ void MC_ignore_data_bss(void *address, size_t size){
   if(mc_data_bss_comparison_ignore == NULL)
     mc_data_bss_comparison_ignore = xbt_dynar_new(sizeof(mc_data_bss_ignore_variable_t), NULL);
 
-  if(xbt_dynar_is_empty(mc_data_bss_comparison_ignore)){
+  mc_data_bss_ignore_variable_t var = NULL;
+  var = xbt_new0(s_mc_data_bss_ignore_variable_t, 1);
+  var->address = address;
+  var->size = size;
 
-    mc_data_bss_ignore_variable_t var = NULL;
-    var = xbt_new0(s_mc_data_bss_ignore_variable_t, 1);
-    var->address = address;
-    var->size = size;
+  if(xbt_dynar_is_empty(mc_data_bss_comparison_ignore)){
 
     xbt_dynar_insert_at(mc_data_bss_comparison_ignore, 0, &var);
 
@@ -875,11 +893,6 @@ void MC_ignore_data_bss(void *address, size_t size){
       if(current_var->address > address)
         end = cursor - 1;
     }
-    mc_data_bss_ignore_variable_t var = NULL;
-    var = xbt_new0(s_mc_data_bss_ignore_variable_t, 1);
-    var->address = address;
-    var->size = size;
 
     if(current_var->address < address)
       xbt_dynar_insert_at(mc_data_bss_comparison_ignore, cursor + 1, &var);
@@ -888,6 +901,34 @@ void MC_ignore_data_bss(void *address, size_t size){
 
   }
 
+  /* Remove variable from mc_global_variables */
+
+  if(mc_global_variables != NULL){
+
+    unsigned int cursor = 0;
+    int start = 0;
+    int end = xbt_dynar_length(mc_global_variables) - 1;
+    global_variable_t current_var;
+    int var_found;
+
+    while(start <= end){
+      cursor = (start + end) / 2;
+      current_var = (global_variable_t)xbt_dynar_get_as(mc_global_variables, cursor, global_variable_t);
+      if(current_var->address == var->address){
+        var_found = 1;
+        break;
+      }
+      if(current_var->address < address)
+        start = cursor + 1;
+      if(current_var->address > address)
+        end = cursor - 1;
+    }
+
+    if(var_found)
+      xbt_dynar_remove_at(mc_global_variables, cursor, NULL);
+    
+  }
+
   MC_UNSET_RAW_MEM;
 
   if(raw_mem_set)
@@ -999,6 +1040,7 @@ void MC_new_stack_area(void *stack, char *name, void* context, size_t size){
   region->process_name = strdup(name);
   region->context = context;
   region->size = size;
+  region->block = ((char*)stack - (char*)((xbt_mheap_t)std_heap)->heapbase) / BLOCKSIZE + 1;
   xbt_dynar_push(stacks_areas, &region);
   
   MC_UNSET_RAW_MEM;
@@ -1029,7 +1071,7 @@ xbt_dict_t MC_get_location_list(const char *elf_file){
   int cursor_remove;
   xbt_dynar_t split = NULL;
 
-  while ((read = getline(&line, &n, fp)) != -1) {
+  while ((read = xbt_getline(&line, &n, fp)) != -1) {
 
     /* Wipeout the new line character */
     line[read - 1] = '\0';
@@ -1088,7 +1130,7 @@ xbt_dict_t MC_get_location_list(const char *elf_file){
       xbt_dynar_free(&split);
       free(loc_expr);
 
-      read = getline(&line, &n, fp);
+      read = xbt_getline(&line, &n, fp);
       if(read != -1){
         line[read - 1] = '\0';
         xbt_str_strip_spaces(line);
@@ -1153,12 +1195,12 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
   int new_frame = 0, new_variable = 0;
   dw_frame_t variable_frame, subroutine_frame = NULL;
 
-  read = getline(&line, &n, fp);
+  read = xbt_getline(&line, &n, fp);
 
   while (read != -1) {
 
     if(n == 0){
-      read = getline(&line, &n, fp);
+      read = xbt_getline(&line, &n, fp);
       continue;
     }
  
@@ -1166,7 +1208,7 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
     line[read - 1] = '\0';
    
     if(strlen(line) == 0){
-      read = getline(&line, &n, fp);
+      read = xbt_getline(&line, &n, fp);
       continue;
     }
 
@@ -1174,7 +1216,7 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
     xbt_str_strip_spaces(line);
     
     if(line[0] != '<'){
-      read = getline(&line, &n, fp);
+      read = xbt_getline(&line, &n, fp);
       continue;
     }
     
@@ -1192,12 +1234,12 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
       subprogram_start = strdup(strtok(NULL, "<"));
       xbt_str_rtrim(subprogram_start, ">:");
 
-      read = getline(&line, &n, fp);
+      read = xbt_getline(&line, &n, fp);
    
       while(read != -1){
 
         if(n == 0){
-          read = getline(&line, &n, fp);
+          read = xbt_getline(&line, &n, fp);
           continue;
         }
 
@@ -1205,7 +1247,7 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
         line[read - 1] = '\0';
         
         if(strlen(line) == 0){
-          read = getline(&line, &n, fp);
+          read = xbt_getline(&line, &n, fp);
           continue;
         }
       
@@ -1288,7 +1330,7 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
 
         }
 
-        read = getline(&line, &n, fp);
+        read = xbt_getline(&line, &n, fp);
 
       }
  
@@ -1314,12 +1356,12 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
       origin = strdup(strtok(NULL, "<"));
       xbt_str_rtrim(origin, ">:");
       
-      read = getline(&line, &n, fp);
+      read = xbt_getline(&line, &n, fp);
       
       while(read != -1){
 
         if(n == 0){
-          read = getline(&line, &n, fp);
+          read = xbt_getline(&line, &n, fp);
           continue;
         }
 
@@ -1327,7 +1369,7 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
         line[read - 1] = '\0'; 
 
         if(strlen(line) == 0){
-          read = getline(&line, &n, fp);
+          read = xbt_getline(&line, &n, fp);
           continue;
         }
        
@@ -1393,7 +1435,7 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
         
         }
 
-        read = getline(&line, &n, fp);
+        read = xbt_getline(&line, &n, fp);
  
       }
 
@@ -1412,7 +1454,7 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
       origin = strdup(strtok(NULL, "<"));
       xbt_str_rtrim(origin, ">:");
 
-      read = getline(&line, &n, fp);
+      read = xbt_getline(&line, &n, fp);
 
       while(read != -1){
 
@@ -1420,12 +1462,12 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
         line[read - 1] = '\0'; 
 
         if(n == 0){
-          read = getline(&line, &n, fp);
+          read = xbt_getline(&line, &n, fp);
           continue;
         }
 
         if(strlen(line) == 0){
-          read = getline(&line, &n, fp);
+          read = xbt_getline(&line, &n, fp);
           continue;
         }
 
@@ -1457,13 +1499,13 @@ void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_
           subroutine_frame->high_pc = (void *)strtoul(xbt_dynar_get_as(split, 3, char *), NULL, 16);
         }
 
-        read = getline(&line, &n, fp);
+        read = xbt_getline(&line, &n, fp);
       
       }
 
     }else{
 
-      read = getline(&line, &n, fp);
+      read = xbt_getline(&line, &n, fp);
 
     }
 
@@ -1515,13 +1557,13 @@ static dw_location_t get_location(xbt_dict_t location_list, char *expr){
       }else if(strcmp(tok2, "DW_OP_fbreg:") == 0){
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
         new_element->type = e_dw_fbregister_op;
-        new_element->location.fbreg_op = atoi(xbt_dynar_get_as(tokens2, 1, char*));
+        new_element->location.fbreg_op = atoi(xbt_dynar_get_as(tokens2, xbt_dynar_length(tokens2) - 1, char*));
         xbt_dynar_push(loc->location.compose, &new_element);
       }else if(strncmp(tok2, "DW_OP_breg", 10) == 0){
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
         new_element->type = e_dw_bregister_op;
         new_element->location.breg_op.reg = atoi(strtok(tok2, "DW_OP_breg"));
-        new_element->location.breg_op.offset = atoi(xbt_dynar_get_as(tokens2, 1, char*));
+        new_element->location.breg_op.offset = atoi(xbt_dynar_get_as(tokens2, xbt_dynar_length(tokens2) - 1, char*));
         xbt_dynar_push(loc->location.compose, &new_element);
       }else if(strncmp(tok2, "DW_OP_lit", 9) == 0){
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
@@ -1531,7 +1573,7 @@ static dw_location_t get_location(xbt_dict_t location_list, char *expr){
       }else if(strcmp(tok2, "DW_OP_piece:") == 0){
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
         new_element->type = e_dw_piece;
-        new_element->location.piece = atoi(xbt_dynar_get_as(tokens2, 1, char*));
+        new_element->location.piece = atoi(xbt_dynar_get_as(tokens2, xbt_dynar_length(tokens2) - 1, char*));
         /*if(strlen(xbt_dynar_get_as(tokens2, 1, char*)) > 1)
           new_element->location.piece = atoi(xbt_dynar_get_as(tokens2, 1, char*));
         else
@@ -1540,7 +1582,7 @@ static dw_location_t get_location(xbt_dict_t location_list, char *expr){
       }else if(strcmp(tok2, "DW_OP_plus_uconst:") == 0){
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
         new_element->type = e_dw_plus_uconst;
-        new_element->location.plus_uconst = atoi(xbt_dynar_get_as(tokens2, 1, char *));
+        new_element->location.plus_uconst = atoi(xbt_dynar_get_as(tokens2, xbt_dynar_length(tokens2) - 1, char *));
         xbt_dynar_push(loc->location.compose, &new_element);
       }else if(strcmp(tok, "DW_OP_abs") == 0 || 
                strcmp(tok, "DW_OP_and") == 0 ||
@@ -1560,7 +1602,7 @@ static dw_location_t get_location(xbt_dict_t location_list, char *expr){
       }else if(strcmp(tok2, "DW_OP_deref_size:") == 0){
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
         new_element->type = e_dw_deref;
-        new_element->location.deref_size = (unsigned int short) atoi(xbt_dynar_get_as(tokens2, 1, char*));
+        new_element->location.deref_size = (unsigned int short) atoi(xbt_dynar_get_as(tokens2, xbt_dynar_length(tokens2) - 1, char*));
         /*if(strlen(xbt_dynar_get_as(tokens, ++cursor, char*)) > 1)
           new_element->location.deref_size = atoi(xbt_dynar_get_as(tokens, cursor, char*));
         else
@@ -1575,7 +1617,7 @@ static dw_location_t get_location(xbt_dict_t location_list, char *expr){
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
         new_element->type = e_dw_uconstant;
         new_element->location.uconstant.bytes = 1;
-        new_element->location.uconstant.value = (unsigned long int)(atoi(xbt_dynar_get_as(tokens2, 1, char*)));
+        new_element->location.uconstant.value = (unsigned long int)(atoi(xbt_dynar_get_as(tokens2, xbt_dynar_length(tokens2) - 1, char*)));
         /*if(strlen(xbt_dynar_get_as(tokens, ++cursor, char*)) > 1)
           new_element->location.uconstant.value = (unsigned long int)(atoi(xbt_dynar_get_as(tokens, cursor, char*)));
         else
@@ -1585,7 +1627,7 @@ static dw_location_t get_location(xbt_dict_t location_list, char *expr){
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
         new_element->type = e_dw_sconstant;
         new_element->location.sconstant.bytes = 1;
-        new_element->location.sconstant.value = (long int)(atoi(xbt_dynar_get_as(tokens2, 1, char*)));
+        new_element->location.sconstant.value = (long int)(atoi(xbt_dynar_get_as(tokens2, xbt_dynar_length(tokens2) - 1, char*)));
         xbt_dynar_push(loc->location.compose, &new_element);
       }else if(strcmp(tok2, "DW_OP_const1u:") == 0 ||
                strcmp(tok2, "DW_OP_const2u:") == 0 ||
@@ -1594,7 +1636,7 @@ static dw_location_t get_location(xbt_dict_t location_list, char *expr){
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
         new_element->type = e_dw_uconstant;
         new_element->location.uconstant.bytes = tok2[11] - '0';
-        new_element->location.uconstant.value = (unsigned long int)(atoi(xbt_dynar_get_as(tokens2, 1, char*)));
+        new_element->location.uconstant.value = (unsigned long int)(atoi(xbt_dynar_get_as(tokens2, xbt_dynar_length(tokens2) - 1, char*)));
         /*if(strlen(xbt_dynar_get_as(tokens, ++cursor, char*)) > 1)
           new_element->location.constant.value = atoi(xbt_dynar_get_as(tokens, cursor, char*));
         else
@@ -1607,7 +1649,7 @@ static dw_location_t get_location(xbt_dict_t location_list, char *expr){
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
         new_element->type = e_dw_sconstant;
         new_element->location.sconstant.bytes = tok2[11] - '0';
-        new_element->location.sconstant.value = (long int)(atoi(xbt_dynar_get_as(tokens2, 1, char*)));
+        new_element->location.sconstant.value = (long int)(atoi(xbt_dynar_get_as(tokens2, xbt_dynar_length(tokens2) - 1, char*)));
         xbt_dynar_push(loc->location.compose, &new_element);
       }else{
         dw_location_t new_element = xbt_new0(s_dw_location_t, 1);
@@ -1780,7 +1822,7 @@ static void MC_get_global_variables(char *elf_file){
 
   int type = strcmp(elf_file, xbt_binary_name); /* 0 = binary, other = libsimgrid */
 
-  while ((read = getline(&line, &n, fp)) != -1){
+  while ((read = xbt_getline(&line, &n, fp)) != -1){
 
     if(n == 0)
       continue;
@@ -1801,7 +1843,6 @@ static void MC_get_global_variables(char *elf_file){
        || (strcmp(xbt_dynar_get_as(line_tokens, xbt_dynar_length(line_tokens) - 1, char*), ".data") == 0)
        || (strcmp(xbt_dynar_get_as(line_tokens, xbt_dynar_length(line_tokens) - 1, char*), ".bss") == 0)
        || (strncmp(xbt_dynar_get_as(line_tokens, xbt_dynar_length(line_tokens) - 1, char*), "stderr", 6) == 0)
-       || (strncmp(xbt_dynar_get_as(line_tokens, xbt_dynar_length(line_tokens) - 1, char*), "counter", 7) == 0)
        || ((size_t)strtoul(xbt_dynar_get_as(line_tokens, xbt_dynar_length(line_tokens) - 2, char*), NULL, 16) == 0))
       continue;
 
@@ -1817,10 +1858,34 @@ static void MC_get_global_variables(char *elf_file){
     var->size = (size_t)strtoul(xbt_dynar_get_as(line_tokens, xbt_dynar_length(line_tokens) - 2, char*), NULL, 16);
     var->name = strdup(xbt_dynar_get_as(line_tokens, xbt_dynar_length(line_tokens) - 1, char*));
 
-    if(data_bss_ignore_size(var->address) > 0)
+    if(data_bss_ignore_size(var->address) > 0){
       global_variable_free(var);
-    else
-      xbt_dynar_push(mc_global_variables, &var);
+    }else{
+      if(xbt_dynar_is_empty(mc_global_variables)){
+        xbt_dynar_push(mc_global_variables, &var);
+      }else{
+        unsigned int cursor = 0;
+        int start = 0;
+        int end = xbt_dynar_length(mc_global_variables) - 1;
+        global_variable_t current_var = NULL;
+      
+        while(start <= end){
+          cursor = (start + end) / 2;
+          current_var = (global_variable_t)xbt_dynar_get_as(mc_global_variables, cursor, global_variable_t);
+          if(current_var->address == var->address)
+            break;
+          if(current_var->address < var->address)
+            start = cursor + 1;
+          if(current_var->address > var->address)
+            end = cursor - 1;
+        }
+        if(current_var->address < var->address)
+          xbt_dynar_insert_at(mc_global_variables, cursor + 1, &var);
+        else
+          xbt_dynar_insert_at(mc_global_variables, cursor, &var);
+      }
+    }
 
     xbt_dynar_free(&line_tokens);
 
index 8067a73..8d01745 100644 (file)
@@ -71,7 +71,7 @@ int reached(xbt_state_t st){
   xbt_propositional_symbol_t ps = NULL;
   xbt_dynar_foreach(_mc_property_automaton->propositional_symbols, cursor, ps){
     f = (int_f_void_t)ps->function;
-    res = (*f)();
+    res = f();
     xbt_dynar_push_as(new_pair->prop_ato, int, res);
   }
   
@@ -155,7 +155,7 @@ void set_pair_reached(xbt_state_t st){
 
   xbt_dynar_foreach(_mc_property_automaton->propositional_symbols, cursor, ps){
     f = (int_f_void_t)ps->function;
-    res = (*f)();
+    res = f();
     xbt_dynar_push_as(pair->prop_ato, int, res);
   }
 
@@ -190,7 +190,7 @@ int visited(xbt_state_t st){
   xbt_propositional_symbol_t ps = NULL;
   xbt_dynar_foreach(_mc_property_automaton->propositional_symbols, cursor, ps){
     f = (int_f_void_t)ps->function;
-    res = (*f)();
+    res = f();
     xbt_dynar_push_as(new_pair->prop_ato, int, res);
   }
   
@@ -285,7 +285,7 @@ int MC_automaton_evaluate_label(xbt_exp_label_t l){
     xbt_dynar_foreach(_mc_property_automaton->propositional_symbols, cursor, p){
       if(strcmp(p->pred, l->u.predicat) == 0){
         f = (int_f_void_t)p->function;
-        return (*f)();
+        return f();
       }
     }
     return -1;
@@ -476,9 +476,11 @@ void MC_ddfs(int search_cycle){
    
         /* Debug information */
        
-        req_str = MC_request_to_string(req, value);
-        XBT_DEBUG("Execute: %s", req_str);
-        xbt_free(req_str);
+        if(XBT_LOG_ISENABLED(mc_liveness, xbt_log_priority_debug)){
+          req_str = MC_request_to_string(req, value);
+          XBT_DEBUG("Execute: %s", req_str);
+          xbt_free(req_str);
+        }
 
         MC_state_set_executed_request(current_pair->graph_state, req, value);   
 
index bf29aa9..865e1cb 100644 (file)
@@ -8,7 +8,9 @@
 
 #include "simgrid_config.h"
 #include <stdio.h>
+#ifndef WIN32
 #include <sys/mman.h>
+#endif
 #include "mc/mc.h"
 #include "mc/datatypes.h"
 #include "xbt/fifo.h"
@@ -36,11 +38,12 @@ typedef struct s_mc_mem_region{
 typedef struct s_mc_snapshot{
   unsigned int num_reg;
   int region_type[nb_regions];
-  size_t heap_chunks_used;
+  size_t heap_bytes_used;
   mc_mem_region_t *regions;
   size_t *stack_sizes;
   xbt_dynar_t stacks;
   int nb_processes;
+  xbt_dynar_t to_ignore;
 } s_mc_snapshot_t, *mc_snapshot_t;
 
 typedef struct s_mc_snapshot_stack{
@@ -67,7 +70,6 @@ int MC_deadlock_check(void);
 void MC_replay(xbt_fifo_t stack, int start);
 void MC_replay_liveness(xbt_fifo_t stack, int all_stack);
 void MC_wait_for_requests(void);
-void MC_get_enabled_processes();
 void MC_show_deadlock(smx_simcall_t req);
 void MC_show_stack_safety(xbt_fifo_t stack);
 void MC_dump_stack_safety(xbt_fifo_t stack);
@@ -110,8 +112,6 @@ typedef struct mc_state {
   mc_snapshot_t system_state;      /* Snapshot of system state */
 } s_mc_state_t, *mc_state_t;
 
-extern xbt_fifo_t mc_stack_safety_stateless;
-
 mc_state_t MC_state_new(void);
 void MC_state_delete(mc_state_t state);
 void MC_state_interleave_process(mc_state_t state, smx_process_t process);
@@ -200,7 +200,6 @@ void get_libsimgrid_plt_section(void);
 void get_binary_plt_section(void);
 
 extern void *start_data_libsimgrid;
-extern void *end_raw_heap;
 extern void *start_data_binary;
 extern void *start_bss_binary;
 extern char *libsimgrid_path;
@@ -219,7 +218,7 @@ extern void *end_got_plt_binary;
 
 typedef struct s_mc_comparison_times{
   double nb_processes_comparison_time;
-  double chunks_used_comparison_time;
+  double bytes_used_comparison_time;
   double stacks_sizes_comparison_time;
   double binary_global_variables_comparison_time;
   double libsimgrid_global_variables_comparison_time;
@@ -249,7 +248,6 @@ extern mc_global_t initial_state_safety;
 
 void MC_dpor_init(void);
 void MC_dpor(void);
-void MC_dpor_exit(void);
 void MC_init(void);
 
 typedef struct s_mc_safety_visited_state{
@@ -288,20 +286,17 @@ typedef struct s_mc_pair_visited{
 }s_mc_pair_visited_t, *mc_pair_visited_t;
 
 int MC_automaton_evaluate_label(xbt_exp_label_t l);
-mc_pair_t new_pair(mc_snapshot_t sn, mc_state_t sg, xbt_state_t st);
 
 int reached(xbt_state_t st);
 void set_pair_reached(xbt_state_t st);
 int visited(xbt_state_t st);
 
 void MC_pair_delete(mc_pair_t pair);
-void MC_exit_liveness(void);
 mc_state_t MC_state_pair_new(void);
 void pair_reached_free(mc_pair_reached_t pair);
 void pair_reached_free_voidp(void *p);
 void pair_visited_free(mc_pair_visited_t pair);
 void pair_visited_free_voidp(void *p);
-void MC_init_liveness(void);
 void MC_init_memory_map_info(void);
 
 int get_heap_region_index(mc_snapshot_t s);
@@ -426,7 +421,6 @@ void variable_value_free(variable_value_t v);
 
 void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_dict_t *variables);
 void print_local_variables(xbt_dict_t list);
-char *get_libsimgrid_path(void);
 xbt_dict_t MC_get_location_list(const char *elf_file);
 
 /**** Global variables ****/
index 25a49ca..1606b2d 100644 (file)
@@ -14,7 +14,7 @@ memory_map_t get_memory_map(void)
   FILE *fp;                     /* File pointer to process's proc maps file */
   char *line = NULL;            /* Temporal storage for each line that is readed */
   ssize_t read;                 /* Number of bytes readed */
-  size_t n = 0;                 /* Amount of bytes to read by getline */
+  size_t n = 0;                 /* Amount of bytes to read by xbt_getline */
   memory_map_t ret = NULL;      /* The memory map to return */
 
 /* The following variables are used during the parsing of the file "maps" */
@@ -35,7 +35,7 @@ memory_map_t get_memory_map(void)
   ret = xbt_new0(s_memory_map_t, 1);
 
   /* Read one line at the time, parse it and add it to the memory map to be returned */
-  while ((read = getline(&line, &n, fp)) != -1) {
+  while ((read = xbt_getline(&line, &n, fp)) != -1) {
 
     //fprintf(stderr,"%s", line);
 
index d8f2a72..885661e 100644 (file)
@@ -4,8 +4,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include "simgrid_config.h" //For getline, keep that include first
-
 #include "msg_private.h"
 #include "xbt/str.h"
 #include "xbt/dynar.h"
index d5ba36e..2b28c97 100644 (file)
@@ -125,6 +125,7 @@ msg_error_t MSG_parallel_task_execute(msg_task_t task)
  */
 msg_error_t MSG_process_sleep(double nb_sec)
 {
+  xbt_ex_t e;
   msg_error_t status = MSG_OK;
   /*msg_process_t proc = MSG_process_self();*/
 
@@ -140,7 +141,19 @@ msg_error_t MSG_process_sleep(double nb_sec)
   
   proc->simdata->waiting_action = NULL;*/
 
-  simcall_process_sleep(nb_sec);
+  TRY {
+    simcall_process_sleep(nb_sec);
+  }
+  CATCH(e) {
+    switch (e.category) {
+    case cancel_error:
+      status = MSG_TASK_CANCELED;
+      break;
+    default:
+      RETHROW;
+    }
+    xbt_ex_free(e);
+  }
 
   #ifdef HAVE_TRACING
     TRACE_msg_process_sleep_out(MSG_process_self());
@@ -186,6 +199,26 @@ MSG_task_receive_from_host(msg_task_t * task, const char *alias,
   return MSG_task_receive_ext(task, alias, -1, host);
 }
 
+/** msg_task_usage
+ *\brief Deprecated function that used to receive a task from a mailbox from a specific host
+ *\brief at a given rate
+ *
+ * \param task a memory location for storing a #msg_task_t.
+ * \param alias name of the mailbox to receive the task from
+ * \param host a #msg_host_t host from where the task was sent
+ * \param rate limit the reception to rate bandwidth
+ *
+ * \return Returns
+ * #MSG_OK if the task was successfully received,
+ * #MSG_HOST_FAILURE, or #MSG_TRANSFER_FAILURE otherwise.
+ */
+msg_error_t
+MSG_task_receive_from_host_bounded(msg_task_t * task, const char *alias,
+                           msg_host_t host, double rate)
+{
+  return MSG_task_receive_ext_bounded(task, alias, -1, host, rate);
+}
+
 /** \ingroup msg_task_usage
  * \brief Receives a task from a mailbox.
  *
@@ -205,6 +238,22 @@ msg_error_t MSG_task_receive(msg_task_t * task, const char *alias)
   return MSG_task_receive_with_timeout(task, alias, -1);
 }
 
+/** \ingroup msg_task_usage
+ * \brief Receives a task from a mailbox at a given rate.
+ *
+ * \param task a memory location for storing a #msg_task_t.
+ * \param alias name of the mailbox to receive the task from
+ *  \param rate limit the reception to rate bandwidth
+ *
+ * \return Returns
+ * #MSG_OK if the task was successfully received,
+ * #MSG_HOST_FAILURE, or #MSG_TRANSFER_FAILURE otherwise.
+ */
+msg_error_t MSG_task_receive_bounded(msg_task_t * task, const char *alias, double rate)
+{
+  return MSG_task_receive_with_timeout_bounded(task, alias, -1, rate);
+}
+
 /** \ingroup msg_task_usage
  * \brief Receives a task from a mailbox with a given timeout.
  *
@@ -228,6 +277,25 @@ MSG_task_receive_with_timeout(msg_task_t * task, const char *alias,
   return MSG_task_receive_ext(task, alias, timeout, NULL);
 }
 
+/** \ingroup msg_task_usage
+ * \brief Receives a task from a mailbox with a given timeout and at a given rate.
+ *
+ * \param task a memory location for storing a #msg_task_t.
+ * \param alias name of the mailbox to receive the task from
+ * \param timeout is the maximum wait time for completion (if -1, this call is the same as #MSG_task_receive)
+ *  \param rate limit the reception to rate bandwidth
+ *
+ * \return Returns
+ * #MSG_OK if the task was successfully received,
+ * #MSG_HOST_FAILURE, or #MSG_TRANSFER_FAILURE, or #MSG_TIMEOUT otherwise.
+ */
+msg_error_t
+MSG_task_receive_with_timeout_bounded(msg_task_t * task, const char *alias,
+                              double timeout,double rate)
+{
+  return MSG_task_receive_ext_bounded(task, alias, timeout, NULL,rate);
+}
+
 /** \ingroup msg_task_usage
  * \brief Receives a task from a mailbox from a specific host with a given timeout.
  *
@@ -248,12 +316,52 @@ MSG_task_receive_with_timeout(msg_task_t * task, const char *alias,
 msg_error_t
 MSG_task_receive_ext(msg_task_t * task, const char *alias, double timeout,
                      msg_host_t host)
+{
+  xbt_ex_t e;
+  msg_error_t ret = MSG_OK;
+  XBT_DEBUG
+      ("MSG_task_receive_ext: Trying to receive a message on mailbox '%s'",
+       alias);
+  TRY {
+    ret = MSG_mailbox_get_task_ext(MSG_mailbox_get_by_alias(alias), task,
+                                   host, timeout);
+  }
+  CATCH(e) {
+    switch (e.category) {
+    case cancel_error:          /* may be thrown by MSG_mailbox_get_by_alias */
+      ret = MSG_HOST_FAILURE;
+      break;
+    default:
+      RETHROW;
+    }
+    xbt_ex_free(e);
+  }
+  return ret;
+}
+
+/** \ingroup msg_task_usage
+ * \brief Receives a task from a mailbox from a specific host with a given timeout
+ *  and at a given rate.
+ *
+ * \param task a memory location for storing a #msg_task_t.
+ * \param alias name of the mailbox to receive the task from
+ * \param timeout is the maximum wait time for completion (provide -1 for no timeout)
+ * \param host a #msg_host_t host from where the task was sent
+ * \param rate limit the reception to rate bandwidth
+ *
+ * \return Returns
+ * #MSG_OK if the task was successfully received,
+* #MSG_HOST_FAILURE, or #MSG_TRANSFER_FAILURE, or #MSG_TIMEOUT otherwise.
+ */
+msg_error_t
+MSG_task_receive_ext_bounded(msg_task_t * task, const char *alias, double timeout,
+                     msg_host_t host, double rate)
 {
   XBT_DEBUG
       ("MSG_task_receive_ext: Trying to receive a message on mailbox '%s'",
        alias);
-  return MSG_mailbox_get_task_ext(MSG_mailbox_get_by_alias(alias), task,
-                                  host, timeout);
+  return MSG_mailbox_get_task_ext_bounded(MSG_mailbox_get_by_alias(alias), task,
+                                  host, timeout, rate);
 }
 
 /** \ingroup msg_task_usage
@@ -500,6 +608,40 @@ msg_comm_t MSG_task_irecv(msg_task_t *task, const char *name)
   return comm;
 }
 
+/** \ingroup msg_task_usage
+ * \brief Starts listening for receiving a task from an asynchronous communication
+ * at a given rate.
+ *
+ * \param task a memory location for storing a #msg_task_t. has to be valid until the end of the communication.
+ * \param name of the mailbox to receive the task on
+ * \param rate limit the bandwidth to the given rate
+ * \return the msg_comm_t communication created
+ */
+msg_comm_t MSG_task_irecv_bounded(msg_task_t *task, const char *name, double rate)
+{
+
+
+  smx_rdv_t rdv = MSG_mailbox_get_by_alias(name);
+
+  /* FIXME: these functions are not traceable */
+
+  /* Sanity check */
+  xbt_assert(task, "Null pointer for the task storage");
+
+  if (*task)
+    XBT_CRITICAL
+        ("MSG_task_irecv() was asked to write in a non empty task struct.");
+
+  /* Try to receive it by calling SIMIX network layer */
+  msg_comm_t comm = xbt_new0(s_msg_comm_t, 1);
+  comm->task_sent = NULL;
+  comm->task_received = task;
+  comm->status = MSG_OK;
+  comm->s_comm = simcall_comm_irecv_bounded(rdv, task, NULL, NULL, NULL, rate);
+
+  return comm;
+}
+
 /** \ingroup msg_task_usage
  * \brief Checks whether a communication is done, and if yes, finalizes it.
  * \param comm the communication to test
index 942f332..f2eb97f 100644 (file)
@@ -116,6 +116,77 @@ MSG_mailbox_get_task_ext(msg_mailbox_t mailbox, msg_task_t * task,
   }
   CATCH(e) {
     switch (e.category) {
+    case cancel_error:
+      ret = MSG_HOST_FAILURE;
+      break;
+    case network_error:
+      ret = MSG_TRANSFER_FAILURE;
+      break;
+    case timeout_error:
+      ret = MSG_TIMEOUT;
+      break;
+    default:
+      RETHROW;
+    }
+    xbt_ex_free(e);
+  }
+
+#ifdef HAVE_TRACING
+  if (ret != MSG_HOST_FAILURE &&
+      ret != MSG_TRANSFER_FAILURE &&
+      ret != MSG_TIMEOUT) {
+    TRACE_msg_task_get_end(start_time, *task);
+  }
+#endif
+  MSG_RETURN(ret);
+}
+
+/** \ingroup msg_mailbox_management
+ * \brief Get a task from a mailbox on a given host at a given rate
+ *
+ * \param mailbox The mailbox where the task was sent
+ * \param task a memory location for storing a #msg_task_t.
+ * \param host a #msg_host_t host from where the task was sent
+ * \param timeout a timeout
+ * \param rate a rate
+
+ * \return Returns
+ * #MSG_OK if the task was successfully received,
+ * #MSG_HOST_FAILURE, or #MSG_TRANSFER_FAILURE otherwise.
+ */
+msg_error_t
+MSG_mailbox_get_task_ext_bounded(msg_mailbox_t mailbox, msg_task_t * task,
+                         msg_host_t host, double timeout, double rate)
+{
+  xbt_ex_t e;
+  msg_error_t ret = MSG_OK;
+  /* We no longer support getting a task from a specific host */
+  if (host)
+    THROW_UNIMPLEMENTED;
+
+#ifdef HAVE_TRACING
+  TRACE_msg_task_get_start();
+  double start_time = MSG_get_clock();
+#endif
+
+  /* Sanity check */
+  xbt_assert(task, "Null pointer for the task storage");
+
+  if (*task)
+    XBT_WARN
+        ("Asked to write the received task in a non empty struct -- proceeding.");
+
+  /* Try to receive it by calling SIMIX network layer */
+  TRY {
+    simcall_comm_recv_bounded(mailbox, task, NULL, NULL, NULL, timeout, rate);
+    XBT_DEBUG("Got task %s from %p",(*task)->name,mailbox);
+    (*task)->simdata->isused=0;
+  }
+  CATCH(e) {
+    switch (e.category) {
+    case cancel_error:
+      ret = MSG_HOST_FAILURE;
+      break;
     case network_error:
       ret = MSG_TRANSFER_FAILURE;
       break;
@@ -183,6 +254,9 @@ MSG_mailbox_put_with_timeout(msg_mailbox_t mailbox, msg_task_t task,
 
   CATCH(e) {
     switch (e.category) {
+    case cancel_error:
+      ret = MSG_HOST_FAILURE;
+      break;
     case network_error:
       ret = MSG_TRANSFER_FAILURE;
       break;
index 97fade8..1b60ff6 100644 (file)
@@ -122,8 +122,6 @@ XBT_PUBLIC_DATA(MSG_Global_t) msg_global;
 msg_host_t __MSG_host_create(smx_host_t workstation);
 void __MSG_host_destroy(msg_host_priv_t host);
 
-void __MSG_display_process_status(void);
-
 void MSG_process_cleanup_from_SIMIX(smx_process_t smx_proc);
 void MSG_process_create_from_SIMIX(smx_process_t *process, const char *name,
                                    xbt_main_func_t code, void *data,
index ffb90b2..908d89c 100644 (file)
@@ -339,13 +339,11 @@ void MSG_vm_resume(msg_vm_t vm)
 void MSG_vm_save(msg_vm_t vm)
 {
   simcall_vm_save(vm);
-
   #ifdef HAVE_TRACING
   TRACE_msg_vm_save(vm);
   #endif
 }
 
-
 /** @brief Restore the execution of the VM. All processes on the VM run again.
  *  @ingroup msg_VMs
  *
index c890d8c..ef7b715 100644 (file)
 # include <sys/sysctl.h>
 #endif
 
-/****
- **** Networking 
- ****/
-
-
-#ifdef HAVE_SYS_SOCKET_H
-#  include <sys/socket.h>
-#  include <netinet/in.h>       /* sometimes required for #include <arpa/inet.h> */
-#  include <netinet/tcp.h>      /* TCP_NODELAY */
-#  include <netdb.h>            /* getprotobyname() */
-#  include <arpa/inet.h>        /* inet_ntoa() */
-#  include <sys/types.h>        /* sometimes required for fd_set */
-# endif
-
-
-#ifndef HAVE_WINSOCK_H
-#       define tcp_read( s, buf, len)   read( s, buf, len )
-#       define tcp_write( s, buf, len)  write( s, buf, len )
-#       define sock_errno        errno
-#       define sock_errstr(err)  strerror(err)
-
-#       ifdef SHUT_RDWR
-#               define tcp_close( s )   (shutdown( s, SHUT_RDWR ), close( s ))
-#       else
-#               define tcp_close( s )   close( s )
-#       endif
-#endif                          /* windows or unix ? */
-
 /****
  **** File handling
  ****/
@@ -154,10 +126,4 @@ extern int vasnprintf(char **ptr, size_t str_m, const char *fmt,
 #  include <execinfo.h>
 #endif
 
-/****
- **** Some debugging functions. Can't we find a better place for this??
- ****/
-void hexa_print(const char *name, unsigned char *data, int size);
-const char *hexa_str(unsigned char *data, int size, int downside);
-
 #endif                          /* SIMGRID_PORTABLE_H */
index ec0af0b..8e1cded 100644 (file)
@@ -1259,8 +1259,8 @@ char *dax_text;
  *
  * This program was generated with the FleXML XML processor generator.
  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
- * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
- * (Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp).
+ * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
+ * (1.9.6).
  * 
  * There are two, intertwined parts to this program, part A and part B.
  *
@@ -1269,7 +1269,7 @@ char *dax_text;
  * 
  * Some parts, here collectively called "Part A", are found in the 
  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
- * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
+ * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
  *
  * You can redistribute, use, perform, display and/or modify "Part A"
  * provided the following two conditions hold:
@@ -1302,10 +1302,7 @@ char *dax_text;
  */
 
 /* Version strings. */
-const char rcs_dax__flexml_skeleton[] =
- "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
-const char rcs_dax__flexml[] =
- "$" "Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp $";
+const char dax__flexml_version[] = "1.9.6";
 
 /* ANSI headers. */
 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
index e1d69e7..e31871d 100644 (file)
@@ -2,8 +2,8 @@
  *
  * This program was generated with the FleXML XML processor generator.
  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
- * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
- * (Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp).
+ * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
+ * (1.9.6).
  * 
  * There are two, intertwined parts to this program, part A and part B.
  *
@@ -12,7 +12,7 @@
  * 
  * Some parts, here collectively called "Part A", are found in the 
  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
- * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
+ * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
  *
  * You can redistribute, use, perform, display and/or modify "Part A"
  * provided the following two conditions hold:
 #define _FLEXML_dax_H
 
 /* XML application entry points. */
-XBT_PUBLIC(void ) STag_dax__adag(void);
-XBT_PUBLIC(void ) ETag_dax__adag(void);
-XBT_PUBLIC(void ) STag_dax__job(void);
-XBT_PUBLIC(void ) ETag_dax__job(void);
-XBT_PUBLIC(void ) STag_dax__uses(void);
-XBT_PUBLIC(void ) ETag_dax__uses(void);
-XBT_PUBLIC(void ) STag_dax__child(void);
-XBT_PUBLIC(void ) ETag_dax__child(void);
-XBT_PUBLIC(void ) STag_dax__parent(void);
-XBT_PUBLIC(void ) ETag_dax__parent(void);
+XBT_PUBLIC(void) STag_dax__adag(void);
+XBT_PUBLIC(void) ETag_dax__adag(void);
+XBT_PUBLIC(void) STag_dax__job(void);
+XBT_PUBLIC(void) ETag_dax__job(void);
+XBT_PUBLIC(void) STag_dax__uses(void);
+XBT_PUBLIC(void) ETag_dax__uses(void);
+XBT_PUBLIC(void) STag_dax__child(void);
+XBT_PUBLIC(void) ETag_dax__child(void);
+XBT_PUBLIC(void) STag_dax__parent(void);
+XBT_PUBLIC(void) ETag_dax__parent(void);
 
 /* XML application data. */
 typedef int AT_dax__adag_version;
@@ -108,90 +108,90 @@ typedef int AT_dax__adag_fileCount;
 #define AU_dax__adag_fileCount NULL
 
 /* FleXML-provided data. */
-XBT_PUBLIC_DATA(int ) dax__pcdata_ix;
+XBT_PUBLIC_DATA(int) dax__pcdata_ix;
 XBT_PUBLIC_DATA(char *) dax__bufferstack;
 #define dax__pcdata (dax__bufferstack + dax__pcdata_ix)
-XBT_PUBLIC_DATA(AT_dax__adag_version ) AX_dax__adag_version;
+XBT_PUBLIC_DATA(AT_dax__adag_version) AX_dax__adag_version;
 #define A_dax__adag_version (dax__bufferstack + AX_dax__adag_version)
-XBT_PUBLIC_DATA(short ) int dax__adag_version_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_type ) AX_dax__uses_type;
+XBT_PUBLIC_DATA(short int) dax__adag_version_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_type) AX_dax__uses_type;
 #define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type)
-XBT_PUBLIC_DATA(short ) int dax__uses_type_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_optional ) AX_dax__uses_optional;
+XBT_PUBLIC_DATA(short int) dax__uses_type_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_optional) AX_dax__uses_optional;
 #define A_dax__uses_optional AX_dax__uses_optional
-XBT_PUBLIC_DATA(short ) int dax__uses_optional_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_name ) AX_dax__adag_name;
+XBT_PUBLIC_DATA(short int) dax__uses_optional_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_name) AX_dax__adag_name;
 #define A_dax__adag_name (dax__bufferstack + AX_dax__adag_name)
-XBT_PUBLIC_DATA(short ) int dax__adag_name_isset;
-XBT_PUBLIC_DATA(AT_dax__child_ref ) AX_dax__child_ref;
+XBT_PUBLIC_DATA(short int) dax__adag_name_isset;
+XBT_PUBLIC_DATA(AT_dax__child_ref) AX_dax__child_ref;
 #define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref)
-XBT_PUBLIC_DATA(short ) int dax__child_ref_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_xmlns ) AX_dax__adag_xmlns;
+XBT_PUBLIC_DATA(short int) dax__child_ref_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_xmlns) AX_dax__adag_xmlns;
 #define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns)
-XBT_PUBLIC_DATA(short ) int dax__adag_xmlns_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_transfer ) AX_dax__uses_transfer;
+XBT_PUBLIC_DATA(short int) dax__adag_xmlns_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_transfer) AX_dax__uses_transfer;
 #define A_dax__uses_transfer AX_dax__uses_transfer
-XBT_PUBLIC_DATA(short ) int dax__uses_transfer_isset;
-XBT_PUBLIC_DATA(AT_dax__job_id ) AX_dax__job_id;
+XBT_PUBLIC_DATA(short int) dax__uses_transfer_isset;
+XBT_PUBLIC_DATA(AT_dax__job_id) AX_dax__job_id;
 #define A_dax__job_id (dax__bufferstack + AX_dax__job_id)
-XBT_PUBLIC_DATA(short ) int dax__job_id_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_file ) AX_dax__uses_file;
+XBT_PUBLIC_DATA(short int) dax__job_id_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_file) AX_dax__uses_file;
 #define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file)
-XBT_PUBLIC_DATA(short ) int dax__uses_file_isset;
-XBT_PUBLIC_DATA(AT_dax__parent_ref ) AX_dax__parent_ref;
+XBT_PUBLIC_DATA(short int) dax__uses_file_isset;
+XBT_PUBLIC_DATA(AT_dax__parent_ref) AX_dax__parent_ref;
 #define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref)
-XBT_PUBLIC_DATA(short ) int dax__parent_ref_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_count ) AX_dax__adag_count;
+XBT_PUBLIC_DATA(short int) dax__parent_ref_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_count) AX_dax__adag_count;
 #define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count)
-XBT_PUBLIC_DATA(short ) int dax__adag_count_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_xmlns_c_xsi ) AX_dax__adag_xmlns_c_xsi;
+XBT_PUBLIC_DATA(short int) dax__adag_count_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_xmlns_c_xsi) AX_dax__adag_xmlns_c_xsi;
 #define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi)
-XBT_PUBLIC_DATA(short ) int dax__adag_xmlns_c_xsi_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_index ) AX_dax__adag_index;
+XBT_PUBLIC_DATA(short int) dax__adag_xmlns_c_xsi_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_index) AX_dax__adag_index;
 #define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index)
-XBT_PUBLIC_DATA(short ) int dax__adag_index_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_size ) AX_dax__uses_size;
+XBT_PUBLIC_DATA(short int) dax__adag_index_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_size) AX_dax__uses_size;
 #define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size)
-XBT_PUBLIC_DATA(short ) int dax__uses_size_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_childCount ) AX_dax__adag_childCount;
+XBT_PUBLIC_DATA(short int) dax__uses_size_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_childCount) AX_dax__adag_childCount;
 #define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount)
-XBT_PUBLIC_DATA(short ) int dax__adag_childCount_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_link ) AX_dax__uses_link;
+XBT_PUBLIC_DATA(short int) dax__adag_childCount_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_link) AX_dax__uses_link;
 #define A_dax__uses_link AX_dax__uses_link
-XBT_PUBLIC_DATA(short ) int dax__uses_link_isset;
-XBT_PUBLIC_DATA(AT_dax__job_runtime ) AX_dax__job_runtime;
+XBT_PUBLIC_DATA(short int) dax__uses_link_isset;
+XBT_PUBLIC_DATA(AT_dax__job_runtime) AX_dax__job_runtime;
 #define A_dax__job_runtime (dax__bufferstack + AX_dax__job_runtime)
-XBT_PUBLIC_DATA(short ) int dax__job_runtime_isset;
-XBT_PUBLIC_DATA(AT_dax__job_level ) AX_dax__job_level;
+XBT_PUBLIC_DATA(short int) dax__job_runtime_isset;
+XBT_PUBLIC_DATA(AT_dax__job_level) AX_dax__job_level;
 #define A_dax__job_level (dax__bufferstack + AX_dax__job_level)
-XBT_PUBLIC_DATA(short ) int dax__job_level_isset;
-XBT_PUBLIC_DATA(AT_dax__job_namespace ) AX_dax__job_namespace;
+XBT_PUBLIC_DATA(short int) dax__job_level_isset;
+XBT_PUBLIC_DATA(AT_dax__job_namespace) AX_dax__job_namespace;
 #define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace)
-XBT_PUBLIC_DATA(short ) int dax__job_namespace_isset;
-XBT_PUBLIC_DATA(AT_dax__job_name ) AX_dax__job_name;
+XBT_PUBLIC_DATA(short int) dax__job_namespace_isset;
+XBT_PUBLIC_DATA(AT_dax__job_name) AX_dax__job_name;
 #define A_dax__job_name (dax__bufferstack + AX_dax__job_name)
-XBT_PUBLIC_DATA(short ) int dax__job_name_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_jobCount ) AX_dax__adag_jobCount;
+XBT_PUBLIC_DATA(short int) dax__job_name_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_jobCount) AX_dax__adag_jobCount;
 #define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount)
-XBT_PUBLIC_DATA(short ) int dax__adag_jobCount_isset;
-XBT_PUBLIC_DATA(AT_dax__job_version ) AX_dax__job_version;
+XBT_PUBLIC_DATA(short int) dax__adag_jobCount_isset;
+XBT_PUBLIC_DATA(AT_dax__job_version) AX_dax__job_version;
 #define A_dax__job_version (dax__bufferstack + AX_dax__job_version)
-XBT_PUBLIC_DATA(short ) int dax__job_version_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_xsi_c_schemaLocation ) AX_dax__adag_xsi_c_schemaLocation;
+XBT_PUBLIC_DATA(short int) dax__job_version_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_xsi_c_schemaLocation) AX_dax__adag_xsi_c_schemaLocation;
 #define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation)
-XBT_PUBLIC_DATA(short ) int dax__adag_xsi_c_schemaLocation_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_register ) AX_dax__uses_register;
+XBT_PUBLIC_DATA(short int) dax__adag_xsi_c_schemaLocation_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_register) AX_dax__uses_register;
 #define A_dax__uses_register AX_dax__uses_register
-XBT_PUBLIC_DATA(short ) int dax__uses_register_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_fileCount ) AX_dax__adag_fileCount;
+XBT_PUBLIC_DATA(short int) dax__uses_register_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_fileCount) AX_dax__adag_fileCount;
 #define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount)
-XBT_PUBLIC_DATA(short ) int dax__adag_fileCount_isset;
+XBT_PUBLIC_DATA(short int) dax__adag_fileCount_isset;
 
 /* XML application utilities. */
-XBT_PUBLIC(int ) dax__element_context(int);
+XBT_PUBLIC(int) dax__element_context(int);
 
 /* XML processor entry point. */
-XBT_PUBLIC(int ) yylex(void);
+XBT_PUBLIC(int) yylex(void);
 
 /* Flexml error handling function (useful only when -q flag passed to flexml) */
 const char * dax__parse_err_msg(void);
index c4da12e..409b3d9 100644 (file)
@@ -23,6 +23,8 @@ void TRACE_sd_set_task_category(SD_task_t task, const char *category){
   }
 
   //set task category
+  if (task->category)
+    xbt_free(task->category);
   task->category = xbt_strdup (category);
   XBT_DEBUG("SD task %p(%s), category %s", task, task->name, task->category);
 }
index 9d9d675..29803e9 100644 (file)
@@ -37,17 +37,6 @@ static double dax_parse_double(const char *string)
   return value;
 }
 
-static int dax_parse_int(const char *string)
-{
-  int ret = 0;
-  int value;
-
-  ret = sscanf(string, "%d", &value);
-  if (ret != 1)
-    dax_parse_error(bprintf("%s is not an integer", string));
-  return value;
-}
-
 /* Ensure that transfer tasks have unique names even though a file is used
  * several times */
 
@@ -254,16 +243,6 @@ static xbt_dict_t files;
 static SD_task_t current_job;
 static SD_task_t root_task, end_task;
 
-static void dump_res()
-{
-  unsigned int cursor;
-  SD_task_t task;
-  xbt_dynar_foreach(result, cursor, task) {
-    XBT_INFO("Task %u", cursor);
-    SD_task_dump(task);
-  }
-}
-
 static void dax_task_free(void *task)
 {
   SD_task_t t = task;
index b6ceb64..29c7b94 100644 (file)
@@ -32,80 +32,21 @@ typedef enum {
   parallel
 } seq_par_t;
 
-void dot_add_task(Agnode_t * dag_node);
-void dot_add_parallel_task(Agnode_t * dag_node);
-void dot_add_input_dependencies(SD_task_t current_job, Agedge_t * edge,
-                                seq_par_t seq_or_par);
-void dot_add_output_dependencies(SD_task_t current_job, Agedge_t * edge,
-                                 seq_par_t seq_or_par);
-xbt_dynar_t SD_dotload_generic(const char * filename);
-
-static double dot_parse_double(const char *string)
-{
-  if (string == NULL)
-    return -1;
-  double value = -1;
-  char *err;
-
-  //ret = sscanf(string, "%lg", &value);
-  errno = 0;
-  value = strtod(string,&err);
-  if(errno)
-  {
-    XBT_WARN("Failed to convert string to double: %s\n",strerror(errno));
-    return -1;
-  }
-  return value;
-}
-
-
-static int dot_parse_int(const char *string)
-{
-  if (string == NULL)
-    return -10;
-  int ret = 0;
-  int value = -1;
-
-  ret = sscanf(string, "%d", &value);
-  if (ret != 1)
-    XBT_WARN("%s is not an integer", string);
-  return value;
-}
+xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par);
 
 static xbt_dynar_t result;
 static xbt_dict_t jobs;
-static xbt_dict_t files;
 static xbt_dict_t computers;
-static SD_task_t root_task, end_task;
 static Agraph_t *dag_dot;
 static bool schedule = true;
 
-static void dump_res()
-{
-  unsigned int cursor;
-  SD_task_t task;
-  xbt_dynar_foreach(result, cursor, task) {
-    XBT_INFO("Task %d", cursor);
-    SD_task_dump(task);
-  }
-}
-
-
-static void dot_task_free(void *task)
-{
-  SD_task_t t = task;
-  SD_task_destroy(t);
-}
-
-static void dot_task_p_free(void *task)
-{
+static void dot_task_p_free(void *task) {
   SD_task_t *t = task;
   SD_task_destroy(*t);
 }
 
 #ifdef HAVE_TRACING
-static void TRACE_sd_dotloader (SD_task_t task, const char *category)
-{
+static void TRACE_sd_dotloader (SD_task_t task, const char *category) {
   if (category && strlen (category)){
     if (task->category)
       XBT_DEBUG("Change the category of %s from %s to %s",
@@ -127,9 +68,10 @@ static void TRACE_sd_dotloader (SD_task_t task, const char *category)
  * (the amount of data transfer in bit).
  * if they aren't here, there choose to be equal to zero.
  */
-xbt_dynar_t SD_dotload(const char *filename)
-{
-  SD_dotload_generic(filename);
+xbt_dynar_t SD_dotload(const char *filename) {
+  computers = xbt_dict_new_homogeneous(NULL);
+  schedule = false;
+  SD_dotload_generic(filename, sequential);
   xbt_dynar_t computer = NULL;
   xbt_dict_cursor_t dict_cursor;
   char *computer_name;
@@ -140,22 +82,23 @@ xbt_dynar_t SD_dotload(const char *filename)
   return result;
 }
 
-xbt_dynar_t SD_dotload_with_sched(const char *filename){
-  SD_dotload_generic(filename);
+xbt_dynar_t SD_dotload_with_sched(const char *filename) {
+  computers = xbt_dict_new_homogeneous(NULL);
+  SD_dotload_generic(filename, sequential);
 
-  if(schedule == true){
+  if(schedule){
     xbt_dynar_t computer = NULL;
     xbt_dict_cursor_t dict_cursor;
     char *computer_name;
     const SD_workstation_t *workstations = SD_workstation_get_list ();
     xbt_dict_foreach(computers,dict_cursor,computer_name,computer){
-      int count_computer = dot_parse_int(computer_name);
+      int count_computer = atoi(computer_name);
       unsigned int count=0;
       SD_task_t task;
       SD_task_t task_previous = NULL;
       xbt_dynar_foreach(computer,count,task){
-        // add dependency between the previous and the task to avoid
-        // parallel execution
+        /* add dependency between the previous and the task to avoid
+         * parallel execution */
         if(task != NULL ){
           if(task_previous != NULL &&
              !SD_task_dependency_exists(task_previous, task))
@@ -189,85 +132,8 @@ xbt_dynar_t SD_dotload_with_sched(const char *filename){
   return NULL;
 }
 
-xbt_dynar_t SD_PTG_dotload(const char * filename)
-{
-  xbt_assert(filename, "Unable to use a null file descriptor\n");
-  FILE *in_file = fopen(filename, "r");
-  dag_dot = agread(in_file, NIL(Agdisc_t *));
-
-  result = xbt_dynar_new(sizeof(SD_task_t), dot_task_p_free);
-  files = xbt_dict_new_homogeneous(&dot_task_free);
-  jobs = xbt_dict_new_homogeneous(NULL);
-  computers = xbt_dict_new_homogeneous(NULL);
-  root_task = SD_task_create_comp_par_amdahl("root", NULL, 0., 0.);
-  /* by design the root task is always SCHEDULABLE */
-  __SD_task_set_state(root_task, SD_SCHEDULABLE);
-
-  xbt_dict_set(jobs, "root", root_task, NULL);
-  xbt_dynar_push(result, &root_task);
-  end_task = SD_task_create_comp_par_amdahl("end", NULL, 0., 0.);
-  xbt_dict_set(jobs, "end", end_task, NULL);
-
-  Agnode_t *dag_node = NULL;
-  for (dag_node = agfstnode(dag_dot); dag_node; dag_node = agnxtnode(dag_dot, dag_node)) {
-    dot_add_parallel_task(dag_node);
-  }
-  agclose(dag_dot);
-  xbt_dict_free(&jobs);
-
-  /* And now, post-process the files.
-   * We want a file task per pair of computation tasks exchanging the file. Duplicate on need
-   * Files not produced in the system are said to be produced by root task (top of DAG).
-   * Files not consumed in the system are said to be consumed by end task (bottom of DAG).
-   */
-  xbt_dict_cursor_t cursor;
-  SD_task_t file;
-  char *name;
-  xbt_dict_foreach(files, cursor, name, file) {
-    unsigned int cpt1, cpt2;
-    SD_task_t newfile = NULL;
-    SD_dependency_t depbefore, depafter;
-    if (xbt_dynar_is_empty(file->tasks_before)) {
-      xbt_dynar_foreach(file->tasks_after, cpt2, depafter) {
-        SD_task_t newfile =
-            SD_task_create_comm_par_mxn_1d_block(file->name, NULL, file->amount);
-        SD_task_dependency_add(NULL, NULL, root_task, newfile);
-        SD_task_dependency_add(NULL, NULL, newfile, depafter->dst);
-        xbt_dynar_push(result, &newfile);
-      }
-    } else if (xbt_dynar_is_empty(file->tasks_after)) {
-      xbt_dynar_foreach(file->tasks_before, cpt2, depbefore) {
-        SD_task_t newfile =
-            SD_task_create_comm_par_mxn_1d_block(file->name, NULL, file->amount);
-        SD_task_dependency_add(NULL, NULL, depbefore->src, newfile);
-        SD_task_dependency_add(NULL, NULL, newfile, end_task);
-        xbt_dynar_push(result, &newfile);
-      }
-    } else {
-      xbt_dynar_foreach(file->tasks_before, cpt1, depbefore) {
-        xbt_dynar_foreach(file->tasks_after, cpt2, depafter) {
-          if (depbefore->src == depafter->dst) {
-            XBT_WARN
-                ("File %s is produced and consumed by task %s. This loop dependency will prevent the execution of the task.",
-                 file->name, depbefore->src->name);
-          }
-          newfile =
-              SD_task_create_comm_par_mxn_1d_block(file->name, NULL, file->amount);
-          SD_task_dependency_add(NULL, NULL, depbefore->src, newfile);
-          SD_task_dependency_add(NULL, NULL, newfile, depafter->dst);
-          xbt_dynar_push(result, &newfile);
-        }
-      }
-    }
-  }
-
-  /* Push end task last */
-  xbt_dynar_push(result, &end_task);
-
-  /* Free previous copy of the files */
-  xbt_dict_free(&files);
-  xbt_dict_free(&computers);
-  fclose(in_file);
+xbt_dynar_t SD_PTG_dotload(const char * filename) {
+  xbt_dynar_t result = SD_dotload_generic(filename, parallel);
   if (!acyclic_graph_detail(result)) {
     XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.",
               basename((char*)filename));
@@ -277,324 +143,251 @@ xbt_dynar_t SD_PTG_dotload(const char * filename)
   return result;
 }
 
-
-xbt_dynar_t SD_dotload_generic(const char * filename)
+#ifdef HAVE_CGRAPH_H
+static int edge_compare(const void *a, const void *b)
 {
-  xbt_assert(filename, "Unable to use a null file descriptor\n");
-  //dag_dot =  agopen((char*)filename,Agstrictdirected,0);
-  FILE *in_file = fopen(filename, "r");
-  dag_dot = agread(in_file, NIL(Agdisc_t *));
+  unsigned va = AGSEQ(*(Agedge_t **)a);
+  unsigned vb = AGSEQ(*(Agedge_t **)b);
+  return va == vb ? 0 : (va < vb ? -1 : 1);
+}
+#endif
 
+xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par){
+  xbt_assert(filename, "Unable to use a null file descriptor\n");
+  unsigned int i;
   result = xbt_dynar_new(sizeof(SD_task_t), dot_task_p_free);
-  files = xbt_dict_new_homogeneous(NULL);
   jobs = xbt_dict_new_homogeneous(NULL);
-  computers = xbt_dict_new_homogeneous(NULL);
-  root_task = SD_task_create_comp_seq("root", NULL, 0);
-  /* by design the root task is always SCHEDULABLE */
-  __SD_task_set_state(root_task, SD_SCHEDULABLE);
-
-  xbt_dict_set(jobs, "root", root_task, NULL);
-  xbt_dynar_push(result, &root_task);
-  end_task = SD_task_create_comp_seq("end", NULL, 0);
-  xbt_dict_set(jobs, "end", end_task, NULL);
-
-  Agnode_t *dag_node = NULL;
-  for (dag_node = agfstnode(dag_dot); dag_node; dag_node = agnxtnode(dag_dot, dag_node)) {
-    dot_add_task(dag_node);
-  }
-  agclose(dag_dot);
-  xbt_dict_free(&jobs);
-
-  /* And now, post-process the files.
-   * We want a file task per pair of computation tasks exchanging the file. Duplicate on need
-   * Files not produced in the system are said to be produced by root task (top of DAG).
-   * Files not consumed in the system are said to be consumed by end task (bottom of DAG).
+  FILE *in_file = fopen(filename, "r");
+  if (in_file == NULL)
+    xbt_die("Failed to open file: %s", filename);
+  dag_dot = agread(in_file, NIL(Agdisc_t *));
+  SD_task_t root, end, task;
+  /*
+   * Create all the nodes
    */
-  xbt_dict_cursor_t cursor;
-  SD_task_t file;
-  char *name;
-  xbt_dict_foreach(files, cursor, name, file) {
-    XBT_DEBUG("Considering file '%s' stored in the dictionnary",
-        file->name);
-    if (xbt_dynar_is_empty(file->tasks_before)) {
-      XBT_DEBUG("file '%s' has no source. Add dependency from 'root'",
-          file->name);
-      SD_task_dependency_add(NULL, NULL, root_task, file);
-    } else if (xbt_dynar_is_empty(file->tasks_after)) {
-      XBT_DEBUG("file '%s' has no destination. Add dependency to 'end'",
-          file->name);
-      SD_task_dependency_add(NULL, NULL, file, end_task);
-    }
-    xbt_dynar_push(result, &file);
-  }
+  Agnode_t *node = NULL;
+  for (node = agfstnode(dag_dot); node; node = agnxtnode(dag_dot, node)) {
 
-  /* Push end task last */
-  xbt_dynar_push(result, &end_task);
+    char *name = agnameof(node);
+    double amount = atof(agget(node, (char *) "size"));
+    double alpha;
 
-  xbt_dict_free(&files);
-  fclose(in_file);
-  if (!acyclic_graph_detail(result)) {
-    XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.",
-              basename((char*)filename));
-    xbt_dynar_free(&result);
-    /* (result == NULL) here */
-  }
-  return result;
-}
+    if (seq_or_par == sequential){
+      XBT_DEBUG("See <job id=%s amount =%.0f>", name, amount);
+    } else {
+      if (!strcmp(agget(node, (char *) "alpha"), "")){
+        alpha = atof(agget(node, (char *) "alpha"));
+        if (alpha == -1.){
+          XBT_DEBUG("negative alpha value provided. Set to 0.");
+          alpha = 0.0 ;
+        }
+      } else {
+        XBT_DEBUG("no alpha value provided. Set to 0");
+        alpha = 0.0 ;
+      }
 
-/* dot_add_parallel_task create a sd_task of SD_TASK_COMP_PAR_AMDHAL type and
- * all transfers required for this task. The execution time of the task is
- * given by the attribute size. The unit of size is the Flop.*/
-void dot_add_parallel_task(Agnode_t * dag_node)
-{
-  char *name = agnameof(dag_node);
-  SD_task_t current_job;
-  double amount = dot_parse_double(agget(dag_node, (char *) "size"));
-  double alpha = dot_parse_double(agget(dag_node, (char *) "alpha"));
-
-  if (alpha == -1.)
-    alpha = 0.0;
-
-  XBT_DEBUG("See <job id=%s amount=%s %.0f alpha=%.2f>", name,
-        agget(dag_node, (char *) "size"), amount, alpha);
-  if (!strcmp(name, "root")){
-    XBT_WARN("'root' node is explicitly declared in the DOT file. Ignore it");
-    return;
-  }
-  if (!strcmp(name, "end")){
-    XBT_WARN("'end' node is explicitly declared in the DOT file. Ignore it");
-    return;
-  }
+      XBT_DEBUG("See <job id=%s amount =%.0f alpha = %.3f>",
+          name, amount, alpha);
+    }
 
-  current_job = xbt_dict_get_or_null(jobs, name);
-  if (current_job == NULL) {
-    current_job =
-        SD_task_create_comp_par_amdahl(name, NULL , amount, alpha);
+    if (!(task = xbt_dict_get_or_null(jobs, name))) {
+      if (seq_or_par == sequential){
+        task = SD_task_create_comp_seq(name, NULL , amount);
+      } else {
+        task = SD_task_create_comp_par_amdahl(name, NULL , amount, alpha);
+      }
 #ifdef HAVE_TRACING
-   TRACE_sd_dotloader (current_job, agget (dag_node, (char*)"category"));
+      TRACE_sd_dotloader (task, agget (node, (char*)"category"));
 #endif
-    xbt_dict_set(jobs, name, current_job, NULL);
-    xbt_dynar_push(result, &current_job);
-  }
-  Agedge_t *e;
-  int count = 0;
+      xbt_dict_set(jobs, name, task, NULL);
+      if (!strcmp(name, "root")){
+      /* by design the root task is always SCHEDULABLE */
+      __SD_task_set_state(task, SD_SCHEDULABLE);
+      /* Put it at the beginning of the dynar */
+        xbt_dynar_insert_at(result, 0, &task);
+      } else {
+        if (!strcmp(name, "end")){
+          XBT_DEBUG("Declaration of the 'end' node, don't store it yet.");
+          end = task;
+          /* Should be inserted later in the dynar */
+        } else {
+          xbt_dynar_push(result, &task);
+        }
+      }
 
-  for (e = agfstin(dag_dot, dag_node); e; e = agnxtin(dag_dot, e)) {
-    dot_add_input_dependencies(current_job, e, parallel);
-    count++;
-  }
-  if (count == 0 && current_job != root_task) {
-    SD_task_dependency_add(NULL, NULL, root_task, current_job);
-  }
-  count = 0;
-  for (e = agfstout(dag_dot, dag_node); e; e = agnxtout(dag_dot, e)) {
-    dot_add_output_dependencies(current_job, e, parallel);
-    count++;
-  }
-  if (count == 0 && current_job != end_task) {
-    SD_task_dependency_add(NULL, NULL, current_job, end_task);
+      if((seq_or_par == sequential) &&
+          (schedule ||
+              XBT_LOG_ISENABLED(sd_dotparse, xbt_log_priority_verbose))){
+        /* try to take the information to schedule the task only if all is
+         * right*/
+        int performer, order;
+        char *char_performer = agget(node, (char *) "performer");
+        char *char_order = agget(node, (char *) "order");
+        /* performer is the computer which execute the task */
+        performer =
+            ((!char_performer || !strcmp(char_performer,"")) ? -1:atoi(char_performer));
+        /* order is giving the task order on one computer */
+        order = ((!char_order || !strcmp(char_order, ""))? -1:atoi(char_order));
+
+        XBT_DEBUG ("Task '%s' is scheduled on workstation '%d' in position '%d'",
+                    task->name, performer, order);
+        xbt_dynar_t computer = NULL;
+        if(performer != -1 && order != -1){
+          /* required parameters are given */
+          computer = xbt_dict_get_or_null(computers, char_performer);
+          if(computer == NULL){
+            computer = xbt_dynar_new(sizeof(SD_task_t), NULL);
+            xbt_dict_set(computers, char_performer, computer, NULL);
+          }
+          if(performer < xbt_lib_length(host_lib)){
+            /* the wanted computer is available */
+            SD_task_t *task_test = NULL;
+            if(order < computer->used)
+              task_test = xbt_dynar_get_ptr(computer,order);
+            if(task_test != NULL && *task_test != NULL && *task_test != task){
+              /* the user gives the same order to several tasks */
+              schedule = false;
+              XBT_VERB("The task %s starts on the computer %s at the position : %s like the task %s",
+                     (*task_test)->name, char_performer, char_order,
+                     task->name);
+            }else{
+              /* the parameter seems to be ok */
+              xbt_dynar_set_as(computer, order, SD_task_t, task);
+            }
+          }else{
+            /* the platform has not enough processors to schedule the DAG like
+             * the user wants*/
+            schedule = false;
+            XBT_VERB("The schedule is ignored, there are not enough computers");
+          }
+        }
+        else {
+          /* one of required parameters is not given */
+          schedule = false;
+          XBT_VERB("The schedule is ignored, the task %s is not correctly scheduled",
+              task->name);
+        }
+      }
+    } else {
+      XBT_WARN("Task '%s' is defined more than once", name);
+    }
   }
-}
 
-/* dot_add_task create a sd_task and all transfers required for this
- * task. The execution time of the task is given by the attribute size.
- * The unit of size is the Flop.*/
-void dot_add_task(Agnode_t * dag_node)
-{
-  char *name = agnameof(dag_node);
-  SD_task_t current_job;
-  double runtime = dot_parse_double(agget(dag_node, (char *) "size"));
-
-  XBT_DEBUG("See <job id=%s runtime=%s %.0f>", name,
-        agget(dag_node, (char *) "size"), runtime);
-
-  if (!strcmp(name, "root")){
-    XBT_WARN("'root' node is explicitly declared in the DOT file. Update it");
-    root_task->amount = runtime;
-#ifdef HAVE_TRACING
-    TRACE_sd_dotloader (root_task, agget (dag_node, (char*)"category"));
-#endif
+  /*
+   * Check if 'root' and 'end' nodes have been explicitly declared.
+   * If not, create them.
+   */
+  if (!(root = xbt_dict_get_or_null(jobs, "root"))){
+    if (seq_or_par == sequential)
+      root = SD_task_create_comp_seq("root", NULL, 0);
+    else
+      root = SD_task_create_comp_par_amdahl("root", NULL, 0, 0);
+    /* by design the root task is always SCHEDULABLE */
+    __SD_task_set_state(root, SD_SCHEDULABLE);
+    /* Put it at the beginning of the dynar */
+      xbt_dynar_insert_at(result, 0, &root);
   }
 
-  if (!strcmp(name, "end")){
-    XBT_WARN("'end' node is explicitly declared in the DOT file. Update it");
-    end_task->amount = runtime;
-#ifdef HAVE_TRACING
-    TRACE_sd_dotloader (end_task, agget (dag_node, (char*)"category"));
-#endif
+  if (!(end = xbt_dict_get_or_null(jobs, "end"))){
+    if (seq_or_par == sequential)
+      end = SD_task_create_comp_seq("end", NULL, 0);
+    else
+      end = SD_task_create_comp_par_amdahl("end", NULL, 0, 0);
+    /* Should be inserted later in the dynar */
   }
 
-  current_job = xbt_dict_get_or_null(jobs, name);
-  if (!current_job) {
-    current_job =
-        SD_task_create_comp_seq(name, NULL , runtime);
+  /*
+   * Create edges
+   */
+  xbt_dynar_t edges = xbt_dynar_new(sizeof(Agedge_t*), NULL);
+  for (node = agfstnode(dag_dot); node; node = agnxtnode(dag_dot, node)) {
+    unsigned cursor;
+    Agedge_t * edge;
+    xbt_dynar_reset(edges);
+    for (edge = agfstout(dag_dot, node); edge; edge = agnxtout(dag_dot, edge))
+      xbt_dynar_push_as(edges, Agedge_t *, edge);
+#ifdef HAVE_CGRAPH_H
+    /* Hack: circumvent a bug in libcgraph, where the edges are not always given
+     * back in creation order.  We sort them again, according to their sequence
+     * id.  The problem appears to be solved (i.e.: I did not test it) in
+     * graphviz' mercurial repository by the following changeset:
+     *    changeset:   8431:d5f1fb7e8103
+     *    user:        Emden Gansner <erg@research.att.com>
+     *    date:        Tue Oct 11 12:38:58 2011 -0400
+     *    summary:     Make sure edges are stored in node creation order
+     * It should be fixed in graphviz 2.30 and above.
+     */
+    xbt_dynar_sort(edges, edge_compare);
+#endif
+    xbt_dynar_foreach(edges, cursor, edge) {
+      SD_task_t src, dst;
+      char *src_name=agnameof(agtail(edge));
+      char *dst_name=agnameof(aghead(edge));
+      double size = atof(agget(edge, (char *) "size"));
+
+      src = xbt_dict_get_or_null(jobs, src_name);
+      dst  = xbt_dict_get_or_null(jobs, dst_name);
+
+      if (size > 0) {
+        char *name =
+            xbt_malloc((strlen(src_name)+strlen(dst_name)+6)*sizeof(char));
+        sprintf(name, "%s->%s", src_name, dst_name);
+        XBT_DEBUG("See <transfer id=%s amount = %.0f>", name, size);
+        if (!(task = xbt_dict_get_or_null(jobs, name))) {
+          if (seq_or_par == sequential)
+            task = SD_task_create_comm_e2e(name, NULL , size);
+          else
+            task = SD_task_create_comm_par_mxn_1d_block(name, NULL , size);
 #ifdef HAVE_TRACING
-    TRACE_sd_dotloader (current_job, agget (dag_node, (char*)"category"));
+          TRACE_sd_dotloader (task, agget (node, (char*)"category"));
 #endif
-    xbt_dict_set(jobs, name, current_job, NULL);
-    xbt_dynar_push(result, &current_job);
-  }
-  Agedge_t *e;
-  int count = 0;
-
-  for (e = agfstin(dag_dot, dag_node); e; e = agnxtin(dag_dot, e)) {
-    dot_add_input_dependencies(current_job, e, sequential);
-    count++;
-  }
-  if (count == 0 && current_job != root_task) {
-    SD_task_dependency_add(NULL, NULL, root_task, current_job);
-  }
-  count = 0;
-  for (e = agfstout(dag_dot, dag_node); e; e = agnxtout(dag_dot, e)) {
-    dot_add_output_dependencies(current_job, e, sequential);
-    count++;
-  }
-  if (count == 0 && current_job != end_task) {
-    SD_task_dependency_add(NULL, NULL, current_job, end_task);
-  }
-
-  if(schedule || XBT_LOG_ISENABLED(sd_dotparse, xbt_log_priority_verbose)){
-    /* try to take the information to schedule the task only if all is
-     * right*/
-    // performer is the computer which execute the task
-    unsigned long performer = -1;
-    char * char_performer = agget(dag_node, (char *) "performer");
-    if (char_performer != NULL)
-      performer = (long) dot_parse_int(char_performer);
-
-    // order is giving the task order on one computer
-    unsigned long order = -1;
-    char * char_order = agget(dag_node, (char *) "order");
-    if (char_order != NULL)
-      order = (long) dot_parse_int(char_order);
-    xbt_dynar_t computer = NULL;
-    //XBT_INFO("performer = %d, order=%d",performer,order);
-    if(performer != -1 && order != -1){
-      //necessary parameters are given
-      computer = xbt_dict_get_or_null(computers, char_performer);
-      if(computer == NULL){
-        computer = xbt_dynar_new(sizeof(SD_task_t), NULL);
-        xbt_dict_set(computers, char_performer, computer, NULL);
-      }
-      if(performer < xbt_lib_length(host_lib)){
-        // the  wanted computer is available
-        SD_task_t *task_test = NULL;
-        if(order < computer->used)
-          task_test = xbt_dynar_get_ptr(computer,order);
-        if(task_test != NULL && *task_test != NULL && *task_test != current_job){
-          /*the user gives the same order to several tasks*/
-          schedule = false;
-          XBT_VERB("The task %s starts on the computer %s at the position : %s like the task %s",
-                 (*task_test)->name, char_performer, char_order, current_job->name);
-        }else{
-          //the parameter seems to be ok
-          xbt_dynar_set_as(computer, order, SD_task_t, current_job);
+          SD_task_dependency_add(NULL, NULL, src, task);
+          SD_task_dependency_add(NULL, NULL, task, dst);
+          xbt_dict_set(jobs, name, task, NULL);
+          xbt_dynar_push(result, &task);
+        } else {
+          XBT_WARN("Task '%s' is defined more than once", name);
         }
-      }else{
-        /*the platform has not enough processors to schedule the DAG like
-        *the user wants*/
-        schedule = false;
-        XBT_VERB("The schedule is ignored, there are not enough computers");
+        xbt_free(name);
+      } else {
+        SD_task_dependency_add(NULL, NULL, src, dst);
       }
     }
-    else {
-      //one of necessary parameters are not given
-      schedule = false;
-      XBT_VERB("The schedule is ignored, the task %s is not correctly scheduled", current_job->name);
-    }
   }
-}
+  xbt_dynar_free(&edges);
 
-/* dot_add_output_dependencies create the dependencies between a task
- * and a transfers. This is given by the edges in the dot file. 
- * The amount of data transfers is given by the attribute size on the
- * edge. */
-void dot_add_input_dependencies(SD_task_t current_job, Agedge_t * edge,
-                                seq_par_t seq_or_par)
-{
-  SD_task_t file = NULL;
-  char *name_tail=agnameof(agtail(edge));
-  char *name_head=agnameof(aghead(edge));
-  char *name = xbt_malloc((strlen(name_head)+strlen(name_tail)+6)*sizeof(char));
-  sprintf(name, "%s->%s", name_tail, name_head);
-  double size = dot_parse_double(agget(edge, (char *) "size"));
-  XBT_DEBUG("add input -- edge: %s, size : %e, get size : %s",
-      name, size, agget(edge, (char *) "size"));
-
-  if (size > 0) {
-    file = xbt_dict_get_or_null(files, name);
-    if (file == NULL) {
-      if (seq_or_par == sequential){
-          file = SD_task_create_comm_e2e(name, NULL, size);
-      } else {
-          file = SD_task_create_comm_par_mxn_1d_block(name, NULL, size);
-      }
-#ifdef HAVE_TRACING
-      TRACE_sd_dotloader (file, agget (edge, (char*)"category"));
-#endif
-      XBT_DEBUG("add input -- adding %s to the dict as new file", name);
-      xbt_dict_set(files, name, file, NULL);
-    } else {
-      XBT_WARN("%s already exists", name);
-      if (SD_task_get_amount(file) != size) {
-        XBT_WARN("Ignoring file %s size redefinition from %.0f to %.0f",
-              name, SD_task_get_amount(file), size);
-      }
-    }
-    SD_task_dependency_add(NULL, NULL, file, current_job);
-  } else {
-    file = xbt_dict_get_or_null(jobs, name_tail);
-    if (file != NULL) {
-      SD_task_dependency_add(NULL, NULL, file, current_job);
+  /* all compute and transfer tasks have been created, put the "end" node at
+   * the end of dynar
+   */
+  XBT_DEBUG("All tasks have been created, put %s at the end of the dynar",
+      end->name);
+  xbt_dynar_push(result, &end);
+
+  /* Connect entry tasks to 'root', and exit tasks to 'end'*/
+
+  xbt_dynar_foreach (result, i, task){
+    if (task == root || task == end)
+      continue;
+    if (xbt_dynar_is_empty(task->tasks_before)) {
+      XBT_DEBUG("file '%s' has no source. Add dependency from 'root'",
+          task->name);
+      SD_task_dependency_add(NULL, NULL, root, task);
+    } else if (xbt_dynar_is_empty(task->tasks_after)) {
+      XBT_DEBUG("file '%s' has no destination. Add dependency to 'end'",
+          task->name);
+      SD_task_dependency_add(NULL, NULL, task, end);
     }
   }
-  free(name);
-}
 
-/* dot_add_output_dependencies create the dependencies between a
- * transfers and a task. This is given by the edges in the dot file.
- * The amount of data transfers is given by the attribute size on the
- * edge. */
-void dot_add_output_dependencies(SD_task_t current_job, Agedge_t * edge,
-                                 seq_par_t seq_or_par){
-  SD_task_t file;
-  char *name_tail=agnameof(agtail(edge));
-  char *name_head=agnameof(aghead(edge));
-  char *name = xbt_malloc((strlen(name_head)+strlen(name_tail)+6)*sizeof(char));
-  sprintf(name, "%s->%s", name_tail, name_head);
-  double size = dot_parse_double(agget(edge, (char *) "size"));
-  XBT_DEBUG("add_output -- edge: %s, size : %e, get size : %s",
-      name, size, agget(edge, (char *) "size"));
-
-  if (size > 0) {
-    file = xbt_dict_get_or_null(files, name);
-    if (file == NULL) {
-      if (seq_or_par == sequential){
-          file = SD_task_create_comm_e2e(name, NULL, size);
-      } else {
-          file = SD_task_create_comm_par_mxn_1d_block(name, NULL, size);
-      }
-#ifdef HAVE_TRACING
-      TRACE_sd_dotloader (file, agget (edge, (char*)"category"));
-#endif
-      XBT_DEBUG("add output -- adding %s to the dict as new file", name);
-      xbt_dict_set(files, name, file, NULL);
-    } else {
-      XBT_WARN("%s already exists", name);
-      if (SD_task_get_amount(file) != size) {
-        XBT_WARN("Ignoring file %s size redefinition from %.0f to %.0f",
-              name, SD_task_get_amount(file), size);
-      }
-    }
-    SD_task_dependency_add(NULL, NULL, current_job, file);
-    if (xbt_dynar_length(file->tasks_before) > 1) {
-      XBT_WARN("File %s created at more than one location...", file->name);
-    }
-  } else {
-    file = xbt_dict_get_or_null(jobs, name_head);
-    if (file != NULL) {
-      SD_task_dependency_add(NULL, NULL, current_job, file);
-    }
+  agclose(dag_dot);
+  xbt_dict_free(&jobs);
+  fclose(in_file);
+
+  if (!acyclic_graph_detail(result)) {
+    XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.",
+              basename((char*)filename));
+    xbt_dynar_free(&result);
+    /* (result == NULL) here */
   }
-  free(name);
+  return result;
 }
index 744e562..52c078e 100644 (file)
@@ -621,9 +621,9 @@ void SD_task_dependency_add(const char *name, void *data, SD_task_t src,
                             SD_task_t dst)
 {
   xbt_dynar_t dynar;
-  int length;
+  unsigned long length;
   int found = 0;
-  int i;
+  unsigned long i;
   SD_dependency_t dependency;
 
   dynar = src->tasks_after;
@@ -652,7 +652,7 @@ void SD_task_dependency_add(const char *name, void *data, SD_task_t src,
   for (i = 0; i < length && !found; i++) {
     xbt_dynar_get_cpy(dynar, i, &dependency);
     found = (dependency->dst == dst);
-    XBT_DEBUG("Dependency %d: dependency->dst = %s", i,
+    XBT_DEBUG("Dependency %lu: dependency->dst = %s", i,
            SD_task_get_name(dependency->dst));
   }
 
@@ -746,9 +746,9 @@ void SD_task_dependency_remove(SD_task_t src, SD_task_t dst)
 {
 
   xbt_dynar_t dynar;
-  int length;
+  unsigned long length;
   int found = 0;
-  int i;
+  unsigned long i;
   SD_dependency_t dependency;
 
   /* remove the dependency from src->tasks_after */
@@ -817,9 +817,9 @@ void *SD_task_dependency_get_data(SD_task_t src, SD_task_t dst)
 {
 
   xbt_dynar_t dynar;
-  int length;
+  unsigned long length;
   int found = 0;
-  int i;
+  unsigned long i;
   SD_dependency_t dependency;
 
   dynar = src->tasks_after;
index 1b8a6a6..7b094de 100644 (file)
@@ -663,6 +663,12 @@ void sg_config_init(int *argc, char **argv)
                      xbt_cfgelm_int, &default_small_messages_threshold, 1, 1, NULL,
                      NULL);
 
+    int default_send_is_detached_threshold = 65536;
+    xbt_cfg_register(&_sg_cfg_set, "smpi/send_is_detached_thres",
+                     "Threshold of message size where MPI_Send stops behaving like MPI_Isend and becomes MPI_Ssend",
+                     xbt_cfgelm_int, &default_send_is_detached_threshold, 1, 1, NULL,
+                     NULL);
+
     //For smpi/bw_factor and smpi/lat_factor
     //Default value have to be "threshold0:value0;threshold1:value1;...;thresholdN:valueN"
     //test is if( size >= thresholdN ) return valueN;
@@ -681,11 +687,17 @@ void sg_config_init(int *argc, char **argv)
     xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/lat_factor", "65472:11.6436;15424:3.48845;9376:2.59299;5776:2.18796;3484:1.88101;1426:1.61075;732:1.9503;257:1.95341;0:2.01467");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/os",
-                     "Small messages timings (MPI_Isend/Send minimum time for small messages)",
+                     "Small messages timings (MPI_Send minimum time for small messages)",
                      xbt_cfgelm_string, NULL, 1, 1, NULL,
                      NULL);
     xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/os", "1:0:0:0:0");
 
+    xbt_cfg_register(&_sg_cfg_set, "smpi/ois",
+                     "Small messages timings (MPI_Isend minimum time for small messages)",
+                     xbt_cfgelm_string, NULL, 1, 1, NULL,
+                     NULL);
+    xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/ois", "1:0:0:0:0");
+
     xbt_cfg_register(&_sg_cfg_set, "smpi/or",
                      "Small messages timings (MPI_Recv minimum time for small messages)",
                      xbt_cfgelm_string, NULL, 1, 1, NULL,
index 97cbb0c..73bf557 100644 (file)
@@ -12,7 +12,7 @@
 #include "smx_private.h"
 #include "mc/mc.h"
 
-XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(bindings);
+XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context);
 
 void smx_ctx_base_factory_init(smx_context_factory_t *factory)
 {
index 07f130d..5b34af3 100644 (file)
@@ -97,8 +97,6 @@ void SIMIX_init_application(void){
  */
 void SIMIX_launch_application(const char *file)
 {
-  xbt_ex_t e;
-
   _XBT_GNUC_UNUSED int parse_status;
   xbt_assert(simix_global,
               "SIMIX_global_init has to be called before SIMIX_launch_application.");
@@ -110,7 +108,8 @@ void SIMIX_launch_application(const char *file)
     parse_status = surf_parse();
     surf_parse_close();
     xbt_assert(!parse_status, "Parse error at %s:%d", file,surf_parse_lineno);
-  } CATCH(e) {
+  }
+  CATCH_ANONYMOUS {
     XBT_ERROR("Unrecoverable error at %s:%d. The full exception stack follows, in case it helps you to diagnose the problem.",
         file, surf_parse_lineno);
     RETHROW;
index ccfc54e..60da45a 100644 (file)
@@ -51,8 +51,7 @@ void SIMIX_host_destroy(void *h)
 
   /* Clean Simulator data */
   if (xbt_swag_size(host->process_list) != 0) {
-    char *msg =
-        bprintf("Shutting down host, but it's not empty:");
+    char *msg = xbt_strdup("Shutting down host, but it's not empty:");
     char *tmp;
     smx_process_t process = NULL;
 
index 2e4b1b1..1c6c581 100644 (file)
@@ -13,7 +13,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_network, simix,
                                 "Logging specific to SIMIX (network)");
 
 static xbt_dict_t rdv_points = NULL;
-XBT_IMPORT_NO_EXPORT(unsigned long int) smx_total_comms = 0;
+XBT_EXPORT_NO_IMPORT(unsigned long int) smx_total_comms = 0;
 
 static void SIMIX_waitany_remove_simcall_from_actions(smx_simcall_t simcall);
 static void SIMIX_comm_copy_data(smx_action_t comm);
@@ -458,6 +458,17 @@ void SIMIX_pre_comm_recv(smx_simcall_t simcall, smx_rdv_t rdv,
   simcall->mc_value = 0;
   SIMIX_pre_comm_wait(simcall, comm, timeout);
 }
+
+void SIMIX_pre_comm_recv_bounded(smx_simcall_t simcall, smx_rdv_t rdv,
+                                  void *dst_buff, size_t *dst_buff_size,
+                                  int (*match_fun)(void *, void *, smx_action_t),
+                                 void *data, double timeout, double rate){
+  smx_action_t comm = SIMIX_comm_irecv_bounded(simcall->issuer, rdv, dst_buff,
+                                      dst_buff_size, match_fun, data, rate);
+  simcall->mc_value = 0;
+  SIMIX_pre_comm_wait(simcall, comm, timeout);
+}
+
 smx_action_t SIMIX_pre_comm_irecv(smx_simcall_t simcall, smx_rdv_t rdv,
                                   void *dst_buff, size_t *dst_buff_size,
                                   int (*match_fun)(void *, void *, smx_action_t),
@@ -465,6 +476,7 @@ smx_action_t SIMIX_pre_comm_irecv(smx_simcall_t simcall, smx_rdv_t rdv,
   return SIMIX_comm_irecv(simcall->issuer, rdv, dst_buff, dst_buff_size,
                          match_fun, data);
 }
+
 smx_action_t SIMIX_comm_irecv(smx_process_t dst_proc, smx_rdv_t rdv,
                               void *dst_buff, size_t *dst_buff_size,
                               int (*match_fun)(void *, void *, smx_action_t), void *data)
@@ -550,6 +562,102 @@ smx_action_t SIMIX_comm_irecv(smx_process_t dst_proc, smx_rdv_t rdv,
   return other_action;
 }
 
+smx_action_t SIMIX_pre_comm_irecv_bounded(smx_simcall_t simcall, smx_rdv_t rdv,
+                                  void *dst_buff, size_t *dst_buff_size,
+                                  int (*match_fun)(void *, void *, smx_action_t),
+                                 void *data, double rate){
+  return SIMIX_comm_irecv_bounded(simcall->issuer, rdv, dst_buff, dst_buff_size,
+                         match_fun, data, rate);
+}
+
+smx_action_t SIMIX_comm_irecv_bounded(smx_process_t dst_proc, smx_rdv_t rdv,
+                              void *dst_buff, size_t *dst_buff_size,
+                              int (*match_fun)(void *, void *, smx_action_t), void *data, double rate)
+{
+  XBT_DEBUG("recv from %p %p\n", rdv, rdv->comm_fifo);
+  smx_action_t this_action = SIMIX_comm_new(SIMIX_COMM_RECEIVE);
+
+  smx_action_t other_action;
+  //communication already done, get it inside the fifo of completed comms
+  //permanent receive v1
+  //int already_received=0;
+  if(rdv->permanent_receiver && xbt_fifo_size(rdv->done_comm_fifo)!=0){
+
+    XBT_DEBUG("We have a comm that has probably already been received, trying to match it, to skip the communication\n");
+    //find a match in the already received fifo
+    other_action = SIMIX_fifo_get_comm(rdv->done_comm_fifo, SIMIX_COMM_SEND, match_fun, data, this_action);
+    //if not found, assume the receiver came first, register it to the mailbox in the classical way
+    if (!other_action)  {
+      XBT_DEBUG("We have messages in the permanent receive list, but not the one we are looking for, pushing request into fifo\n");
+      other_action = this_action;
+      SIMIX_rdv_push(rdv, this_action);
+    }else{
+      if(other_action->comm.surf_comm &&       SIMIX_comm_get_remains(other_action)==0.0)
+      {
+        XBT_DEBUG("comm %p has been already sent, and is finished, destroy it\n",&(other_action->comm));
+        other_action->state = SIMIX_DONE;
+        other_action->comm.type = SIMIX_COMM_DONE;
+        other_action->comm.rdv = NULL;
+        //SIMIX_comm_destroy(this_action);
+        //--smx_total_comms; // this creation was a pure waste
+        //already_received=1;
+        //other_action->comm.refcount--;
+      }/*else{
+         XBT_DEBUG("Not yet finished, we have to wait %d\n", xbt_fifo_size(rdv->comm_fifo));
+         }*/
+      other_action->comm.refcount--;
+      SIMIX_comm_destroy(this_action);
+      --smx_total_comms; // this creation was a pure waste
+    }
+  }else{
+    /* Prepare an action describing us, so that it gets passed to the user-provided filter of other side */
+
+    /* Look for communication action matching our needs. We also provide a description of
+     * ourself so that the other side also gets a chance of choosing if it wants to match with us.
+     *
+     * If it is not found then push our communication into the rendez-vous point */
+    other_action = SIMIX_fifo_get_comm(rdv->comm_fifo, SIMIX_COMM_SEND, match_fun, data, this_action);
+
+    if (!other_action) {
+      XBT_DEBUG("Receive pushed first %d\n", xbt_fifo_size(rdv->comm_fifo));
+      other_action = this_action;
+      SIMIX_rdv_push(rdv, this_action);
+    } else {
+      SIMIX_comm_destroy(this_action);
+      --smx_total_comms; // this creation was a pure waste
+      other_action->state = SIMIX_READY;
+      other_action->comm.type = SIMIX_COMM_READY;
+      //other_action->comm.refcount--;
+    }
+    xbt_fifo_push(dst_proc->comms, other_action);
+  }
+
+  /* Setup communication action */
+  other_action->comm.dst_proc = dst_proc;
+  other_action->comm.dst_buff = dst_buff;
+  other_action->comm.dst_buff_size = dst_buff_size;
+  other_action->comm.dst_data = data;
+
+  if (rate < other_action->comm.rate || other_action->comm.rate == -1.0)
+         other_action->comm.rate = rate;
+
+  other_action->comm.match_fun = match_fun;
+
+
+  /*if(already_received)//do the actual copy, because the first one after the comm didn't have all the info
+    SIMIX_comm_copy_data(other_action);*/
+
+
+  if (MC_is_active()) {
+    other_action->state = SIMIX_RUNNING;
+    return other_action;
+  }
+
+  SIMIX_comm_start(other_action);
+  // }
+  return other_action;
+}
+
 smx_action_t SIMIX_pre_comm_iprobe(smx_simcall_t simcall, smx_rdv_t rdv,
                                    int src, int tag,
                                    int (*match_fun)(void *, void *, smx_action_t),
index 4add3ef..263d0ba 100644 (file)
@@ -35,11 +35,6 @@ smx_action_t SIMIX_rdv_get_head(smx_rdv_t rdv);
 void SIMIX_rdv_set_receiver(smx_rdv_t rdv, smx_process_t proc);
 smx_process_t SIMIX_rdv_get_receiver(smx_rdv_t rdv);
 void SIMIX_comm_start(smx_action_t action);
-void SIMIX_comm_send(smx_process_t src_proc, smx_rdv_t rdv,
-                     double task_size, double rate,
-                     void *src_buff, size_t src_buff_size,
-                     int (*match_fun)(void *, void *,smx_action_t), void *data,
-                     double timeout);
 smx_action_t SIMIX_comm_isend(smx_process_t src_proc, smx_rdv_t rdv,
                               double task_size, double rate,
                               void *src_buff, size_t src_buff_size,
@@ -47,13 +42,12 @@ smx_action_t SIMIX_comm_isend(smx_process_t src_proc, smx_rdv_t rdv,
                               void (*clean_fun)(void *), // used to free the action in case of problem after a detached send
                               void *data,
                               int detached);
-void SIMIX_comm_recv(smx_process_t dst_proc, smx_rdv_t rdv,
-                     void *dst_buff, size_t *dst_buff_size,
-                     int (*)(void *, void *,smx_action_t), void *data,
-                     double timeout);
 smx_action_t SIMIX_comm_irecv(smx_process_t dst_proc, smx_rdv_t rdv,
                               void *dst_buff, size_t *dst_buff_size,
                               int (*)(void *, void *, smx_action_t), void *data);
+smx_action_t SIMIX_comm_irecv_bounded(smx_process_t dst_proc, smx_rdv_t rdv,
+                              void *dst_buff, size_t *dst_buff_size,
+                              int (*)(void *, void *, smx_action_t), void *data, double rate);
 void SIMIX_comm_destroy(smx_action_t action);
 void SIMIX_comm_destroy_internal_actions(smx_action_t action);
 smx_action_t SIMIX_comm_iprobe(smx_process_t dst_proc, smx_rdv_t rdv, int src,
@@ -99,10 +93,18 @@ void SIMIX_pre_comm_recv(smx_simcall_t simcall, smx_rdv_t rdv,
                                   void *dst_buff, size_t *dst_buff_size,
                                   int (*match_fun)(void *, void *, smx_action_t),
                                  void *data, double timeout);
+void SIMIX_pre_comm_recv_bounded(smx_simcall_t simcall, smx_rdv_t rdv,
+                                  void *dst_buff, size_t *dst_buff_size,
+                                  int (*match_fun)(void *, void *, smx_action_t),
+                                 void *data, double timeout, double rate);
 smx_action_t SIMIX_pre_comm_irecv(smx_simcall_t simcall, smx_rdv_t rdv,
                                   void *dst_buff, size_t *dst_buff_size,
                                   int (*match_fun)(void *, void *, smx_action_t),
                                  void *data);
+smx_action_t SIMIX_pre_comm_irecv_bounded(smx_simcall_t simcall, smx_rdv_t rdv,
+                                  void *dst_buff, size_t *dst_buff_size,
+                                  int (*match_fun)(void *, void *, smx_action_t),
+                                 void *data, double rate);
 void SIMIX_pre_comm_destroy(smx_simcall_t simcall, smx_action_t action);
 void SIMIX_pre_comm_cancel(smx_simcall_t simcall, smx_action_t action);
 double SIMIX_pre_comm_get_remains(smx_simcall_t simcall, smx_action_t action);
index a845ba2..2e2e5de 100644 (file)
@@ -95,7 +95,6 @@ void SIMIX_process_cleanup(smx_process_t process)
     }
   }
 
-  /*xbt_swag_remove(process, simix_global->process_to_run);*/
   xbt_swag_remove(process, simix_global->process_list);
   xbt_swag_remove(process, SIMIX_host_priv(process->smx_host)->process_list);
   xbt_swag_insert(process, simix_global->process_to_destroy);
@@ -344,35 +343,36 @@ void SIMIX_process_kill(smx_process_t process, smx_process_t issuer) {
 
     switch (process->waiting_action->type) {
 
-      case SIMIX_ACTION_EXECUTE:          
-      case SIMIX_ACTION_PARALLEL_EXECUTE:
-        SIMIX_host_execution_destroy(process->waiting_action);
-        break;
-
-      case SIMIX_ACTION_COMMUNICATE:
-        xbt_fifo_remove(process->comms, process->waiting_action);
-        SIMIX_comm_cancel(process->waiting_action);
-        break;
-
-        case SIMIX_ACTION_SLEEP:
-          SIMIX_process_sleep_destroy(process->waiting_action);
-          break;
-
-        case SIMIX_ACTION_SYNCHRO:
-          SIMIX_synchro_stop_waiting(process, &process->simcall);
-          SIMIX_synchro_destroy(process->waiting_action);
-          break;
-
-        case SIMIX_ACTION_IO:
-          SIMIX_io_destroy(process->waiting_action);
-          break;
-
-        /* **************************************/
-        /* TUTORIAL: New API                    */
-        case SIMIX_ACTION_NEW_API:
-          SIMIX_new_api_destroy(process->waiting_action);
-          break;
-        /* **************************************/
+    case SIMIX_ACTION_EXECUTE:
+    case SIMIX_ACTION_PARALLEL_EXECUTE:
+      SIMIX_host_execution_destroy(process->waiting_action);
+      break;
+
+    case SIMIX_ACTION_COMMUNICATE:
+      xbt_fifo_remove(process->comms, process->waiting_action);
+      SIMIX_comm_cancel(process->waiting_action);
+      SIMIX_comm_destroy(process->waiting_action);
+      break;
+
+    case SIMIX_ACTION_SLEEP:
+      SIMIX_process_sleep_destroy(process->waiting_action);
+      break;
+
+    case SIMIX_ACTION_SYNCHRO:
+      SIMIX_synchro_stop_waiting(process, &process->simcall);
+      SIMIX_synchro_destroy(process->waiting_action);
+      break;
+
+    case SIMIX_ACTION_IO:
+      SIMIX_io_destroy(process->waiting_action);
+      break;
+
+      /* **************************************/
+      /* TUTORIAL: New API                    */
+    case SIMIX_ACTION_NEW_API:
+      SIMIX_new_api_destroy(process->waiting_action);
+      break;
+      /* **************************************/
 
     }
   }
@@ -721,6 +721,7 @@ void SIMIX_post_process_sleep(smx_action_t action)
       case SURF_ACTION_FAILED:
         simcall->issuer->context->iwannadie = 1;
         //SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed");
+        state = SIMIX_SRC_HOST_FAILURE;
         break;
 
       case SURF_ACTION_DONE:
index 49856f6..66df814 100644 (file)
   inline static SIMCALL_FUNC_RETURN_TYPE(RES) simcall_BODY_##NAME(MAP(SIMCALL_ARG, ##__VA_ARGS__)) { \
     smx_process_t self = SIMIX_process_self(); \
     self->simcall.call = TYPE; \
-    memset(self->simcall.args, 0, sizeof(self->simcall.args));  \
+    memset(&self->simcall.result, 0, sizeof(self->simcall.result)); \
+    memset(self->simcall.args, 0, sizeof(self->simcall.args)); \
     MAP_WITH_DEFAULT_ARGS(SIMCALL_INIT_FIELD, (), ##__VA_ARGS__) \
     if (self != simix_global->maestro_process) { \
       XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name, \
@@ -318,6 +319,8 @@ ACTION(SIMCALL_COMM_SEND, comm_send, WITHOUT_ANSWER, TVOID(result), TSPEC(rdv, s
 ACTION(SIMCALL_COMM_ISEND, comm_isend, WITH_ANSWER, TSPEC(result, smx_action_t), TSPEC(rdv, smx_rdv_t), TDOUBLE(task_size), TDOUBLE(rate), TPTR(src_buff), TSIZE(src_buff_size), TSPEC(match_fun, simix_match_func_t), TSPEC(clean_fun, simix_clean_func_t), TPTR(data), TINT(detached)) sep \
 ACTION(SIMCALL_COMM_RECV, comm_recv, WITHOUT_ANSWER, TVOID(result), TSPEC(rdv, smx_rdv_t), TPTR(dst_buff), TSPEC(dst_buff_size, size_t*), TSPEC(match_fun, simix_match_func_t), TPTR(data), TDOUBLE(timeout)) sep \
 ACTION(SIMCALL_COMM_IRECV, comm_irecv, WITH_ANSWER, TSPEC(result, smx_action_t), TSPEC(rdv, smx_rdv_t), TPTR(dst_buff), TSPEC(dst_buff_size, size_t*), TSPEC(match_fun, simix_match_func_t), TPTR(data)) sep \
+ACTION(SIMCALL_COMM_RECV_BOUNDED, comm_recv_bounded, WITHOUT_ANSWER, TVOID(result), TSPEC(rdv, smx_rdv_t), TPTR(dst_buff), TSPEC(dst_buff_size, size_t*), TSPEC(match_fun, simix_match_func_t), TPTR(data), TDOUBLE(timeout), TDOUBLE(rate)) sep \
+ACTION(SIMCALL_COMM_IRECV_BOUNDED, comm_irecv_bounded, WITH_ANSWER, TSPEC(result, smx_action_t), TSPEC(rdv, smx_rdv_t), TPTR(dst_buff), TSPEC(dst_buff_size, size_t*), TSPEC(match_fun, simix_match_func_t), TPTR(data), TDOUBLE(rate)) sep \
 ACTION(SIMCALL_COMM_DESTROY, comm_destroy, WITH_ANSWER, TVOID(result), TSPEC(comm, smx_action_t)) sep \
 ACTION(SIMCALL_COMM_CANCEL, comm_cancel, WITH_ANSWER, TVOID(result), TSPEC(comm, smx_action_t)) sep \
 ACTION(SIMCALL_COMM_WAITANY, comm_waitany, WITHOUT_ANSWER, TINT(result), TSPEC(comms, xbt_dynar_t)) sep \
@@ -460,8 +463,6 @@ xbt_dict_t SIMIX_pre_asr_get_properties(smx_simcall_t simcall, const char *name)
 
 /*************************** New simcall interface ****************************/
 
-smx_simcall_t __SIMIX_simcall(e_smx_simcall_t simcall_id, u_smx_scalar_t *args);
-
 typedef smx_action_t (*simcall_handler_t)(u_smx_scalar_t *);
 
 extern const char *simcall_types[];
index d51ccfa..cf093ec 100644 (file)
@@ -746,7 +746,7 @@ smx_rdv_t simcall_rdv_get_by_name(const char *name)
 {
   xbt_assert(name != NULL, "Invalid parameter for simcall_rdv_get_by_name (name is NULL)");
 
-  /* FIXME: this is a horrible lost of performance, so we hack it out by
+  /* FIXME: this is a horrible loss of performance, so we hack it out by
    * skipping the simcall (for now). It works in parallel, it won't work on
    * distributed but probably we will change MSG for that. */
 
@@ -874,6 +874,39 @@ smx_action_t simcall_comm_irecv(smx_rdv_t rdv, void *dst_buff, size_t *dst_buff_
 }
 
 
+/**
+ * \ingroup simix_comm_management
+ */
+void simcall_comm_recv_bounded(smx_rdv_t rdv, void *dst_buff, size_t * dst_buff_size,
+                         int (*match_fun)(void *, void *, smx_action_t), void *data, double timeout, double rate)
+{
+  xbt_assert(isfinite(timeout), "timeout is not finite!");
+  xbt_assert(rdv, "No rendez-vous point defined for recv");
+
+  if (MC_is_active()) {
+    /* the model-checker wants two separate simcalls */
+    smx_action_t comm = simcall_comm_irecv_bounded(rdv, dst_buff, dst_buff_size,
+        match_fun, data, rate);
+    simcall_comm_wait(comm, timeout);
+  }
+  else {
+    simcall_BODY_comm_recv_bounded(rdv, dst_buff, dst_buff_size,
+                           match_fun, data, timeout, rate);
+  }
+}
+/**
+ * \ingroup simix_comm_management
+ */
+smx_action_t simcall_comm_irecv_bounded(smx_rdv_t rdv, void *dst_buff, size_t *dst_buff_size,
+                                  int (*match_fun)(void *, void *, smx_action_t), void *data, double rate)
+{
+  xbt_assert(rdv, "No rendez-vous point defined for irecv");
+
+  return simcall_BODY_comm_irecv_bounded(rdv, dst_buff, dst_buff_size,
+                                 match_fun, data, rate);
+}
+
+
 /**
  * \ingroup simix_comm_management
  */
index 148f4b0..d5b577c 100644 (file)
@@ -11,6 +11,7 @@
 #include "xbt/xbt_os_time.h"
 #include "simgrid/simix.h"
 #include "smpi/smpi_interface.h"
+#include "smpi/smpi.h"
 #include "smpi/smpif.h"
 #include "smpi/smpi_cocci.h"
 #include "instr/instr_private.h"
@@ -22,8 +23,9 @@ typedef struct s_smpi_process_data *smpi_process_data_t;
 #define NON_PERSISTENT 0x2
 #define SEND           0x4
 #define RECV           0x8
-#define RECV_DELETE     0x10
-
+#define RECV_DELETE    0x10
+#define ISEND          0x20
+#define SSEND          0x40
 // this struct is here to handle the problem of non-contignous data
 // for each such structure these function should be implemented (vector
 // index hvector hindex struct)
@@ -159,6 +161,8 @@ MPI_Request smpi_mpi_send_init(void *buf, int count, MPI_Datatype datatype,
                                int dst, int tag, MPI_Comm comm);
 MPI_Request smpi_mpi_recv_init(void *buf, int count, MPI_Datatype datatype,
                                int src, int tag, MPI_Comm comm);
+MPI_Request smpi_mpi_ssend_init(void *buf, int count, MPI_Datatype datatype,
+                               int dst, int tag, MPI_Comm comm);
 void smpi_mpi_start(MPI_Request request);
 void smpi_mpi_startall(int count, MPI_Request * requests);
 void smpi_mpi_request_free(MPI_Request * request);
@@ -166,6 +170,8 @@ MPI_Request smpi_isend_init(void *buf, int count, MPI_Datatype datatype,
                             int dst, int tag, MPI_Comm comm);
 MPI_Request smpi_mpi_isend(void *buf, int count, MPI_Datatype datatype,
                            int dst, int tag, MPI_Comm comm);
+MPI_Request smpi_mpi_issend(void *buf, int count, MPI_Datatype datatype,
+                           int dst, int tag, MPI_Comm comm);
 MPI_Request smpi_irecv_init(void *buf, int count, MPI_Datatype datatype,
                             int src, int tag, MPI_Comm comm);
 MPI_Request smpi_mpi_irecv(void *buf, int count, MPI_Datatype datatype,
@@ -174,6 +180,8 @@ void smpi_mpi_recv(void *buf, int count, MPI_Datatype datatype, int src,
                    int tag, MPI_Comm comm, MPI_Status * status);
 void smpi_mpi_send(void *buf, int count, MPI_Datatype datatype, int dst,
                    int tag, MPI_Comm comm);
+void smpi_mpi_ssend(void *buf, int count, MPI_Datatype datatype, int dst,
+                   int tag, MPI_Comm comm);
 void smpi_mpi_sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
                        int dst, int sendtag, void *recvbuf, int recvcount,
                        MPI_Datatype recvtype, int src, int recvtag,
@@ -330,6 +338,7 @@ void mpi_alltoallv__(void* sendbuf, int* sendcounts, int* senddisps, int* sendty
                     void* recvbuf, int* recvcounts, int* recvdisps, int* recvtype, int* comm, int* ierr);
 void mpi_get_processor_name__(char *name, int *resultlen, int* ierr);
 void mpi_test__ (int * request, int *flag, MPI_Status * status, int* ierr);
+void mpi_testall__ (int* count, int * requests,  int *flag, MPI_Status * statuses, int* ierr);
 void mpi_get_count__(MPI_Status * status, int* datatype, int *count, int* ierr);
 void mpi_type_extent__(int* datatype, MPI_Aint * extent, int* ierr);
 void mpi_attr_get__(int* comm, int* keyval, void* attr_value, int* flag, int* ierr );
index 38a9b54..8cb1cc8 100644 (file)
@@ -68,7 +68,7 @@ typedef struct s_smpi_factor {
 } s_smpi_factor_t;
 xbt_dynar_t smpi_os_values = NULL;
 xbt_dynar_t smpi_or_values = NULL;
-
+xbt_dynar_t smpi_ois_values = NULL;
 
 // Methods used to parse and store the values for timing injections in smpi
 // These are taken from surf/network.c and generalized to have more factors
@@ -139,6 +139,28 @@ static double smpi_os(double size)
   return current;
 }
 
+static double smpi_ois(double size)
+{
+  if (!smpi_ois_values)
+    smpi_ois_values =
+        parse_factor(sg_cfg_get_string("smpi/ois"));
+
+  unsigned int iter = 0;
+  s_smpi_factor_t fact;
+  double current=0.0;
+  xbt_dynar_foreach(smpi_ois_values, iter, fact) {
+    if (size <= fact.factor) {
+        XBT_DEBUG("ois : %lf <= %ld return %f", size, fact.factor, current);
+      return current;
+    }else{
+      current=fact.values[0]+fact.values[1]*size;
+    }
+  }
+  XBT_DEBUG("ois : %lf > %ld return %f", size, fact.factor, current);
+
+  return current;
+}
+
 static double smpi_or(double size)
 {
   if (!smpi_or_values)
@@ -212,11 +234,13 @@ static MPI_Request build_request(void *buf, int count,
 }
 
 
-void smpi_empty_status(MPI_Status * status) {
+void smpi_empty_status(MPI_Status * status)
+{
   if(status != MPI_STATUS_IGNORE) {
-      status->MPI_SOURCE=MPI_ANY_SOURCE;
-      status->MPI_TAG=MPI_ANY_TAG;
-      status->count=0;
+    status->MPI_SOURCE = MPI_ANY_SOURCE;
+    status->MPI_TAG = MPI_ANY_TAG;
+    status->MPI_ERROR = MPI_SUCCESS;
+    status->count=0;
   }
 }
 
@@ -266,6 +290,16 @@ MPI_Request smpi_mpi_send_init(void *buf, int count, MPI_Datatype datatype,
   return request;
 }
 
+MPI_Request smpi_mpi_ssend_init(void *buf, int count, MPI_Datatype datatype,
+                               int dst, int tag, MPI_Comm comm)
+{
+  MPI_Request request =
+    build_request(buf, count, datatype, smpi_comm_rank(comm), dst, tag,
+                  comm, PERSISTENT | SSEND | SEND);
+  request->refcount++;
+  return request;
+}
+
 MPI_Request smpi_mpi_recv_init(void *buf, int count, MPI_Datatype datatype,
                                int src, int tag, MPI_Comm comm)
 {
@@ -293,7 +327,8 @@ void smpi_mpi_start(MPI_Request request)
     smpi_datatype_use(request->old_type);
     request->action = simcall_comm_irecv(mailbox, request->buf, &request->real_size, &match_recv, request);
 
-    double sleeptime = smpi_or(request->size);
+    //integrate pseudo-timing for buffering of small messages, do not bother to execute the simcall if 0
+    double sleeptime = request->detached ? smpi_or(request->size) : 0.0;
     if(sleeptime!=0.0){
         simcall_process_sleep(sleeptime);
         XBT_DEBUG("receiving size of %zu : sleep %lf ", request->size, smpi_or(request->size));
@@ -313,7 +348,7 @@ void smpi_mpi_start(MPI_Request request)
       XBT_DEBUG("Send request %p is not in the permanent receive mailbox (buf: %p)",request,request->buf);
       mailbox = smpi_process_remote_mailbox(receiver);
     }
-    if (request->size < 64*1024 ) { //(FIXME: this limit should be configurable)
+    if ( (! (request->flags & SSEND)) && (request->size < sg_cfg_get_int("smpi/send_is_detached_thres"))) {
       void *oldbuf = NULL;
       request->detached = 1;
       request->refcount++;
@@ -329,11 +364,19 @@ void smpi_mpi_start(MPI_Request request)
     // we make a copy here, as the size is modified by simix, and we may reuse the request in another receive later
     request->real_size=request->size;
     smpi_datatype_use(request->old_type);
-    double sleeptime = smpi_os(request->size);
+
+    //if we are giving back the control to the user without waiting for completion, we have to inject timings
+    double sleeptime =0.0;
+    if(request->detached || (request->flags & (ISEND|SSEND))){// issend should be treated as isend
+      //isend and send timings may be different
+      sleeptime = (request->flags & ISEND)? smpi_ois(request->size) : smpi_os(request->size);
+    }
+
     if(sleeptime!=0.0){
         simcall_process_sleep(sleeptime);
         XBT_DEBUG("sending size of %zu : sleep %lf ", request->size, smpi_os(request->size));
     }
+
     request->action =
       simcall_comm_isend(mailbox, request->size, -1.0,
                          request->buf, request->real_size,
@@ -393,12 +436,24 @@ MPI_Request smpi_mpi_isend(void *buf, int count, MPI_Datatype datatype,
 {
   MPI_Request request =
       build_request(buf, count, datatype, smpi_comm_rank(comm), dst, tag,
-                    comm, NON_PERSISTENT | SEND);
+                    comm, NON_PERSISTENT | ISEND | SEND);
 
   smpi_mpi_start(request);
   return request;
 }
 
+MPI_Request smpi_mpi_issend(void *buf, int count, MPI_Datatype datatype,
+                           int dst, int tag, MPI_Comm comm)
+{
+  MPI_Request request =
+      build_request(buf, count, datatype, smpi_comm_rank(comm), dst, tag,
+                    comm, NON_PERSISTENT | ISEND | SSEND | SEND);
+  smpi_mpi_start(request);
+  return request;
+}
+
+
+
 MPI_Request smpi_irecv_init(void *buf, int count, MPI_Datatype datatype,
                             int src, int tag, MPI_Comm comm)
 {
@@ -432,12 +487,22 @@ void smpi_mpi_recv(void *buf, int count, MPI_Datatype datatype, int src,
 void smpi_mpi_send(void *buf, int count, MPI_Datatype datatype, int dst,
                    int tag, MPI_Comm comm)
 {
-  MPI_Request request;
-  request = smpi_mpi_isend(buf, count, datatype, dst, tag, comm);
+  MPI_Request request =
+      build_request(buf, count, datatype, smpi_comm_rank(comm), dst, tag,
+                    comm, NON_PERSISTENT | SEND);
+
+  smpi_mpi_start(request);
   smpi_mpi_wait(&request, MPI_STATUS_IGNORE);
 
 }
 
+void smpi_mpi_ssend(void *buf, int count, MPI_Datatype datatype,
+                           int dst, int tag, MPI_Comm comm)
+{
+  MPI_Request request = smpi_mpi_issend(buf, count, datatype, dst, tag, comm);
+  smpi_mpi_wait(&request, MPI_STATUS_IGNORE);
+}
+
 void smpi_mpi_sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
                        int dst, int sendtag, void *recvbuf, int recvcount,
                        MPI_Datatype recvtype, int src, int recvtag,
@@ -454,7 +519,7 @@ void smpi_mpi_sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
   smpi_mpi_waitall(2, requests, stats);
   if(status != MPI_STATUS_IGNORE) {
     // Copy receive status
-    memcpy(status, &stats[1], sizeof(MPI_Status));
+    *status = stats[1];
   }
 }
 
@@ -466,13 +531,14 @@ int smpi_mpi_get_count(MPI_Status * status, MPI_Datatype datatype)
 static void finish_wait(MPI_Request * request, MPI_Status * status)
 {
   MPI_Request req = *request;
+  if(status != MPI_STATUS_IGNORE)
+    smpi_empty_status(status);
+
   if(!(req->detached && req->flags & SEND)){
     if(status != MPI_STATUS_IGNORE) {
       status->MPI_SOURCE = req->src == MPI_ANY_SOURCE ? req->real_src : req->src;
       status->MPI_TAG = req->tag == MPI_ANY_TAG ? req->real_tag : req->tag;
-      if(req->truncated)
-      status->MPI_ERROR = MPI_ERR_TRUNCATE;
-      else status->MPI_ERROR = MPI_SUCCESS ;
+      status->MPI_ERROR = req->truncated ? MPI_ERR_TRUNCATE : MPI_SUCCESS;
       // this handles the case were size in receive differs from size in send
       // FIXME: really this should just contain the count of receive-type blocks,
       // right?
@@ -579,7 +645,7 @@ int smpi_mpi_testall(int count, MPI_Request requests[],
       smpi_empty_status(pstat);
     }
     if(status != MPI_STATUSES_IGNORE) {
-      memcpy(&status[i], pstat, sizeof(*pstat));
+      status[i] = *pstat;
     }
   }
   return flag;
@@ -701,33 +767,31 @@ int smpi_mpi_waitall(int count, MPI_Request requests[],
   int  index, c;
   MPI_Status stat;
   MPI_Status *pstat = status == MPI_STATUSES_IGNORE ? MPI_STATUS_IGNORE : &stat;
-  int retvalue=MPI_SUCCESS;
+  int retvalue = MPI_SUCCESS;
   //tag invalid requests in the set
-  for(c = 0; c < count; c++) {
-    if(requests[c]==MPI_REQUEST_NULL || requests[c]->dst == MPI_PROC_NULL ){
-      if(status != MPI_STATUSES_IGNORE)
+  if (status != MPI_STATUSES_IGNORE) {
+    for (c = 0; c < count; c++) {
+      if (requests[c] == MPI_REQUEST_NULL || requests[c]->dst == MPI_PROC_NULL) {
         smpi_empty_status(&status[c]);
-    }else if(requests[c]->src == MPI_PROC_NULL ){
-      if(status != MPI_STATUSES_IGNORE) {
+      } else if (requests[c]->src == MPI_PROC_NULL) {
         smpi_empty_status(&status[c]);
-        status[c].MPI_SOURCE=MPI_PROC_NULL;
+        status[c].MPI_SOURCE = MPI_PROC_NULL;
       }
     }
   }
   for(c = 0; c < count; c++) {
-      if(MC_is_active()) {
-        smpi_mpi_wait(&requests[c], pstat);
-        index = c;
-      } else {
-        index = smpi_mpi_waitany(count, requests, pstat);
-        if(index == MPI_UNDEFINED) {
-          break;
-       }
-      if(status != MPI_STATUSES_IGNORE) {
-        memcpy(&status[index], pstat, sizeof(*pstat));
-        if(status[index].MPI_ERROR==MPI_ERR_TRUNCATE)retvalue=MPI_ERR_IN_STATUS;
-
-      }
+    if (MC_is_active()) {
+      smpi_mpi_wait(&requests[c], pstat);
+      index = c;
+    } else {
+      index = smpi_mpi_waitany(count, requests, pstat);
+      if (index == MPI_UNDEFINED)
+        break;
+    }
+    if (status != MPI_STATUSES_IGNORE) {
+      status[index] = *pstat;
+      if (status[index].MPI_ERROR == MPI_ERR_TRUNCATE)
+        retvalue = MPI_ERR_IN_STATUS;
     }
   }
 
@@ -749,7 +813,7 @@ int smpi_mpi_waitsome(int incount, MPI_Request requests[], int *indices,
       indices[count] = index;
       count++;
       if(status != MPI_STATUSES_IGNORE) {
-        memcpy(&status[index], pstat, sizeof(*pstat));
+        status[index] = *pstat;
       }
     }else{
       return MPI_UNDEFINED;
@@ -773,7 +837,7 @@ int smpi_mpi_testsome(int incount, MPI_Request requests[], int *indices,
          indices[count] = i;
          count++;
          if(status != MPI_STATUSES_IGNORE) {
-            memcpy(&status[i], pstat, sizeof(*pstat));
+           status[i] = *pstat;
          }
       }
     }else{
index 41e837d..e933675 100644 (file)
@@ -457,6 +457,19 @@ void mpi_test__ (int * request, int *flag, MPI_Status * status, int* ierr){
   MPI_Request req = find_request(*request);
   *ierr= MPI_Test(&req, flag, status);
 }
+
+
+void mpi_testall__ (int* count, int * requests,  int *flag, MPI_Status * statuses, int* ierr){
+  MPI_Request* reqs;
+  int i;
+  reqs = xbt_new(MPI_Request, *count);
+  for(i = 0; i < *count; i++) {
+    reqs[i] = find_request(requests[i]);
+  }
+  *ierr= MPI_Testall(*count, reqs, flag, statuses);
+}
+
+
 void mpi_get_processor_name__(char *name, int *resultlen, int* ierr){
   *ierr = MPI_Get_processor_name(name, resultlen);
 }
index acbd4ce..22f52d7 100644 (file)
@@ -289,11 +289,12 @@ void smpi_global_destroy(void)
 /* With smpiff, the following weak symbols are replaced by those in libf2c */
 int __attribute__((weak)) xargc;
 char** __attribute__((weak)) xargv;
+
+#ifndef WIN32
 void __attribute__((weak)) user_main__(){
   xbt_die("Should not be in this smpi_simulated_main");
   return;
 }
-
 int __attribute__((weak)) smpi_simulated_main__(int argc, char** argv) {
   smpi_process_init(&argc, &argv);
   user_main__();
@@ -308,6 +309,7 @@ int __attribute__((weak)) main(int argc, char** argv) {
 int __attribute__((weak)) MAIN__(){
   return smpi_main(smpi_simulated_main__,xargc, xargv);
 };
+#endif
 
 int smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[])
 {
index e84ed8e..0222b88 100644 (file)
@@ -66,7 +66,7 @@ int smpi_group_index(MPI_Group group, int rank)
 {
   int index = MPI_UNDEFINED;
 
-  if (rank < group->size) {
+  if (0 <= rank && rank < group->size) {
     index = group->rank_to_index_map[rank];
   }
   return index;
index 1e4dc07..9d5912d 100644 (file)
@@ -862,6 +862,24 @@ int PMPI_Recv_init(void *buf, int count, MPI_Datatype datatype, int src,
   return retval;
 }
 
+int PMPI_Ssend_init(void* buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm, MPI_Request* request) {
+  int retval;
+
+    smpi_bench_end();
+    if (request == NULL) {
+      retval = MPI_ERR_ARG;
+    } else if (comm == MPI_COMM_NULL) {
+      retval = MPI_ERR_COMM;
+    } else if (dst == MPI_PROC_NULL) {
+      retval = MPI_SUCCESS;
+    } else {
+      *request = smpi_mpi_ssend_init(buf, count, datatype, dst, tag, comm);
+      retval = MPI_SUCCESS;
+    }
+    smpi_bench_begin();
+    return retval;
+}
+
 int PMPI_Start(MPI_Request * request)
 {
   int retval;
@@ -1001,7 +1019,50 @@ int PMPI_Isend(void *buf, int count, MPI_Datatype datatype, int dst,
   return retval;
 }
 
+int PMPI_Issend(void* buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm, MPI_Request* request) {
+  int retval;
+
+  smpi_bench_end();
+  if (request == NULL) {
+    retval = MPI_ERR_ARG;
+  } else if (comm == MPI_COMM_NULL) {
+    retval = MPI_ERR_COMM;
+  } else if (dst == MPI_PROC_NULL) {
+    *request = MPI_REQUEST_NULL;
+    retval = MPI_SUCCESS;
+  } else if (dst >= smpi_group_size(smpi_comm_group(comm)) || dst <0){
+    retval = MPI_ERR_COMM;
+  } else if (count < 0) {
+    retval = MPI_ERR_COUNT;
+  } else if (buf==NULL && count > 0) {
+    retval = MPI_ERR_COUNT;
+  } else if (datatype == MPI_DATATYPE_NULL){
+    retval = MPI_ERR_TYPE;
+  } else if(tag<0 && tag !=  MPI_ANY_TAG){
+    retval = MPI_ERR_TAG;
+  } else {
+
+#ifdef HAVE_TRACING
+  int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
+  TRACE_smpi_computing_out(rank);
+  int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
+  TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__);
+  TRACE_smpi_send(rank, rank, dst_traced);
+#endif
+
+    *request = smpi_mpi_issend(buf, count, datatype, dst, tag, comm);
+    retval = MPI_SUCCESS;
 
+#ifdef HAVE_TRACING
+  TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
+  (*request)->send = 1;
+  TRACE_smpi_computing_in(rank);
+#endif
+  }
+
+  smpi_bench_begin();
+  return retval;
+}
 
 int PMPI_Recv(void *buf, int count, MPI_Datatype datatype, int src, int tag,
              MPI_Comm comm, MPI_Status * status)
@@ -1094,6 +1155,50 @@ int PMPI_Send(void *buf, int count, MPI_Datatype datatype, int dst, int tag,
   return retval;
 }
 
+
+
+int PMPI_Ssend(void* buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm) {
+  int retval;
+
+   smpi_bench_end();
+
+   if (comm == MPI_COMM_NULL) {
+     retval = MPI_ERR_COMM;
+   } else if (dst == MPI_PROC_NULL) {
+     retval = MPI_SUCCESS;
+   } else if (dst >= smpi_group_size(smpi_comm_group(comm)) || dst <0){
+     retval = MPI_ERR_COMM;
+   } else if (count < 0) {
+     retval = MPI_ERR_COUNT;
+   } else if (buf==NULL && count > 0) {
+     retval = MPI_ERR_COUNT;
+   } else if (datatype == MPI_DATATYPE_NULL){
+     retval = MPI_ERR_TYPE;
+   } else if(tag<0 && tag !=  MPI_ANY_TAG){
+     retval = MPI_ERR_TAG;
+   } else {
+
+ #ifdef HAVE_TRACING
+   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
+   TRACE_smpi_computing_out(rank);
+   int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
+   TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__);
+   TRACE_smpi_send(rank, rank, dst_traced);
+ #endif
+
+     smpi_mpi_ssend(buf, count, datatype, dst, tag, comm);
+     retval = MPI_SUCCESS;
+
+ #ifdef HAVE_TRACING
+   TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
+   TRACE_smpi_computing_in(rank);
+ #endif
+   }
+
+   smpi_bench_begin();
+   return retval;}
+
+
 int PMPI_Sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
                  int dst, int sendtag, void *recvbuf, int recvcount,
                  MPI_Datatype recvtype, int src, int recvtag,
@@ -2200,13 +2305,7 @@ int PMPI_Unpack(void* inbuf, int insize, int* position, void* outbuf, int outcou
    return not_yet_implemented();
 }
 
-int PMPI_Ssend(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) {
-   return not_yet_implemented();
-}
 
-int PMPI_Ssend_init(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request* request) {
-   return not_yet_implemented();
-}
 
 int PMPI_Intercomm_create(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm, int remote_leader, int tag, MPI_Comm* comm_out) {
    return not_yet_implemented();
@@ -2236,11 +2335,6 @@ int PMPI_Comm_remote_size(MPI_Comm comm, int* size) {
    return not_yet_implemented();
 }
 
-int PMPI_Issend(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request* request) {
-   return not_yet_implemented();
-}
-
-
 int PMPI_Attr_delete(MPI_Comm comm, int keyval) {
    return not_yet_implemented();
 }
index 1f4b842..d7990bf 100644 (file)
@@ -16,6 +16,8 @@ int communicator_size = 0;
 static int active_processes = 0;
 xbt_dynar_t *reqq;
 
+MPI_Datatype MPI_DEFAULT_TYPE, MPI_CURRENT_TYPE;
+
 static void log_timed_action (const char *const *action, double clock){
   if (XBT_LOG_ISENABLED(smpi_replay, xbt_log_priority_verbose)){
     char *name = xbt_str_join_array(action, " ");
@@ -24,7 +26,6 @@ static void log_timed_action (const char *const *action, double clock){
   }
 }
 
-
 typedef struct {
   xbt_dynar_t isends; /* of MPI_Request */
   xbt_dynar_t irecvs; /* of MPI_Request */
@@ -42,6 +43,40 @@ static double parse_double(const char *string)
   return value;
 }
 
+static MPI_Datatype decode_datatype(const char *const action)
+{
+// Declared datatypes,
+  switch(atoi(action))
+  {
+    case 0:
+      MPI_CURRENT_TYPE=MPI_DOUBLE;
+      break;
+    case 1:
+      MPI_CURRENT_TYPE=MPI_INT;
+      break;
+    case 2:
+      MPI_CURRENT_TYPE=MPI_CHAR;
+      break;
+    case 3:
+      MPI_CURRENT_TYPE=MPI_SHORT;
+      break;
+    case 4:
+      MPI_CURRENT_TYPE=MPI_LONG;
+      break;
+    case 5:
+      MPI_CURRENT_TYPE=MPI_FLOAT;
+      break;
+    case 6:
+      MPI_CURRENT_TYPE=MPI_BYTE;
+      break;
+    default:
+      MPI_CURRENT_TYPE=MPI_DEFAULT_TYPE;
+  
+  }
+   return MPI_CURRENT_TYPE;
+}
+
 static void action_init(const char *const *action)
 {
   int i;
@@ -49,7 +84,9 @@ static void action_init(const char *const *action)
   smpi_replay_globals_t globals =  xbt_new(s_smpi_replay_globals_t, 1);
   globals->isends = xbt_dynar_new(sizeof(MPI_Request),NULL);
   globals->irecvs = xbt_dynar_new(sizeof(MPI_Request),NULL);
-  
+
+  if(action[2]) MPI_DEFAULT_TYPE= MPI_DOUBLE; // default MPE dataype 
+  else MPI_DEFAULT_TYPE= MPI_BYTE; // default TAU datatype
   
   smpi_process_set_user_data((void*) globals);
 
@@ -63,15 +100,12 @@ static void action_init(const char *const *action)
   for(i=0;i<active_processes;i++){
     reqq[i]=xbt_dynar_new(sizeof(MPI_Request),NULL);
   }
-    
-  
 }
 
 static void action_finalize(const char *const *action)
 {
   smpi_replay_globals_t globals =
       (smpi_replay_globals_t) smpi_process_get_user_data();
-
   if (globals){
     XBT_DEBUG("There are %lu isends and %lu irecvs in the dynars",
          xbt_dynar_length(globals->isends),xbt_dynar_length(globals->irecvs));
@@ -116,6 +150,13 @@ static void action_send(const char *const *action)
   int to = atoi(action[2]);
   double size=parse_double(action[3]);
   double clock = smpi_process_simulated_elapsed();
+
+  if(action[4]) {
+    MPI_CURRENT_TYPE=decode_datatype(action[4]);
+  } else {
+    MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
+  }
+    
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
   TRACE_smpi_computing_out(rank);
@@ -124,7 +165,7 @@ static void action_send(const char *const *action)
   TRACE_smpi_send(rank, rank, dst_traced);
 #endif
 
-  smpi_mpi_send(NULL, size, MPI_BYTE, to , 0, MPI_COMM_WORLD);
+  smpi_mpi_send(NULL, size, MPI_CURRENT_TYPE, to , 0, MPI_COMM_WORLD);
 
   log_timed_action (action, clock);
 
@@ -141,6 +182,10 @@ static void action_Isend(const char *const *action)
   double size=parse_double(action[3]);
   double clock = smpi_process_simulated_elapsed();
   MPI_Request request;
+
+  if(action[4]) MPI_CURRENT_TYPE=decode_datatype(action[4]);
+  else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
+
   smpi_replay_globals_t globals =
      (smpi_replay_globals_t) smpi_process_get_user_data();
 #ifdef HAVE_TRACING
@@ -151,7 +196,7 @@ static void action_Isend(const char *const *action)
   TRACE_smpi_send(rank, rank, dst_traced);
 #endif
 
-  request = smpi_mpi_isend(NULL, size, MPI_BYTE, to, 0,MPI_COMM_WORLD);
+  request = smpi_mpi_isend(NULL, size, MPI_CURRENT_TYPE, to, 0,MPI_COMM_WORLD);
   
 #ifdef HAVE_TRACING
   TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
@@ -170,6 +215,10 @@ static void action_recv(const char *const *action) {
   double size=parse_double(action[3]);
   double clock = smpi_process_simulated_elapsed();
   MPI_Status status;
+
+  if(action[4]) MPI_CURRENT_TYPE=decode_datatype(action[4]);
+  else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
+  
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
   int src_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), from);
@@ -178,7 +227,7 @@ static void action_recv(const char *const *action) {
   TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__);
 #endif
 
-  smpi_mpi_recv(NULL, size, MPI_BYTE, from, 0, MPI_COMM_WORLD, &status);
+  smpi_mpi_recv(NULL, size, MPI_CURRENT_TYPE, from, 0, MPI_COMM_WORLD, &status);
 
 #ifdef HAVE_TRACING
   TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__);
@@ -195,8 +244,12 @@ static void action_Irecv(const char *const *action)
   double size=parse_double(action[3]);
   double clock = smpi_process_simulated_elapsed();
   MPI_Request request;
+
   smpi_replay_globals_t globals =
      (smpi_replay_globals_t) smpi_process_get_user_data();
+  
+  if(action[4]) MPI_CURRENT_TYPE=decode_datatype(action[4]);
+  else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
 
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
@@ -204,7 +257,7 @@ static void action_Irecv(const char *const *action)
   TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__);
 #endif
 
-  request = smpi_mpi_irecv(NULL, size, MPI_BYTE, from, 0, MPI_COMM_WORLD);
+  request = smpi_mpi_irecv(NULL, size, MPI_CURRENT_TYPE, from, 0, MPI_COMM_WORLD);
   
 #ifdef HAVE_TRACING
   TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__);
@@ -253,9 +306,8 @@ static void action_wait(const char *const *action){
 
 static void action_waitall(const char *const *action){
   double clock = smpi_process_simulated_elapsed();
-  int count_requests=0,req_counts=0,i=0;
-    smpi_replay_globals_t globals =
-      (smpi_replay_globals_t) smpi_process_get_user_data();
+  int count_requests=0;
+  unsigned int i=0;
 
   count_requests=xbt_dynar_length(reqq[smpi_comm_rank(MPI_COMM_WORLD)]);
 
@@ -263,9 +315,9 @@ static void action_waitall(const char *const *action){
     MPI_Request requests[count_requests];
     MPI_Status status[count_requests];
   
-    for(i=0;i<count_requests;i++){
-      xbt_dynar_foreach(reqq[smpi_comm_rank(MPI_COMM_WORLD)],i,requests[i]); 
-    }
+    /*  The reqq is an array of dynars. Its index corresponds to the rank.
+     Thus each rank saves its own requests to the array request. */
+    xbt_dynar_foreach(reqq[smpi_comm_rank(MPI_COMM_WORLD)],i,requests[i]); 
     
   #ifdef HAVE_TRACING
    //save information from requests
@@ -342,10 +394,25 @@ static void action_barrier(const char *const *action){
   log_timed_action (action, clock);
 }
 
+
 static void action_bcast(const char *const *action)
 {
   double size = parse_double(action[2]);
   double clock = smpi_process_simulated_elapsed();
+  int root=0;
+  /*
+   * Initialize MPI_CURRENT_TYPE in order to decrease
+   * the number of the checks
+   * */
+  MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;  
+
+  if(action[3]) {
+    root= atoi(action[3]);
+    if(action[4]) {
+      MPI_CURRENT_TYPE=decode_datatype(action[4]);   
+    }
+  }
+  
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
   TRACE_smpi_computing_out(rank);
@@ -353,7 +420,7 @@ static void action_bcast(const char *const *action)
   TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__);
 #endif
 
-  smpi_mpi_bcast(NULL, size, MPI_BYTE, 0, MPI_COMM_WORLD);
+  smpi_mpi_bcast(NULL, size, MPI_CURRENT_TYPE, root, MPI_COMM_WORLD);
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
   TRACE_smpi_computing_in(rank);
@@ -364,15 +431,27 @@ static void action_bcast(const char *const *action)
 
 static void action_reduce(const char *const *action)
 {
-  double size = parse_double(action[2]);
+  double comm_size = parse_double(action[2]);
+  double comp_size = parse_double(action[3]);
   double clock = smpi_process_simulated_elapsed();
+  int root=0;
+  MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
+  
+  if(action[4]) {
+      root= atoi(action[4]);
+      if(action[5]) {
+       MPI_CURRENT_TYPE=decode_datatype(action[5]);
+      }
+  }
+
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
   TRACE_smpi_computing_out(rank);
   int root_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), 0);
   TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__);
 #endif
-   smpi_mpi_reduce(NULL, NULL, size, MPI_BYTE, MPI_OP_NULL, 0, MPI_COMM_WORLD);
+   smpi_mpi_reduce(NULL, NULL, comm_size, MPI_CURRENT_TYPE, MPI_OP_NULL, root, MPI_COMM_WORLD);
+   smpi_execute_flops(comp_size);
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
   TRACE_smpi_computing_in(rank);
@@ -384,15 +463,19 @@ static void action_reduce(const char *const *action)
 static void action_allReduce(const char *const *action) {
   double comm_size = parse_double(action[2]);
   double comp_size = parse_double(action[3]);
+  
+  if(action[4]) MPI_CURRENT_TYPE=decode_datatype(action[4]);
+  else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
+  
   double clock = smpi_process_simulated_elapsed();
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
   TRACE_smpi_computing_out(rank);
   TRACE_smpi_collective_in(rank, -1, __FUNCTION__);
 #endif
-  smpi_mpi_reduce(NULL, NULL, comm_size, MPI_BYTE, MPI_OP_NULL, 0, MPI_COMM_WORLD);
+  smpi_mpi_reduce(NULL, NULL, comm_size, MPI_CURRENT_TYPE, MPI_OP_NULL, 0, MPI_COMM_WORLD);
   smpi_execute_flops(comp_size);
-  smpi_mpi_bcast(NULL, comm_size, MPI_BYTE, 0, MPI_COMM_WORLD);
+  smpi_mpi_bcast(NULL, comm_size, MPI_CURRENT_TYPE, 0, MPI_COMM_WORLD);
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
   TRACE_smpi_computing_in(rank);
@@ -404,11 +487,13 @@ static void action_allReduce(const char *const *action) {
 static void action_allToAll(const char *const *action) {
   double clock = smpi_process_simulated_elapsed();
   int comm_size = smpi_comm_size(MPI_COMM_WORLD);
-  int send_size = atoi(action[2]);
-  int recv_size = atoi(action[3]);
+  int send_size = parse_double(action[2]);
+  int recv_size = parse_double(action[3]);
   void *send = xbt_new0(int, send_size*comm_size);  
   void *recv = xbt_new0(int, send_size*comm_size);
-
+  
+  if(action[4]) MPI_CURRENT_TYPE=decode_datatype(action[4]);
+  else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
 
 #ifdef HAVE_TRACING
   int rank = smpi_process_index();
@@ -417,17 +502,16 @@ static void action_allToAll(const char *const *action) {
 #endif
 
   if (send_size < 200 && comm_size > 12) {
-    smpi_coll_tuned_alltoall_bruck(send, send_size, MPI_BYTE,
-                                   recv, recv_size, MPI_BYTE,
+    smpi_coll_tuned_alltoall_bruck(send, send_size, MPI_CURRENT_TYPE,
+                                   recv, recv_size, MPI_CURRENT_TYPE,
                                    MPI_COMM_WORLD);
-  } else if (send_size < 3000) {
-  
-    smpi_coll_tuned_alltoall_basic_linear(send, send_size, MPI_BYTE,
-                                          recv, recv_size, MPI_BYTE,
+  } else if (send_size < 3000) {  
+    smpi_coll_tuned_alltoall_basic_linear(send, send_size, MPI_CURRENT_TYPE,
+                                          recv, recv_size, MPI_CURRENT_TYPE,
                                           MPI_COMM_WORLD);
   } else {
-    smpi_coll_tuned_alltoall_pairwise(send, send_size, MPI_BYTE,
-                                      recv, recv_size, MPI_BYTE,
+    smpi_coll_tuned_alltoall_pairwise(send, send_size, MPI_CURRENT_TYPE,
+                                      recv, recv_size, MPI_CURRENT_TYPE,
                                       MPI_COMM_WORLD);
   }
 
@@ -442,15 +526,69 @@ static void action_allToAll(const char *const *action) {
 }
 
 static void action_allToAllv(const char *const *action) {
+  /*
+ The structure of the allToAllV action for the rank 0 (total 4 processes) 
+ is the following:   
+  0 allToAllV 100 1 7 10 12 5 10 20 45 100 1 70 10 5 1 5 77 90
+
+  where: 
+  1) 100 is the size of the send buffer *sizeof(int),
+  2) 1 7 10 12 is the sendcounts array
+  3) 5 10 20 45 is the sdispls array
+  4) 100*sizeof(int) is the size of the receiver buffer
+  5)  1 70 10 5 is the recvcounts array
+  6) 1 5 77 90 is the rdispls array
+    
+   */
+  
+  
   double clock = smpi_process_simulated_elapsed();
+  
   int comm_size = smpi_comm_size(MPI_COMM_WORLD);
+  int send_buf_size=0,recv_buf_size=0,i=0;
+  int *sendcounts = xbt_new0(int, comm_size);  
+  int *recvcounts = xbt_new0(int, comm_size);  
+  int *senddisps = xbt_new0(int, comm_size);  
+  int *recvdisps = xbt_new0(int, comm_size);  
+  
+  send_buf_size=parse_double(action[2]);
+  recv_buf_size=parse_double(action[3+2*comm_size]);
+
+  int *sendbuf = xbt_new0(int, send_buf_size);  
+  int *recvbuf = xbt_new0(int, recv_buf_size);  
 
-//  PMPI_Alltoallv(NULL, send_size, send_disp,
-//                   MPI_BYTE, NULL, recv_size,
-//                   recv_disp, MPI_BYTE, MPI_COMM_WORLD);
+  if(action[4+4*comm_size]) MPI_CURRENT_TYPE=decode_datatype(action[4+4*comm_size]);    
+  else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
 
+  for(i=0;i<comm_size;i++) {
+    sendcounts[i] = atoi(action[i+3]);
+    senddisps[i] = atoi(action[i+3+comm_size]);
+    recvcounts[i] = atoi(action[i+4+2*comm_size]);
+    recvdisps[i] = atoi(action[i+4+3*comm_size]);
+  }
+  
+
+#ifdef HAVE_TRACING
+  int rank = MPI_COMM_WORLD != MPI_COMM_NULL ? smpi_process_index() : -1;
+  TRACE_smpi_computing_out(rank);
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__);
+#endif
+    smpi_coll_basic_alltoallv(sendbuf, sendcounts, senddisps,  MPI_CURRENT_TYPE,
+                               recvbuf, recvcounts, recvdisps, MPI_CURRENT_TYPE,
+                               MPI_COMM_WORLD);
+#ifdef HAVE_TRACING
+  TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
+  TRACE_smpi_computing_in(rank);
+#endif
    
   log_timed_action (action, clock);
+  xbt_free(sendbuf);
+  xbt_free(recvbuf);
+  xbt_free(sendcounts);
+  xbt_free(recvcounts);
+  xbt_free(senddisps);
+  xbt_free(recvdisps);
+
   
 }
 
index 1c6e3eb..38240c0 100755 (executable)
@@ -7,7 +7,7 @@ CMAKE_LINKARGS="-L@libdir@"
 
 if [ "@WIN32@" != "1" ]; then
   CFLAGS="-Dmain=smpi_simulated_main__"
-  LINKARGS="-lsimgrid -lsmpi -lm"
+  LINKARGS="-lsimgrid -lsmpi"
 else
   CFLAGS="-include @includedir@/smpi/smpi_main.h"
   LINKARGS="@libdir@\libsimgrid.dll @libdir@\libsmpi.dll"
index d7cfde1..2d76ad2 100644 (file)
@@ -25,7 +25,7 @@ while [ -n "$1" ]; do
          SRCFILE="$ARG"
       fi
       #replace "program main_name by subroutine user\_main (and the end clause as well)"
-      sed 's/[[:space:]]*program[[:space:]]*\([a-zA-Z0-9\-\_]*\)/subroutine user\_main /g'  ${ARG} > ${TMPFILE}
+      sed 's/[[:space:]]*program[[:space:]]*\([a-zA-Z0-9\-\_]*\)/subroutine user\_main /gI'  ${ARG} > ${TMPFILE}
       SRCFILE="${TMPFILE}"
       CMDLINE="${CMDLINE} ${SRCFILE} "
       ;;
index bdede7a..74ffb3c 100755 (executable)
@@ -240,7 +240,7 @@ if [ "${EXTOPT}" = "smpi_replay" ]; then
      hosttraces=(`cat ${APP_TRACES} | tr \\\n " "`)
      NUMTRACES=`cat ${APP_TRACES} | wc -l`
   else
-     printf "File not found: %s\n", "${APP_TRACES:-\${APP_TRACES}}" >&2
+     printf "File not found: %s\n", "${APP_TRACES:-\${APP_TRACES\}}" >&2
      exit 1
   fi
 fi
@@ -334,9 +334,9 @@ fi
 
 export SMPI_GLOBAL_SIZE=${NUMPROCS}
 if [ -n "${KEEP}" ] ; then
-  echo ${EXEC} ${SIMOPTS} ${TRACEOPTIONS} ${PLATFORMTMP} ${APPLICATIONTMP}
+  echo ${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP}
 fi
-${EXEC} ${SIMOPTS} ${TRACEOPTIONS} ${PLATFORMTMP} ${APPLICATIONTMP}
+${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP}
 status=$?
 
 if [ -z "${KEEP}" ] ; then
index c5fc212..c0510fb 100644 (file)
@@ -14,8 +14,6 @@
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_routing, instr, "Tracing platform hierarchy");
 
-extern xbt_dict_t defined_types; /* from instr_interface.c */
-
 static int platform_created = 0;            /* indicate whether the platform file has been traced */
 static xbt_dynar_t currentContainer = NULL; /* push and pop, used only in creation */
 
@@ -130,22 +128,10 @@ static void linkContainers (container_t src, container_t dst, xbt_dict_t filter)
   XBT_DEBUG ("  linkContainers %s <-> %s", src->name, dst->name);
 }
 
-static int graph_extraction_filter_out (container_t c1, container_t c2)
-{
-  if (c1->kind == INSTR_LINK ||
-      c1->kind == INSTR_SMPI ||
-      c1->kind == INSTR_MSG_PROCESS ||
-      c1->kind == INSTR_MSG_TASK ||
-      (c2 && strcmp (c1->name, c2->name) == 0))
-    return 1;
-  else
-    return 0;
-}
-
 static void recursiveGraphExtraction (AS_t rc, container_t container, xbt_dict_t filter)
 {
   if (!TRACE_platform_topology()){
-    XBT_DEBUG("Graph extracing disable by user.");
+    XBT_DEBUG("Graph extraction disabled by user.");
     return;
   }
   XBT_DEBUG ("Graph extraction for routing_component = %s", rc->name);
@@ -160,59 +146,22 @@ static void recursiveGraphExtraction (AS_t rc, container_t container, xbt_dict_t
     }
   }
 
-  //let's get routes
-  xbt_dict_cursor_t cursor1 = NULL, cursor2 = NULL;
-  container_t child1, child2;
-  const char *child1_name, *child2_name;
-  xbt_dict_foreach(container->children, cursor1, child1_name, child1) {
-    //if child1 is not a link, a smpi node, a msg process, a msg vm or a msg task
-    if (child1->kind == INSTR_LINK || child1->kind == INSTR_SMPI || child1->kind == INSTR_MSG_PROCESS || child1->kind == INSTR_MSG_VM || child1->kind == INSTR_MSG_TASK) continue;
-
-    xbt_dict_foreach(container->children, cursor2, child2_name, child2) {
-      //if child2 is not a link, a smpi node, a msg process, a msg vm or a msg task
-      if (child2->kind == INSTR_LINK || child2->kind == INSTR_SMPI || child2->kind == INSTR_MSG_PROCESS || child2->kind == INSTR_MSG_VM || child2->kind == INSTR_MSG_TASK) continue;
-
-      //if child1 is not child2
-      if (strcmp (child1_name, child2_name) == 0) continue;
-
-      //get the route
-      sg_platf_route_cbarg_t route = xbt_new0(s_sg_platf_route_cbarg_t,1);
-      route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t),NULL);
-      rc->get_route_and_latency(rc, child1->net_elm, child2->net_elm,
-                                route, NULL);
-
-      //user might want to extract a graph using routes with only one link
-      //see --cfg=tracing/onelink_only:1 or --help-tracing for details
-      if (TRACE_onelink_only() && xbt_dynar_length (route->link_list) > 1){
-        generic_free_route(route);
-        continue;
-      }
+  {
+    xbt_graph_t graph = xbt_graph_new_graph (0, NULL);
+    xbt_dict_t nodes = xbt_dict_new_homogeneous(NULL);
+    xbt_dict_t edges = xbt_dict_new_homogeneous(NULL);
+    xbt_edge_t edge = NULL;
 
-      //traverse the route connecting the containers
-      unsigned int cpt;
-      void *link;
-      container_t current, previous;
-      if (route->gw_src){
-        previous = PJ_container_get(route->gw_src->name);
-      }else{
-        previous = child1;
-      }
+    xbt_dict_cursor_t cursor = NULL;
+    char *edge_name;
 
-      xbt_dynar_foreach (route->link_list, cpt, link) {
-        //FIXME (TODO): Should have a cleaner way to get the link name
-        char *link_name = ((link_CM02_t)link)->lmm_resource.generic_resource.name;
-        current = PJ_container_get(link_name);
-        linkContainers(previous, current, filter);
-        previous = current;
-      }
-      if (route->gw_dst){
-        current = PJ_container_get(route->gw_dst->name);
-      }else{
-        current = child2;
-      }
-      linkContainers(previous, current, filter);
-      generic_free_route(route);
+    rc->get_graph(graph,nodes,edges,rc);
+    xbt_dict_foreach(edges,cursor,edge_name,edge) {
+        linkContainers(PJ_container_get(edge->src->data), PJ_container_get(edge->dst->data), filter);
     }
+    xbt_dict_free (&nodes);
+    xbt_dict_free (&edges);
+    xbt_graph_free_graph(graph,xbt_free, xbt_free, NULL);
   }
 }
 
@@ -498,41 +447,6 @@ int instr_platform_traced ()
 #define GRAPHICATOR_SUPPORT_FUNCTIONS
 
 
-static xbt_node_t new_xbt_graph_node (xbt_graph_t graph, const char *name, xbt_dict_t nodes)
-{
-  xbt_node_t ret = xbt_dict_get_or_null (nodes, name);
-  if (ret) return ret;
-
-  ret = xbt_graph_new_node (graph, xbt_strdup(name));
-  xbt_dict_set (nodes, name, ret, NULL);
-  return ret;
-}
-
-static xbt_edge_t new_xbt_graph_edge (xbt_graph_t graph, xbt_node_t s, xbt_node_t d, xbt_dict_t edges)
-{
-  xbt_edge_t ret;
-
-  const char *sn = instr_node_name (s);
-  const char *dn = instr_node_name (d);
-  int len = strlen(sn)+strlen(dn)+1;
-  char *name = (char*)xbt_malloc(len * sizeof(char));
-
-
-  snprintf (name, len, "%s%s", sn, dn);
-  ret = xbt_dict_get_or_null (edges, name);
-  if (ret == NULL){
-    snprintf (name, len, "%s%s", dn, sn);
-    ret = xbt_dict_get_or_null (edges, name);
-  }
-
-  if (ret == NULL){
-    ret = xbt_graph_new_edge(graph, s, d, NULL);
-    xbt_dict_set (edges, name, ret, NULL);
-  }
-  free (name);
-  return ret;
-}
-
 static void recursiveXBTGraphExtraction (xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges,
     AS_t rc, container_t container)
 {
@@ -547,58 +461,7 @@ static void recursiveXBTGraphExtraction (xbt_graph_t graph, xbt_dict_t nodes, xb
     }
   }
 
-  //let's get routes
-  xbt_dict_cursor_t cursor1 = NULL, cursor2 = NULL;
-  container_t child1, child2;
-  const char *child1_name, *child2_name;
-  xbt_dict_foreach(container->children, cursor1, child1_name, child1) {
-    //if child1 is not a link, a smpi node, a msg process, a msg vm or a msg task
-    if (child1->kind == INSTR_LINK || child1->kind == INSTR_SMPI || child1->kind == INSTR_MSG_PROCESS || child1->kind == INSTR_MSG_VM || child1->kind == INSTR_MSG_TASK) continue;
-
-    xbt_dict_foreach(container->children, cursor2, child2_name, child2) {
-      //if child2 is not a link, a smpi node, a msg process or a msg task
-      if (child2->kind == INSTR_LINK || child2->kind == INSTR_SMPI || child2->kind == INSTR_MSG_PROCESS || child2->kind == INSTR_MSG_VM || child2->kind == INSTR_MSG_TASK) continue;
-
-      //if child1 is not child2
-      if (strcmp (child1_name, child2_name) == 0) continue;
-
-      //get the route
-      sg_platf_route_cbarg_t route = xbt_new0(s_sg_platf_route_cbarg_t,1);
-      route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t),NULL);
-      rc->get_route_and_latency(rc, child1->net_elm, child2->net_elm,
-                                route, NULL);
-
-      //user might want to extract a graph using routes with only one link
-      //see --cfg=tracing/onelink_only:1 or --help-tracing for details
-      if (TRACE_onelink_only() && xbt_dynar_length (route->link_list) > 1) continue;
-
-      //traverse the route connecting the containers
-      unsigned int cpt;
-      void *link;
-      xbt_node_t current, previous;
-      if (route->gw_src){
-        previous = new_xbt_graph_node(graph, route->gw_src->name, nodes);
-      }else{
-        previous = new_xbt_graph_node(graph, child1_name, nodes);
-      }
-
-      xbt_dynar_foreach (route->link_list, cpt, link) {
-        char *link_name = ((link_CM02_t)link)->lmm_resource.generic_resource.name;
-        current = new_xbt_graph_node(graph, link_name, nodes);
-        new_xbt_graph_edge (graph, previous, current, edges);
-        //previous -> current
-        previous = current;
-      }
-      if (route->gw_dst){
-        current = new_xbt_graph_node(graph, route->gw_dst->name, nodes);
-      }else{
-        current = new_xbt_graph_node(graph, child2_name, nodes);
-      }
-      new_xbt_graph_edge (graph, previous, current, edges);
-      generic_free_route(route);
-    }
-  }
-
+  rc->get_graph(graph,nodes,edges,rc);
 }
 
 xbt_graph_t instr_routing_platform_graph (void)
index 3558089..b82d3e0 100644 (file)
@@ -215,7 +215,8 @@ void sg_platf_new_route(sg_platf_route_cbarg_t route) {
   xbt_dynar_foreach(sg_platf_route_cb_list, iterator, fun) {
     fun(route);
   }
-}void sg_platf_new_ASroute(sg_platf_route_cbarg_t ASroute) {
+}
+void sg_platf_new_ASroute(sg_platf_route_cbarg_t ASroute) {
   unsigned int iterator;
   sg_platf_route_cb_t fun;
   xbt_dynar_foreach(sg_platf_ASroute_cb_list, iterator, fun) {
@@ -228,7 +229,8 @@ void sg_platf_new_bypassRoute(sg_platf_route_cbarg_t bypassRoute) {
   xbt_dynar_foreach(sg_platf_bypassRoute_cb_list, iterator, fun) {
     fun(bypassRoute);
   }
-}void sg_platf_new_bypassASroute(sg_platf_route_cbarg_t bypassASroute) {
+}
+void sg_platf_new_bypassASroute(sg_platf_route_cbarg_t bypassASroute) {
   unsigned int iterator;
   sg_platf_route_cb_t fun;
   xbt_dynar_foreach(sg_platf_bypassASroute_cb_list, iterator, fun) {
index 931756b..c069682 100644 (file)
@@ -4356,8 +4356,8 @@ char *surf_parse_text;
  *
  * This program was generated with the FleXML XML processor generator.
  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
- * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
- * (Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp).
+ * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
+ * (1.9.6).
  * 
  * There are two, intertwined parts to this program, part A and part B.
  *
@@ -4366,7 +4366,7 @@ char *surf_parse_text;
  * 
  * Some parts, here collectively called "Part A", are found in the 
  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
- * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
+ * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
  *
  * You can redistribute, use, perform, display and/or modify "Part A"
  * provided the following two conditions hold:
@@ -4399,10 +4399,7 @@ char *surf_parse_text;
  */
 
 /* Version strings. */
-const char rcs_surfxml_flexml_skeleton[] =
- "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
-const char rcs_surfxml_flexml[] =
- "$" "Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp $";
+const char surfxml_flexml_version[] = "1.9.6";
 
 /* ANSI headers. */
 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
index ecfcccb..003c488 100644 (file)
@@ -594,7 +594,7 @@ static xbt_dict_t parse_storage_content(char *filename, unsigned long *used_size
 
   surf_stat_t content;
 
-  while ((read = getline(&line, &len, file)) != -1) {
+  while ((read = xbt_getline(&line, &len, file)) != -1) {
     if (read){
     content = xbt_new0(s_surf_stat_t,1);
     if(sscanf(line,"%s %d %s %s %ld %s %s %s",user_rights,&nb,user,group,&size,date,time,path)==8) {
index cf2ea9e..d2ded06 100644 (file)
@@ -623,7 +623,7 @@ double surf_solve(double max_date)
 
     if ((min == -1.0) || (next_event_date > NOW + min)) break;
 
-    XBT_DEBUG("Updating models");
+    XBT_DEBUG("Updating models (min = %g, NOW = %g, next_event_date = %g)",min, NOW, next_event_date);
     while ((event =
             tmgr_history_get_next_event_leq(history, next_event_date,
                                             &value,
@@ -640,7 +640,7 @@ double surf_solve(double max_date)
              resource->model->name, min);
       resource->model->model_private->update_resource_state(resource,
                                                             event, value,
-                                                            NOW + min);
+                                                            next_event_date);
     }
   } while (1);
 
@@ -765,11 +765,18 @@ void surf_set_nthreads(int nthreads) {
  * sees it and react accordingly. This would kill that need for surf to call simix.
  *
  */
+
+static void remove_watched_host(void *key)
+{
+  xbt_dict_remove(watched_hosts_lib, *(char**)key);
+}
+
 void surf_watched_hosts(void)
 {
   char *key;
   void *host;
   xbt_dict_cursor_t cursor;
+  xbt_dynar_t hosts = xbt_dynar_new(sizeof(char*), NULL);
 
   XBT_DEBUG("Check for host SURF_RESOURCE_ON on watched_hosts_lib");
   xbt_dict_foreach(watched_hosts_lib,cursor,key,host)
@@ -777,9 +784,11 @@ void surf_watched_hosts(void)
     if(SIMIX_host_get_state(host) == SURF_RESOURCE_ON){
       XBT_INFO("Restart processes on host: %s",SIMIX_host_get_name(host));
       SIMIX_host_autorestart(host);
-      xbt_dict_remove(watched_hosts_lib,key);
+      xbt_dynar_push_as(hosts, char*, key);
     }
     else
       XBT_DEBUG("See SURF_RESOURCE_OFF on host: %s",key);
   }
+  xbt_dynar_map(hosts, remove_watched_host);
+  xbt_dynar_free(&hosts);
 }
index cd94f4e..bb40853 100644 (file)
@@ -93,7 +93,6 @@ extern tmgr_history_t history;
 //void surf_config(const char *name, va_list pa);
 
 void net_action_recycle(surf_action_t action);
-double net_action_get_remains(surf_action_t action);
 #ifdef HAVE_LATENCY_BOUND_TRACKING
 int net_get_link_latency_limited(surf_action_t action);
 #endif
@@ -153,6 +152,7 @@ typedef struct s_as {
   void (*get_route_and_latency) (AS_t as, sg_routing_edge_t src, sg_routing_edge_t dst, sg_platf_route_cbarg_t into, double *latency);
 
   xbt_dynar_t(*get_onelink_routes) (AS_t as);
+  void (*get_graph) (xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges, AS_t rc);
   sg_platf_route_cbarg_t(*get_bypass_route) (AS_t as, sg_routing_edge_t src, sg_routing_edge_t dst, double *lat);
   void (*finalize) (AS_t as);
 
@@ -192,6 +192,7 @@ XBT_PUBLIC(void) generic_free_route(sg_platf_route_cbarg_t route); // FIXME rena
 XBT_PUBLIC(void) routing_get_route_and_latency(sg_routing_edge_t src, sg_routing_edge_t dst,
                               xbt_dynar_t * route, double *latency);
 
+XBT_PUBLIC(void) generic_get_graph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges, AS_t rc);
 /**
  * Resource protected methods
  */
@@ -204,7 +205,6 @@ XBT_PUBLIC_DATA(int) surfxml_bufferstack_size;
 /* from surf_instr.c */
 void TRACE_surf_host_set_power(double date, const char *resource, double power);
 void TRACE_surf_link_set_bandwidth(double date, const char *resource, double bandwidth);
-void TRACE_surf_link_set_latency(double date, const char *resource, double latency);
 
 
 #endif                          /* _SURF_SURF_PRIVATE_H */
index cf77d31..8e25069 100644 (file)
@@ -920,6 +920,7 @@ static void routing_parse_cluster(sg_platf_cluster_cbarg_t cluster)
         bprintf("%s%s_router%s", cluster->prefix, cluster->id,
                 cluster->suffix);
   sg_platf_new_router(&router);
+  ((as_cluster_t)current_routing)->router = xbt_lib_get_or_null(as_router_lib, router.id, ROUTING_ASR_LEVEL);
   free(newid);
 
   //Make the backbone
index 37f2e32..f19670f 100644 (file)
@@ -4,6 +4,7 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 #include "surf_routing_private.h"
+#include "xbt/graph.h"
 
 /* Global vars */
 
@@ -15,40 +16,117 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_cluster, surf, "Routing part of surf"
 
 /* Business methods */
 static void cluster_get_route_and_latency(AS_t as,
-    sg_routing_edge_t src, sg_routing_edge_t dst,
-    sg_platf_route_cbarg_t route, double *lat) {
-
-      s_surf_parsing_link_up_down_t info;
-    XBT_DEBUG("cluster_get_route_and_latency from '%s'[%d] to '%s'[%d]",
-        src->name,src->id,
-        dst->name,dst->id);
-
-    if(src->rc_type != SURF_NETWORK_ELEMENT_ROUTER){ // No specific link for router
-        info = xbt_dynar_get_as(as->link_up_down_list,src->id,s_surf_parsing_link_up_down_t);
-        if(info.link_up) { // link up
-          xbt_dynar_push_as(route->link_list,void*,info.link_up);
-        if (lat)
-          *lat += surf_network_model->extension.network.get_link_latency(info.link_up);
-        }
+                                          sg_routing_edge_t src,
+                                          sg_routing_edge_t dst,
+                                          sg_platf_route_cbarg_t route,
+                                          double *lat)
+{
+
+  s_surf_parsing_link_up_down_t info;
+  XBT_DEBUG("cluster_get_route_and_latency from '%s'[%d] to '%s'[%d]",
+            src->name, src->id, dst->name, dst->id);
+
+  if (src->rc_type != SURF_NETWORK_ELEMENT_ROUTER) {    // No specific link for router
+    info =
+        xbt_dynar_get_as(as->link_up_down_list, src->id,
+                         s_surf_parsing_link_up_down_t);
+    if (info.link_up) {         // link up
+      xbt_dynar_push_as(route->link_list, void *, info.link_up);
+      if (lat)
+        *lat +=
+            surf_network_model->extension.network.get_link_latency(info.
+                                                                   link_up);
     }
+  }
+
+  if (((as_cluster_t) as)->backbone) {
+    xbt_dynar_push_as(route->link_list, void *, ((as_cluster_t) as)->backbone);
+    if (lat)
+      *lat +=
+          surf_network_model->extension.network.
+          get_link_latency(((as_cluster_t) as)->backbone);
+  }
 
-    if ( ((as_cluster_t)as)->backbone ) {
-      xbt_dynar_push_as(route->link_list,void*, ((as_cluster_t)as)->backbone) ;
+  if (dst->rc_type != SURF_NETWORK_ELEMENT_ROUTER) {    // No specific link for router
+    info =
+        xbt_dynar_get_as(as->link_up_down_list, dst->id,
+                         s_surf_parsing_link_up_down_t);
+    if (info.link_down) {       // link down
+      xbt_dynar_push_as(route->link_list, void *, info.link_down);
       if (lat)
-        *lat += surf_network_model->extension.network.get_link_latency(((as_cluster_t)as)->backbone);
+        *lat +=
+            surf_network_model->extension.network.get_link_latency(info.
+                                                                   link_down);
     }
+  }
+}
+
+static void cluster_get_graph(xbt_graph_t graph, xbt_dict_t nodes,
+                              xbt_dict_t edges, AS_t rc)
+{
+  int isrc;
+  int table_size = xbt_dynar_length(rc->index_network_elm);
+
+  sg_routing_edge_t src;
+  xbt_node_t current, previous, backboneNode = NULL, routerNode;
+  s_surf_parsing_link_up_down_t info;
+
+  xbt_assert(((as_cluster_t) rc)->router,"Malformed cluster");
+
+  /* create the router */
+  char *link_name =
+    ((sg_routing_edge_t) ((as_cluster_t) rc)->router)->name;
+  routerNode = new_xbt_graph_node(graph, link_name, nodes);
+
+  if(((as_cluster_t) rc)->backbone) {
+    char *link_nameR =
+      ((surf_resource_t) ((as_cluster_t) rc)->backbone)->name;
+    backboneNode = new_xbt_graph_node(graph, link_nameR, nodes);
 
-    if(dst->rc_type != SURF_NETWORK_ELEMENT_ROUTER){ // No specific link for router
-        info = xbt_dynar_get_as(as->link_up_down_list,dst->id,s_surf_parsing_link_up_down_t);
-        if(info.link_down) { // link down
-          xbt_dynar_push_as(route->link_list,void*,info.link_down);
-        if (lat)
-          *lat += surf_network_model->extension.network.get_link_latency(info.link_down);
+    new_xbt_graph_edge(graph, routerNode, backboneNode, edges);
+  }
+
+  for (isrc = 0; isrc < table_size; isrc++) {
+    src = xbt_dynar_get_as(rc->index_network_elm, isrc, sg_routing_edge_t);
+
+    if (src->rc_type != SURF_NETWORK_ELEMENT_ROUTER) {
+      previous = new_xbt_graph_node(graph, src->name, nodes);
+
+      info = xbt_dynar_get_as(rc->link_up_down_list, src->id,
+                              s_surf_parsing_link_up_down_t);
+
+      if (info.link_up) {     // link up
+
+        char *link_name = ((surf_resource_t) info.link_up)->name;
+        current = new_xbt_graph_node(graph, link_name, nodes);
+        new_xbt_graph_edge(graph, previous, current, edges);
+
+        if (((as_cluster_t) rc)->backbone) {
+          new_xbt_graph_edge(graph, current, backboneNode, edges);
+        } else {
+          new_xbt_graph_edge(graph, current, routerNode, edges);
         }
+
+      }
+
+      if (info.link_down) {    // link down
+        char *link_name = ((surf_resource_t) info.link_down)->name;
+        current = new_xbt_graph_node(graph, link_name, nodes);
+        new_xbt_graph_edge(graph, previous, current, edges);
+
+        if (((as_cluster_t) rc)->backbone) {
+          new_xbt_graph_edge(graph, current, backboneNode, edges);
+        } else {
+          new_xbt_graph_edge(graph, current, routerNode, edges);
+        }
+      }
     }
+
+  }
 }
 
-static void model_cluster_finalize(AS_t as) {
+static void model_cluster_finalize(AS_t as)
+{
   model_none_finalize(as);
 }
 
@@ -70,6 +148,7 @@ AS_t model_cluster_create(void)
   AS_t result = model_none_create_sized(sizeof(s_as_cluster_t));
   result->get_route_and_latency = cluster_get_route_and_latency;
   result->finalize = model_cluster_finalize;
+  result->get_graph = cluster_get_graph;
   result->parse_AS = cluster_parse_AS;
   result->parse_PU = cluster_parse_PU;
 
index 7d7eac4..4b0d4c9 100644 (file)
@@ -156,8 +156,7 @@ static void add_loopback_dijkstra(as_dijkstra_t as) {
     if (!found) {
       sg_platf_route_cbarg_t e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
       e_route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-      xbt_dynar_push(e_route->link_list,
-          &routing_platf->loopback);
+      xbt_dynar_push(e_route->link_list, &routing_platf->loopback);
       xbt_graph_new_edge(as->route_graph, node, node, e_route);
     }
   }
@@ -420,6 +419,7 @@ AS_t model_dijkstra_both_create(int cached)
   new_component->generic_routing.get_route_and_latency = dijkstra_get_route_and_latency;
   new_component->generic_routing.get_onelink_routes =
       dijkstra_get_onelink_routes;
+  new_component->generic_routing.get_graph = generic_get_graph;
   new_component->generic_routing.finalize = dijkstra_finalize;
   new_component->cached = cached;
 
index 5bce7d4..0f08c52 100644 (file)
@@ -146,6 +146,7 @@ AS_t model_floyd_create(void)
   new_component->generic_routing.get_route_and_latency = floyd_get_route_and_latency;
   new_component->generic_routing.get_onelink_routes =
       floyd_get_onelink_routes;
+  new_component->generic_routing.get_graph = generic_get_graph;
   new_component->generic_routing.finalize = floyd_finalize;
   return (AS_t)new_component;
 }
index 71cdfc6..0fb3422 100644 (file)
@@ -115,6 +115,8 @@ AS_t model_full_create(void)
   new_component->generic_routing.parse_ASroute = model_full_set_route;
   new_component->generic_routing.get_route_and_latency =
       full_get_route_and_latency;
+  new_component->generic_routing.get_graph = generic_get_graph;
+
   new_component->generic_routing.get_onelink_routes = full_get_onelink_routes;
   new_component->generic_routing.finalize = full_finalize;
 
index 177c092..ea37264 100644 (file)
@@ -9,6 +9,7 @@
 #include "surf_routing_private.h"
 #include "surf/surf_routing.h"
 #include "surf/surfxml_parse_values.h"
+#include "xbt/graph.h"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_routing_generic, surf_route, "Generic implementation of the surf routing");
 
@@ -91,11 +92,121 @@ xbt_dynar_t generic_get_onelink_routes(AS_t rc) { // FIXME: kill that stub
   return NULL;
 }
 
-sg_platf_route_cbarg_t generic_get_bypassroute(AS_t rc, sg_routing_edge_t src, sg_routing_edge_t dst, double *lat)
+static const char *instr_node_name(xbt_node_t node)
+{
+  void *data = xbt_graph_node_get_data(node);
+  char *str = (char *) data;
+  return str;
+}
+
+xbt_node_t new_xbt_graph_node(xbt_graph_t graph, const char *name,
+                              xbt_dict_t nodes)
+{
+  xbt_node_t ret = xbt_dict_get_or_null(nodes, name);
+  if (ret)
+    return ret;
+
+  ret = xbt_graph_new_node(graph, xbt_strdup(name));
+  xbt_dict_set(nodes, name, ret, NULL);
+  return ret;
+}
+
+xbt_edge_t new_xbt_graph_edge(xbt_graph_t graph, xbt_node_t s, xbt_node_t d,
+                              xbt_dict_t edges)
+{
+  xbt_edge_t ret;
+
+  const char *sn = instr_node_name(s);
+  const char *dn = instr_node_name(d);
+  int len = strlen(sn) + strlen(dn) + 1;
+  char *name = (char *) xbt_malloc(len * sizeof(char));
+
+
+  snprintf(name, len, "%s%s", sn, dn);
+  ret = xbt_dict_get_or_null(edges, name);
+  if (ret == NULL) {
+    snprintf(name, len, "%s%s", dn, sn);
+    ret = xbt_dict_get_or_null(edges, name);
+  }
+
+  if (ret == NULL) {
+    ret = xbt_graph_new_edge(graph, s, d, NULL);
+    xbt_dict_set(edges, name, ret, NULL);
+  }
+  free(name);
+  return ret;
+}
+
+void generic_get_graph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges,
+                       AS_t rc)
+{
+  int src, dst;
+  int table_size = xbt_dynar_length(rc->index_network_elm);
+
+
+  for (src = 0; src < table_size; src++) {
+    sg_routing_edge_t my_src =
+        xbt_dynar_get_as(rc->index_network_elm, src, sg_routing_edge_t);
+    for (dst = 0; dst < table_size; dst++) {
+      if (src == dst)
+        continue;
+      sg_routing_edge_t my_dst =
+          xbt_dynar_get_as(rc->index_network_elm, dst, sg_routing_edge_t);
+
+      sg_platf_route_cbarg_t route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
+      route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
+
+      rc->get_route_and_latency(rc, my_src, my_dst, route, NULL);
+
+      XBT_DEBUG ("get_route_and_latency %s -> %s", my_src->name, my_dst->name);
+
+      unsigned int cpt;
+      void *link;
+
+      xbt_node_t current, previous;
+      const char *previous_name, *current_name;
+
+      if (route->gw_src) {
+        previous = new_xbt_graph_node(graph, route->gw_src->name, nodes);
+        previous_name = route->gw_src->name;
+      } else {
+        previous = new_xbt_graph_node(graph, my_src->name, nodes);
+        previous_name = my_src->name;
+      }
+
+      xbt_dynar_foreach(route->link_list, cpt, link) {
+        char *link_name = ((surf_resource_t) link)->name;
+        current = new_xbt_graph_node(graph, link_name, nodes);
+        current_name = link_name;
+        new_xbt_graph_edge(graph, previous, current, edges);
+        XBT_DEBUG ("  %s -> %s", previous_name, current_name);
+        previous = current;
+        previous_name = current_name;
+      }
+
+      if (route->gw_dst) {
+        current = new_xbt_graph_node(graph, route->gw_dst->name, nodes);
+        current_name = route->gw_dst->name;
+      } else {
+        current = new_xbt_graph_node(graph, my_dst->name, nodes);
+        current_name = my_dst->name;
+      }
+      new_xbt_graph_edge(graph, previous, current, edges);
+      XBT_DEBUG ("  %s -> %s", previous_name, current_name);
+
+      xbt_dynar_free (&(route->link_list));
+      xbt_free (route);
+    }
+  }
+}
+
+sg_platf_route_cbarg_t generic_get_bypassroute(AS_t rc, sg_routing_edge_t src,
+                                               sg_routing_edge_t dst,
+                                               double *lat)
 {
   // If never set a bypass route return NULL without any further computations
-  XBT_DEBUG("generic_get_bypassroute from %s to %s",src->name,dst->name);
-  if(no_bypassroute_declared)
+  XBT_DEBUG("generic_get_bypassroute from %s to %s", src->name, dst->name);
+  if (no_bypassroute_declared)
     return NULL;
 
   sg_platf_route_cbarg_t e_route_bypass = NULL;
index 1f403c8..46d667b 100644 (file)
@@ -18,6 +18,11 @@ static void none_get_route_and_latency(AS_t rc, sg_routing_edge_t src, sg_routin
   *lat = 0.0;
 }
 
+static void none_get_graph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges, AS_t rc)
+{
+       XBT_INFO("No routing no graph");
+}
+
 static sg_platf_route_cbarg_t none_get_bypass_route(AS_t rc,
     sg_routing_edge_t src,
     sg_routing_edge_t dst, double *lat) {
@@ -53,6 +58,7 @@ AS_t model_none_create_sized(size_t childsize) {
   new_component->get_onelink_routes = none_get_onelink_routes;
   new_component->get_bypass_route = none_get_bypass_route;
   new_component->finalize = model_none_finalize;
+  new_component->get_graph = none_get_graph;
   new_component->routing_sons = xbt_dict_new_homogeneous(NULL);
   new_component->index_network_elm = xbt_dynar_new(sizeof(char*),NULL);
 
index cdc5fb4..c1369d0 100644 (file)
@@ -57,7 +57,6 @@ generic_processing_units_exist(AS_t rc, char *element);
 void generic_src_dst_check(AS_t rc, sg_routing_edge_t src,
     sg_routing_edge_t dst);
 
-
 /* ************************************************************************** */
 /* *************************** FLOYD ROUTING ******************************** */
 AS_t model_floyd_create(void);  /* create structures for floyd routing model */
@@ -73,6 +72,7 @@ AS_t model_rulebased_create(void);      /* create structures for rulebased routi
 typedef struct {
   s_as_t generic_routing;
   void *backbone;
+  sg_routing_edge_t router;
 } s_as_cluster_t, *as_cluster_t;
 
 AS_t model_cluster_create(void);      /* create structures for cluster routing model */
@@ -98,6 +98,10 @@ AS_t model_full_create(void);   /* create structures for full routing model */
 void model_full_end(AS_t as);       /* finalize the creation of full routing model */
 void model_full_set_route(  /* Set the route and ASroute between src and dst */
     AS_t rc, sg_platf_route_cbarg_t route);
+/* ************************************************************************** */
+/* ************************* GRAPH EXPORTING FUNCTIONS ********************** */
+xbt_node_t new_xbt_graph_node (xbt_graph_t graph, const char *name, xbt_dict_t nodes);
+xbt_edge_t new_xbt_graph_edge (xbt_graph_t graph, xbt_node_t s, xbt_node_t d, xbt_dict_t edges);
 
 
 #endif                          /* _SURF_SURF_ROUTING_PRIVATE_H */
index 53d87be..2c69fc9 100644 (file)
@@ -64,14 +64,14 @@ static void rule_route_extended_free(void *e)
 static int model_rulebased_parse_PU(AS_t rc, sg_routing_edge_t elm)
 {
   AS_rulebased_t routing = (AS_rulebased_t) rc;
-  xbt_dynar_push(routing->generic_routing.index_network_elm,(void *)elm);
+  xbt_dynar_push(routing->generic_routing.index_network_elm,&elm);
   return -1;
 }
 
 static int model_rulebased_parse_AS(AS_t rc, sg_routing_edge_t elm)
 {
   AS_rulebased_t routing = (AS_rulebased_t) rc;
-  xbt_dynar_push(routing->generic_routing.index_network_elm,(void *)elm);
+  xbt_dynar_push(routing->generic_routing.index_network_elm,&elm);
   return -1;
 }
 
@@ -394,6 +394,7 @@ AS_t model_rulebased_create(void) {
   new_component->generic_routing.get_onelink_routes = rulebased_get_onelink_routes;
   new_component->generic_routing.get_route_and_latency = rulebased_get_route_and_latency;
   new_component->generic_routing.get_bypass_route = rulebased_get_bypass_route;
+  new_component->generic_routing.get_graph = generic_get_graph;
   new_component->generic_routing.finalize = rulebased_finalize;
   /* initialization of internal structures */
   new_component->list_route = xbt_dynar_new(sizeof(rule_route_t), &rule_route_free);
index 2079a80..ed8a80c 100644 (file)
@@ -105,5 +105,6 @@ AS_t model_vivaldi_create(void)
   AS_t new_component = model_rulebased_create();
   new_component->get_route_and_latency = vivaldi_get_route_and_latency;
   new_component->parse_PU = vivaldi_parse_PU;
+  new_component->get_graph = generic_get_graph;
   return new_component;
 }
index 2c03573..18a6f49 100644 (file)
@@ -841,6 +841,7 @@ void surf_parse_close(void)
   xbt_dynar_free(&surf_parsed_filename_stack);
 
   free(surf_parsed_filename);
+  surf_parsed_filename = NULL;
 
   if (surf_file_to_parse) {
     surf_parse__delete_buffer(surf_input_buffer);
index 5b45dab..3d174c4 100644 (file)
@@ -444,7 +444,7 @@ tmgr_trace_event_t tmgr_history_get_next_event_leq(tmgr_history_t h,
         trace_event->idx++;
       } else if (event->delta > 0) {        /* Last element, checking for periodicity */
         xbt_heap_push(h->heap, trace_event, event_date + event->delta);
-        trace_event->idx = 0;
+        trace_event->idx = 1; /* not 0 as the first event is a placeholder to handle when events really start */
       } else {                      /* We don't need this trace_event anymore */
         trace_event->free_me = 1;
       }
index c1de8ae..34b9b81 100644 (file)
@@ -483,7 +483,6 @@ void surf_workstation_model_init_current_default(void)
   xbt_dynar_push(model_list, &surf_workstation_model);
   xbt_dynar_push(model_list_invoke, &surf_workstation_model);
   sg_platf_host_add_cb(workstation_new);
-//  sg_platf_postparse_add_cb(create_workstations);
 }
 
 void surf_workstation_model_init_compound()
@@ -495,5 +494,4 @@ void surf_workstation_model_init_compound()
   xbt_dynar_push(model_list, &surf_workstation_model);
   xbt_dynar_push(model_list_invoke, &surf_workstation_model);
   sg_platf_host_add_cb(workstation_new);
-//  sg_platf_postparse_add_cb(create_workstations);
 }
index 9c89c30..6d948ac 100644 (file)
@@ -344,8 +344,8 @@ static void ptask_update_resource_state(void *id,
   link_L07_t nw_link = id;
 
   if (nw_link->type == SURF_WORKSTATION_RESOURCE_LINK) {
-    XBT_DEBUG("Updating link %s (%p) with value=%f",
-      surf_resource_name(nw_link), nw_link, value);
+    XBT_DEBUG("Updating link %s (%p) with value=%f for date=%g",
+      surf_resource_name(nw_link), nw_link, value, date);
     if (event_type == nw_link->bw_event) {
       nw_link->bw_current = value;
       lmm_update_constraint_bound(ptask_maxmin_system, nw_link->constraint,
index 37714fb..9f0d9f2 100644 (file)
   # error "Unknown compiler - please report the problems to the main simgrid mailing list (http://gforge.inria.fr/mail/?group_id=12)"
 #endif
 
-typedef int socklen_t;
-#define tcp_read( s, buf, len )    recv( s, buf, len, 0 )
-#define tcp_write( s, buf, len )  send( s, buf, len, 0 )
-#define ioctl( s, c, a )          ioctlsocket( (s), (c), (a) )
-#define ioctl_t            u_long
-#define AC_SOCKET_INVALID          ((unsigned int) ~0)
-
-#ifdef SD_BOTH
-#define tcp_close(s)  (shutdown( s, SD_BOTH ), closesocket(s))
-#else
-#define tcp_close( s )  closesocket( s )
-#endif
-
 #ifndef _XBT_VISUALC_COMPILER
   #ifndef EWOULDBLOCK
   #define EWOULDBLOCK WSAEWOULDBLOCK
@@ -50,22 +37,6 @@ typedef int socklen_t;
   #endif
 #endif
 
-
-
-#ifdef sock_errno
-  #undef  sock_errno
-#endif
-
-#define sock_errno         WSAGetLastError()
-
-#ifdef sock_errstr
-  #undef  sock_errstr
-#endif
-
-#define sock_errstr(err)   xbt_wsa_err2string(err)
-
-const char *xbt_wsa_err2string(int errcode);
-
 #ifdef S_IRGRP
   #undef S_IRGRP
 #endif
index 6cfff43..8824c52 100644 (file)
@@ -1,12 +1,12 @@
 /* automaton - representation of büchi automaton */
 
-/* Copyright (c) 2011. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2011-2013. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "xbt/automaton.h"
+#include <stdio.h> /* printf */
 
 xbt_automaton_t xbt_automaton_new(){
   xbt_automaton_t automaton = NULL;
index cbe31a1..64082db 100644 (file)
@@ -644,7 +644,7 @@ void xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options) {
     }
     *(val++) = '\0';
 
-    if (strncmp(name, "contexts/", strlen("contexts/")))
+    if (strncmp(name, "contexts/", strlen("contexts/")) && strncmp(name, "path", strlen("path")))
       XBT_INFO("Configuration change: Set '%s' to '%s'", name, val);
 
     TRY {
index 80c8a6c..b2726fd 100644 (file)
@@ -672,11 +672,6 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(xbt_dict);
 
 XBT_TEST_SUITE("dict", "Dict data container");
 
-static void print_str(void *str)
-{
-  printf("%s", (char *) PRINTF_STR(str));
-}
-
 static void debuged_add_ext(xbt_dict_t head, const char *key,
                             const char *data_to_fill, void_f_pvoid_t free_f)
 {
index 720b376..6924f0b 100644 (file)
@@ -466,6 +466,19 @@ xbt_dynar_remove_n_at(xbt_dynar_t const dynar,
 
 /** @brief Returns the position of the element in the dynar
  *
+ * Beware that if your dynar contains pointed values (such as strings) instead 
+ * of scalar, this function compares the pointer value, not what's pointed. The only
+ * solution to search for a pointed value is then to write the foreach loop yourself:
+ * \code
+ * signed int position = -1;
+ * xbt_dynar_foreach(dynar, iter, elem) {
+ *    if (!memcmp(elem, searched_element, sizeof(*elem))) {
+ *        position = iter;
+ *        break;
+ *    }
+ * }
+ * \endcode
+ * 
  * Raises not_found_error if not found. If you have less than 2 millions elements,
  * you probably want to use #xbt_dynar_search_or_negative() instead, so that you
  * don't have to TRY/CATCH on element not found.
@@ -485,6 +498,10 @@ unsigned int xbt_dynar_search(xbt_dynar_t const dynar, void *const elem)
 
 /** @brief Returns the position of the element in the dynar (or -1 if not found)
  *
+ * Beware that if your dynar contains pointed values (such as
+ * strings) instead of scalar, this function is probably not what you
+ * want. Check the documentation of xbt_dynar_search() for more info.
+ * 
  * Note that usually, the dynar indices are unsigned integers. If you have more
  * than 2 million elements in your dynar, this very function will not work (but the other will).
  */
@@ -500,7 +517,12 @@ signed int xbt_dynar_search_or_negative(xbt_dynar_t const dynar, void *const ele
   return -1;
 }
 
-/** @brief Returns a boolean indicating whether the element is part of the dynar */
+/** @brief Returns a boolean indicating whether the element is part of the dynar 
+ *
+ * Beware that if your dynar contains pointed values (such as
+ * strings) instead of scalar, this function is probably not what you
+ * want. Check the documentation of xbt_dynar_search() for more info.
+ */
 int xbt_dynar_member(xbt_dynar_t const dynar, void *const elem)
 {
 
@@ -526,9 +548,6 @@ int xbt_dynar_member(xbt_dynar_t const dynar, void *const elem)
  */
 XBT_INLINE void *xbt_dynar_push_ptr(xbt_dynar_t const dynar)
 {
-  /* we have to inline xbt_dynar_insert_at_ptr here to make sure that
-     dynar->used don't change between reading it and getting the lock
-     within xbt_dynar_insert_at_ptr */
   return xbt_dynar_insert_at_ptr(dynar, dynar->used);
 }
 
@@ -537,8 +556,7 @@ XBT_INLINE void xbt_dynar_push(xbt_dynar_t const dynar,
                                const void *const src)
 {
   /* checks done in xbt_dynar_insert_at_ptr */
-  memcpy(xbt_dynar_insert_at_ptr(dynar, dynar->used), src,
-         dynar->elmsize);
+  memcpy(xbt_dynar_insert_at_ptr(dynar, dynar->used), src, dynar->elmsize);
 }
 
 /** @brief Mark the last dynar's element as unused and return a pointer to it.
index 7faa0f0..bba15a6 100644 (file)
@@ -46,6 +46,7 @@
 #include "portable.h"           /* execinfo when available */
 #include "xbt/ex.h"
 #include "xbt/str.h"
+#include "xbt/synchro_core.h"
 #include "xbt_modinter.h"       /* backtrace initialization headers */
 
 #include "xbt/ex_interface.h"
index 50eee15..2c6603b 100644 (file)
@@ -6,7 +6,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include "simgrid_config.h" /* getline */
 #include <errno.h>
 #include <stdlib.h>
 #include "xbt/sysdep.h"
@@ -756,18 +755,18 @@ xbt_graph_t xbt_graph_load (const char *filename)
   //read the number of nodes
   size_t size;
   char *nnodes_str = NULL;
-  read = getline (&nnodes_str, &size, file);
+  read = xbt_getline (&nnodes_str, &size, file);
   if (read == -1)
-    THROWF(system_error, 0, "getline failed to read the number of nodes (errno = %d)", errno);
+    THROWF(system_error, 0, "xbt_getline failed to read the number of nodes (errno = %d)", errno);
   int i, nnodes = atoi (nnodes_str);
   free (nnodes_str);
 
   //read all nodes
   for (i = 0; i < nnodes; i++){
     char *node_str = NULL;
-    read = getline (&node_str, &size, file);
+    read = xbt_getline (&node_str, &size, file);
     if (read == -1)
-      THROWF(system_error, 0, "getline failed to read all nodes (errno = %d)", errno);
+      THROWF(system_error, 0, "xbt_getline failed to read all nodes (errno = %d)", errno);
     xbt_node_t n;
     char *name = xbt_strdup (node_str);
     xbt_str_subst (name, '\n', '\0', 0);
@@ -778,18 +777,18 @@ xbt_graph_t xbt_graph_load (const char *filename)
 
   //read the number of edges
   char *nedges_str = NULL;
-  read = getline (&nedges_str, &size, file);
+  read = xbt_getline (&nedges_str, &size, file);
   if (read == -1)
-    THROWF(system_error, 0, "getline failed to read the number of edges (errno = %d)", errno);
+    THROWF(system_error, 0, "xbt_getline failed to read the number of edges (errno = %d)", errno);
   int nedges = atoi (nedges_str);
   free (nedges_str);
 
   //read all edges
   for (i = 0; i < nedges; i++){
     char *edge_str = NULL, edge_id[200], node_source[200], node_target[200];
-    read = getline (&edge_str, &size, file);
+    read = xbt_getline (&edge_str, &size, file);
     if (read == -1)
-      THROWF(system_error, 0, "getline failed to read all edges (errno = %d)", errno);
+      THROWF(system_error, 0, "xbt_getline failed to read all edges (errno = %d)", errno);
     sscanf (edge_str, "%s %s %s", edge_id, node_source, node_target);
     free (edge_str);
     xbt_str_subst (edge_id, '\n', '\0', 0);
index 9581d79..0f5a9e4 100644 (file)
@@ -1057,8 +1057,8 @@ char *xbt_graph_parse_text;
  *
  * This program was generated with the FleXML XML processor generator.
  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
- * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
- * (Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp).
+ * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
+ * (1.9.6).
  * 
  * There are two, intertwined parts to this program, part A and part B.
  *
@@ -1067,7 +1067,7 @@ char *xbt_graph_parse_text;
  * 
  * Some parts, here collectively called "Part A", are found in the 
  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
- * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
+ * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
  *
  * You can redistribute, use, perform, display and/or modify "Part A"
  * provided the following two conditions hold:
@@ -1100,10 +1100,7 @@ char *xbt_graph_parse_text;
  */
 
 /* Version strings. */
-const char rcs_graphxml_flexml_skeleton[] =
- "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
-const char rcs_graphxml_flexml[] =
- "$" "Id: flexml.pl,v 1.69 2012/12/20 00:13:40 mquinson Exp $";
+const char graphxml_flexml_version[] = "1.9.6";
 
 /* ANSI headers. */
 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
index adaa919..a089714 100644 (file)
@@ -1345,8 +1345,8 @@ static void xbt_log_help_categories_rec(xbt_log_category_t category,
     this_prefix = bprintf("%s \\_ ", prefix);
     child_prefix = bprintf("%s |  ", prefix);
   } else {
-    this_prefix = bprintf("%s", prefix);
-    child_prefix = bprintf("%s", prefix);
+    this_prefix = xbt_strdup(prefix);
+    child_prefix = xbt_strdup(prefix);
   }
 
   dynar = xbt_dynar_new(sizeof(xbt_log_category_t), NULL);
index 2aa4c8e..8c67d8d 100644 (file)
@@ -15,6 +15,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mm_diff, xbt,
 
 xbt_dynar_t mc_heap_comparison_ignore;
 xbt_dynar_t stacks_areas;
+void *maestro_stack_start, *maestro_stack_end;
 
 static void heap_area_pair_free(heap_area_pair_t pair);
 static void heap_area_pair_free_voidp(void *d);
@@ -22,11 +23,13 @@ static int add_heap_area_pair(xbt_dynar_t list, int block1, int fragment1, int b
 static int is_new_heap_area_pair(xbt_dynar_t list, int block1, int fragment1, int block2, int fragment2);
 static heap_area_t new_heap_area(int block, int fragment);
 
-static size_t heap_comparison_ignore_size(void *address);
+static size_t heap_comparison_ignore_size(xbt_dynar_t list, void *address);
 static void add_heap_equality(xbt_dynar_t equals, void *a1, void *a2);
 static void remove_heap_equality(xbt_dynar_t equals, int address, void *a);
 
-static char* is_stack(void *address);
+static int is_stack(void *address);
+static int is_block_stack(int block);
+static int equal_blocks(int b1, int b2);
 
 void mmalloc_backtrace_block_display(void* heapinfo, int block){
 
@@ -112,10 +115,11 @@ void mmalloc_backtrace_display(void *addr){
 void *s_heap = NULL, *heapbase1 = NULL, *heapbase2 = NULL;
 malloc_info *heapinfo1 = NULL, *heapinfo2 = NULL;
 size_t heaplimit = 0, heapsize1 = 0, heapsize2 = 0;
+xbt_dynar_t to_ignore1 = NULL, to_ignore2 = NULL;
 
-int ignore_done = 0;
+int ignore_done1 = 0, ignore_done2 = 0;
 
-void init_heap_information(xbt_mheap_t heap1, xbt_mheap_t heap2){
+void init_heap_information(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t i1, xbt_dynar_t i2){
 
   heaplimit = ((struct mdesc *)heap1)->heaplimit;
 
@@ -129,10 +133,26 @@ void init_heap_information(xbt_mheap_t heap1, xbt_mheap_t heap2){
 
   heapsize1 = heap1->heapsize;
   heapsize2 = heap2->heapsize;
+
+  to_ignore1 = i1;
+  to_ignore2 = i2;
+
+  if(MC_is_active()){
+    MC_ignore_data_bss(&heaplimit, sizeof(heaplimit));
+    MC_ignore_data_bss(&s_heap, sizeof(s_heap));
+    MC_ignore_data_bss(&heapbase1, sizeof(heapbase1));
+    MC_ignore_data_bss(&heapbase2, sizeof(heapbase2));
+    MC_ignore_data_bss(&heapinfo1, sizeof(heapinfo1));
+    MC_ignore_data_bss(&heapinfo2, sizeof(heapinfo2));
+    MC_ignore_data_bss(&heapsize1, sizeof(heapsize1));
+    MC_ignore_data_bss(&heapsize2, sizeof(heapsize2));
+    MC_ignore_data_bss(&to_ignore1, sizeof(to_ignore1));
+    MC_ignore_data_bss(&to_ignore2, sizeof(to_ignore2));
+  }
   
 }
 
-int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stack1, xbt_dynar_t *stack2, xbt_dynar_t equals){
+int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2){
 
   if(heap1 == NULL && heap1 == NULL){
     XBT_DEBUG("Malloc descriptors null");
@@ -149,14 +169,12 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
   size_t current_block = -1;    /* avoid "maybe uninitialized" warning */
   size_t current_fragment;
   void *addr_block1, *addr_block2, *addr_frag1, *addr_frag2;
-  void *snap_addr_block1, *snap_addr_block2;
-  char *stack_name;
   int nb_diff1 = 0, nb_diff2 = 0;
 
   xbt_dynar_t previous = xbt_dynar_new(sizeof(heap_area_pair_t), heap_area_pair_free_voidp);
 
   int equal, res_compare = 0;
-
+  
   /* Check busy blocks*/
 
   i1 = 1;
@@ -171,17 +189,16 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
     }
 
     addr_block1 = ((void*) (((ADDR2UINT(i1)) - 1) * BLOCKSIZE + (char*)((xbt_mheap_t)s_heap)->heapbase));
-    snap_addr_block1 = ((void*) (((ADDR2UINT(i1)) - 1) * BLOCKSIZE + (char*)heapbase1));
 
     if(heapinfo1[i1].type == 0){  /* Large block */
       
-      if((xbt_dynar_length(*stack1) < xbt_dynar_length(stacks_areas)) && ((stack_name = is_stack(addr_block1)) != NULL)){
-        stack_region_t stack = xbt_new0(s_stack_region_t, 1);
-        stack->address = snap_addr_block1;
-        stack->process_name = strdup(stack_name);
-        stack->size = heapinfo1[i1].busy_block.busy_size;
-        xbt_dynar_push(*stack1, &stack);
-        res_compare = -1;
+      if(is_stack(addr_block1)){
+        for(k=0; k < heapinfo1[i1].busy_block.size; k++)
+          heapinfo1[i1+k].busy_block.equal_to = new_heap_area(i1, -1);
+        for(k=0; k < heapinfo2[i1].busy_block.size; k++)
+          heapinfo2[i1+k].busy_block.equal_to = new_heap_area(i1, -1);
+        i1 = i1 + heapinfo1[current_block].busy_block.size;
+        continue;
       }
 
       if(heapinfo1[i1].busy_block.equal_to != NULL){
@@ -199,26 +216,16 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
         if(heapinfo2[current_block].busy_block.equal_to == NULL){  
         
           addr_block2 = ((void*) (((ADDR2UINT(current_block)) - 1) * BLOCKSIZE + (char*)((xbt_mheap_t)s_heap)->heapbase));
-          snap_addr_block2 = ((void*) (((ADDR2UINT(current_block)) - 1) * BLOCKSIZE + (char*)heapbase2));
-          
-          if((xbt_dynar_length(*stack2) < xbt_dynar_length(stacks_areas)) && ((stack_name = is_stack(addr_block2)) != NULL)){
-            stack_region_t stack = xbt_new0(s_stack_region_t, 1);
-            stack->address = snap_addr_block2;
-            stack->process_name = strdup(stack_name);
-            stack->size = heapinfo2[current_block].busy_block.busy_size;
-            xbt_dynar_push(*stack2, &stack);
-            res_compare = -1;
-          }
         
-          res_compare = compare_area(addr_block1, addr_block2, previous, equals);
+          res_compare = compare_area(addr_block1, addr_block2, previous);
         
-          if(res_compare == 0 || res_compare == -1){
+          if(res_compare == 0){
             for(k=1; k < heapinfo2[current_block].busy_block.size; k++)
               heapinfo2[current_block+k].busy_block.equal_to = new_heap_area(i1, -1);
             for(k=1; k < heapinfo1[current_block].busy_block.size; k++)
               heapinfo1[current_block+k].busy_block.equal_to = new_heap_area(i1, -1);
             equal = 1;
-            match_equals(previous, equals);
+            match_equals(previous);
             i1 = i1 + heapinfo1[current_block].busy_block.size;
           }
         
@@ -231,16 +238,6 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
       while(i2 <= heaplimit && !equal){
 
         addr_block2 = ((void*) (((ADDR2UINT(i2)) - 1) * BLOCKSIZE + (char*)((xbt_mheap_t)s_heap)->heapbase));        
-        snap_addr_block2 = ((void*) (((ADDR2UINT(i2)) - 1) * BLOCKSIZE + (char*)heapbase2));
-        
-        if((xbt_dynar_length(*stack2) < xbt_dynar_length(stacks_areas)) && ((stack_name = is_stack(addr_block2)) != NULL)){
-          stack_region_t stack = xbt_new0(s_stack_region_t, 1);
-          stack->address = snap_addr_block2;
-          stack->process_name = strdup(stack_name);
-          stack->size = heapinfo2[i2].busy_block.busy_size;
-          xbt_dynar_push(*stack2, &stack);
-          res_compare = -1;
-        }
            
         if(i2 == current_block){
           i2++;
@@ -257,15 +254,15 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
           continue;
         }
         
-        res_compare = compare_area(addr_block1, addr_block2, previous, equals);
+        res_compare = compare_area(addr_block1, addr_block2, previous);
         
-        if(res_compare == 0 || res_compare == -1){
+        if(res_compare == 0){
           for(k=1; k < heapinfo2[i2].busy_block.size; k++)
             heapinfo2[i2+k].busy_block.equal_to = new_heap_area(i1, -1);
           for(k=1; k < heapinfo1[i1].busy_block.size; k++)
             heapinfo1[i1+k].busy_block.equal_to = new_heap_area(i2, -1);
           equal = 1;
-          match_equals(previous, equals);
+          match_equals(previous);
           i1 = i1 + heapinfo1[i1].busy_block.size;
         }
 
@@ -276,7 +273,7 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
       }
 
       if(!equal){
-        XBT_DEBUG("Block %zu not found (size_used = %zu)", i1, heapinfo1[i1].busy_block.busy_size);
+        XBT_DEBUG("Block %zu not found (size_used = %zu, addr = %p)", i1, heapinfo1[i1].busy_block.busy_size, addr_block1);
         i1 = heaplimit + 1;
         nb_diff1++;
       }
@@ -306,11 +303,11 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
             addr_block2 = ((void*) (((ADDR2UINT(current_block)) - 1) * BLOCKSIZE + (char*)((xbt_mheap_t)s_heap)->heapbase));
             addr_frag2 = (void*) ((char *)addr_block2 + (current_fragment << ((xbt_mheap_t)s_heap)->heapinfo[current_block].type));
 
-            res_compare = compare_area(addr_frag1, addr_frag2, previous, equals);
+            res_compare = compare_area(addr_frag1, addr_frag2, previous);
 
             if(res_compare == 0){
               equal = 1;
-              match_equals(previous, equals);
+              match_equals(previous);
             }
         
             xbt_dynar_reset(previous);
@@ -332,16 +329,16 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
               continue;
 
             if(heapinfo2[i2].busy_frag.equal_to[j2] != NULL)                
-              continue;              
+              continue;            
                           
             addr_block2 = ((void*) (((ADDR2UINT(i2)) - 1) * BLOCKSIZE + (char*)((xbt_mheap_t)s_heap)->heapbase));
             addr_frag2 = (void*) ((char *)addr_block2 + (j2 << ((xbt_mheap_t)s_heap)->heapinfo[i2].type));
 
-            res_compare = compare_area(addr_frag1, addr_frag2, previous, equals);
+            res_compare = compare_area(addr_frag1, addr_frag2, previous);
             
             if(res_compare == 0){
               equal = 1;
-              match_equals(previous, equals);
+              match_equals(previous);
               xbt_dynar_reset(previous);
               break;
             }
@@ -355,7 +352,7 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
         }
 
         if(heapinfo1[i1].busy_frag.equal_to[j1] == NULL){
-          XBT_DEBUG("Block %zu, fragment %zu not found (size_used = %d)", i1, j1, heapinfo1[i1].busy_frag.frag_size[j1]);
+          XBT_DEBUG("Block %zu, fragment %zu not found (size_used = %d, address = %p)", i1, j1, heapinfo1[i1].busy_frag.frag_size[j1], addr_frag1);
           i2 = heaplimit + 1;
           i1 = heaplimit + 1;
           nb_diff1++;
@@ -412,6 +409,9 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
     i++; 
   }
 
+  if(current_block == heaplimit)
+    XBT_DEBUG("Number of blocks/fragments not found in heap1 : %d", nb_diff1);
+
   i = 1;
 
   while(i<=heaplimit){
@@ -428,8 +428,6 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
           }
         }
       }
-      xbt_free(heapinfo2[i].busy_block.equal_to);
-      heapinfo2[i].busy_block.equal_to = NULL;
     }
     if(heapinfo2[i].type > 0){
       addr_block2 = ((void*) (((ADDR2UINT(i)) - 1) * BLOCKSIZE + (char*)heapbase2));
@@ -446,6 +444,46 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
             }
           }
         }
+      }
+    }
+    i++; 
+  }
+
+  if(current_block == heaplimit)
+    XBT_DEBUG("Number of blocks/fragments not found in heap2 : %d", nb_diff2);
+
+  xbt_dynar_free(&previous);
+
+  return ((nb_diff1 > 0) || (nb_diff2 > 0));
+}
+
+void reset_heap_information(){
+
+  size_t i = 0, j;
+
+  while(i<=heaplimit){
+    if(heapinfo1[i].type == 0){
+      xbt_free(heapinfo1[i].busy_block.equal_to);
+      heapinfo1[i].busy_block.equal_to = NULL;
+    }
+    if(heapinfo1[i].type > 0){
+      for(j=0; j < (size_t) (BLOCKSIZE >> heapinfo1[i].type); j++){
+        xbt_free(heapinfo1[i].busy_frag.equal_to[j]);
+        heapinfo1[i].busy_frag.equal_to[j] = NULL;
+      }
+    }
+    i++; 
+  }
+
+  i = 0;
+
+  while(i<=heaplimit){
+    if(heapinfo2[i].type == 0){
+      xbt_free(heapinfo2[i].busy_block.equal_to);
+      heapinfo2[i].busy_block.equal_to = NULL;
+    }
+    if(heapinfo2[i].type > 0){
+      for(j=0; j < (size_t) (BLOCKSIZE >> heapinfo2[i].type); j++){
         xbt_free(heapinfo2[i].busy_frag.equal_to[j]);
         heapinfo2[i].busy_frag.equal_to[j] = NULL;
       }
@@ -453,13 +491,12 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac
     i++; 
   }
 
-  xbt_dynar_free(&previous);
-  ignore_done = 0;
+  ignore_done1 = 0, ignore_done2 = 0;
   s_heap = NULL, heapbase1 = NULL, heapbase2 = NULL;
   heapinfo1 = NULL, heapinfo2 = NULL;
   heaplimit = 0, heapsize1 = 0, heapsize2 = 0;
+  to_ignore1 = NULL, to_ignore2 = NULL;
 
-  return ((nb_diff1 > 0) || (nb_diff2 > 0));
 }
 
 static heap_area_t new_heap_area(int block, int fragment){
@@ -471,16 +508,16 @@ static heap_area_t new_heap_area(int block, int fragment){
 }
 
 
-static size_t heap_comparison_ignore_size(void *address){
+static size_t heap_comparison_ignore_size(xbt_dynar_t ignore_list, void *address){
 
   unsigned int cursor = 0;
   int start = 0;
-  int end = xbt_dynar_length(mc_heap_comparison_ignore) - 1;
+  int end = xbt_dynar_length(ignore_list) - 1;
   mc_heap_ignore_region_t region;
 
   while(start <= end){
     cursor = (start + end) / 2;
-    region = (mc_heap_ignore_region_t)xbt_dynar_get_as(mc_heap_comparison_ignore, cursor, mc_heap_ignore_region_t);
+    region = (mc_heap_ignore_region_t)xbt_dynar_get_as(ignore_list, cursor, mc_heap_ignore_region_t);
     if(region->address == address)
       return region->size;
     if(region->address < address)
@@ -493,10 +530,10 @@ static size_t heap_comparison_ignore_size(void *address){
 }
 
 
-int compare_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dynar_t equals){
+int compare_area(void *area1, void* area2, xbt_dynar_t previous){
 
   size_t i = 0, pointer_align = 0, ignore1 = 0, ignore2 = 0;
-  void *address_pointed1, *address_pointed2;
+  void *addr_pointed1, *addr_pointed2;
   int res_compare;
   size_t block1, frag1, block2, frag2, size;
   int check_ignore = 0;
@@ -514,6 +551,9 @@ int compare_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dynar_t equ
   block1 = ((char*)area1 - (char*)((xbt_mheap_t)s_heap)->heapbase) / BLOCKSIZE + 1;
   block2 = ((char*)area2 - (char*)((xbt_mheap_t)s_heap)->heapbase) / BLOCKSIZE + 1;
 
+  if(is_block_stack((int)block1) && is_block_stack((int)block2))
+    return 0;
+
   if(((char *)area1 < (char*)((xbt_mheap_t)s_heap)->heapbase)  || (block1 > heapsize1) || (block1 < 1) || ((char *)area2 < (char*)((xbt_mheap_t)s_heap)->heapbase) || (block2 > heapsize2) || (block2 < 1))
     return 1;
 
@@ -525,6 +565,11 @@ int compare_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dynar_t equ
     if(heapinfo1[block1].type == -1){
       return 0;
     }else if(heapinfo1[block1].type == 0){
+      if(heapinfo1[block1].busy_block.equal_to != NULL){
+        if(equal_blocks(block1, block2)){
+          return 0;
+        }
+      }
       if(heapinfo1[block1].busy_block.size != heapinfo2[block2].busy_block.size)
         return 1;
       if(heapinfo1[block1].busy_block.busy_size != heapinfo2[block2].busy_block.busy_size)
@@ -539,7 +584,7 @@ int compare_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dynar_t equ
       area1_to_compare = addr_block1;
       area2_to_compare = addr_block2;
 
-      if((ignore_done < xbt_dynar_length(mc_heap_comparison_ignore)) && heapinfo1[block1].busy_block.ignore == 1)
+      if(heapinfo1[block1].busy_block.ignore == 1 || heapinfo2[block2].busy_block.ignore == 1)
         check_ignore = 1;
     }else{
       frag1 = ((uintptr_t) (ADDR2UINT (area1) % (BLOCKSIZE))) >> heapinfo1[block1].type;
@@ -560,8 +605,8 @@ int compare_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dynar_t equ
 
       if(size == 0)
         return 0;
-
-      if((ignore_done < xbt_dynar_length(mc_heap_comparison_ignore)) && heapinfo1[block1].busy_frag.ignore[frag1] == 1)
+      
+      if(heapinfo1[block1].busy_frag.ignore[frag1] == 1 || heapinfo2[block2].busy_frag.ignore[frag2] == 1)
         check_ignore = 1;
     }
   }else if((heapinfo1[block1].type > 0) && (heapinfo2[block2].type > 0)){
@@ -584,7 +629,7 @@ int compare_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dynar_t equ
     if(size == 0)
       return 0;
 
-    if((ignore_done < xbt_dynar_length(mc_heap_comparison_ignore)) && heapinfo1[block1].busy_frag.ignore[frag1] == 1)
+    if(heapinfo1[block1].busy_frag.ignore[frag1] == 1 || heapinfo2[block2].busy_frag.ignore[frag2] == 1)
       check_ignore = 1;   
   }else{
     return 1;
@@ -592,12 +637,12 @@ int compare_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dynar_t equ
   
   while(i<size){
 
-    if((ignore_done < xbt_dynar_length(mc_heap_comparison_ignore)) && check_ignore){
-
-      if((ignore1 = heap_comparison_ignore_size((char *)area1 + i)) > 0){
-        if((ignore2 = heap_comparison_ignore_size((char *)area2 + i))  == ignore1){
+    if(check_ignore){
+      if((ignore_done1 < xbt_dynar_length(to_ignore1)) && ((ignore1 = heap_comparison_ignore_size(to_ignore1, (char *)area1 + i)) > 0)){
+        if((ignore_done2 < xbt_dynar_length(to_ignore2)) && ((ignore2 = heap_comparison_ignore_size(to_ignore2, (char *)area2 + i))  == ignore1)){
           i = i + ignore2;
-          ignore_done++;
+          ignore_done1++;
+          ignore_done2++;
           continue;
         }
       }
@@ -607,14 +652,19 @@ int compare_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dynar_t equ
 
       /* Check pointer difference */
       pointer_align = (i / sizeof(void*)) * sizeof(void*);
-      address_pointed1 = *((void **)((char *)area1_to_compare + pointer_align));
-      address_pointed2 = *((void **)((char *)area2_to_compare + pointer_align));
+      addr_pointed1 = *((void **)((char *)area1_to_compare + pointer_align));
+      addr_pointed2 = *((void **)((char *)area2_to_compare + pointer_align));
+      
+      if(addr_pointed1 > maestro_stack_start && addr_pointed1 < maestro_stack_end && addr_pointed2 > maestro_stack_start && addr_pointed2 < maestro_stack_end){
+        i = pointer_align + sizeof(void *);
+        continue;
+      }
 
-      res_compare = compare_area(address_pointed1, address_pointed2, previous, equals);
+      res_compare = compare_area(addr_pointed1, addr_pointed2, previous);
       
       if(res_compare == 1)
         return 1; 
-
+      
       i = pointer_align + sizeof(void *);
       
     }else{
@@ -625,7 +675,7 @@ int compare_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dynar_t equ
   }
 
   if(match_pairs)
-    match_equals(previous, equals);
+    match_equals(previous);
 
   return 0;
   
@@ -675,66 +725,46 @@ static int is_new_heap_area_pair(xbt_dynar_t list, int block1, int fragment1, in
   return 1;
 }
 
-void match_equals(xbt_dynar_t list, xbt_dynar_t equals){
+void match_equals(xbt_dynar_t list){
 
   unsigned int cursor = 0;
   heap_area_pair_t current_pair;
   heap_area_t previous_area;
 
-  void *real_addr_block1, *real_addr_block2, *real_addr_frag1, *real_addr_frag2;
-
   xbt_dynar_foreach(list, cursor, current_pair){
 
     if(current_pair->fragment1 != -1){
-
-      real_addr_block1 = ((void*) (((ADDR2UINT((size_t)current_pair->block1)) - 1) * BLOCKSIZE + (char*)((xbt_mheap_t)s_heap)->heapbase));
-      real_addr_frag1 = (void*) ((char *)real_addr_block1 + (current_pair->fragment1 << heapinfo1[current_pair->block1].type));
-      real_addr_block2 = ((void*) (((ADDR2UINT((size_t)current_pair->block2)) - 1) * BLOCKSIZE + (char*)((xbt_mheap_t)s_heap)->heapbase));
-      real_addr_frag2 = (void*) ((char *)real_addr_block2 + (current_pair->fragment2 << heapinfo2[current_pair->block2].type));
-
+      
       if(heapinfo1[current_pair->block1].busy_frag.equal_to[current_pair->fragment1] != NULL){    
-        remove_heap_equality(equals, 1, real_addr_frag1);
         previous_area = heapinfo1[current_pair->block1].busy_frag.equal_to[current_pair->fragment1];
         xbt_free(heapinfo2[previous_area->block].busy_frag.equal_to[previous_area->fragment]);
         heapinfo2[previous_area->block].busy_frag.equal_to[previous_area->fragment] = NULL;
         xbt_free(previous_area); 
       }
       if(heapinfo2[current_pair->block2].busy_frag.equal_to[current_pair->fragment2] != NULL){        
-        remove_heap_equality(equals, 2, real_addr_frag2); 
         previous_area = heapinfo2[current_pair->block2].busy_frag.equal_to[current_pair->fragment2];
         xbt_free(heapinfo1[previous_area->block].busy_frag.equal_to[previous_area->fragment]);
         heapinfo1[previous_area->block].busy_frag.equal_to[previous_area->fragment] = NULL;
         xbt_free(previous_area);
       }
-      
-      if(real_addr_frag1 != real_addr_frag2)
-        add_heap_equality(equals, real_addr_frag1, real_addr_frag2);
 
       heapinfo1[current_pair->block1].busy_frag.equal_to[current_pair->fragment1] = new_heap_area(current_pair->block2, current_pair->fragment2);
       heapinfo2[current_pair->block2].busy_frag.equal_to[current_pair->fragment2] = new_heap_area(current_pair->block1, current_pair->fragment1);
 
     }else{
 
-      real_addr_block1 = ((void*) (((ADDR2UINT((size_t)current_pair->block1)) - 1) * BLOCKSIZE + (char*)((xbt_mheap_t)s_heap)->heapbase));
-      real_addr_block2 = ((void*) (((ADDR2UINT((size_t)current_pair->block2)) - 1) * BLOCKSIZE + (char*)((xbt_mheap_t)s_heap)->heapbase));
-
       if(heapinfo1[current_pair->block1].busy_block.equal_to != NULL){
-        remove_heap_equality(equals, 1, real_addr_block1);
         previous_area = heapinfo1[current_pair->block1].busy_block.equal_to;
         xbt_free(heapinfo2[previous_area->block].busy_block.equal_to);
         heapinfo2[previous_area->block].busy_block.equal_to = NULL; 
         xbt_free(previous_area);
       }
       if(heapinfo2[current_pair->block2].busy_block.equal_to != NULL){
-        remove_heap_equality(equals, 2, real_addr_block2);
         previous_area = heapinfo2[current_pair->block2].busy_block.equal_to;
         xbt_free(heapinfo1[previous_area->block].busy_block.equal_to);
         heapinfo1[previous_area->block].busy_block.equal_to = NULL;
         xbt_free(previous_area);
       }
-      
-      if(real_addr_block1 != real_addr_block2)
-        add_heap_equality(equals, real_addr_block1, real_addr_block2);
 
       heapinfo1[current_pair->block1].busy_block.equal_to = new_heap_area(current_pair->block2, current_pair->fragment2);
       heapinfo2[current_pair->block2].busy_block.equal_to = new_heap_area(current_pair->block1, current_pair->fragment1);
@@ -873,16 +903,28 @@ int mmalloc_linear_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2){
   
 }
 
-static char* is_stack(void *address){
+static int is_stack(void *address){
   unsigned int cursor = 0;
   stack_region_t stack;
 
   xbt_dynar_foreach(stacks_areas, cursor, stack){
     if(address == stack->address)
-      return stack->process_name;
+      return 1;
   }
 
-  return NULL;
+  return 0;
+}
+
+static int is_block_stack(int block){
+  unsigned int cursor = 0;
+  stack_region_t stack;
+
+  xbt_dynar_foreach(stacks_areas, cursor, stack){
+    if(block == stack->block)
+      return 1;
+  }
+
+  return 0;
 }
 
 static void add_heap_equality(xbt_dynar_t equals, void *a1, void *a2){
@@ -1001,7 +1043,15 @@ int is_free_area(void *area, xbt_mheap_t heap){
   }
 
   return 0;
-  
-
+}
 
+static int equal_blocks(b1, b2){
+  if(heapinfo1[b1].busy_block.equal_to != NULL){
+    if(heapinfo2[b2].busy_block.equal_to != NULL){
+      if(((heap_area_t)(heapinfo1[b1].busy_block.equal_to))->block == b2 && ((heap_area_t)(heapinfo2[b2].busy_block.equal_to))->block == b1)
+        return 1;
+    }
+  }
+  return 0;
 }
index 07cbe7e..0dfd027 100644 (file)
@@ -344,6 +344,24 @@ void mmalloc_postexit(void)
   xbt_mheap_destroy_no_free(__mmalloc_default_mdp);
 }
 
-size_t mmalloc_get_chunks_used(xbt_mheap_t heap){
-  return ((struct mdesc *)heap)->heapstats.chunks_used;
+size_t mmalloc_get_bytes_used(xbt_mheap_t heap){
+  int i = 0, j = 0;
+  int bytes = 0;
+  
+  while(i<=((struct mdesc *)heap)->heaplimit){
+    if(((struct mdesc *)heap)->heapinfo[i].type == 0){
+      if(((struct mdesc *)heap)->heapinfo[i].busy_block.busy_size > 0)
+        bytes += ((struct mdesc *)heap)->heapinfo[i].busy_block.busy_size;
+     
+    }else if(((struct mdesc *)heap)->heapinfo[i].type > 0){
+      for(j=0; j < (size_t) (BLOCKSIZE >> ((struct mdesc *)heap)->heapinfo[i].type); j++){
+        if(((struct mdesc *)heap)->heapinfo[i].busy_frag.frag_size[j] > 0)
+          bytes += ((struct mdesc *)heap)->heapinfo[i].busy_frag.frag_size[j];
+      }
+    }
+    i++; 
+  }
+
+  return bytes;
 }
+
index 9098beb..641f294 100644 (file)
@@ -422,6 +422,9 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt,
 #endif
 #endif
 
+  /* FIXME: better place */
+#include "xbt/sysdep.h"
+
 /* declarations */
 
 static char credits[] = "\n\
@@ -1165,9 +1168,6 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt,
 #endif
 
 
-  /* FIXME: better place */
-#include "xbt/sysdep.h"
-
 char *bvprintf(const char *fmt, va_list ap)
 {
   char *res;
index 9801a74..bbe1cb1 100644 (file)
@@ -7,6 +7,7 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "portable.h"           /* execinfo when available */
+#include "xbt/synchro_core.h"   /* xbt_thread_self_name */
 #include "xbt/ex_interface.h"
 #include "xbt/sysdep.h"
 #include "xbt/strbuff.h"
index e09d03d..773e3c5 100644 (file)
@@ -8,7 +8,6 @@
 #include "xbt/misc.h"
 #include "simgrid_config.h"     /*HAVE_MMAP _XBT_WIN32 */
 #include "internal_config.h"        /* MMALLOC_WANT_OVERRIDE_LEGACY */
-#include "time.h"               /* to seed the random generator */
 
 #include "xbt/sysdep.h"
 #include "xbt/log.h"
@@ -35,7 +34,6 @@ int xbt_initialized = 0;
  */
 static void xbt_preinit(void) _XBT_GNUC_CONSTRUCTOR(200);
 static void xbt_postexit(void);
-static unsigned int seed = 2147483647;
 
 #ifdef _XBT_WIN32
 # undef _XBT_NEED_INIT_PRAGMA
@@ -77,8 +75,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
 
 #endif
 
-static void xbt_preinit(void)
-{
+static void xbt_preinit(void) {
+  unsigned int seed = 2147483647;
+
 #ifdef MMALLOC_WANT_OVERRIDE_LEGACY
   mmalloc_preinit();
 #endif
@@ -87,7 +86,11 @@ static void xbt_preinit(void)
   xbt_os_thread_mod_preinit();
   xbt_fifo_preinit();
   xbt_dict_preinit();
-  atexit(xbt_postexit);
+   
+  srand(seed);
+  srand48(seed);
+
+  atexit(xbt_postexit);   
 }
 
 static void xbt_postexit(void)
@@ -118,9 +121,6 @@ void xbt_init(int *argc, char **argv)
   for (i=0;i<*argc;i++) {
     xbt_dynar_push(xbt_cmdline,&(argv[i]));
   }
-
-  srand(seed);
-  srand48(seed);
   
   xbt_log_init(argc, argv);
 }
index 05924d2..f435231 100644 (file)
@@ -330,7 +330,7 @@ void xbt_os_mutex_timedacquire(xbt_os_mutex_t mutex, double delay)
       THROWF(timeout_error, 0, "mutex %p not ready", mutex);
     default:
       THROWF(system_error, errcode,
-             "xbt_mutex_timedacquire(%p) failed: %s", mutex,
+             "xbt_os_mutex_timedacquire(%p) failed: %s", mutex,
              strerror(errcode));
     }
 
index 6dc3c95..78e578c 100644 (file)
@@ -11,6 +11,7 @@
 #include "xbt/sysdep.h"
 #include "xbt/log.h"
 #include "xbt/dynar.h"
+#include "xbt/synchro_core.h"
 
 #include "xbt/queue.h"          /* this module */
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_queue, xbt,
index cd6fa9a..10435c4 100644 (file)
@@ -3,7 +3,6 @@
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
-#include "simgrid_config.h" //For getline, keep that include first
 
 #include "internal_config.h"
 #include <errno.h>
@@ -53,7 +52,7 @@ const char **xbt_replay_reader_get(xbt_replay_reader_t reader)
 {
   ssize_t read;
   xbt_dynar_t d;
-  read = getline(&reader->line, &reader->line_len, reader->fp);
+  read = xbt_getline(&reader->line, &reader->line_len, reader->fp);
   //XBT_INFO("got from trace: %s",reader->line);
   reader->linenum++;
   if (read==-1)
@@ -181,7 +180,7 @@ static const char **action_get_action(char *name)
     }
     // Read lines until I reach something for me (which breaks in loop body)
     // or end of file reached
-    while (getline(&action_line, &action_len, action_fp) != -1) {
+    while (xbt_getline(&action_line, &action_len, action_fp) != -1) {
       // cleanup and split the string I just read
       char *comment = strchr(action_line, '#');
       if (comment != NULL)
index f0f87ef..ae49355 100644 (file)
@@ -10,6 +10,7 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "xbt/ex.h"
+#include "xbt/synchro_core.h"
 
 #include "simgrid/simix.h"        /* used implementation */
 #include "../simix/smx_private.h" /* FIXME */
index 4c361b5..9247f2d 100644 (file)
@@ -520,60 +520,53 @@ char *xbt_str_join_array(const char *const *strs, const char *sep)
   return res;
 }
 
-#if defined(SIMGRID_NEED_GETLINE) || defined(DOXYGEN)
 /** @brief Get a single line from the stream (reimplementation of the GNU getline)
  *
- * This is a redefinition of the GNU getline function, used on platforms where it does not exists.
+ * This is a reimplementation of the GNU getline function, so that our code don't depends on the GNU libc.
  *
- * getline() reads an entire line from stream, storing the address of the buffer
- * containing the text into *buf.  The buffer is null-terminated and includes
- * the newline character, if one was found.
+ * xbt_getline() reads an entire line from stream, storing the address of the
+ * buffer containing the text into *buf.  The buffer is null-terminated and
+ * includes the newline character, if one was found.
  *
- * If *buf is NULL, then getline() will allocate a buffer for storing the line,
- * which should be freed by the user program.  Alternatively, before calling getline(),
- * *buf can contain a pointer to a malloc()-allocated buffer *n bytes in size.  If the buffer
- * is not large enough to hold the line, getline() resizes it with realloc(), updating *buf and *n
- * as necessary.  In either case, on a successful call, *buf and *n will be updated to
- * reflect the buffer address and allocated size respectively.
+ * If *buf is NULL, then xbt_getline() will allocate a buffer for storing the
+ * line, which should be freed by the user program.
+ *
+ * Alternatively, before calling xbt_getline(), *buf can contain a pointer to a
+ * malloc()-allocated buffer *n bytes in size.  If the buffer is not large
+ * enough to hold the line, xbt_getline() resizes it with realloc(), updating
+ * *buf and *n as necessary.
+ *
+ * In either case, on a successful call, *buf and *n will be updated to reflect
+ * the buffer address and allocated size respectively.
  */
-long getline(char **buf, size_t * n, FILE * stream)
+ssize_t xbt_getline(char **buf, size_t *n, FILE *stream)
 {
-
-  size_t i;
+  ssize_t i;
   int ch;
 
+  ch = getc(stream);
+  if (ferror(stream) || feof(stream))
+    return -1;
+
   if (!*buf) {
-    *buf = xbt_malloc(512);
     *n = 512;
+    *buf = xbt_malloc(*n);
   }
 
-  if (feof(stream))
-    return (ssize_t) - 1;
-
-  for (i = 0; (ch = fgetc(stream)) != EOF; i++) {
-
-    if (i >= (*n) + 1)
+  i = 0;
+  do {
+    if (i == *n)
       *buf = xbt_realloc(*buf, *n += 512);
-
-    (*buf)[i] = ch;
-
-    if ((*buf)[i] == '\n') {
-      i++;
-      (*buf)[i] = '\0';
-      break;
-    }
-  }
+    (*buf)[i++] = ch;
+  } while (ch != '\n' && (ch = getc(stream)) != EOF);
 
   if (i == *n)
     *buf = xbt_realloc(*buf, *n += 1);
-
   (*buf)[i] = '\0';
 
-  return (ssize_t) i;
+  return i;
 }
 
-#endif                          /* HAVE_GETLINE */
-
 /*
  * Diff related functions
  *
index 3837154..96ebc4a 100644 (file)
@@ -5,7 +5,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(test_trace_integration test_trace_integration.c)
 
 ### Add definitions for compile
-target_link_libraries(test_trace_integration simgrid m )
+target_link_libraries(test_trace_integration simgrid)
 
 set(tesh_files
   ${tesh_files}
diff --git a/teshsuite/simdag/availability/CMakeLists.txt b/teshsuite/simdag/availability/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a866b6d
--- /dev/null
@@ -0,0 +1,37 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
+
+add_executable(availability_test availability_test.c)
+
+### Add definitions for compile
+if(NOT WIN32)
+  target_link_libraries(availability_test simgrid m)
+else()
+  target_link_libraries(availability_test simgrid)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/availability_test.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/simulacrum_7_hosts.xml
+  PARENT_SCOPE
+  )
+set(teshsuite_src
+  ${teshsuite_src}
+  ${CMAKE_CURRENT_SOURCE_DIR}/availability_test.c
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/linkBandwidth7.bw
+  PARENT_SCOPE
+  )
diff --git a/teshsuite/simdag/availability/availability_test.c b/teshsuite/simdag/availability/availability_test.c
new file mode 100644 (file)
index 0000000..1fb03f4
--- /dev/null
@@ -0,0 +1,177 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stddef.h>
+#include <unistd.h>
+#include <simdag/simdag.h>
+#include <xbt/log.h>
+#include <xbt/ex.h>
+#include <signal.h>
+
+
+typedef struct {
+  FILE *daxFile;
+  FILE *envFile;
+} XMLfiles;
+
+
+static void usage(char *name)
+{
+  fprintf(stdout, "Error on parameters.\n");
+  fprintf(stdout, "usage: %s <XML environment file>  <DAX file>\n", name);
+}
+
+static void checkParameters(int argc, char *argv[])
+{
+  if (argc != 3) {
+    int i;
+    printf("====%d===\n",argc);
+    for(i=0; i<argc; i++) {
+      printf("\t%s\n",argv[i]);
+    }
+    usage(argv[0]);
+    exit(-1);
+  }
+ /* Check that files exist */
+  XMLfiles xmlFiles;
+  if ((xmlFiles.envFile = fopen(argv[1], "r")) == NULL) {
+    fprintf(stderr, "Error while opening XML file %s.\n", argv[1]);
+    exit(-1);
+  }
+  fclose(xmlFiles.envFile);
+
+  if ((xmlFiles.daxFile = fopen(argv[2], "r")) == NULL) {
+    fprintf(stderr, "Error while opening DAX file %s.\n", argv[2]);
+    exit(-1);
+  }
+  fclose(xmlFiles.daxFile);
+}
+
+static int name_compare_hosts(const void *n1, const void *n2)
+{
+  char name1[80], name2[80];
+  strcpy(name1, SD_workstation_get_name(*((SD_workstation_t *) n1)));
+  strcpy(name2, SD_workstation_get_name(*((SD_workstation_t *) n2)));
+
+  return strcmp(name1, name2);
+}
+
+static void scheduleDAX(xbt_dynar_t dax)
+{
+  unsigned int cursor;
+  SD_task_t task;
+
+  const SD_workstation_t *ws_list = SD_workstation_get_list();
+  int totalHosts = SD_workstation_get_number();
+  qsort((void *) ws_list, totalHosts, sizeof(SD_workstation_t),
+        name_compare_hosts);
+
+  int count = SD_workstation_get_number();
+  //fprintf(stdout, "No. workstations: %d, %d\n", count, (dax != NULL));
+
+  xbt_dynar_foreach(dax, cursor, task) {
+    if (SD_task_get_kind(task) == SD_TASK_COMP_SEQ) {
+      if (!strcmp(SD_task_get_name(task), "end")
+          || !strcmp(SD_task_get_name(task), "root")) {
+        fprintf(stdout, "Scheduling %s to node: %s\n", SD_task_get_name(task),
+                SD_workstation_get_name(ws_list[0]));
+        SD_task_schedulel(task, 1, ws_list[0]);
+      } else {
+        fprintf(stdout, "Scheduling %s to node: %s\n", SD_task_get_name(task),
+                SD_workstation_get_name(ws_list[(cursor) % count]));
+        SD_task_schedulel(task, 1, ws_list[(cursor) % count]);
+      }
+    }
+  }
+}
+
+/* static void printTasks(xbt_dynar_t completedTasks) */
+/* { */
+/*     unsigned int cursor; */
+/*     SD_task_t task; */
+
+/*     xbt_dynar_foreach(completedTasks, cursor, task) */
+/*     { */
+/*             if(SD_task_get_state(task) == SD_DONE) */
+/*             { */
+/*                     fprintf(stdout, "Task done: %s, %f, %f\n", */
+/*                                             SD_task_get_name(task), SD_task_get_start_time(task), SD_task_get_finish_time(task)); */
+/*             } */
+/*     } */
+/* } */
+
+
+/* void createDottyFile(xbt_dynar_t dax, char *filename) */
+/* { */
+/*     char filename2[1000]; */
+/*     unsigned int cursor; */
+/*     SD_task_t task; */
+
+/*     sprintf(filename2, "%s.dot", filename); */
+/*     FILE *dotout = fopen(filename2, "w"); */
+/*     fprintf(dotout, "digraph A {\n"); */
+/*     xbt_dynar_foreach(dax, cursor, task) */
+/*     { */
+/*             SD_task_dotty(task, dotout); */
+/*     } */
+/*     fprintf(dotout, "}\n"); */
+/*     fclose(dotout); */
+/* } */
+
+static xbt_dynar_t initDynamicThrottling(int *argc, char *argv[])
+{
+  /* Initialize SD */
+  SD_init(argc, argv);
+
+  /* Check parameters */
+  checkParameters(*argc,argv);
+
+  /* Create environment */
+  SD_create_environment(argv[1]);
+  /* Load DAX file */
+  xbt_dynar_t dax = SD_daxload(argv[2]);
+
+  //  createDottyFile(dax, argv[2]);
+
+  // Schedule DAX
+  fprintf(stdout, "Scheduling DAX...\n");
+  scheduleDAX(dax);
+  fprintf(stdout, "DAX scheduled\n");
+  SD_simulate(-1);
+  fprintf(stdout, "Simulation end. Time: %f\n", SD_get_clock());
+
+  return dax;
+}
+
+/**
+ * Garbage collector :D
+ */
+static void garbageCollector(xbt_dynar_t dax)
+{
+  SD_task_t task;
+  unsigned int cursor;
+  xbt_dynar_foreach(dax, cursor, task) {
+    SD_task_destroy(task);
+  }
+  SD_exit();
+}
+
+
+
+/**
+ * Main procedure
+ * @param argc
+ * @param argv
+ * @return
+ */
+int main(int argc, char *argv[])
+{
+
+  /* Start process... */
+  xbt_dynar_t dax = initDynamicThrottling(&argc, argv);
+
+  // Free memory
+  garbageCollector(dax);
+  return 0;
+}
diff --git a/teshsuite/simdag/availability/availability_test.tesh b/teshsuite/simdag/availability/availability_test.tesh
new file mode 100644 (file)
index 0000000..160c156
--- /dev/null
@@ -0,0 +1,34 @@
+$ simdag/availability/availability_test ${srcdir:=.}/simdag/availability/simulacrum_7_hosts.xml --cfg=path:${srcdir:=.}/simdag/availability/ ${srcdir:=.}/../examples/simdag/scheduling/Montage_25.xml --cfg=network/TCP_gamma:4194304 --log=sd_daxparse.thresh:critical
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [surf_workstation/INFO] surf_workstation_model_init_ptask_L07
+> Scheduling DAX...
+> Scheduling root to node: Host 26
+> Scheduling ID00000@mProjectPP to node: Host 27
+> Scheduling ID00001@mProjectPP to node: Host 28
+> Scheduling ID00002@mProjectPP to node: Host 29
+> Scheduling ID00003@mProjectPP to node: Host 30
+> Scheduling ID00004@mProjectPP to node: Host 31
+> Scheduling ID00005@mDiffFit to node: Host 32
+> Scheduling ID00006@mDiffFit to node: Host 26
+> Scheduling ID00007@mDiffFit to node: Host 27
+> Scheduling ID00008@mDiffFit to node: Host 28
+> Scheduling ID00009@mDiffFit to node: Host 29
+> Scheduling ID00010@mDiffFit to node: Host 30
+> Scheduling ID00011@mDiffFit to node: Host 31
+> Scheduling ID00012@mDiffFit to node: Host 32
+> Scheduling ID00013@mDiffFit to node: Host 26
+> Scheduling ID00014@mConcatFit to node: Host 27
+> Scheduling ID00015@mBgModel to node: Host 28
+> Scheduling ID00016@mBackground to node: Host 29
+> Scheduling ID00017@mBackground to node: Host 30
+> Scheduling ID00018@mBackground to node: Host 31
+> Scheduling ID00019@mBackground to node: Host 32
+> Scheduling ID00020@mBackground to node: Host 26
+> Scheduling ID00021@mImgTbl to node: Host 27
+> Scheduling ID00022@mAdd to node: Host 28
+> Scheduling ID00023@mShrink to node: Host 29
+> Scheduling ID00024@mJPEG to node: Host 30
+> Scheduling end to node: Host 26
+> DAX scheduled
+> Simulation end. Time: 164.052870
+
diff --git a/teshsuite/simdag/availability/linkBandwidth7.bw b/teshsuite/simdag/availability/linkBandwidth7.bw
new file mode 100644 (file)
index 0000000..34a24c3
--- /dev/null
@@ -0,0 +1,5 @@
+PERIODICITY 8.0
+1.007044263744508 6.846527733924368E7
+4.199387092709633 1.0335587797993976E8
+5.319464737378834 1.0591433767387845E7
+7.237437222882919 7.037797434537312E7
diff --git a/teshsuite/simdag/availability/simulacrum_7_hosts.xml b/teshsuite/simdag/availability/simulacrum_7_hosts.xml
new file mode 100644 (file)
index 0000000..835e312
--- /dev/null
@@ -0,0 +1,225 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
+<platform version="3">
+ <AS  id="AS0"  routing="Full">
+  <host id="Host 26" power="3.300140519709234E9" />
+  <host id="Host 27" power="3.867398877553016E9" />
+  <host id="Host 28" power="1.6522665718098645E9" />
+  <host id="Host 29" power="1.0759376792481766E9" />
+  <host id="Host 30" power="2.4818410475340424E9" />
+  <host id="Host 31" power="1.773869555571436E9" />
+  <host id="Host 32" power="1.7843609176927505E9" />
+
+  <link id="l152" bandwidth="1.25E8"  latency="1.0E-4" />
+  <link id="l153" bandwidth="1.25E8"  latency="1.0E-4" />
+  <link id="l154" bandwidth="1.25E8"  latency="1.0E-4" />
+  <link id="l155" bandwidth="1.25E8"  latency="1.0E-4" />
+  <link id="l156" bandwidth="1.25E8"  latency="1.0E-4" />
+  <link id="l157" bandwidth="1.25E8"  latency="1.0E-4" />
+  <link id="l159" bandwidth="1.25E8" bandwidth_file="linkBandwidth7.bw"  latency="1.0E-4" />
+  <link id="l160" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l161" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l162" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l163" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l164" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l165" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l166" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l167" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l168" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l169" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l170" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l171" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l172" bandwidth="1.25E8" latency="1.0E-4" />
+  <link id="l173" bandwidth="1.25E8" latency="1.0E-4" />
+
+  <route symmetrical="NO" src="Host 26" dst="Host 27">
+    <link_ctn id="l155"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 26" dst="Host 28">
+    <link_ctn id="l155"/>
+    <link_ctn id="l154"/>
+    <link_ctn id="l156"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 26" dst="Host 29">
+    <link_ctn id="l152"/>
+    <link_ctn id="l157"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 26" dst="Host 30">
+    <link_ctn id="l152"/>
+    <link_ctn id="l161"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 26" dst="Host 31">
+    <link_ctn id="l166"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 26" dst="Host 32">
+    <link_ctn id="l152"/>
+    <link_ctn id="l169"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 27" dst="Host 26">
+    <link_ctn id="l155"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 27" dst="Host 28">
+    <link_ctn id="l154"/>
+    <link_ctn id="l156"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 27" dst="Host 29">
+    <link_ctn id="l159"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 27" dst="Host 30">
+    <link_ctn id="l162"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 27" dst="Host 31">
+    <link_ctn id="l167"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 27" dst="Host 32">
+    <link_ctn id="l154"/>
+    <link_ctn id="l170"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 28" dst="Host 26">
+    <link_ctn id="l156"/>
+    <link_ctn id="l154"/>
+    <link_ctn id="l155"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 28" dst="Host 27">
+    <link_ctn id="l156"/>
+    <link_ctn id="l154"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 28" dst="Host 29">
+    <link_ctn id="l160"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 28" dst="Host 30">
+    <link_ctn id="l163"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 28" dst="Host 31">
+    <link_ctn id="l163"/>
+    <link_ctn id="l168"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 28" dst="Host 32">
+    <link_ctn id="l156"/>
+    <link_ctn id="l170"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 29" dst="Host 26">
+    <link_ctn id="l157"/>
+    <link_ctn id="l152"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 29" dst="Host 27">
+    <link_ctn id="l159"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 29" dst="Host 28">
+    <link_ctn id="l160"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 29" dst="Host 30">
+    <link_ctn id="l164"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 29" dst="Host 31">
+    <link_ctn id="l159"/>
+    <link_ctn id="l167"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 29" dst="Host 32">
+    <link_ctn id="l171"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 30" dst="Host 26">
+    <link_ctn id="l161"/>
+    <link_ctn id="l152"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 30" dst="Host 27">
+    <link_ctn id="l162"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 30" dst="Host 28">
+    <link_ctn id="l163"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 30" dst="Host 29">
+    <link_ctn id="l164"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 30" dst="Host 31">
+    <link_ctn id="l168"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 30" dst="Host 32">
+    <link_ctn id="l172"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 31" dst="Host 26">
+    <link_ctn id="l166"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 31" dst="Host 27">
+    <link_ctn id="l167"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 31" dst="Host 28">
+    <link_ctn id="l168"/>
+    <link_ctn id="l163"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 31" dst="Host 29">
+    <link_ctn id="l167"/>
+    <link_ctn id="l159"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 31" dst="Host 30">
+    <link_ctn id="l168"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 31" dst="Host 32">
+    <link_ctn id="l173"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 32" dst="Host 26">
+    <link_ctn id="l169"/>
+    <link_ctn id="l152"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 32" dst="Host 27">
+    <link_ctn id="l170"/>
+    <link_ctn id="l154"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 32" dst="Host 28">
+    <link_ctn id="l170"/>
+    <link_ctn id="l156"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 32" dst="Host 29">
+    <link_ctn id="l171"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 32" dst="Host 30">
+    <link_ctn id="l172"/>
+  </route>
+
+  <route symmetrical="NO" src="Host 32" dst="Host 31">
+    <link_ctn id="l173"/>
+  </route>
+
+</AS>
+</platform>
+
index 0588808..6229ec2 100644 (file)
@@ -1,3 +1,3 @@
-$ simdag/basic0 ${srcdir:=.}/simdag/basic_platform.xml --surf-path=${srcdir} "--log=root.fmt:[%10.6r]%e%m%n"
+$ simdag/basic0 ${srcdir:=.}/simdag/basic_platform.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e%m%n"
 > [  0.000000] surf_workstation_model_init_ptask_L07
 > [  0.800100] Simulation time: 0.800100
index 44e5a7e..c2b666d 100644 (file)
@@ -1,3 +1,3 @@
-$ simdag/basic1 ${srcdir:=.}/simdag/basic_platform.xml --surf-path=${srcdir} "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/basic1 ${srcdir:=.}/simdag/basic_platform.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > [ 16.000100] (0:@) Simulation time: 16.000100
index 2614e4e..9f15bc1 100644 (file)
@@ -1,3 +1,3 @@
-$ simdag/basic2 ${srcdir:=.}/simdag/basic_platform.xml --surf-path=${srcdir} "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/basic2 ${srcdir:=.}/simdag/basic_platform.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > [  8.800100] (0:@) Simulation time: 8.800100
\ No newline at end of file
index fb512da..f1afcbd 100644 (file)
@@ -1,4 +1,4 @@
-$ simdag/basic3 ${srcdir:=.}/simdag/basic_platform.xml --surf-path=${srcdir} "--log=root.fmt:[%10.6r]%e%m%n" --log=sd_kernel.thresh:verbose
+$ simdag/basic3 ${srcdir:=.}/simdag/basic_platform.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e%m%n" --log=sd_kernel.thresh:verbose
 > [  0.000000] surf_workstation_model_init_ptask_L07
 > [  0.000000] Starting simulation...
 > [  0.000000] Run simulation for -1.000000 seconds
index b6ca71a..f7eda80 100644 (file)
@@ -1,4 +1,4 @@
-$ simdag/basic4 ${srcdir:=.}/simdag/basic_platform.xml --surf-path=${srcdir} "--log=root.fmt:[%10.6r]%e%m%n" --log=sd_kernel.thresh:verbose
+$ simdag/basic4 ${srcdir:=.}/simdag/basic_platform.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e%m%n" --log=sd_kernel.thresh:verbose
 > [  0.000000] surf_workstation_model_init_ptask_L07
 > [  0.000000] Starting simulation...
 > [  0.000000] Run simulation for -1.000000 seconds
index cdb06cb..19ba948 100644 (file)
@@ -1,3 +1,3 @@
-$ simdag/basic5 ${srcdir:=.}/simdag/basic_platform.xml --surf-path=${srcdir} "--log=root.fmt:[%10.6r]%e%m%n"
+$ simdag/basic5 ${srcdir:=.}/simdag/basic_platform.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e%m%n"
 > [  0.000000] surf_workstation_model_init_ptask_L07
 > [  0.002500] Simulation time: 0.002500
index a4478e0..04d782f 100644 (file)
@@ -1,3 +1,3 @@
-$ simdag/basic6 ${srcdir:=.}/simdag/network/p2p/platform_2p_1sl.xml --surf-path=${srcdir} "--log=root.fmt:[%10.6r]%e%m%n"
+$ simdag/basic6 ${srcdir:=.}/simdag/network/p2p/platform_2p_1sl.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e%m%n"
 > [  0.000000] surf_workstation_model_init_ptask_L07
 > [  2.000000] Simulation time: 2.000000
index c237b85..bd81be9 100644 (file)
@@ -1,4 +1,4 @@
-$ simdag/incomplete ${srcdir:=.}/simdag/basic_platform.xml --surf-path=${srcdir} "--log=root.fmt:[%10.6r]%e%m%n"
+$ simdag/incomplete ${srcdir:=.}/simdag/basic_platform.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e%m%n"
 > [  0.000000] surf_workstation_model_init_ptask_L07
 > [  8.000100] Simulation is finished but 3 tasks are still not done
 > [  8.000100] Task C is in SD_NOT_SCHEDULED state
index 4cd3303..79003d9 100644 (file)
@@ -1,6 +1,6 @@
 
 p all 2 all test, only fat pipe switch is used concurrently
 
-$ simdag/network/mxn/test_intra_all2all ${srcdir:=.}/simdag/network/mxn/platform_4p_1switch.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/mxn/test_intra_all2all ${srcdir:=.}/simdag/network/mxn/platform_4p_1switch.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 8
index a23ab6b..7063943 100644 (file)
@@ -1,6 +1,6 @@
 
 p sending on different paths test
 
-$ simdag/network/mxn/test_intra_independent_comm ${srcdir:=.}/simdag/network/mxn/platform_4p_1switch.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/mxn/test_intra_independent_comm ${srcdir:=.}/simdag/network/mxn/platform_4p_1switch.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 3
index 5a1391e..fe13de3 100644 (file)
@@ -1,6 +1,6 @@
 
 p scatter test
 
-$ simdag/network/mxn/test_intra_scatter ${srcdir:=.}/simdag/network/mxn/platform_4p_1switch.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/mxn/test_intra_scatter ${srcdir:=.}/simdag/network/mxn/platform_4p_1switch.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 8
index f6f7588..27b8b2c 100644 (file)
@@ -1,18 +1,18 @@
 
 p latency check, 1 byte, shared link
 
-$ simdag/network/p2p/test_latency1 ${srcdir:=.}/simdag/network/p2p/platform_2p_1sl.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/p2p/test_latency1 ${srcdir:=.}/simdag/network/p2p/platform_2p_1sl.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 1.5
 
 p latency check, 1 byte, fat pipe
 
-$ simdag/network/p2p/test_latency1 ${srcdir:=.}/simdag/network/p2p/platform_2p_1fl.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/p2p/test_latency1 ${srcdir:=.}/simdag/network/p2p/platform_2p_1fl.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 1.5
 
 p latency check, 1 byte, link - switch - link
 
-$ simdag/network/p2p/test_latency1 ${srcdir:=.}/simdag/network/p2p/platform_2p_1switch.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/p2p/test_latency1 ${srcdir:=.}/simdag/network/p2p/platform_2p_1switch.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 3
index 5913cf1..07787cc 100644 (file)
@@ -1,18 +1,18 @@
 
 p latency check, 2 x 1 byte, same direction, shared link
 
-$ simdag/network/p2p/test_latency2 ${srcdir:=.}/simdag/network/p2p/platform_2p_1sl.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/p2p/test_latency2 ${srcdir:=.}/simdag/network/p2p/platform_2p_1sl.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 2.5
 
 p latency check, 2 x 1 byte, same direction, fat pipe
 
-$ simdag/network/p2p/test_latency2 ${srcdir:=.}/simdag/network/p2p/platform_2p_1fl.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/p2p/test_latency2 ${srcdir:=.}/simdag/network/p2p/platform_2p_1fl.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 1.5
 
 p latency check, 2 x 1 byte, same direction, link - switch - link
 
-$ simdag/network/p2p/test_latency2 ${srcdir:=.}/simdag/network/p2p/platform_2p_1switch.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/p2p/test_latency2 ${srcdir:=.}/simdag/network/p2p/platform_2p_1switch.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 4
index d3a8913..f083ac2 100644 (file)
@@ -1,18 +1,18 @@
 
 p latency check, 2 x 1 byte, opposite direction, shared link
 
-$ simdag/network/p2p/test_latency3 ${srcdir:=.}/simdag/network/p2p/platform_2p_1sl.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/p2p/test_latency3 ${srcdir:=.}/simdag/network/p2p/platform_2p_1sl.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 2.5
 
 p latency check, 2 x 1 byte, opposite direction, fat pipe
 
-$ simdag/network/p2p/test_latency3 ${srcdir:=.}/simdag/network/p2p/platform_2p_1fl.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/p2p/test_latency3 ${srcdir:=.}/simdag/network/p2p/platform_2p_1fl.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 1.5
 
 p latency check, 2 x 1 byte, opposite direction, link - switch - link
 
-$ simdag/network/p2p/test_latency3 ${srcdir:=.}/simdag/network/p2p/platform_2p_1switch.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/p2p/test_latency3 ${srcdir:=.}/simdag/network/p2p/platform_2p_1switch.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 4
index a5c4053..bcce3ba 100644 (file)
@@ -1,6 +1,6 @@
 
 p latency bounded by large latency link
 
-$ simdag/network/p2p/test_latency_bound ${srcdir:=.}/simdag/network/p2p/platform_2p_1bb.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/p2p/test_latency_bound ${srcdir:=.}/simdag/network/p2p/platform_2p_1bb.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 10001.5
index 8a375cd..305e4b9 100644 (file)
@@ -1,7 +1,7 @@
 
 p Reinitialization test
 
-$ simdag/network/test_reinit_costs ${srcdir:=.}/simdag/network/platform_2p_1sl.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/network/test_reinit_costs ${srcdir:=.}/simdag/network/platform_2p_1sl.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 0
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
index 51fa74e..3467eb8 100644 (file)
@@ -1,12 +1,12 @@
 
 p par task comp only, no comm, homogeneous
 
-$ simdag/partask/test_comp_only_par ${srcdir:=.}/simdag/partask/platform_2p_1sl.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/partask/test_comp_only_par ${srcdir:=.}/simdag/partask/platform_2p_1sl.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 1
 
 p par task comp only, no comm, heterogeneous
 
-$ simdag/partask/test_comp_only_par ${srcdir:=.}/simdag/partask/platform_2p_1sl_hetero.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/partask/test_comp_only_par ${srcdir:=.}/simdag/partask/platform_2p_1sl_hetero.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 1
index 334b538..85c429e 100644 (file)
@@ -1,6 +1,6 @@
 
 p seq task comp only, no comm
 
-$ simdag/partask/test_comp_only_seq ${srcdir:=.}/simdag/partask/platform_2p_1sl.xml --surf-path=${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ simdag/partask/test_comp_only_seq ${srcdir:=.}/simdag/partask/platform_2p_1sl.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) surf_workstation_model_init_ptask_L07
 > 1
index c83d2ae..32ab021 100644 (file)
@@ -79,7 +79,6 @@ $ ${bindir:=.}/basic_parsing_test ./properties.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '0.000010'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'workstation/model' to 'compound'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'Vegas'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'path' to '~/'
 > Workstation number: 1, link number: 1
 
 $ ${bindir:=.}/basic_parsing_test ./properties.xml --cfg=cpu/optim:TI
@@ -88,7 +87,6 @@ $ ${bindir:=.}/basic_parsing_test ./properties.xml --cfg=cpu/optim:TI
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '0.000010'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'workstation/model' to 'compound'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'Vegas'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'path' to '~/'
 > Workstation number: 1, link number: 1
 
 $ ${bindir:=.}/basic_parsing_test ./one_cluster_file.xml
index 7674959..a6a544b 100644 (file)
@@ -30,24 +30,24 @@ if(enable_smpi)
   add_executable(indexed_test indexed_test.c)
   add_executable(struct_test struct_test.c)
 
-  target_link_libraries(alltoall2 simgrid smpi )
-  target_link_libraries(alltoall_basic simgrid smpi )
-  target_link_libraries(alltoallv simgrid smpi )
-  target_link_libraries(allreduce simgrid smpi )
-  target_link_libraries(bcast simgrid smpi )
-  target_link_libraries(compute simgrid smpi )
-  target_link_libraries(compute2 simgrid smpi )
-  target_link_libraries(compute3 simgrid smpi )
-  target_link_libraries(pingpong simgrid smpi )
-  target_link_libraries(scatter simgrid smpi )
-  target_link_libraries(reduce simgrid smpi )
-  target_link_libraries(split simgrid smpi )
-  target_link_libraries(smpi_sendrecv simgrid smpi )
-  target_link_libraries(ttest01 simgrid smpi )
-  target_link_libraries(vector_test simgrid smpi )
-  target_link_libraries(hvector_test simgrid smpi )
-  target_link_libraries(indexed_test simgrid smpi )
-  target_link_libraries(struct_test simgrid smpi )
+  target_link_libraries(alltoall2 simgrid smpi )
+  target_link_libraries(alltoall_basic simgrid smpi )
+  target_link_libraries(alltoallv simgrid smpi )
+  target_link_libraries(allreduce simgrid smpi )
+  target_link_libraries(bcast simgrid smpi )
+  target_link_libraries(compute simgrid smpi )
+  target_link_libraries(compute2 simgrid smpi )
+  target_link_libraries(compute3 simgrid smpi )
+  target_link_libraries(pingpong simgrid smpi )
+  target_link_libraries(scatter simgrid smpi )
+  target_link_libraries(reduce simgrid smpi )
+  target_link_libraries(split simgrid smpi )
+  target_link_libraries(smpi_sendrecv simgrid smpi )
+  target_link_libraries(ttest01 simgrid smpi )
+  target_link_libraries(vector_test simgrid smpi )
+  target_link_libraries(hvector_test simgrid smpi )
+  target_link_libraries(indexed_test simgrid smpi )
+  target_link_libraries(struct_test simgrid smpi )
 
   set_target_properties(smpi_sendrecv PROPERTIES RENAME sendrecv)
 
index c304c5d..1853fa0 100644 (file)
@@ -23,7 +23,7 @@ int main(int argc, char *argv[]) {
     MPI_Send(&data,1,MPI_INT,(rank+1)%2,666,MPI_COMM_WORLD);
 //   smpi_sleep(1000);
   } else {
-    MPI_Recv(&data,1,MPI_INT,-1,666,MPI_COMM_WORLD,NULL);
+    MPI_Recv(&data,1,MPI_INT,MPI_ANY_SOURCE,666,MPI_COMM_WORLD,NULL);
     if (data !=22) {
       printf("rank %d: Damn, data does not match (got %d)\n",rank, data);
     }
index d6ba932..7cb0c94 100644 (file)
@@ -1,8 +1,14 @@
 cmake_minimum_required(VERSION 2.6)
 
 if(enable_smpi)
-  set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
-  set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
+
+  if(WIN32)
+    set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
+  else()
+    set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
+    set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
+  endif()
+
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
   set(MPICH_FLAGS "-DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRING_H=1 -DUSE_STDARG=1 -DHAVE_LONG_DOUBLE=1 -DHAVE_PROTOTYPES=1 -DHAVE_SIGNAL_H=1 -DHAVE_SIGACTION=1 -DHAVE_SLEEP=1 -DHAVE_SYSCONF=1")
 
@@ -45,40 +51,40 @@ if(enable_smpi)
     add_executable(bcastlog bcastlog.f)
   endif()
 
-  target_link_libraries(coll1  simgrid smpi )
-  target_link_libraries(coll2 simgrid smpi )
-  target_link_libraries(coll3 simgrid smpi )
-  target_link_libraries(coll4 simgrid smpi )
-  target_link_libraries(coll5 simgrid smpi )
-  target_link_libraries(coll6 simgrid smpi )
-  target_link_libraries(coll7 simgrid smpi )
-  target_link_libraries(coll8 simgrid smpi )
-  target_link_libraries(coll9 simgrid smpi )
-  target_link_libraries(coll10 simgrid smpi )
-  target_link_libraries(coll11 simgrid smpi )
-  target_link_libraries(coll12  simgrid smpi )
-  target_link_libraries(coll13 simgrid smpi )
-  target_link_libraries(allredmany simgrid smpi )
-  target_link_libraries(bcastbug simgrid smpi )
-  target_link_libraries(bcastbug2 simgrid smpi )
-  target_link_libraries(bcastvec simgrid smpi )
-  target_link_libraries(grouptest simgrid smpi )
-  target_link_libraries(redtst simgrid smpi )
-  target_link_libraries(barrier simgrid smpi )
-  target_link_libraries(bcast_mpich simgrid smpi )
-  target_link_libraries(allred simgrid smpi )
-  target_link_libraries(allred2 simgrid smpi )
-  target_link_libraries(scatterv simgrid smpi )
-  target_link_libraries(scattern simgrid smpi )
-  target_link_libraries(redscat simgrid smpi )
-  target_link_libraries(longuser simgrid smpi )
-  target_link_libraries(alltoallv_mpich simgrid smpi )
-  target_link_libraries(scantst simgrid smpi )
+  target_link_libraries(coll1  simgrid smpi )
+  target_link_libraries(coll2 simgrid smpi )
+  target_link_libraries(coll3 simgrid smpi )
+  target_link_libraries(coll4 simgrid smpi )
+  target_link_libraries(coll5 simgrid smpi )
+  target_link_libraries(coll6 simgrid smpi )
+  target_link_libraries(coll7 simgrid smpi )
+  target_link_libraries(coll8 simgrid smpi )
+  target_link_libraries(coll9 simgrid smpi )
+  target_link_libraries(coll10 simgrid smpi )
+  target_link_libraries(coll11 simgrid smpi )
+  target_link_libraries(coll12  simgrid smpi )
+  target_link_libraries(coll13 simgrid smpi )
+  target_link_libraries(allredmany simgrid smpi )
+  target_link_libraries(bcastbug simgrid smpi )
+  target_link_libraries(bcastbug2 simgrid smpi )
+  target_link_libraries(bcastvec simgrid smpi )
+  target_link_libraries(grouptest simgrid smpi )
+  target_link_libraries(redtst simgrid smpi )
+  target_link_libraries(barrier simgrid smpi )
+  target_link_libraries(bcast_mpich simgrid smpi )
+  target_link_libraries(allred simgrid smpi )
+  target_link_libraries(allred2 simgrid smpi )
+  target_link_libraries(scatterv simgrid smpi )
+  target_link_libraries(scattern simgrid smpi )
+  target_link_libraries(redscat simgrid smpi )
+  target_link_libraries(longuser simgrid smpi )
+  target_link_libraries(alltoallv_mpich simgrid smpi )
+  target_link_libraries(scantst simgrid smpi )
   if(SMPI_F2C)
-    target_link_libraries(allredf simgrid smpi )
-    target_link_libraries(assocf simgrid smpi )
-    target_link_libraries(allgatherf simgrid smpi )
-    target_link_libraries(bcastlog simgrid smpi )
+    target_link_libraries(allredf simgrid smpi )
+    target_link_libraries(assocf simgrid smpi )
+    target_link_libraries(allgatherf simgrid smpi )
+    target_link_libraries(bcastlog simgrid smpi )
   endif()
 
   set_target_properties(coll1 PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
index 86f4b0a..4defd0f 100644 (file)
@@ -1,9 +1,15 @@
 cmake_minimum_required(VERSION 2.6)
 
 if(enable_smpi)
-  set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
-  set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
-  set(CMAKE_Fortran_LINKER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
+
+  if(WIN32)
+    set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
+  else()
+    set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
+    set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
+    set(CMAKE_Fortran_LINKER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
+  endif()
+  
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
   set(MPICH_FLAGS "-DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRING_H=1 -DUSE_STDARG=1 -DHAVE_LONG_DOUBLE=1 -DHAVE_PROTOTYPES=1 -DHAVE_SIGNAL_H=1 -DHAVE_SIGACTION=1 -DHAVE_SLEEP=1 -DHAVE_SYSCONF=1")
 
@@ -24,19 +30,19 @@ if(enable_smpi)
   #add_executable(commnames_f commnamesf.f)
   endif()
 
-  target_link_libraries(attrerr simgrid smpi )
- # target_link_libraries(attrt simgrid smpi )
- # target_link_libraries(commnames simgrid smpi )
-  target_link_libraries(groupcreate simgrid smpi )
-  target_link_libraries(grouptest_mpich simgrid smpi )
-  target_link_libraries(icdup simgrid smpi )
-  target_link_libraries(ictest simgrid smpi )
-  target_link_libraries(ictest2 simgrid smpi )
-  target_link_libraries(ictest3 simgrid smpi )
+  target_link_libraries(attrerr simgrid smpi )
+ # target_link_libraries(attrt simgrid smpi )
+ # target_link_libraries(commnames simgrid smpi )
+  target_link_libraries(groupcreate simgrid smpi )
+  target_link_libraries(grouptest_mpich simgrid smpi )
+  target_link_libraries(icdup simgrid smpi )
+  target_link_libraries(ictest simgrid smpi )
+  target_link_libraries(ictest2 simgrid smpi )
+  target_link_libraries(ictest3 simgrid smpi )
 
   if(SMPI_F2C)
-  #target_link_libraries(attrtest_f simgrid smpi f2c)
-  #target_link_libraries(commnames_f simgrid smpi f2c)
+  #target_link_libraries(attrtest_f simgrid smpi f2c)
+  #target_link_libraries(commnames_f simgrid smpi f2c)
   endif()
   
   set_target_properties(attrerr PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
index 2bd3106..a81ab47 100644 (file)
@@ -1,8 +1,13 @@
 cmake_minimum_required(VERSION 2.6)
 
 if(enable_smpi)
-  set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
-  set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
+  if(WIN32)
+    set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
+  else()
+    set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
+    set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
+  endif()
+
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
   set(MPICH_FLAGS "-DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRING_H=1 -DUSE_STDARG=1 -DHAVE_LONG_DOUBLE=1 -DHAVE_PROTOTYPES=1 -DHAVE_SIGNAL_H=1 -DHAVE_SIGACTION=1 -DHAVE_SLEEP=1 -DHAVE_SYSCONF=1")
 
@@ -14,7 +19,9 @@ if(enable_smpi)
   add_executable(baseattr baseattr.c test.c)
   add_executable(gtime gtime.c test.c)
   add_executable(errhand errhand.c test.c)
-  add_executable(sigchk sigchk.c test.c)
+  if(NOT WIN32)
+    add_executable(sigchk sigchk.c test.c)
+  endif()
   add_executable(aborttest aborttest.c)
   add_executable(testerr testerr.c)
   add_executable(getproc getproc.c)
@@ -24,21 +31,23 @@ if(enable_smpi)
 #    add_executable(errstringsf errstringsf.f)
     add_executable(getprocf getprocf.f)
   endif()
-  target_link_libraries(init m simgrid smpi )
-  target_link_libraries(timers m simgrid smpi )
-  target_link_libraries(timertest m simgrid smpi )
-  target_link_libraries(baseattr m simgrid smpi )
-  target_link_libraries(gtime m simgrid smpi )
-  target_link_libraries(errhand m simgrid smpi )
-  target_link_libraries(sigchk m simgrid smpi )
-  target_link_libraries(aborttest m simgrid smpi )
-  target_link_libraries(testerr m simgrid smpi )
-  target_link_libraries(getproc m simgrid smpi )
+  target_link_libraries(init simgrid smpi )
+  target_link_libraries(timers simgrid smpi )
+  target_link_libraries(timertest simgrid smpi )
+  target_link_libraries(baseattr simgrid smpi )
+  target_link_libraries(gtime simgrid smpi )
+  target_link_libraries(errhand simgrid smpi )
+  if(NOT WIN32)
+    target_link_libraries(sigchk simgrid smpi )
+  endif()
+       target_link_libraries(aborttest simgrid smpi )
+  target_link_libraries(testerr simgrid smpi )
+  target_link_libraries(getproc simgrid smpi )
   if(SMPI_F2C)
-#    target_link_libraries(baseattrf simgrid smpi )
-#    target_link_libraries(errhandf simgrid smpi )
-#    target_link_libraries(errstringsf simgrid smpi )
-    target_link_libraries(getprocf simgrid smpi )
+#    target_link_libraries(baseattrf simgrid smpi )
+#    target_link_libraries(errhandf simgrid smpi )
+#    target_link_libraries(errstringsf simgrid smpi )
+    target_link_libraries(getprocf simgrid smpi )
   endif()
 
   set_target_properties(timers PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
@@ -47,7 +56,9 @@ if(enable_smpi)
   set_target_properties(baseattr PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
   set_target_properties(gtime PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
   set_target_properties(errhand PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
-  set_target_properties(sigchk PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
+  if(NOT WIN32)
+    set_target_properties(sigchk PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
+  endif()
   set_target_properties(aborttest PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
   set_target_properties(testerr PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
   set_target_properties(getproc PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
index 3ee7e01..75a58bf 100755 (executable)
@@ -120,7 +120,14 @@ RunTest getproc 1 "*** Test Get Processor Name ***"
 #
 # If there was a Unix standard interface to ps, we could check for orphaned
 # processes...
-if ps -fwu $LOGNAME > /dev/null 2>&1 ; then
+if ps --version | grep procps > /dev/null 2>&1 ; then
+   # This is a try to be a better choice than ps -u because it
+   # restricts the list of processes to those of the current session.
+   # The options are known to work with the ps command from the procps
+   # package.
+   SESSION=`ps -o sess= $$`
+   PSPGM="ps -o pid,tname,command -s $SESSION"
+elif ps -fwu $LOGNAME > /dev/null 2>&1 ; then
    # This is a better choice than ps aux because it restricts the list of 
    # processes to those of the running user.  The w is needed on some
    # systems to get a long output for the command
index 60b8d47..024ee2b 100644 (file)
@@ -1,7 +1,11 @@
 cmake_minimum_required(VERSION 2.6)
 
 if(enable_smpi)
-  set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
+  if(WIN32)
+    set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
+  else()
+    set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
+  endif()
 
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
   set(MPICH_FLAGS "-DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRING_H=1 -DUSE_STDARG=1 -DHAVE_LONG_DOUBLE=1 -DHAVE_PROTOTYPES=1 -DHAVE_SIGNAL_H=1 -DHAVE_SIGACTION=1 -DHAVE_SLEEP=1 -DHAVE_SYSCONF=1")
@@ -11,8 +15,8 @@ if(enable_smpi)
   add_executable(ptest ptest.c )
   add_executable(colluses colluses.c )
 
-  target_link_libraries(ptest simgrid smpi )
-  target_link_libraries(colluses simgrid smpi )
+  target_link_libraries(ptest simgrid smpi )
+  target_link_libraries(colluses simgrid smpi )
 
   set_target_properties(ptest PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
   set_target_properties(colluses PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
index a41d932..5482e0c 100644 (file)
@@ -1,8 +1,13 @@
 cmake_minimum_required(VERSION 2.6)
 
 if(enable_smpi)
-  set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
-  set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
+  if(WIN32)
+    set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
+  else()
+    set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
+    set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
+  endif()
+
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
   set(MPICH_FLAGS "-DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRING_H=1 -DUSE_STDARG=1 -DHAVE_LONG_DOUBLE=1 -DHAVE_PROTOTYPES=1 -DHAVE_SIGNAL_H=1 -DHAVE_SIGACTION=1 -DHAVE_SLEEP=1 -DHAVE_SYSCONF=1")
 
@@ -100,97 +105,97 @@ if(enable_smpi)
     add_executable(typebasef typebasef.f)
   endif()
 
-  target_link_libraries(overtake simgrid smpi )
-  target_link_libraries(bsendtest simgrid smpi )
-  target_link_libraries(relrank simgrid smpi )
-  target_link_libraries(sendrecv_mpich simgrid smpi )
-  target_link_libraries(persistent simgrid smpi )
-  target_link_libraries(flood simgrid smpi )
-  target_link_libraries(flood2 simgrid smpi )
-  target_link_libraries(persist simgrid smpi )
-  target_link_libraries(persist2 simgrid smpi )
-  target_link_libraries(sendrecv2 simgrid smpi )
-  target_link_libraries(sendrecv3 simgrid smpi )
-  target_link_libraries(sendrecv4 simgrid smpi )
-  target_link_libraries(irsend simgrid smpi )
-  target_link_libraries(irsendinit simgrid smpi )
-  target_link_libraries(longmsgs simgrid smpi )
-  target_link_libraries(testsome simgrid smpi )
-  target_link_libraries(testall_mpich simgrid smpi )
-  target_link_libraries(sndrcv simgrid smpi )
-  target_link_libraries(sndrcvrep simgrid smpi )
-  target_link_libraries(sndrcvrpl2 simgrid smpi )
-  target_link_libraries(getelm simgrid smpi )
-  target_link_libraries(self simgrid smpi )
-  target_link_libraries(typelb simgrid smpi )
-  target_link_libraries(structlb simgrid smpi )
-  target_link_libraries(typeub simgrid smpi )
-  target_link_libraries(typeub2 simgrid smpi )
-  target_link_libraries(typeub3 simgrid smpi )
-  target_link_libraries(typecreate simgrid smpi )
-  target_link_libraries(reqcreate simgrid smpi )
-  target_link_libraries(reqfree simgrid smpi )
-  target_link_libraries(isndrcv simgrid smpi )
-  target_link_libraries(nullproc simgrid smpi )
-  target_link_libraries(nullproc2 simgrid smpi )
-  target_link_libraries(trunc simgrid smpi )
-  target_link_libraries(truncmult simgrid smpi )
-  target_link_libraries(typetest simgrid smpi )
-  target_link_libraries(typebase simgrid smpi )
-  target_link_libraries(ssendtest simgrid smpi )
-  target_link_libraries(ssendtest2 simgrid smpi )
-  target_link_libraries(issendtest simgrid smpi )
-  target_link_libraries(issend2 simgrid smpi )
-  target_link_libraries(issendinit simgrid smpi )
-  target_link_libraries(testtypes simgrid smpi )
-  target_link_libraries(dataalign simgrid smpi )
-  target_link_libraries(dtyperecv simgrid smpi )
-  target_link_libraries(dtypelife simgrid smpi )
-  target_link_libraries(htmsg simgrid smpi )
-  target_link_libraries(isendtest simgrid smpi )
-  target_link_libraries(third simgrid smpi )
-  target_link_libraries(fourth simgrid smpi )
-  target_link_libraries(fifth simgrid smpi )
-  target_link_libraries(sixth simgrid smpi )
-  target_link_libraries(probe simgrid smpi )
-  target_link_libraries(nblock simgrid smpi )
-  target_link_libraries(sendmany simgrid smpi )
-  target_link_libraries(order simgrid smpi )
-  target_link_libraries(pack simgrid smpi )
-  target_link_libraries(probe1 simgrid smpi )
-  target_link_libraries(testtest1  simgrid smpi )
-  target_link_libraries(hvectest simgrid smpi )
-  target_link_libraries(hvectest2 simgrid smpi )
-  target_link_libraries(hvec simgrid smpi )
-  target_link_libraries(hindexed simgrid smpi )
-  target_link_libraries(irecvtest simgrid smpi )
-  target_link_libraries(nbtest simgrid smpi )
-  target_link_libraries(waitany simgrid smpi )
-  target_link_libraries(waitall simgrid smpi )
-  target_link_libraries(waitall2 simgrid smpi )
-  target_link_libraries(waitall3 simgrid smpi )
-  target_link_libraries(waitall4 simgrid smpi )
-  target_link_libraries(commit simgrid smpi )
-  target_link_libraries(cancel simgrid smpi )
-  target_link_libraries(cancel2 simgrid smpi )
-  target_link_libraries(cancel3 simgrid smpi )
-  target_link_libraries(cancelmessages simgrid smpi )
-  target_link_libraries(cancelibm simgrid smpi )
-  target_link_libraries(cancelissend simgrid smpi )
-  target_link_libraries(sendorder simgrid smpi )
-  target_link_libraries(exittest simgrid smpi )
-  target_link_libraries(selfvsworld simgrid smpi )
+  target_link_libraries(overtake simgrid smpi )
+  target_link_libraries(bsendtest simgrid smpi )
+  target_link_libraries(relrank simgrid smpi )
+  target_link_libraries(sendrecv_mpich simgrid smpi )
+  target_link_libraries(persistent simgrid smpi )
+  target_link_libraries(flood simgrid smpi )
+  target_link_libraries(flood2 simgrid smpi )
+  target_link_libraries(persist simgrid smpi )
+  target_link_libraries(persist2 simgrid smpi )
+  target_link_libraries(sendrecv2 simgrid smpi )
+  target_link_libraries(sendrecv3 simgrid smpi )
+  target_link_libraries(sendrecv4 simgrid smpi )
+  target_link_libraries(irsend simgrid smpi )
+  target_link_libraries(irsendinit simgrid smpi )
+  target_link_libraries(longmsgs simgrid smpi )
+  target_link_libraries(testsome simgrid smpi )
+  target_link_libraries(testall_mpich simgrid smpi )
+  target_link_libraries(sndrcv simgrid smpi )
+  target_link_libraries(sndrcvrep simgrid smpi )
+  target_link_libraries(sndrcvrpl2 simgrid smpi )
+  target_link_libraries(getelm simgrid smpi )
+  target_link_libraries(self simgrid smpi )
+  target_link_libraries(typelb simgrid smpi )
+  target_link_libraries(structlb simgrid smpi )
+  target_link_libraries(typeub simgrid smpi )
+  target_link_libraries(typeub2 simgrid smpi )
+  target_link_libraries(typeub3 simgrid smpi )
+  target_link_libraries(typecreate simgrid smpi )
+  target_link_libraries(reqcreate simgrid smpi )
+  target_link_libraries(reqfree simgrid smpi )
+  target_link_libraries(isndrcv simgrid smpi )
+  target_link_libraries(nullproc simgrid smpi )
+  target_link_libraries(nullproc2 simgrid smpi )
+  target_link_libraries(trunc simgrid smpi )
+  target_link_libraries(truncmult simgrid smpi )
+  target_link_libraries(typetest simgrid smpi )
+  target_link_libraries(typebase simgrid smpi )
+  target_link_libraries(ssendtest simgrid smpi )
+  target_link_libraries(ssendtest2 simgrid smpi )
+  target_link_libraries(issendtest simgrid smpi )
+  target_link_libraries(issend2 simgrid smpi )
+  target_link_libraries(issendinit simgrid smpi )
+  target_link_libraries(testtypes simgrid smpi )
+  target_link_libraries(dataalign simgrid smpi )
+  target_link_libraries(dtyperecv simgrid smpi )
+  target_link_libraries(dtypelife simgrid smpi )
+  target_link_libraries(htmsg simgrid smpi )
+  target_link_libraries(isendtest simgrid smpi )
+  target_link_libraries(third simgrid smpi )
+  target_link_libraries(fourth simgrid smpi )
+  target_link_libraries(fifth simgrid smpi )
+  target_link_libraries(sixth simgrid smpi )
+  target_link_libraries(probe simgrid smpi )
+  target_link_libraries(nblock simgrid smpi )
+  target_link_libraries(sendmany simgrid smpi )
+  target_link_libraries(order simgrid smpi )
+  target_link_libraries(pack simgrid smpi )
+  target_link_libraries(probe1 simgrid smpi )
+  target_link_libraries(testtest1  simgrid smpi )
+  target_link_libraries(hvectest simgrid smpi )
+  target_link_libraries(hvectest2 simgrid smpi )
+  target_link_libraries(hvec simgrid smpi )
+  target_link_libraries(hindexed simgrid smpi )
+  target_link_libraries(irecvtest simgrid smpi )
+  target_link_libraries(nbtest simgrid smpi )
+  target_link_libraries(waitany simgrid smpi )
+  target_link_libraries(waitall simgrid smpi )
+  target_link_libraries(waitall2 simgrid smpi )
+  target_link_libraries(waitall3 simgrid smpi )
+  target_link_libraries(waitall4 simgrid smpi )
+  target_link_libraries(commit simgrid smpi )
+  target_link_libraries(cancel simgrid smpi )
+  target_link_libraries(cancel2 simgrid smpi )
+  target_link_libraries(cancel3 simgrid smpi )
+  target_link_libraries(cancelmessages simgrid smpi )
+  target_link_libraries(cancelibm simgrid smpi )
+  target_link_libraries(cancelissend simgrid smpi )
+  target_link_libraries(sendorder simgrid smpi )
+  target_link_libraries(exittest simgrid smpi )
+  target_link_libraries(selfvsworld simgrid smpi )
   if(SMPI_F2C)
-    target_link_libraries(secondf simgrid smpi f2c)
-#    target_link_libraries(allpair2 simgrid smpi f2c)
-#    target_link_libraries(allpair simgrid smpi f2c)
-    target_link_libraries(isendf simgrid smpi f2c)
-    target_link_libraries(pingpong_f simgrid smpi f2c)
-    target_link_libraries(send1 simgrid smpi f2c)
-    target_link_libraries(sendcplx simgrid smpi f2c)
-    target_link_libraries(sendfort simgrid smpi f2c)
-#    target_link_libraries(structf simgrid smpi f2c)
-    target_link_libraries(typebasef simgrid smpi f2c)
+    target_link_libraries(secondf simgrid smpi f2c)
+#    target_link_libraries(allpair2 simgrid smpi f2c)
+#    target_link_libraries(allpair simgrid smpi f2c)
+    target_link_libraries(isendf simgrid smpi f2c)
+    target_link_libraries(pingpong_f simgrid smpi f2c)
+    target_link_libraries(send1 simgrid smpi f2c)
+    target_link_libraries(sendcplx simgrid smpi f2c)
+    target_link_libraries(sendfort simgrid smpi f2c)
+#    target_link_libraries(structf simgrid smpi f2c)
+    target_link_libraries(typebasef simgrid smpi f2c)
   endif()
 
   set_target_properties(overtake PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
index ae25bce..684ac73 100644 (file)
@@ -83,7 +83,7 @@ int main( int argc, char **argv )
                MPI_Abort( comm, 1 );
            }
            SetupData( sbuf, msgsize, 2*rank );
-           MPI_Send( sbuf, msgsize, MPI_INT, root, 2*rank, comm );
+           MPI_Ssend( sbuf, msgsize, MPI_INT, root, 2*rank, comm );
            free( sbuf );
        }
        msgsize *= 4;
index 0666405..855d38e 100644 (file)
@@ -75,7 +75,7 @@ int main( int argc, char **argv )
            }
            SetupData( sbuf, msgsize, 2*rank );
            for (j=0; j<msgcnt; j++) 
-               MPI_Send( sbuf, msgsize, MPI_INT, root, 2*rank, comm );
+               MPI_Ssend( sbuf, msgsize, MPI_INT, root, 2*rank, comm );
            free( sbuf );
        }
        msgsize *= 4;
index 80a9ed1..1bbf88a 100644 (file)
@@ -37,7 +37,7 @@ int main( int argc, char **argv)
 {
     int rank; /* My Rank (0 or 1) */
     int act_size = 1000;
-    int flag;
+/*    int flag;*/
     int buffer[SIZE];
     double t0;
     char *Current_Test = NULL;
@@ -66,15 +66,15 @@ for this test.\n" );
        t0 = MPI_Wtime();
     }
     /* Test that the timer increases */
-    Current_Test = (char*)"Testing timer increases";
-    for (flag=0; flag<1000000; flag++) {
-       if (MPI_Wtime() > t0) break;
-    }
-    if (flag >= 1000000) {
-       fprintf( stderr, "MPI_WTIME is not returning increasing values!\n" );
-       Test_Failed(Current_Test);
-       MPI_Abort( MPI_COMM_WORLD, 1 );
-    }
+/*    Current_Test = (char*)"Testing timer increases";*/
+/*    for (flag=0; flag<1000000; flag++) {*/
+/*     if (MPI_Wtime() > t0) break;*/
+/*    }*/
+/*    if (flag >= 1000000) {*/
+/*     fprintf( stderr, "MPI_WTIME is not returning increasing values!\n" );*/
+/*     Test_Failed(Current_Test);*/
+/*     MPI_Abort( MPI_COMM_WORLD, 1 );*/
+/*    }*/
 
     Current_Test = (char*)"Issend waits for recv";
     if (rank == src) { 
@@ -85,16 +85,16 @@ for this test.\n" );
        MPI_Issend( buffer, act_size, MPI_INT, dest, 1, MPI_COMM_WORLD, &r1 );
        MPI_Issend( buffer, act_size, MPI_INT, dest, 2, MPI_COMM_WORLD, &r2 );
        t0 = MPI_Wtime();
-       flag = 0;
-       while ( (MPI_Wtime() - t0) < MAX_TIME) {
-           MPI_Test( &r1, &flag, &status );
-           if (flag) {
-               Test_Failed(Current_Test);
-               break;
-               }
-           }
-       if (!flag) 
-           Test_Passed(Current_Test);
+/*     flag = 0;*/
+/*     while ( (MPI_Wtime() - t0) < MAX_TIME) {*/
+/*         MPI_Test( &r1, &flag, &status );*/
+/*         if (flag) {*/
+/*             Test_Failed(Current_Test);*/
+/*             break;*/
+/*             }*/
+/*         }*/
+/*     if (!flag) */
+/*         Test_Passed(Current_Test);*/
        MPI_Wait( &r2, &status );
        MPI_Sendrecv( MPI_BOTTOM, 0, MPI_INT, dest, 13,
                      MPI_BOTTOM, 0, MPI_INT, dest, 13,
index 154c945..44fc223 100644 (file)
@@ -140,7 +140,7 @@ int main( int argc, char *argv[] )
 
        /* Ssend/Recv */
        if(Master) 
-           MPI_Send(sendbuf,msglen,MPI_CHAR,1,TAG2,MPI_COMM_WORLD);
+           MPI_Ssend(sendbuf,msglen,MPI_CHAR,1,TAG2,MPI_COMM_WORLD);
        else {
            Resetbuf( recvbuf, msglen );
            MPI_Recv(recvbuf,msglen,MPI_CHAR,0,TAG2,MPI_COMM_WORLD,&status);
index 209285f..3662918 100644 (file)
@@ -31,7 +31,7 @@ void Generate_Data ( double *, int );
 void Normal_Test_Send ( double *, int );
 void Normal_Test_Recv ( double *, int );
 void Buffered_Test_Send ( double *, int );
-void Buffered_Test_Recv ( double *, int );
+/* void Buffered_Test_Recv ( double *, int ); */
 void Async_Test_Send ( double *, int );
 void Async_Test_Recv ( double *, int );
 int Check_Data ( double *, int );
index f831471..879cfcb 100755 (executable)
@@ -167,7 +167,7 @@ RunTest longmsgs 2 "**** Testing long messages ****"
 
 RunTest testsome 2 "**** Testing MPI_Testsome/Testany/Waitsome ****"
 
-#issend used, replaced by isend - fails 
+#fails
 #RunTest testall_mpich 2 "**** Testing MPI_Testall ****"
 
 #MPI_Cancel, not yet implemented
@@ -198,13 +198,13 @@ RunTest sndrcvrpl2 2 "**** Testing MPI_Sendrecv_replace (long) ****"
 #uses Pack_size, Buffer_attach, Bsend, Buffer_detach
 #RunTest overtake 2 "**** Verifying that messages are non-overtaking ****" "" "overtake-0.out overtake-1.out"
 
-#RunTest ssendtest 2 "**** Verifying ssend ****"
+RunTest ssendtest 2 "**** Verifying ssend ****"
 
-#RunTest ssendtest2 2 "**** Verifying ssend (2) ****"
+RunTest ssendtest2 2 "**** Verifying ssend (2) ****"
 
-#RunTest issendtest 2 "**** Verifying Issend ****" "" "issendtest-1.out"
+RunTest issendtest 2 "**** Verifying Issend ****" "" "issendtest-1.out"
 
-#RunTest issend2 2 "**** Verifying Issend (2) ****"
+RunTest issend2 2 "**** Verifying Issend (2) ****"
 
 #uses MPI_Cancel, lets a lot of orphan comms.
 #RunTest reqcreate 1 "**** Checking the request creation routines ****"
@@ -299,8 +299,7 @@ RunTest persist 4 "*** Testing MPI_Startall/Request_free ***"
 
 RunTest waitall 4 "*** Testing MPI_Waitall ***"
 
-#uses issend, replaced by isend, and ssend replaced by send
-#RunTest waitall2 2 "*** Testing MPI_Waitall (order) ***"
+RunTest waitall2 2 "*** Testing MPI_Waitall (order) ***"
 
 #RunTest waitall3 4 "*** Testing MPI_Waitall (order-irecv) ***"
 
@@ -310,7 +309,6 @@ RunTest waitany 4 "*** Testing MPI_Waitany ***"
 
 #RunTest pack 2 "*** Testing MPI_Pack ***"
 
-#calls to ssend replaced by send
 RunTest flood 2 "**** Testing large messages ****"
 
 #very long
index 6de2ca9..b85a036 100644 (file)
@@ -92,13 +92,13 @@ for this test.\n" );
                }
                t0 = MPI_Wtime();
            }
-            while (MPI_Wtime() - t0 < MAX_TIME) {
+            /*while (MPI_Wtime() - t0 < MAX_TIME) {
                 MPI_Iprobe( src, 2, MPI_COMM_WORLD, &flag, &status );
                 if (flag) {
                     Test_Failed(Current_Test);
                     break;
                     }
-                }
+                }*/
             if (!flag) 
                 Test_Passed(Current_Test);
             MPI_Recv( buffer, act_size, MPI_INT, src, 1, MPI_COMM_WORLD, 
index 33fda53..7fb27f6 100644 (file)
@@ -1,4 +1,3 @@
-**** Verifying ssend (2) ****
 Received 1
 Received 2
 Received 3
@@ -9,4 +8,3 @@ Received 7
 Received 8
 Received 9
 Received 10
-**** Verifying ssend (2) ****
index fbcee83..5ec20dc 100644 (file)
@@ -77,12 +77,12 @@ int main( int argc, char **argv )
                  MPI_BOTTOM, 0, MPI_BYTE, size - 1, 3, 
                  MPI_COMM_WORLD, &statuses[0] );
     Pause( 2.0 );
-    MPI_Isend( buf2, cnt, MPI_INT, size-1, 2, MPI_COMM_WORLD, &req[0] );
+    MPI_Issend( buf2, cnt, MPI_INT, size-1, 2, MPI_COMM_WORLD, &req[0] );
     t0 = MPI_Wtime();
     flag = 0;
     while (t0 + 5.0 > MPI_Wtime() && !flag) 
       MPI_Test( &req[0], &flag, &statuses[0] );
-    MPI_Send( buf1, cnt, MPI_INT, size-1, 1, MPI_COMM_WORLD );
+    MPI_Ssend( buf1, cnt, MPI_INT, size-1, 1, MPI_COMM_WORLD );
     if (!flag) {
       printf( 
     "*ERROR: MPI_Waitall appears to be waiting for requests in the order\n\
@@ -90,7 +90,7 @@ they appear in the request list\n" );
       MPI_Wait( &req[0], &statuses[0] );
     }
     else {
-       printf( "No errors\n" ) ;
+       printf( " No Errors\n" ) ;
     }
   }
   else if (rank == size - 1) {
index ca1f75e..7937222 100755 (executable)
@@ -81,15 +81,22 @@ find b -type f \
     | sort > "$fb"
 
 diffcmd() {
-    diff -u "$fa" "$fb"
+    if cmp -s "$fa" "$fb"; then
+        status=0
+        echo "The archive looks good."
+    else
+        status=1
+        echo "Some files are missing and/or unexpected in the archive."
+        diff -u "$fa" "$fb"
+    fi
 }
 
 colordiff=$(type -p colordiff)
 colorless() {
     if [ -x "$colordiff" ]; then
-        "$colordiff" | less -R -F
+        "$colordiff" | less -R -F -X
     else
-        less -F
+        less -F -X
     fi
 }
 
@@ -97,4 +104,6 @@ if [ "$interactive" = "1" ]; then
     diffcmd | colorless
 else
     diffcmd
-fi
+fi || true
+
+exit $status
index 8e23b7e..bf02a75 100644 (file)
@@ -1,6 +1,6 @@
 This is the TESH tool. It constitutes a testing shell, ie a sort of shell
 specialized to run tests. The list of actions to take is parsed from files
-files called testsuite. 
+files called testsuite.
 
 Testsuites syntax
 -----------------
@@ -8,7 +8,7 @@ Here is the syntax of these files:
 
 The kind of each line is given by the first char (the second char should be
 blank and is ignored):
+
  `$' command to run in foreground
  `&' command to run in background
  `<' input to pass to the command
@@ -30,7 +30,7 @@ Command line arguments
 Tesh accepts several command line arguments:
   --cd some/directory: ask tesh to switch the working directory before
                        launching the tests
-  --setenv var=value: set a specific environment variable                     
+  --setenv var=value: set a specific environment variable
 
 IO orders
 ---------
@@ -95,7 +95,7 @@ spits an appropriate error message (cf. catch-signal.tesh).
 It is also possible to specify that a given command must raise a given
 signal. For this, use the "expect signal" metacommand. It takes the signal name
 as argument. The change only apply to the next command (cf. set-signal.tesh).
+
 TIMEOUTS
 --------
 
@@ -110,7 +110,7 @@ OUTPUT
 
 By default, the commands output is matched against the one expected,
 and an error is raised on discrepancy. Metacommands to change this:
- "output ignore"  -> output completely discarded 
+ "output ignore"  -> output completely discarded
  "output display" -> output displayed (but not verified)
  "output sort"    -> sorts the display before verifying it (see below)
 
@@ -120,26 +120,26 @@ Sorting the output seems to be a strange idea, but it is mandatory in
 SimGrid since the processes run out of order at any scheduling point
 (ie, every processes ready to run at simulated time t run in
 parallel). To ensure that the simulator outputs still match, we have
-to sort the output back before comparing it. 
+to sort the output back before comparing it.
 
 We expect the simulators to run with that log formatting argument:
    -log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n
 Then, tesh sorts string on the 19 first chars only, and is stable when
 line beginnings are equal. This should ensure that:
  (1) tesh is effective (no false positive, no false negative)
- (2) scheduling points are separated from each other 
- (3) at each scheduling point, processes are separated from each other 
+ (2) scheduling points are separated from each other
+ (3) at each scheduling point, processes are separated from each other
  (4) the order of what a given process says at a given scheduling
      point is preserved.
-     
+
 This is of course very SimGrid oriented, breaking the generality of
-tesh, but who cares, actually?     
+tesh, but who cares, actually?
 
 If you want to change the length of the prefix used for the sort,
 simply specify it after the output sort directive, like this:
 
 ! output sort 22
+
 ENVIRONMENT
 -----------
 You can add some content to the tested processes environment with the
index d888d84..0d20b02 100644 (file)
@@ -10,6 +10,7 @@
 #define TESH_RUN_CONTEXT_H
 
 #include "tesh.h"
+#include "xbt/synchro_core.h"
 
 typedef enum { e_output_check, e_output_display,
   e_output_ignore
index 38c1d4e..d5d7283 100644 (file)
@@ -6,7 +6,7 @@ tesh \- testing shell
 .B tesh
 [\fIOPTION\fR]... [\fIFILE\fR]...
 .SH DESCRIPTION
-This is the TESH tool. It constitutes a testing shell, ie a sort of shell specialized to run tests. The list of actions to take is parsed from files files called testsuite. 
+This is the TESH tool. It constitutes a testing shell, ie a sort of shell specialized to run tests. The list of actions to take is parsed from files files called testsuite.
 .SH OPTIONS
   --cd some/directory: ask tesh to switch the working directory before
                        launching the tests
@@ -16,7 +16,7 @@ Here is the syntax of these files:
 
 The kind of each line is given by the first char (the second char should be
 blank and is ignored):
+
  `$' command to run in foreground
  `&' command to run in background
  `<' input to pass to the command
@@ -94,7 +94,7 @@ cannot timeout.
 .SH OUTPUT
 By default, the commands output is matched against the one expected,
 and an error is raised on discrepancy. Metacommands to change this:
- "output ignore"  -> output completely discarded 
+ "output ignore"  -> output completely discarded
  "output display" -> output displayed (but not verified)
  "output sort"    -> sorts the display before verifying it (see below)
 .SH SORTING OUTPUT
@@ -102,20 +102,20 @@ Sorting the output seems to be a strange idea, but it is mandatory in
 SimGrid since the processes run out of order at any scheduling point
 (ie, every processes ready to run at simulated time t run in
 parallel). To ensure that the simulator outputs still match, we have
-to sort the output back before comparing it. 
+to sort the output back before comparing it.
 
 We expect the simulators to run with that log formatting argument:
    -log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n
 Then, tesh sorts string on the 19 first chars only, and is stable when
 line beginnings are equal. This should ensure that:
  (1) tesh is effective (no false positive, no false negative)
- (2) scheduling points are separated from each other 
- (3) at each scheduling point, processes are separated from each other 
+ (2) scheduling points are separated from each other
+ (3) at each scheduling point, processes are separated from each other
  (4) the order of what a given process says at a given scheduling
      point is preserved.
-     
+
 This is of course very SimGrid oriented, breaking the generality of
-tesh, but who cares, actually?     
+tesh, but who cares, actually?
 
 If you want to change the length of the prefix used for the sort,
 simply specify it after the output sort directive, like this:
index ae83f64..0c8b21b 100644 (file)
@@ -11,8 +11,6 @@
 #pragma hdrstop
 #endif
 
-#include "simgrid_config.h" //For getline, keep that include first
-
 #include "tesh.h"
 #include "xbt.h"
 
@@ -106,7 +104,7 @@ static void handle_suite(const char *filename, FILE * IN)
   buff = xbt_strbuff_new();
   rctx = rctx_new();
 
-  while (getline(&line, &len, IN) != -1) {
+  while (xbt_getline(&line, &len, IN) != -1) {
     line_num++;
 
     /* Count the line length while checking wheather it's blank */