diff --git a/__tests__/benchmark.test.js b/__tests__/benchmark.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..e596b817c99cb0b41083923f67057d40286c7311
--- /dev/null
+++ b/__tests__/benchmark.test.js
@@ -0,0 +1,1873 @@
+import { connect } from "../src/room.js"
+
+import MockConnection, {
+  getUserID,
+  getPeerHandle,
+  getPeerFootprint,
+  send,
+  broadcast,
+  terminatePeer,
+  destructor,
+  addEventListener,
+} from "../src/connection/MockConnection.js"
+
+describe("drawing app mesh", () => {
+  beforeEach(() => {
+    getUserID.mockClear()
+    getPeerHandle.mockClear()
+    getPeerFootprint.mockClear()
+    send.mockClear()
+    broadcast.mockClear()
+    terminatePeer.mockClear()
+    destructor.mockClear()
+    addEventListener.mockClear()
+    MockConnection.mockClear()
+  })
+
+  it("works with a MockConnection", async () => {
+    const room = await connect("test", MockConnection)
+
+    const dotID = room.addPath([209, 88, 5.000000000000001, "#0000ff"])
+
+    room.extendErasureIntervals(dotID, 0, 0, 0)
+
+    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)
+    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.disconnect()
+  })
+})
diff --git a/package-lock.json b/package-lock.json
index a03b932625a3a145d196e3007068f0b44d2eea7d..6ff5306fd5e427c157a326aa14a4c7e58d285483 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3872,6 +3872,12 @@
       "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
       "dev": true
     },
+    "esm": {
+      "version": "3.2.25",
+      "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
+      "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
+      "dev": true
+    },
     "esotope-hammerhead": {
       "version": "0.5.1",
       "resolved": "https://registry.npmjs.org/esotope-hammerhead/-/esotope-hammerhead-0.5.1.tgz",
@@ -10108,6 +10114,15 @@
         "setimmediate": "^1.0.4"
       }
     },
+    "tiny-worker": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/tiny-worker/-/tiny-worker-2.3.0.tgz",
+      "integrity": "sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==",
+      "dev": true,
+      "requires": {
+        "esm": "^3.2.25"
+      }
+    },
     "tmp": {
       "version": "0.0.33",
       "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -10762,6 +10777,12 @@
         "lodash": "^4.17.15"
       }
     },
+    "webpack-preprocessor-loader": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/webpack-preprocessor-loader/-/webpack-preprocessor-loader-1.1.2.tgz",
+      "integrity": "sha512-YR9UksXYYr0WOEfMTxU0NhKdnfu0BzRvLIxQfkjzyCgyPyeXqv69Nm2JtCykD83cB6Hukr4EtpgztmfMPukpIw==",
+      "dev": true
+    },
     "webpack-sources": {
       "version": "1.4.3",
       "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
diff --git a/package.json b/package.json
index fbdfb650bdb74196a1ebde5828b82e66fcb84955..a68ea0668670993f141b8da36431f4f53b1a499b 100644
--- a/package.json
+++ b/package.json
@@ -37,8 +37,8 @@
     "jdenticon": "^2.2.0",
     "liowebrtc": "file:src/liowebrtc",
     "pako": "^1.0.10",
-    "signalbuddy": "file:src/signalbuddy",
     "rtcpeerconnection": "file:src/rtcpeerconnection",
+    "signalbuddy": "file:src/signalbuddy",
     "uuid": "^3.3.3",
     "webrtc-adapter": "^7.3.0",
     "what-the-pack": "^2.0.3",
@@ -50,16 +50,18 @@
   "devDependencies": {
     "@babel/plugin-transform-modules-commonjs": "^7.6.0",
     "eslint": "^6.5.1",
-    "eslint-plugin-testcafe": "^0.2.1",
     "eslint-config-prettier": "^6.5.0",
+    "eslint-plugin-testcafe": "^0.2.1",
     "jest": "^24.9.0",
     "npm-run-all": "^4.1.5",
     "prettier": "^1.18.2",
     "testcafe": "^1.5.0",
+    "tiny-worker": "^2.3.0",
     "webpack": "^4.41.0",
     "webpack-bundle-analyzer": "^3.6.0",
     "webpack-cli": "^3.3.9",
-    "webpack-merge": "^4.2.2"
+    "webpack-merge": "^4.2.2",
+    "webpack-preprocessor-loader": "^1.1.2"
   },
   "pre-commit": [
     "lint",
diff --git a/src/app.js b/src/app.js
index 62626b62832d8be6b263f7489d3858eeaf8fea11..968d9b0315a47774ba310ac4bcd5fc54c3a17ce0 100644
--- a/src/app.js
+++ b/src/app.js
@@ -7,6 +7,7 @@ import * as canvas from "./canvas.js"
 import * as HTML from "./elements.js"
 import { computeErasureIntervals, combineErasureIntervals } from "./erasure.js"
 import { connect } from "./room.js"
+import WebRTCConnection from "./connection/WebRTC.js"
 import * as toolSelection from "./tool-selection.js"
 import * as humanhash from "humanhash"
 import jdenticon from "jdenticon"
@@ -161,7 +162,7 @@ const onRoomConnect = (room_) => {
 }
 
 const tryRoomConnect = async (roomID) => {
-  return await connect(roomID)
+  return await connect(roomID, WebRTCConnection)
     .then(onRoomConnect)
     .catch((err) => alert(`Error connecting to a room:\n${err}`))
 }
diff --git a/src/connection/MockConnection.js b/src/connection/MockConnection.js
new file mode 100644
index 0000000000000000000000000000000000000000..fa339f56af4a321bbc5fcf5697d1b2fedf64ae25
--- /dev/null
+++ b/src/connection/MockConnection.js
@@ -0,0 +1,39 @@
+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 terminatePeer = jest.fn()
+export const destructor = jest.fn(() => eventListeners.clear())
+
+const eventListeners = new Map()
+export const addEventListener = jest.fn((event, callback) =>
+  eventListeners.set(event, callback),
+)
+const addEventListenerMockClear = addEventListener.mockClear
+addEventListener.mockClear = () => {
+  eventListeners.clear()
+  addEventListenerMockClear()
+}
+
+const MockConnection = jest.fn().mockImplementation((/*options*/) => {
+  setTimeout(
+    () =>
+      eventListeners.has("roomJoined") && eventListeners.get("roomJoined")(),
+    0,
+  )
+
+  return {
+    getUserID,
+    getPeerHandle,
+    getPeerFootprint,
+    send,
+    broadcast,
+    terminatePeer,
+    destructor,
+    addEventListener,
+  }
+})
+
+export default MockConnection
diff --git a/src/queue.js b/src/queue.js
index 82473f424d6d0ea1e6155bd7774b5349875b98b3..e950c5494cbee858e4d4ea705c88ea39be4f262b 100644
--- a/src/queue.js
+++ b/src/queue.js
@@ -11,7 +11,7 @@ const { encode, decode } = MessagePack.initialize(MESSAGE_BUFFER_SIZE)
 
 const buffer = {}
 
-self.onmessage = (event) => {
+onmessage = (event) => {
   if (!event || !event.data) {
     return
   }
diff --git a/src/room.js b/src/room.js
index a158b5a902f43fa963f10023c76a2d63bbdee235..ca330db4421a55d8e7940ffb2dd5cd9424e40cf4 100644
--- a/src/room.js
+++ b/src/room.js
@@ -6,7 +6,6 @@ import yMemory from "y-memory"
 import Y from "yjs"
 
 import yP2PMesh from "./y-p2p-mesh.js"
-import WebRTCConnection from "./connection/WebRTC.js"
 
 yMemory(Y)
 Y.Struct.Union = Union
@@ -83,14 +82,14 @@ class Room extends EventTarget {
     this._y.connector.connectToPeer(id)
   }
 
-  async _initialise() {
+  async _initialise(connection) {
     this._y = await Y({
       db: {
         name: "memory",
       },
       connector: {
         name: "p2p-mesh",
-        connection: WebRTCConnection,
+        connection,
         url: "/",
         room: this.name,
         mesh: {
@@ -188,8 +187,8 @@ class Room extends EventTarget {
   }
 }
 
-export const connect = async (roomName) => {
+export const connect = async (roomName, connection) => {
   const room = new Room(roomName)
-  await room._initialise()
+  await room._initialise(connection)
   return room
 }
diff --git a/src/y-p2p-mesh.js b/src/y-p2p-mesh.js
index 9cdf2234defca2df16ccefc04508955ac1213c40..0b81fc00c32097aa8f2c019ed6a07d490353561e 100644
--- a/src/y-p2p-mesh.js
+++ b/src/y-p2p-mesh.js
@@ -1,6 +1,11 @@
 /* global Y */
 "use strict"
 
+/* webpack should NOT import Worker */
+// #!if false
+import Worker from "tiny-worker"
+// #!endif
+
 function extend(Y) {
   class P2PMesh extends Y.AbstractConnector {
     constructor(y, options) {
@@ -25,7 +30,13 @@ function extend(Y) {
       this.options.heartbeat.minimum = this.options.heartbeat.minimum || 1000
       this.options.heartbeat.timeout = this.options.heartbeat.timeout || 10000
 
-      this.queue = new Worker("js/queue.js")
+      /* webpack should use the packaged queue.js path */
+      let path = "js/queue.js"
+      // #!if false
+      path = "./src/queue.js"
+      // #!endif
+      this.queue = new Worker(path)
+
       this.queue.onmessage = (event) => {
         const method = event.data.method
 
diff --git a/webpack.common.js b/webpack.common.js
index bcb271eee9f39438cb631d914c77bb6a9f118728..499ead3ad6e70215ed58bd1d5dcb6c3f00d36958 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -16,4 +16,19 @@ module.exports = {
       EventTarget: ["@ungap/event-target", "default"],
     }),
   ],
+  module: {
+    rules: [
+      {
+        test: /\.js$/,
+        use: [
+          {
+            loader: "webpack-preprocessor-loader",
+            options: {
+              verbose: false,
+            },
+          },
+        ],
+      },
+    ],
+  },
 }