From 9af4e69cc89d49307dd27c8f53d855f8655c9801 Mon Sep 17 00:00:00 2001
From: Moritz Langenstein <ml5717@ic.ac.uk>
Date: Mon, 25 Nov 2019 23:13:10 +0000
Subject: [PATCH] (ml5717) Fixed tiny-worker, first benchmark testing

---
 .gitignore                       |    1 +
 .gitmodules                      |    3 +
 __tests__/benchmark.test.js      | 1942 ++----------------------------
 package-lock.json                |   52 +-
 package.json                     |    8 +-
 src/connection/MockConnection.js |   29 +-
 src/queue.js                     |   18 +-
 src/tiny-worker                  |    1 +
 src/y-p2p-mesh.js                |    7 +-
 9 files changed, 181 insertions(+), 1880 deletions(-)
 create mode 160000 src/tiny-worker

diff --git a/.gitignore b/.gitignore
index a1fd655..8ac5267 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,7 @@ src/liowebrtc
 src/rtcpeerconnection
 src/signalbuddy
 src/yjs
+src/tiny-worker
 
 ### macOS ###
 # General
diff --git a/.gitmodules b/.gitmodules
index ddaddd3..0f4d792 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -10,3 +10,6 @@
 [submodule "src/yjs"]
 	path = src/yjs
 	url = git@gitlab.doc.ic.ac.uk:sweng-group-15/yjs.git
+[submodule "src/tiny-worker"]
+	path = src/tiny-worker
+	url = git@gitlab.doc.ic.ac.uk:sweng-group-15/tiny-worker.git
diff --git a/__tests__/benchmark.test.js b/__tests__/benchmark.test.js
index e596b81..0058883 100644
--- a/__tests__/benchmark.test.js
+++ b/__tests__/benchmark.test.js
@@ -5,14 +5,31 @@ import MockConnection, {
   getPeerHandle,
   getPeerFootprint,
   send,
+  //sendListener,
   broadcast,
+  broadcastListener,
   terminatePeer,
   destructor,
   addEventListener,
+  eventListeners,
 } from "../src/connection/MockConnection.js"
 
+const handshake = {
+  uid: "tiger",
+  channel: "tw-ml",
+  message: {
+    uuid: "42c4566d-0cfe-4c00-a645-254b7887e477",
+    message: Uint8Array.of(162, 109, 108),
+    slice: 0,
+    length: 1,
+    compressed: false,
+  },
+}
+
+let room = null
+
 describe("drawing app mesh", () => {
-  beforeEach(() => {
+  beforeEach(async () => {
     getUserID.mockClear()
     getPeerHandle.mockClear()
     getPeerFootprint.mockClear()
@@ -22,1852 +39,95 @@ describe("drawing app mesh", () => {
     destructor.mockClear()
     addEventListener.mockClear()
     MockConnection.mockClear()
+
+    room = await connect("data", MockConnection)
+    eventListeners.get("messageReceived")({ detail: handshake })
+  })
+
+  afterEach(() => {
+    room.disconnect()
+    room = null
   })
 
-  it("works with a MockConnection", async () => {
-    const room = await connect("test", MockConnection)
+  it("communicates a single draw and erase update", () => {
+    let dotID
 
-    const dotID = room.addPath([209, 88, 5.000000000000001, "#0000ff"])
+    return new Promise((resolve) => {
+      broadcastListener.callback = (channel, message) => {
+        expect(channel).toEqual("y-js")
+        expect(message.message instanceof Uint8Array).toBe(true)
+        resolve()
+      }
 
-    room.extendErasureIntervals(dotID, 0, 0, 0)
+      dotID = room.addPath([209, 88, 5.000000000000001, "#0000ff"])
 
-    const pathID = room.addPath([229, 147, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [239, 149, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [265, 154, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [329, 158, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [428, 168, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [559, 172, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [689, 176, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [789, 176, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [871, 178, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [915, 179, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [937, 179, 5.000000000000001, "#0000ff"])
-    room.extendPath(pathID, [942, 179, 5.000000000000001, "#0000ff"])
+      room.extendErasureIntervals(dotID, 0, 0, 0)
+    }).then(
+      () =>
+        new Promise((resolve) => {
+          broadcastListener.callback = (channel, message) => {
+            expect(channel).toEqual("y-js")
+            expect(message.message instanceof Uint8Array).toBe(true)
+            resolve()
+          }
 
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 0.030367582231477598)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 0.21377102974828613)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 0.2537463508623564)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 0.34615384615384587)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 0.4383613354449363)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 0.5303675822314777)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 0.6221712759429692)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 0.7137710297482863)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 0.8051653782004998)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 0.9383613354449363)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.011716311379342382)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.11776520948773353)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.24006055181058228)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.3107159148890084)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.3810746303975673)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.4329788671985464)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.46835801309405006)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.5036636541863274)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.5740522382479196)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.6441399664465288)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.731854882371686)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.8021237085400632)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.8371448744989799)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.88955025220044)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 0.9599984343180302)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.028177027652500065)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.03543420592413073)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.06582991759489924)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.10275381734879)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.11799692411252251)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.13323648198760243)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.16370490408198182)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.2154080009026301)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.24595364724469834)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.27648544742767633)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.31247481764398494)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.3478072470007028)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.3785134252130592)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.3938616312677431)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.42869266182685783)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.44408271983476183)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.4594695941376009)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.4902337694168022)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.505611059005356)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.5246181146997148)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.5400397300348875)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.6047746406708809)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.6202304708442001)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.6356832087546725)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.6535687967630837)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.7000469301249926)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.7155335204468358)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.7484433368793898)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.8415551828545537)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.8896745156013701)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.9207665061568425)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.9518463520584276)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 0.9840324922550672)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.01983903263791853)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.029876622283678104)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.03990912701215377)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.0806437862168895)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.09070123866218649)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.10101007524615979)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.11110799523965204)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.12120077057322706)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.13128840847448436)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.15144829885129574)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.16152056375068494)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.1818098260284825)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.20202009896967427)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.21211750416023725)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.2727084630640253)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.29292802997685985)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.3030300711783685)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.33330532017010783)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.3636029076253441)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.37371993253130364)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.3838317824361028)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.40403999188002426)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.41413636769223433)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.42422760105585006)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.43431369907567324)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.4443662699271226)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.4544931529993546)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.46461484324950236)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.4747313502489194)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.5050498610823838)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.5151457223183467)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.5353220266951074)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.5454024835564785)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.5858535321955943)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.5959591836309699)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.616155025527601)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.6463920624411829)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.6666385590106888)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.6767540304709369)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.6969694650467834)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.7474179601261248)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.7675614683096057)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.7776255556078067)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.8282626561208872)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.8484256216002729)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.8584994213492495)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.8685681068775302)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.9087918074364576)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.9188349938933553)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.9288730921857218)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.9889949697600137)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 0.99974858647489)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.015052512188419602)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.03029426962088413)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.06839243749770468)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.0836292133608997)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.0912470672285808)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.09886456497394153)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.13734696870310906)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.14497397901135212)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.16022693354357556)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.16785287776755597)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.2061009857691912)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.2213715432205954)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.2290062878232259)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.23664067642184725)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.31287013784360607)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.33579551026422)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.3434365859114192)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.37399731542592607)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.3892755376794567)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.3969141134976991)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.41219019494203474)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.47328026274975304)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.48854921795242295)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.5267153779648435)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.5343475426943275)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.5419793517647892)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.5496108052135158)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.5801330634496403)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.5877627392618375)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.5953920596237392)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.610649634073643)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.6487873509046499)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.6564138281707615)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.6640399500759696)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.7174128527857359)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.7326590547531385)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.7402816225030254)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.7555256913985305)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.8469602239274668)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.8621943289183245)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.8698108469953234)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.8774270087010998)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.9078880903271799)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.9155024690411608)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.9231164909119645)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.9307301558520772)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.9769418956440951)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.9845647300195252)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.992187208890867)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 0.9998093322301707)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.03820574873127833)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.045884233047770166)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.061240109456200745)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.1226490440345489)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.13032352057732857)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.14567137935938093)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.15334476144043718)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.19170619534531316)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.19937738618962128)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.2070482114971963)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.2453968513383652)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.26073374476033434)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.26840164189649224)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.3067356268350702)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.322066651341349)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.32973161244332394)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.34506043162274563)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.39869970096661816)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.4063609788597506)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.41402188753199426)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.4676378950251564)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.47529584340574377)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.5518548940788806)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.5595087511478618)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.56716223496407)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.5824680819078778)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.6686904305673842)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.6917061953453132)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.7070482114971963)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.7766873397479431)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.7923021861323849)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.7999923098661218)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.8076820697480561)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.8614794103478556)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.8768764254973112)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.8845743850827851)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.8922719794659787)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.9458689803376649)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.9612817605421127)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 0.9689875986837584)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.029749843554381775)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.059749843554381774)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.06974984355438178)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.13974984355438178)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.14974984355438178)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.15974984355438177)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.16974984355438177)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.17974984355438178)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.21974984355438176)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.22974984355438177)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.23974984355438178)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.2497498435543818)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.3197498435543818)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.3397498435543818)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.3497498435543818)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.35974984355438183)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.468997487421324)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.48899748742132404)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.49899748742132405)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.518997487421324)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.6277371993328519)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.6377371993328519)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.6477371993328519)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.6677371993328519)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.7777371993328519)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.7877371993328519)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.8077371993328519)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.9377371993328519)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.957737199332852)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 0.977737199332852)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.08434122461529223)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.09736319249220814)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.12177670236609432)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.13398291047706393)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.2560176149231152)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.26820494288749264)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.2803919084377965)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.30476475227840155)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.42434250381943905)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.4364947880419225)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.44864670195280104)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.4607982453870106)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.5822932659066377)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.5944407226857343)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.6065878068658583)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.7298557216513387)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.7420139098657976)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.7541717301678039)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.7663291824206042)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.8284299052782537)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.8406001691299525)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.8649396036740605)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.9753340606845997)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.9875148632580261)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 0.9996953030971739)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.022133273001338587)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.20418547065439502)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.22693303640624127)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.24968001232099726)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.272426398521291)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.47595107564942674)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.5214835194176608)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.5442488489860375)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.5670135839399206)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.5897777244732638)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.749110080215568)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.7718694720767475)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.7946282711542776)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 0.8173864776180217)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 0.04431747070173535)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 0.0897720161562808)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 0.18068110706537172)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 0.4988629252471899)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 0.5897720161562808)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 0.6352265616108262)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 0.7261356525199172)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 1)
-    room.extendErasureIntervals(pathID, 10, 0, 1)
-    room.extendErasureIntervals(pathID, 11, 0, 0)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 1)
-    room.extendErasureIntervals(pathID, 10, 0, 1)
-    room.extendErasureIntervals(pathID, 11, 0, 0)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 1)
-    room.extendErasureIntervals(pathID, 10, 0, 1)
-    room.extendErasureIntervals(pathID, 11, 0, 0)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 1)
-    room.extendErasureIntervals(pathID, 10, 0, 1)
-    room.extendErasureIntervals(pathID, 11, 0, 0)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 1)
-    room.extendErasureIntervals(pathID, 10, 0, 1)
-    room.extendErasureIntervals(pathID, 11, 0, 0)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 1)
-    room.extendErasureIntervals(pathID, 10, 0, 1)
-    room.extendErasureIntervals(pathID, 11, 0, 0)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 1)
-    room.extendErasureIntervals(pathID, 10, 0, 1)
-    room.extendErasureIntervals(pathID, 11, 0, 0)
-    room.extendErasureIntervals(dotID, 0, 0, 0)
-    room.extendErasureIntervals(pathID, 0, 0, 1)
-    room.extendErasureIntervals(pathID, 1, 0, 1)
-    room.extendErasureIntervals(pathID, 2, 0, 1)
-    room.extendErasureIntervals(pathID, 3, 0, 1)
-    room.extendErasureIntervals(pathID, 4, 0, 1)
-    room.extendErasureIntervals(pathID, 5, 0, 1)
-    room.extendErasureIntervals(pathID, 6, 0, 1)
-    room.extendErasureIntervals(pathID, 7, 0, 1)
-    room.extendErasureIntervals(pathID, 8, 0, 1)
-    room.extendErasureIntervals(pathID, 9, 0, 1)
-    room.extendErasureIntervals(pathID, 10, 0, 1)
-    room.extendErasureIntervals(pathID, 11, 0, 0)
+          room.extendErasureIntervals(dotID, 0, [[0, 0]])
+        }),
+    )
+  })
 
-    room.disconnect()
+  it("benchmarks a single draw and erase update", () => {
+    const ITERATIONS = 1000
+
+    jest.setTimeout(ITERATIONS * 10)
+
+    const dotIDs = []
+    let prevTime
+
+    let broadcasts = 0
+    let addTime = 0
+    let eraseTime = 0
+
+    return new Promise((resolve) => {
+      broadcastListener.callback = () => {
+        const currTime = process.hrtime()
+
+        broadcasts += 1
+
+        if (broadcasts <= ITERATIONS) {
+          addTime +=
+            (currTime[0] - prevTime[0]) * 1e9 + (currTime[1] - prevTime[1])
+        } else {
+          eraseTime +=
+            (currTime[0] - prevTime[0]) * 1e9 + (currTime[1] - prevTime[1])
+        }
+
+        prevTime = process.hrtime()
+
+        if (broadcasts < ITERATIONS) {
+          dotIDs.push(room.addPath([209, 88, 5.000000000000001, "#0000ff"]))
+        } else if (broadcasts < ITERATIONS * 2) {
+          room.extendErasureIntervals(dotIDs[broadcasts - ITERATIONS], 0, [
+            [0, 0],
+          ])
+        } else {
+          console.log(
+            `single draw and erase (${ITERATIONS} iterations):\n\taddPath: ${(
+              addTime /
+              (1e6 * ITERATIONS)
+            ).toFixed(3)}ms\n\textendErasureIntervals: ${(
+              eraseTime /
+              (1e6 * ITERATIONS)
+            ).toFixed(3)}ms`,
+          )
+
+          resolve()
+        }
+      }
+
+      prevTime = process.hrtime()
+
+      dotIDs.push(room.addPath([209, 88, 5.000000000000001, "#0000ff"]))
+    })
   })
 })
diff --git a/package-lock.json b/package-lock.json
index 6ff5306..d0759b2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2600,9 +2600,9 @@
       "dev": true
     },
     "caniuse-lite": {
-      "version": "1.0.30001011",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001011.tgz",
-      "integrity": "sha512-h+Eqyn/YA6o6ZTqpS86PyRmNWOs1r54EBDcd2NTwwfsXQ8re1B38SnB+p2RKF8OUsyEIjeDU8XGec1RGO/wYCg==",
+      "version": "1.0.30001012",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001012.tgz",
+      "integrity": "sha512-7RR4Uh04t9K1uYRWzOJmzplgEOAXbfK72oVNokCdMzA67trrhPzy93ahKk1AWHiA0c58tD2P+NHqxrA8FZ+Trg==",
       "dev": true
     },
     "canvas-renderer": {
@@ -3488,9 +3488,9 @@
       "dev": true
     },
     "electron-to-chromium": {
-      "version": "1.3.312",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.312.tgz",
-      "integrity": "sha512-/Nk6Hvwt+RfS9X3oA4IXpWqpcnS7cdWsTMP4AmrP8hPpxtZbHemvTEYzjAKghk28aS9zIV8NwGHNt8H+6OmJug==",
+      "version": "1.3.314",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.314.tgz",
+      "integrity": "sha512-IKDR/xCxKFhPts7h+VaSXS02Z1mznP3fli1BbXWXeN89i2gCzKraU8qLpEid8YzKcmZdZD3Mly3cn5/lY9xsBQ==",
       "dev": true
     },
     "elegant-spinner": {
@@ -3710,18 +3710,18 @@
       }
     },
     "es-abstract": {
-      "version": "1.16.0",
-      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz",
-      "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==",
+      "version": "1.16.2",
+      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.2.tgz",
+      "integrity": "sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==",
       "dev": true,
       "requires": {
-        "es-to-primitive": "^1.2.0",
+        "es-to-primitive": "^1.2.1",
         "function-bind": "^1.1.1",
         "has": "^1.0.3",
-        "has-symbols": "^1.0.0",
+        "has-symbols": "^1.0.1",
         "is-callable": "^1.1.4",
         "is-regex": "^1.0.4",
-        "object-inspect": "^1.6.0",
+        "object-inspect": "^1.7.0",
         "object-keys": "^1.1.1",
         "string.prototype.trimleft": "^2.1.0",
         "string.prototype.trimright": "^2.1.0"
@@ -3771,9 +3771,9 @@
       }
     },
     "eslint": {
-      "version": "6.7.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.7.0.tgz",
-      "integrity": "sha512-dQpj+PaHKHfXHQ2Imcw5d853PTvkUGbHk/MR68KQUl98EgKDCdh4vLRH1ZxhqeQjQFJeg8fgN0UwmNhN3l8dDQ==",
+      "version": "6.7.1",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.7.1.tgz",
+      "integrity": "sha512-UWzBS79pNcsDSxgxbdjkmzn/B6BhsXMfUaOHnNwyE8nD+Q6pyT96ow2MccVayUTV4yMid4qLhMiQaywctRkBLA==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
@@ -8906,9 +8906,9 @@
       }
     },
     "socket.io-adapter": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
-      "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs="
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz",
+      "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g=="
     },
     "socket.io-client": {
       "version": "2.3.0",
@@ -9669,9 +9669,9 @@
           }
         },
         "execa": {
-          "version": "3.3.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-3.3.0.tgz",
-          "integrity": "sha512-j5Vit5WZR/cbHlqU97+qcnw9WHRCIL4V1SVe75VcHcD1JRBdt8fv0zw89b7CQHQdUHTt2VjuhcF5ibAgVOxqpg==",
+          "version": "3.4.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz",
+          "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==",
           "dev": true,
           "requires": {
             "cross-spawn": "^7.0.0",
@@ -10115,9 +10115,7 @@
       }
     },
     "tiny-worker": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/tiny-worker/-/tiny-worker-2.3.0.tgz",
-      "integrity": "sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==",
+      "version": "file:src/tiny-worker",
       "dev": true,
       "requires": {
         "esm": "^3.2.25"
@@ -10339,9 +10337,9 @@
       "dev": true
     },
     "uglify-js": {
-      "version": "3.6.9",
-      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.9.tgz",
-      "integrity": "sha512-pcnnhaoG6RtrvHJ1dFncAe8Od6Nuy30oaJ82ts6//sGSXOP5UjBMEthiProjXmMNHOfd93sqlkztifFMcb+4yw==",
+      "version": "3.7.0",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.0.tgz",
+      "integrity": "sha512-PC/ee458NEMITe1OufAjal65i6lB58R1HWMRcxwvdz1UopW0DYqlRL3xdu3IcTvTXsB02CRHykidkTRL+A3hQA==",
       "dev": true,
       "optional": true,
       "requires": {
diff --git a/package.json b/package.json
index a68ea06..a04ebf2 100644
--- a/package.json
+++ b/package.json
@@ -15,9 +15,9 @@
     "build:dev": "webpack --config webpack.dev.js",
     "watch": "webpack --watch --config webpack.dev.js",
     "start": "node --experimental-modules src/server.js",
-    "test": "jest --testPathIgnorePatterns src/liowebrtc src/rtcpeerconnection src/signalbuddy src/yjs",
-    "test-changed": "jest --only-changed --testPathIgnorePatterns src/liowebrtc src/rtcpeerconnection src/signalbuddy src/yjs",
-    "test-coverage": "jest --coverage --testPathIgnorePatterns src/liowebrtc src/rtcpeerconnection src/signalbuddy src/yjs",
+    "test": "jest --testPathIgnorePatterns src/liowebrtc src/rtcpeerconnection src/signalbuddy src/yjs src/tiny-worker",
+    "test-changed": "jest --only-changed --testPathIgnorePatterns src/liowebrtc src/rtcpeerconnection src/signalbuddy src/yjs src/tiny-worker",
+    "test-coverage": "jest --coverage --testPathIgnorePatterns src/liowebrtc src/rtcpeerconnection src/signalbuddy src/yjs src/tiny-worker",
     "test-e2e:peer1": "testcafe chrome:headless __e2e_tests__/peer1.e2e.js",
     "test-e2e:peer2": "testcafe chrome:headless __e2e_tests__/peer2.e2e.js",
     "test-e2e": "run-p test-e2e:*",
@@ -56,7 +56,7 @@
     "npm-run-all": "^4.1.5",
     "prettier": "^1.18.2",
     "testcafe": "^1.5.0",
-    "tiny-worker": "^2.3.0",
+    "tiny-worker": "file:src/tiny-worker",
     "webpack": "^4.41.0",
     "webpack-bundle-analyzer": "^3.6.0",
     "webpack-cli": "^3.3.9",
diff --git a/src/connection/MockConnection.js b/src/connection/MockConnection.js
index fa339f5..edc563f 100644
--- a/src/connection/MockConnection.js
+++ b/src/connection/MockConnection.js
@@ -2,12 +2,35 @@ export const getUserID = jest.fn(() => "moritz")
 export const getPeerHandle = jest.fn((/*uid*/) => undefined)
 export const getPeerFootprint = jest.fn((/*uid*/) =>
   Promise.resolve(Date.now()))
-export const send = jest.fn()
-export const broadcast = jest.fn()
+
+export const sendListener = { callback: null }
+export const send = jest.fn((uid, channel, message) => {
+  if (sendListener.callback) {
+    sendListener.callback(uid, channel, message)
+  }
+})
+const sendMockClear = send.mockClear
+send.mockClear = () => {
+  sendListener.callback = null
+  sendMockClear()
+}
+
+export const broadcastListener = { callback: null }
+export const broadcast = jest.fn((channel, message) => {
+  if (broadcastListener.callback) {
+    broadcastListener.callback(channel, message)
+  }
+})
+const broadcastMockClear = broadcast.mockClear
+broadcast.mockClear = () => {
+  broadcastListener.callback = null
+  broadcastMockClear()
+}
+
 export const terminatePeer = jest.fn()
 export const destructor = jest.fn(() => eventListeners.clear())
 
-const eventListeners = new Map()
+export const eventListeners = new Map()
 export const addEventListener = jest.fn((event, callback) =>
   eventListeners.set(event, callback),
 )
diff --git a/src/queue.js b/src/queue.js
index e950c54..cfafaf3 100644
--- a/src/queue.js
+++ b/src/queue.js
@@ -4,6 +4,8 @@ import MessagePack from "what-the-pack"
 import pako from "pako"
 import uuidv4 from "uuid/v4"
 
+const UintBuffer = MessagePack.Buffer || Buffer
+
 const MESSAGE_BUFFER_SIZE = 2 ** 24 // 16MB
 const MESSAGE_SLICE_SIZE = 2 ** 10 // 1KB
 
@@ -21,6 +23,8 @@ onmessage = (event) => {
     const compressed = typeof message == "object"
     const uuid = uuidv4()
 
+    //console.log("send in", message)
+
     message = encode(message)
 
     if (compressed) {
@@ -40,11 +44,15 @@ onmessage = (event) => {
         compressed,
       }
 
+      //console.log("send out", event.data)
+
       self.postMessage(event.data)
     }
   } else if (event.data.method == "received") {
     let message = event.data.message.message
 
+    //console.log("receive in", message)
+
     if (event.data.message.length > 1) {
       let messages = buffer[event.data.uid]
       if (!messages) {
@@ -81,13 +89,19 @@ onmessage = (event) => {
     }
 
     if (event.data.message.compressed) {
-      message = pako.inflate(message)
+      message = pako.inflate(Uint8Array.from(message))
     }
 
-    message = decode(MessagePack.Buffer.from(message))
+    if (!UintBuffer.isBuffer(message)) {
+      message = UintBuffer.from(message)
+    }
+
+    message = decode(message)
 
     event.data.message = message
 
+    //console.log("receive out", event.data)
+
     self.postMessage(event.data)
   }
 }
diff --git a/src/tiny-worker b/src/tiny-worker
new file mode 160000
index 0000000..60d95ba
--- /dev/null
+++ b/src/tiny-worker
@@ -0,0 +1 @@
+Subproject commit 60d95bad97b43bb73dda1ef86b605b1114ae1294
diff --git a/src/y-p2p-mesh.js b/src/y-p2p-mesh.js
index 098c5ed..9b1ed12 100644
--- a/src/y-p2p-mesh.js
+++ b/src/y-p2p-mesh.js
@@ -3,6 +3,7 @@
 
 /* webpack should NOT import Worker */
 // #!if false
+import path from "path"
 import Worker from "tiny-worker"
 // #!endif
 
@@ -31,11 +32,11 @@ function extend(Y) {
       this.options.heartbeat.timeout = this.options.heartbeat.timeout || 10000
 
       /* webpack should use the packaged queue.js path */
-      let path = "js/queue.js"
+      let workerPath = "js/queue.js"
       // #!if false
-      path = "./src/queue.js"
+      workerPath = path.join(__dirname, "./queue.js")
       // #!endif
-      this.queue = new Worker(path, [], { esm: true })
+      this.queue = new Worker(workerPath, [], { esm: true })
 
       this.queue.onmessage = (event) => {
         const method = event.data.method
-- 
GitLab