diff --git a/e2etests/regression_test.go b/e2etests/regression_test.go
index 24026fd35..1e71d7202 100644
--- a/e2etests/regression_test.go
+++ b/e2etests/regression_test.go
@@ -932,6 +932,8 @@ d
a -> b -> c
`,
},
+ loadFromFile(t, "slow_grid"),
+ loadFromFile(t, "grid_oom"),
}
runa(t, tcs)
diff --git a/e2etests/testdata/files/grid_oom.d2 b/e2etests/testdata/files/grid_oom.d2
new file mode 100644
index 000000000..8638cdec4
--- /dev/null
+++ b/e2etests/testdata/files/grid_oom.d2
@@ -0,0 +1,1049 @@
+grid-columns: 15
+
+1: {
+ shape: class
+ 1: ------------------
+ 2: -------------------------------
+ 3: ------------------------------
+ 4: -------------------------
+}
+2: {
+ shape: class
+ 1: -----------------
+ 2: ----------------------------
+}
+3: {
+ shape: class
+ 1: -----------------
+ 2: ----------------------------
+ 3: ------------------------------
+ 4: -------------------------
+}
+4: {
+ shape: class
+ 1: ----------------------------
+}
+5: {
+ shape: class
+ 1: --------------------
+ 2: ----------------------------------------------
+ 3: ---------------------------------
+}
+6: {
+ shape: class
+ 1: ----------------------------------------
+ 2: ------------------------
+ 3: ------------------------
+ 4: --------------------------------------
+}
+7: {
+ shape: class
+ 1: ----------------------------------------
+ 2: ---------------------
+ 3: ------------------------
+ 4: --------------------------------------
+}
+5: {
+ shape: class
+ 1: ----------------------------------------
+ 2: ---------------------
+ 3: ------------------------
+ 4: --------------------------------------
+}
+9: {
+ shape: class
+ 1: ----------------------
+ 2: -------------------------------------------
+ 3: -----------------------
+ 4: --------------------------
+ 5: -----------------------------
+ 6: -----------------------------
+ 7: --------------------------
+}
+10: {
+ shape: class
+ 1: -----------------
+}
+11: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+12: {
+ shape: class
+ 1: ----------------------
+ 2: -----------------------
+ 3: -------------
+ 4: -------------
+ 5: ------------------------
+ 6: ------------------------------------------------
+ 7: --------------------------
+}
+13: {
+ shape: class
+ 1: --------------------------------
+}
+14: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+15: {
+ shape: class
+ 1: ------------------------
+ 2: ----------------------
+}
+16: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+17: {
+ shape: class
+ 1: -----------------
+}
+18: {
+ shape: class
+ 1: ----------------
+}
+19: {
+ shape: class
+ 1: -----------------
+}
+20: {
+ shape: class
+ 1: -----------------
+}
+21: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+22: {
+ shape: class
+ 1: ---------------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+23: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+24: {
+ shape: class
+ 1: -----------------
+}
+25: {
+ shape: class
+ 1: -----------------
+}
+26: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+27: {
+ shape: class
+ 1: -----------------
+}
+28: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+29: {
+ shape: class
+ 1: --------------------------------
+}
+30: {
+ shape: class
+ 1: -------------------
+ 2: ---------------------------------------------
+ 3: --------------------------------
+}
+31: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+32: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+33: {
+ shape: class
+ 1: ------------------------
+ 2: ----------------------
+}
+34: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+35: {
+ shape: class
+ 1: ----------------
+}
+36: {
+ shape: class
+ 1: -----------------
+}
+37: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+38: {
+ shape: class
+ 1: -----------------
+}
+39: {
+ shape: class
+ 1: -----------------
+}
+40: {
+ shape: class
+ 1: -----------------
+}
+41: {
+ shape: class
+ 1: -----------------
+}
+42: {
+ shape: class
+ 1: -----------------
+}
+43: {
+ shape: class
+ 1: ---------------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+44: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+45: {
+ shape: class
+ 1: -----------------
+}
+46: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+47: {
+ shape: class
+ 1: -----------------
+}
+48: {
+ shape: class
+ 1: -------------------------------
+ 2: ------------------------------
+ 3: --------------------------------------------
+ 4: --------------------------------------------------------------------
+}
+49: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+50: {
+ shape: class
+ 1: --------------
+ 2: -----------------------
+ 3: -------------
+ 4: ------------------------
+ 5: ------------------------
+ 6: -------------------------------
+ 7: --------------------------
+}
+51: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+52: {
+ shape: class
+ 1: ----------------------
+ 2: -----------------------
+ 3: -------------
+ 4: -------------
+ 5: ------------------------
+ 6: ------------------------------------------------
+ 7: --------------------------
+}
+53: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+54: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+55: {
+ shape: class
+ 1: ----------------------------------------------
+}
+56: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+57: {
+ shape: class
+ 1: -----------------
+}
+58: {
+ shape: class
+ 1: -----------------
+}
+59: {
+ shape: class
+ 1: -----------
+ 2: --------------------------------------------
+}
+60: {
+ shape: class
+ 1: -----------------
+}
+61: {
+ shape: class
+ 1: ---------------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+62: {
+ shape: class
+ 1: ------------------------
+ 2: ----------------------
+}
+63: {
+ shape: class
+ 1: -----------------
+}
+64: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+65: {
+ shape: class
+ 1: -------------
+ 2: --------------------------
+ 3: -------------
+ 4: -------------
+ 5: --------------------------
+ 6: -----------------------
+ 7: ---------------------------------
+ 8: ----------------------------
+}
+66: {
+ shape: class
+ 1: ----------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+67: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+ 3: -----------------------------
+ 4: -------------------------------
+ 5: ---------------------------
+}
+68: {
+ shape: class
+ 1: ----------------------------------------
+ 2: -----------------------
+ 3: -------------------------------------
+ 4: -----------------------
+}
+69: {
+ shape: class
+ 1: ---------------------------
+ 2: ------------------------------
+ 3: --------------------------------
+ 4: --------------------------------------------------------------------
+ 5: ------------------------------
+}
+70: {
+ shape: class
+ 1: --------------------
+ 2: --------------------------
+ 3: ---------------------
+ 4: -------------------------------
+ 5: -------------------------
+}
+71: {
+ shape: class
+ 1: ------------------------------
+ 2: ------------------------
+}
+72: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+73: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+}
+74: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------
+ 3: --------------------------
+ 4: ----------------------
+}
+75: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+}
+76: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+77: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+ 3: --------------------------
+}
+78: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+79: {
+ shape: class
+ 1: ----------------------
+ 2: --------------------------------
+ 3: --------------------------------
+ 4: -------------------------------------------
+ 5: -------------------------
+ 6: ----------------------------
+ 7: ---------------------------
+ 8: ----------------------------------------
+ 9: -----------------------------
+ 10: -----------------------------
+ 11: ----------------------
+}
+80: {
+ shape: class
+ 1: --------------------------------
+ 2: ----------------------------------
+ 3: ------------------------
+ 4: -------------------------
+ 5: ------------------------------
+ 6: ------------------------------
+ 7: ----------------------
+ 8: --------------------------
+ 9: ----------------------
+ 10: -----------------------
+ 11: -------------------------
+ 12: ----------------------------------
+}
+
+81: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+82: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+83: {
+ shape: class
+ 1: --------------
+ 2: -----------------------
+ 3: ------------------------
+}
+84: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+85: {
+ shape: class
+ 1: -----------------------
+ 2: ------------------------
+ 3: --------------------------------
+ 4: ---------------------------------
+ 5: -----------------------------
+ 6: -----------------------------
+}
+86: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+87: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+88: {
+ shape: class
+ 1: --------------------------------
+}
+89: {
+ shape: class
+ 1: -------------
+ 2: --------------------------
+ 3: -------------
+ 4: -------------
+ 5: -----------------------------
+ 6: -----------------------
+ 7: ---------------------------------
+ 8: ----------------------------
+}
+90: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+}
+91: {
+ shape: class
+ 1: ------------
+ 2: ----------------------------
+ 3: -------------
+ 4: -----------------------------
+ 5: --------------------------
+ 6: -------------
+ 7: -------------
+ 8: --------------------------
+ 9: ----------------------------
+}
+92: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+93: {
+ shape: class
+ 1: ------------------------------
+ 2: ------------------------
+}
+94: {
+ shape: class
+ 1: ----------------------
+ 2: -------------------------------------------
+ 3: -----------------------------
+ 4: -----------------------------
+ 5: -----------------------------
+ 6: --------------------------
+}
+95: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+96: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+97: {
+ shape: class
+ 1: ----------------------------------------
+ 2: -----------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+98: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+}
+99: {
+ shape: class
+ 1: -----------------
+}
+100: {
+ shape: class
+ 1: -------------------
+ 2: --------------
+ 3: -------------------------
+}
+101: {
+ shape: class
+ 1: ------------
+ 2: -------------------------------------
+ 3: -------------
+ 4: -----------------------------
+ 5: --------------------------
+ 6: -------------
+ 7: -------------
+ 8: --------------------------
+ 9: ----------------------------
+}
+102: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+103: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+ 3: -----------------------
+ 4: ---------------------------------
+}
+104: {
+ shape: class
+ 1: -------------------
+ 2: ---------------------------------------------
+ 3: ------------------------
+}
+105: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+106: {
+ shape: class
+ 1: -----------------
+}
+107: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+108: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+109: {
+ shape: class
+ 1: -----------------
+}
+110: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+ 3: --------------------------
+}
+111: {
+ shape: class
+ 1: ---------------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+112: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+113: {
+ shape: class
+ 1: -----------------
+}
+114: {
+ shape: class
+ 1: -----------------
+}
+115: {
+ shape: class
+ 1: ----------------
+}
+116: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+117: {
+ shape: class
+ 1: ----------------
+}
+118: {
+ shape: class
+ 1: -----------------
+}
+119: {
+ shape: class
+ 1: --------------
+ 2: --------------------
+ 3: -------------------------
+ 4: ----------------------
+ 5: -------------------------
+}
+120: {
+ shape: class
+ 1: -----------------
+}
+121: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+122: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+ 3: ---------------------------------
+}
+123: {
+ shape: class
+ 1: -------------------
+ 2: --------------
+ 3: -------------------------
+}
+124: {
+ shape: class
+ 1: -----------------
+}
+125: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+ 3: ----------------------
+ 4: --------------------------------
+}
+126: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+127: {
+ shape: class
+ 1: --------------------------------
+}
+128: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+ 3: -----------------------
+ 4: -------------------------
+}
+129: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+130: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+131: {
+ shape: class
+ 1: ---------------------------------------
+ 2: -----------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+132: {
+ shape: class
+ 1: -----------------------
+ 2: ----------------
+ 3: ------------------------------
+ 4: ----------------------
+ 5: --------------------------
+ 6: -----------------------------
+ 7: ---------------------------
+ 8: --------------------------
+ 9: ----------------------
+ 10: ---------------------------
+ 11: --------------------------------
+ 12: ------------------------------
+ 13: -------------------------
+ 14: --------------------------
+ 15: ---------------------------------
+ 16: -------------------------------
+ 17: --------------------------
+ 18: --------------------------------
+ 19: ------------------------
+ 20: -----------------------------
+ 21: -----------------------------
+ 22: ---------------------------------
+ 23: ----------------------------
+ 24: -----------------------------
+ 25: -----------------------
+ 26: ------------------------------
+ 27: -------------------------
+ 28: -------------------------
+ 29: ---------------------------------
+ 30: --------------------------
+ 31: ---------------------------
+ 32: ---------------------------
+ 33: ------------------------
+ 34: ---------------------------
+ 35: ----------------------
+ 36: --------------------------
+ 37: ---------------------------
+ 38: ----------------------------------
+ 39: --------------------------
+ 40: -----------------------
+ 41: ----------------------------
+ 42: ---------------------------
+ 43: --------------------------
+ 44: ---------------------------
+ 45: ----------------------------------
+ 46: --------------------------
+ 47: --------------------------
+ 48: --------------------------
+}
+133: {
+ shape: class
+ 1: --------------
+ 2: --------------------
+ 3: -------------------------
+ 4: ----------------------
+ 5: -------------------------
+}
+134: {
+ shape: class
+ 1: --------------------
+ 2: ---------------
+}
+135: {
+ shape: class
+ 1: ----------------------------------------
+ 2: -----------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+136: {
+ shape: class
+ 1: ----------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+137: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+138: {
+ shape: class
+ 1: ---------------------------------------
+ 2: -----------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+139: {
+ shape: class
+ 1: --------------
+ 2: -----------------------
+ 3: ------------------------
+}
+140: {
+ shape: class
+ 1: --------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+141: {
+ shape: class
+ 1: -------------------------
+ 2: ------------------------
+}
+142: {
+ shape: class
+ 1: -----------------
+}
+143: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+144: {
+ shape: class
+ 1: ----------------------
+ 2: ------------------------
+ 3: --------------------------------------
+ 4: ----------------------------------
+}
+145: {
+ shape: class
+ 1: ---------------------------
+ 2: ------------------------------
+ 3: --------------------------------------------
+ 4: ------------------------
+ 5: -------------------------------
+ 6: ---------------------------------------------
+ 7: --------------------------------------------
+ 8: -------------------------------
+}
+146: {
+ shape: class
+ 1: --------------------------
+ 2: ----------------
+ 3: ------------------------------
+ 4: ----------------------------
+ 5: -------------------------------
+ 6: ----------------------------
+ 7: ------------------------
+ 8: ------------------------
+ 9: ---------------------------
+ 10: ------------------------
+ 11: ----------------------------------
+ 12: -------------------------
+ 13: ------------------------
+ 14: --------------------------
+ 15: -----------------------------
+ 16: ----------------------------
+ 17: -----------------------------
+ 18: ---------------------------------
+ 19: --------------------------
+ 20: ---------------------
+ 21: -------------------------------
+ 22: -------------------------------
+ 23: ------------------------------
+ 24: ---------------------------
+ 25: --------------------------
+ 26: ---------------------------------
+ 27: ------------------------
+ 28: --------------------------
+ 29: --------------------------
+ 30: --------------------------
+ 31: --------------------------
+ 32: ----------------------------
+ 33: ----------------------
+ 34: --------------------------
+ 35: ----------------------
+ 36: --------------------------
+ 37: ---------------------------
+ 38: --------------------------
+ 39: ----------------------
+ 40: -----------------------
+ 41: -----------------------------
+ 42: -----------------------------
+ 43: --------------------------
+ 44: -------------------------
+ 45: ------------------------------
+ 46: ---------------------------------
+ 47: --------------------------
+ 48: --------------------------
+}
+147: {
+ shape: class
+ 1: -----------------------------
+ 2: --------------------
+ 3: ---------------
+}
+148: {
+ shape: class
+ 1: --------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+149: {
+ shape: class
+ 1: ----------------------------------------
+ 2: -----------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+150: {
+ shape: class
+ 1: ---------------------------------------
+ 2: --------------------
+ 3: -------------------------------------
+ 4: -----------------------
+}
+151: {
+ shape: class
+ 1: ------------------------------
+ 2: ------------------------
+}
+152: {
+ shape: class
+ 1: --------------------------------
+}
+153: {
+ shape: class
+ 1: -----------------
+}
+154: {
+ shape: class
+ 1: ----------------------
+ 2: -----------------------
+ 3: -------------------------------------------
+ 4: --------------------------
+ 5: -----------------------------
+ 6: -----------------------------
+ 7: --------------------------
+}
+155: {
+ shape: class
+ 1: ------------------------
+}
+156: {
+ shape: class
+ 1: ----------------
+}
diff --git a/e2etests/testdata/files/slow_grid.d2 b/e2etests/testdata/files/slow_grid.d2
new file mode 100644
index 000000000..9ace78f01
--- /dev/null
+++ b/e2etests/testdata/files/slow_grid.d2
@@ -0,0 +1,147 @@
+grid-columns: 15
+
+1: {
+ shape: class
+ 1: ------------------
+ 2: -------------------------------
+ 3: ------------------------------
+ 4: -------------------------
+}
+2: {
+ shape: class
+ 1: -----------------
+ 2: ----------------------------
+}
+3: {
+ shape: class
+ 1: -----------------
+ 2: ----------------------------
+ 3: ------------------------------
+ 4: -------------------------
+}
+4: {
+ shape: class
+ 1: ----------------------------
+}
+5: {
+ shape: class
+ 1: --------------------
+ 2: ----------------------------------------------
+ 3: ---------------------------------
+}
+6: {
+ shape: class
+ 1: ----------------------------------------
+ 2: ------------------------
+ 3: ------------------------
+ 4: --------------------------------------
+}
+7: {
+ shape: class
+ 1: ----------------------------------------
+ 2: ---------------------
+ 3: ------------------------
+ 4: --------------------------------------
+}
+5: {
+ shape: class
+ 1: ----------------------------------------
+ 2: ---------------------
+ 3: ------------------------
+ 4: --------------------------------------
+}
+9: {
+ shape: class
+ 1: ----------------------
+ 2: -------------------------------------------
+ 3: -----------------------
+ 4: --------------------------
+ 5: -----------------------------
+ 6: -----------------------------
+ 7: --------------------------
+}
+10: {
+ shape: class
+ 1: -----------------
+}
+11: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+12: {
+ shape: class
+ 1: ----------------------
+ 2: -----------------------
+ 3: -------------
+ 4: -------------
+ 5: ------------------------
+ 6: ------------------------------------------------
+ 7: --------------------------
+}
+13: {
+ shape: class
+ 1: --------------------------------
+}
+14: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+15: {
+ shape: class
+ 1: ------------------------
+ 2: ----------------------
+}
+16: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+17: {
+ shape: class
+ 1: -----------------
+}
+18: {
+ shape: class
+ 1: ----------------
+}
+19: {
+ shape: class
+ 1: -----------------
+}
+20: {
+ shape: class
+ 1: -----------------
+}
+21: {
+ shape: class
+ 1: ----------------
+ 2: ---------------------------
+ 3: -----------------------------
+ 4: ------------------------
+}
+22: {
+ shape: class
+ 1: ---------------------------------------------
+ 2: --------------------
+ 3: -----------------------
+ 4: -------------------------------------
+}
+23: {
+ shape: class
+ 1: ----------------
+ 2: ------------------------------
+}
+24: {
+ shape: class
+ 1: -----------------
+}
+25: {
+ shape: class
+ 1: -----------------
+}
diff --git a/e2etests/testdata/regression/slow_grid/dagre/board.exp.json b/e2etests/testdata/regression/slow_grid/dagre/board.exp.json
new file mode 100644
index 000000000..b82a19afa
--- /dev/null
+++ b/e2etests/testdata/regression/slow_grid/dagre/board.exp.json
@@ -0,0 +1,1463 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "1",
+ "type": "class",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 482,
+ "height": 276,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "-------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "-------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "1",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 11,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "2",
+ "type": "class",
+ "pos": {
+ "x": 0,
+ "y": 316
+ },
+ "width": 482,
+ "height": 184,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "----------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "2",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "3",
+ "type": "class",
+ "pos": {
+ "x": 522,
+ "y": 0
+ },
+ "width": 470,
+ "height": 276,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "-------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "3",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "4",
+ "type": "class",
+ "pos": {
+ "x": 522,
+ "y": 316
+ },
+ "width": 470,
+ "height": 184,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "4",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 14,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "5",
+ "type": "class",
+ "pos": {
+ "x": 1032,
+ "y": 0
+ },
+ "width": 590,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "---------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "--------------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "5",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "6",
+ "type": "class",
+ "pos": {
+ "x": 1662,
+ "y": 0
+ },
+ "width": 590,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "--------------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "6",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "7",
+ "type": "class",
+ "pos": {
+ "x": 2292,
+ "y": 0
+ },
+ "width": 590,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "---------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "--------------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "7",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "9",
+ "type": "class",
+ "pos": {
+ "x": 2922,
+ "y": 0
+ },
+ "width": 626,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "-------------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-----------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "--------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "5",
+ "type": "-----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "6",
+ "type": "-----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "7",
+ "type": "--------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "9",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "10",
+ "type": "class",
+ "pos": {
+ "x": 3588,
+ "y": 0
+ },
+ "width": 458,
+ "height": 184,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "10",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "11",
+ "type": "class",
+ "pos": {
+ "x": 3588,
+ "y": 224
+ },
+ "width": 458,
+ "height": 276,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "---------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "11",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "12",
+ "type": "class",
+ "pos": {
+ "x": 4086,
+ "y": 0
+ },
+ "width": 686,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "-----------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "-------------",
+ "visibility": "public"
+ },
+ {
+ "name": "5",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "6",
+ "type": "------------------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "7",
+ "type": "--------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "12",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "13",
+ "type": "class",
+ "pos": {
+ "x": 4812,
+ "y": 0
+ },
+ "width": 494,
+ "height": 184,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "--------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "13",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "14",
+ "type": "class",
+ "pos": {
+ "x": 4812,
+ "y": 224
+ },
+ "width": 494,
+ "height": 276,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "---------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "14",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "15",
+ "type": "class",
+ "pos": {
+ "x": 5346,
+ "y": 0
+ },
+ "width": 470,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "----------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "15",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "16",
+ "type": "class",
+ "pos": {
+ "x": 5346,
+ "y": 270
+ },
+ "width": 470,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "16",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "17",
+ "type": "class",
+ "pos": {
+ "x": 5856,
+ "y": 0
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "17",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "18",
+ "type": "class",
+ "pos": {
+ "x": 5856,
+ "y": 270
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "18",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "19",
+ "type": "class",
+ "pos": {
+ "x": 6210,
+ "y": 0
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "19",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "20",
+ "type": "class",
+ "pos": {
+ "x": 6210,
+ "y": 270
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "20",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "21",
+ "type": "class",
+ "pos": {
+ "x": 6564,
+ "y": 0
+ },
+ "width": 458,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "---------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "21",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "22",
+ "type": "class",
+ "pos": {
+ "x": 7062,
+ "y": 0
+ },
+ "width": 650,
+ "height": 276,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "---------------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "--------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-----------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "-------------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "22",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "23",
+ "type": "class",
+ "pos": {
+ "x": 7062,
+ "y": 316
+ },
+ "width": 650,
+ "height": 184,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "23",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "24",
+ "type": "class",
+ "pos": {
+ "x": 7752,
+ "y": 0
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "24",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 28,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "25",
+ "type": "class",
+ "pos": {
+ "x": 7752,
+ "y": 270
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "25",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/regression/slow_grid/dagre/sketch.exp.svg b/e2etests/testdata/regression/slow_grid/dagre/sketch.exp.svg
new file mode 100644
index 000000000..98c776505
--- /dev/null
+++ b/e2etests/testdata/regression/slow_grid/dagre/sketch.exp.svg
@@ -0,0 +1,95 @@
+
\ No newline at end of file
diff --git a/e2etests/testdata/regression/slow_grid/elk/board.exp.json b/e2etests/testdata/regression/slow_grid/elk/board.exp.json
new file mode 100644
index 000000000..b82a19afa
--- /dev/null
+++ b/e2etests/testdata/regression/slow_grid/elk/board.exp.json
@@ -0,0 +1,1463 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "1",
+ "type": "class",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 482,
+ "height": 276,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "-------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "-------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "1",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 11,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "2",
+ "type": "class",
+ "pos": {
+ "x": 0,
+ "y": 316
+ },
+ "width": 482,
+ "height": 184,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "----------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "2",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "3",
+ "type": "class",
+ "pos": {
+ "x": 522,
+ "y": 0
+ },
+ "width": 470,
+ "height": 276,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "-------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "3",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "4",
+ "type": "class",
+ "pos": {
+ "x": 522,
+ "y": 316
+ },
+ "width": 470,
+ "height": 184,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "4",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 14,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "5",
+ "type": "class",
+ "pos": {
+ "x": 1032,
+ "y": 0
+ },
+ "width": 590,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "---------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "--------------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "5",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "6",
+ "type": "class",
+ "pos": {
+ "x": 1662,
+ "y": 0
+ },
+ "width": 590,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "--------------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "6",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "7",
+ "type": "class",
+ "pos": {
+ "x": 2292,
+ "y": 0
+ },
+ "width": 590,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "---------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "--------------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "7",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "9",
+ "type": "class",
+ "pos": {
+ "x": 2922,
+ "y": 0
+ },
+ "width": 626,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "-------------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-----------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "--------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "5",
+ "type": "-----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "6",
+ "type": "-----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "7",
+ "type": "--------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "9",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "10",
+ "type": "class",
+ "pos": {
+ "x": 3588,
+ "y": 0
+ },
+ "width": 458,
+ "height": 184,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "10",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "11",
+ "type": "class",
+ "pos": {
+ "x": 3588,
+ "y": 224
+ },
+ "width": 458,
+ "height": 276,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "---------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "11",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "12",
+ "type": "class",
+ "pos": {
+ "x": 4086,
+ "y": 0
+ },
+ "width": 686,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "-----------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "-------------",
+ "visibility": "public"
+ },
+ {
+ "name": "5",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "6",
+ "type": "------------------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "7",
+ "type": "--------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "12",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "13",
+ "type": "class",
+ "pos": {
+ "x": 4812,
+ "y": 0
+ },
+ "width": 494,
+ "height": 184,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "--------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "13",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "14",
+ "type": "class",
+ "pos": {
+ "x": 4812,
+ "y": 224
+ },
+ "width": 494,
+ "height": 276,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "---------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "14",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "15",
+ "type": "class",
+ "pos": {
+ "x": 5346,
+ "y": 0
+ },
+ "width": 470,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "----------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "15",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "16",
+ "type": "class",
+ "pos": {
+ "x": 5346,
+ "y": 270
+ },
+ "width": 470,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "16",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "17",
+ "type": "class",
+ "pos": {
+ "x": 5856,
+ "y": 0
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "17",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "18",
+ "type": "class",
+ "pos": {
+ "x": 5856,
+ "y": 270
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "18",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "19",
+ "type": "class",
+ "pos": {
+ "x": 6210,
+ "y": 0
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "19",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "20",
+ "type": "class",
+ "pos": {
+ "x": 6210,
+ "y": 270
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "20",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "21",
+ "type": "class",
+ "pos": {
+ "x": 6564,
+ "y": 0
+ },
+ "width": 458,
+ "height": 500,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "---------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-----------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "21",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "22",
+ "type": "class",
+ "pos": {
+ "x": 7062,
+ "y": 0
+ },
+ "width": 650,
+ "height": 276,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "---------------------------------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "--------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "3",
+ "type": "-----------------------",
+ "visibility": "public"
+ },
+ {
+ "name": "4",
+ "type": "-------------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "22",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "23",
+ "type": "class",
+ "pos": {
+ "x": 7062,
+ "y": 316
+ },
+ "width": 650,
+ "height": 184,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "----------------",
+ "visibility": "public"
+ },
+ {
+ "name": "2",
+ "type": "------------------------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "23",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "24",
+ "type": "class",
+ "pos": {
+ "x": 7752,
+ "y": 0
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "24",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 28,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ },
+ {
+ "id": "25",
+ "type": "class",
+ "pos": {
+ "x": 7752,
+ "y": 270
+ },
+ "width": 314,
+ "height": 230,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N1",
+ "stroke": "N7",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "1",
+ "type": "-----------------",
+ "visibility": "public"
+ }
+ ],
+ "methods": null,
+ "columns": null,
+ "label": "25",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "B2",
+ "secondaryAccentColor": "AA2",
+ "neutralAccentColor": "N2"
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/regression/slow_grid/elk/sketch.exp.svg b/e2etests/testdata/regression/slow_grid/elk/sketch.exp.svg
new file mode 100644
index 000000000..98c776505
--- /dev/null
+++ b/e2etests/testdata/regression/slow_grid/elk/sketch.exp.svg
@@ -0,0 +1,95 @@
+1+1------------------+2-------------------------------+3------------------------------+4-------------------------2+1-----------------+2----------------------------3+1-----------------+2----------------------------+3------------------------------+4-------------------------4+1----------------------------5+1----------------------------------------+2---------------------+3------------------------+4--------------------------------------6+1----------------------------------------+2------------------------+3------------------------+4--------------------------------------7+1----------------------------------------+2---------------------+3------------------------+4--------------------------------------9+1----------------------+2-------------------------------------------+3-----------------------+4--------------------------+5-----------------------------+6-----------------------------+7--------------------------10+1-----------------11+1----------------+2---------------------------+3-----------------------------+4------------------------12+1----------------------+2-----------------------+3-------------+4-------------+5------------------------+6------------------------------------------------+7--------------------------13+1--------------------------------14+1----------------+2---------------------------+3-----------------------------+4------------------------15+1------------------------+2----------------------16+1----------------+2------------------------------17+1-----------------18+1----------------19+1-----------------20+1-----------------21+1----------------+2---------------------------+3-----------------------------+4------------------------22+1---------------------------------------------+2--------------------+3-----------------------+4-------------------------------------23+1----------------+2------------------------------24+1-----------------25+1-----------------
+
+
+
\ No newline at end of file