@tscircuit/rectdiff 0.0.20 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/bun-test.yml +1 -1
- package/package.json +1 -1
- package/tests/solver/both-points-equivalent/__snapshots__/both-points-equivalent.snap.svg +44 -0
- package/tests/solver/both-points-equivalent/both-points-equivalent.srj.json +64 -0
- package/tests/solver/both-points-equivalent/both-points-equivalent.test.ts +92 -0
- package/tests/solver/bugreport01-be84eb/__snapshots__/bugreport01-be84eb.snap.svg +44 -0
- package/tests/solver/bugreport01-be84eb/bugreport01-be84eb.json +929 -0
- package/tests/solver/bugreport01-be84eb/bugreport01-be84eb.test.ts +93 -0
- package/tests/solver/bugreport02-bc4361/__snapshots__/bugreport02-bc4361.snap.svg +44 -0
- package/tests/solver/bugreport02-bc4361/bugreport02-bc4361.json +1276 -0
- package/tests/solver/bugreport02-bc4361/bugreport02-bc4361.test.ts +93 -0
- package/tests/solver/bugreport03-fe4a17/__snapshots__/bugreport03-fe4a17.snap.svg +44 -0
- package/tests/solver/bugreport03-fe4a17/bugreport03-fe4a17.json +986 -0
- package/tests/solver/bugreport03-fe4a17/bugreport03-fe4a17.test.ts +93 -0
- package/tests/solver/bugreport07-d3f3be/__snapshots__/bugreport07-d3f3be.snap.svg +44 -0
- package/tests/solver/bugreport07-d3f3be/bugreport07-d3f3be.json +1211 -0
- package/tests/solver/bugreport07-d3f3be/bugreport07-d3f3be.test.ts +93 -0
- package/tests/solver/bugreport08-e3ec95/__snapshots__/bugreport08-e3ec95.snap.svg +44 -0
- package/tests/solver/bugreport08-e3ec95/bugreport08-e3ec95.json +1511 -0
- package/tests/solver/bugreport08-e3ec95/bugreport08-e3ec95.test.ts +93 -0
- package/tests/solver/bugreport09-618e09/__snapshots__/bugreport09-618e09.snap.svg +44 -0
- package/tests/solver/bugreport09-618e09/bugreport09-618e09.json +2827 -0
- package/tests/solver/bugreport09-618e09/bugreport09-618e09.test.ts +93 -0
- package/tests/solver/bugreport10-71239a/__snapshots__/bugreport10-71239a.snap.svg +44 -0
- package/tests/solver/bugreport10-71239a/bugreport10-71239a.json +890 -0
- package/tests/solver/bugreport10-71239a/bugreport10-71239a.test.ts +93 -0
- package/tests/solver/bugreport11-b2de3c/__snapshots__/bugreport11-b2de3c.snap.svg +44 -0
- package/tests/solver/bugreport11-b2de3c/bugreport11-b2de3c.json +4315 -0
- package/tests/solver/bugreport11-b2de3c/bugreport11-b2de3c.test.ts +93 -0
- package/tests/solver/bugreport12-35ce1c/__snapshots__/bugreport12-35ce1c.snap.svg +44 -0
- package/tests/solver/bugreport12-35ce1c/bugreport12-35ce1c.json +475 -0
- package/tests/solver/bugreport12-35ce1c/bugreport12-35ce1c.test.ts +93 -0
- package/tests/solver/bugreport13-b9a758/__snapshots__/bugreport13-b9a758.snap.svg +44 -0
- package/tests/solver/bugreport13-b9a758/bugreport13-b9a758.json +15815 -0
- package/tests/solver/bugreport13-b9a758/bugreport13-b9a758.test.ts +93 -0
- package/tests/solver/bugreport16-d95f38/__snapshots__/bugreport16-d95f38.snap.svg +44 -0
- package/tests/solver/bugreport16-d95f38/bugreport16-d95f38.json +623 -0
- package/tests/solver/bugreport16-d95f38/bugreport16-d95f38.test.ts +93 -0
- package/tests/solver/bugreport18-1b2d06/__snapshots__/bugreport18-1b2d06.snap.svg +44 -0
- package/tests/solver/bugreport18-1b2d06/bugreport18-1b2d06.json +543 -0
- package/tests/solver/bugreport18-1b2d06/bugreport18-1b2d06.test.ts +93 -0
- package/tests/solver/bugreport19/__snapshots__/bugreport19.snap.svg +44 -0
- package/tests/solver/bugreport19/bugreport19.json +678 -0
- package/tests/solver/bugreport19/bugreport19.test.ts +93 -0
- package/tests/solver/bugreport20-obstacle-clipping/__snapshots__/bugreport20-obstacle-clipping.snap.svg +44 -0
- package/tests/solver/bugreport20-obstacle-clipping/bugreport20-obstacle-clipping.json +109 -0
- package/tests/solver/bugreport20-obstacle-clipping/bugreport20-obstacle-clipping.test.ts +93 -0
- package/tests/solver/bugreport21-board-outline/__snapshots__/bugreport21-board-outline.snap.svg +44 -0
- package/tests/solver/bugreport21-board-outline/bugreport21-board-outline.json +148 -0
- package/tests/solver/bugreport21-board-outline/bugreport21-board-outline.test.ts +93 -0
- package/tests/solver/bugreport22-2a75ce/__snapshots__/bugreport22-2a75ce.snap.svg +44 -0
- package/tests/solver/bugreport22-2a75ce/bugreport22-2a75ce.json +1550 -0
- package/tests/solver/bugreport22-2a75ce/bugreport22-2a75ce.test.ts +93 -0
- package/tests/solver/bugreport23-LGA15x4/__snapshots__/bugreport23-LGA15x4.snap.svg +44 -0
- package/tests/solver/bugreport23-LGA15x4/bugreport23-LGA15x4.srj.json +2401 -0
- package/tests/solver/bugreport23-LGA15x4/bugreport23-LGA15x4.test.ts +92 -0
- package/tests/solver/bugreport24-05597c/__snapshots__/bugreport24-05597c.snap.svg +44 -0
- package/tests/solver/bugreport24-05597c/bugreport24-05597c.json +8427 -0
- package/tests/solver/bugreport24-05597c/bugreport24-05597c.test.ts +93 -0
- package/tests/solver/bugreport25-4b1d55/__snapshots__/bugreport25-4b1d55.snap.svg +44 -0
- package/tests/solver/bugreport25-4b1d55/bugreport25-4b1d55.json +119 -0
- package/tests/solver/bugreport25-4b1d55/bugreport25-4b1d55.test.ts +93 -0
- package/tests/solver/bugreport26-66b0b2/__snapshots__/bugreport26-66b0b2.snap.svg +44 -0
- package/tests/solver/bugreport26-66b0b2/bugreport26-66b0b2.json +1651 -0
- package/tests/solver/bugreport26-66b0b2/bugreport26-66b0b2.test.ts +93 -0
- package/tests/solver/bugreport27-dd3734/__snapshots__/bugreport27-dd3734.snap.svg +44 -0
- package/tests/solver/bugreport27-dd3734/bugreport27-dd3734.json +4116 -0
- package/tests/solver/bugreport27-dd3734/bugreport27-dd3734.test.ts +93 -0
- package/tests/solver/bugreport28-18a9ef/__snapshots__/bugreport28-18a9ef.snap.svg +44 -0
- package/tests/solver/bugreport28-18a9ef/bugreport28-18a9ef.json +4116 -0
- package/tests/solver/bugreport28-18a9ef/bugreport28-18a9ef.test.ts +93 -0
- package/tests/solver/bugreport29-7deae8/__snapshots__/bugreport29-7deae8.snap.svg +44 -0
- package/tests/solver/bugreport29-7deae8/bugreport29-7deae8.json +4118 -0
- package/tests/solver/bugreport29-7deae8/bugreport29-7deae8.test.ts +93 -0
- package/tests/solver/bugreport30-2174c8/__snapshots__/bugreport30-2174c8.snap.svg +44 -0
- package/tests/solver/bugreport30-2174c8/bugreport30-2174c8.json +4007 -0
- package/tests/solver/bugreport30-2174c8/bugreport30-2174c8.test.ts +93 -0
- package/tests/solver/bugreport33-213d45/__snapshots__/bugreport33-213d45.snap.svg +44 -0
- package/tests/solver/bugreport33-213d45/bugreport33-213d45.json +5089 -0
- package/tests/solver/bugreport33-213d45/bugreport33-213d45.test.ts +93 -0
- package/tests/solver/bugreport34-e9dea2/__snapshots__/bugreport34-e9dea2.snap.svg +44 -0
- package/tests/solver/bugreport34-e9dea2/bugreport34-e9dea2.json +3924 -0
- package/tests/solver/bugreport34-e9dea2/bugreport34-e9dea2.test.ts +93 -0
- package/tests/solver/bugreport35-191db9/__snapshots__/bugreport35-191db9.snap.svg +44 -0
- package/tests/solver/bugreport35-191db9/bugreport35-191db9.json +4237 -0
- package/tests/solver/bugreport35-191db9/bugreport35-191db9.test.ts +93 -0
- package/tests/solver/bugreport36-bf8303/__snapshots__/bugreport36-bf8303.snap.svg +44 -0
- package/tests/solver/bugreport36-bf8303/bugreport36-bf8303.json +29660 -0
- package/tests/solver/bugreport36-bf8303/bugreport36-bf8303.test.ts +93 -0
- package/tests/solver/interaction/__snapshots__/interaction.snap.svg +44 -0
- package/tests/solver/interaction/interaction.srj.json +58 -0
- package/tests/solver/interaction/interaction.test.ts +92 -0
- package/tests/solver/multi-point/__snapshots__/multi-point.snap.svg +44 -0
- package/tests/solver/multi-point/multi-point.srj.json +57 -0
- package/tests/solver/multi-point/multi-point.test.ts +92 -0
- package/tests/solver/no-better-path/__snapshots__/no-better-path.snap.svg +44 -0
- package/tests/solver/no-better-path/no-better-path.srj.json +48 -0
- package/tests/solver/no-better-path/no-better-path.test.ts +92 -0
- package/tests/solver/offboardconnects01/__snapshots__/offboardconnects01.snap.svg +44 -0
- package/tests/solver/offboardconnects01/offboardconnects01.srj.json +53 -0
- package/tests/solver/offboardconnects01/offboardconnects01.test.ts +92 -0
- package/tests/solver/pcb_trace_id-should-return-root-connection-name/__snapshots__/pcb_trace_id-should-return-root-connection-name.snap.svg +44 -0
- package/tests/solver/pcb_trace_id-should-return-root-connection-name/pcb_trace_id-should-return-root-connection-name.srj.json +129 -0
- package/tests/solver/pcb_trace_id-should-return-root-connection-name/pcb_trace_id-should-return-root-connection-name.test.ts +92 -0
- package/tests/solver/transitivity/__snapshots__/transitivity.snap.svg +44 -0
- package/tests/solver/transitivity/transitivity.srj.json +64 -0
- package/tests/solver/transitivity/transitivity.test.ts +92 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { expect, test } from "bun:test"
|
|
2
|
+
import srj_json from "./bugreport33-213d45.json"
|
|
3
|
+
import {
|
|
4
|
+
getBounds,
|
|
5
|
+
getSvgFromGraphicsObject,
|
|
6
|
+
mergeGraphics,
|
|
7
|
+
stackGraphicsVertically,
|
|
8
|
+
type GraphicsObject,
|
|
9
|
+
type Rect,
|
|
10
|
+
} from "graphics-debug"
|
|
11
|
+
import { RectDiffPipeline } from "lib/RectDiffPipeline"
|
|
12
|
+
import { makeCapacityMeshNodeWithLayerInfo } from "tests/fixtures/makeCapacityMeshNodeWithLayerInfo"
|
|
13
|
+
import { makeSimpleRouteOutlineGraphics } from "tests/fixtures/makeSimpleRouteOutlineGraphics"
|
|
14
|
+
|
|
15
|
+
const srj = srj_json.simple_route_json ?? srj_json.simpleRouteJson ?? srj_json
|
|
16
|
+
|
|
17
|
+
test("bugreport33-213d45", async () => {
|
|
18
|
+
const solver = new RectDiffPipeline({
|
|
19
|
+
simpleRouteJson: srj,
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
const outline = makeSimpleRouteOutlineGraphics(srj)
|
|
23
|
+
|
|
24
|
+
solver.solve()
|
|
25
|
+
|
|
26
|
+
const { meshNodes } = solver.getOutput()
|
|
27
|
+
const rectsByCombo = makeCapacityMeshNodeWithLayerInfo(meshNodes)
|
|
28
|
+
const allGraphicsObjects: GraphicsObject[] = []
|
|
29
|
+
|
|
30
|
+
for (const z of Array.from({ length: srj.layerCount }, (_, index) => index)) {
|
|
31
|
+
const layerRects: Rect[] = []
|
|
32
|
+
|
|
33
|
+
for (const [key, rects] of rectsByCombo) {
|
|
34
|
+
const layers = key
|
|
35
|
+
.split(",")
|
|
36
|
+
.map((value) => Number.parseInt(value, 10))
|
|
37
|
+
.filter((value) => !Number.isNaN(value))
|
|
38
|
+
|
|
39
|
+
if (layers.includes(z)) {
|
|
40
|
+
layerRects.push(...rects)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
let labelY = 0
|
|
45
|
+
|
|
46
|
+
if (layerRects.length > 0) {
|
|
47
|
+
let maxY = -Infinity
|
|
48
|
+
|
|
49
|
+
for (const rect of layerRects) {
|
|
50
|
+
const top = rect.center.y + rect.height * (2 / 3)
|
|
51
|
+
|
|
52
|
+
if (top > maxY) maxY = top
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
labelY = maxY
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const graphics: GraphicsObject = {
|
|
59
|
+
title: `RectDiffPipeline - z${z}`,
|
|
60
|
+
texts: [
|
|
61
|
+
{
|
|
62
|
+
anchorSide: "top_right",
|
|
63
|
+
text: `Layer z=${z}`,
|
|
64
|
+
x: 0,
|
|
65
|
+
y: labelY,
|
|
66
|
+
fontSize: 0.5,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
coordinateSystem: "cartesian",
|
|
70
|
+
rects: layerRects,
|
|
71
|
+
points: [],
|
|
72
|
+
lines: [],
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
allGraphicsObjects.push(mergeGraphics(graphics, outline))
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const stackedGraphics = stackGraphicsVertically(allGraphicsObjects)
|
|
79
|
+
const bounds = getBounds(stackedGraphics)
|
|
80
|
+
const boundsWidth = Math.max(1, bounds.maxX - bounds.minX)
|
|
81
|
+
const boundsHeight = Math.max(1, bounds.maxY - bounds.minY)
|
|
82
|
+
const svgWidth = 640
|
|
83
|
+
const svgHeight = Math.max(
|
|
84
|
+
svgWidth,
|
|
85
|
+
Math.ceil((boundsHeight / boundsWidth) * svgWidth),
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
const svg = getSvgFromGraphicsObject(stackedGraphics, {
|
|
89
|
+
svgWidth,
|
|
90
|
+
svgHeight,
|
|
91
|
+
})
|
|
92
|
+
await expect(svg).toMatchSvgSnapshot(import.meta.path)
|
|
93
|
+
})
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<svg width="640" height="708" viewBox="0 0 640 708" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-43,-45 43,-45 43.098135348654836,-44.997590912410345 43.19603428065912,-44.99036945334439 43.29346094891072,-44.978353019929564 43.390180644032256,-44.961570560806464 43.485960359806526,-44.94006250638909 43.580569354508924,-44.91388067146442 43.67377970678444,-44.88308813036604 43.76536686473018,-44.84775906502257 43.855110186860564,-44.80797858624689 43.942793473651996,-44.76384252869671 44.02820548838644,-44.715457220000545 44.1111404660392,-44.66293922460509 44.19139860898487,-44.60641506296129 44.26878656832729,-44.546020906725474 44.34311790969404,-44.481902250709915 44.41421356237309,-44.41421356237309 44.481902250709915,-44.34311790969404 44.546020906725474,-44.26878656832729 44.60641506296129,-44.19139860898487 44.66293922460509,-44.1111404660392 44.715457220000545,-44.02820548838644 44.76384252869671,-43.942793473651996 44.80797858624689,-43.855110186860564 44.84775906502257,-43.76536686473018 44.88308813036604,-43.67377970678444 44.91388067146442,-43.580569354508924 44.94006250638909,-43.485960359806526 44.961570560806464,-43.390180644032256 44.978353019929564,-43.29346094891072 44.99036945334439,-43.19603428065912 44.997590912410345,-43.098135348654836 45,-43 45,43 44.997590912410345,43.098135348654836 44.99036945334439,43.19603428065912 44.978353019929564,43.29346094891072 44.961570560806464,43.390180644032256 44.94006250638909,43.485960359806526 44.91388067146442,43.580569354508924 44.88308813036604,43.67377970678444 44.84775906502257,43.76536686473018 44.80797858624689,43.855110186860564 44.76384252869671,43.942793473651996 44.715457220000545,44.02820548838644 44.66293922460509,44.1111404660392 44.60641506296129,44.19139860898487 44.546020906725474,44.26878656832729 44.481902250709915,44.34311790969404 44.41421356237309,44.41421356237309 44.34311790969404,44.481902250709915 44.26878656832729,44.546020906725474 44.19139860898487,44.60641506296129 44.1111404660392,44.66293922460509 44.02820548838644,44.715457220000545 43.942793473651996,44.76384252869671 43.855110186860564,44.80797858624689 43.76536686473018,44.84775906502257 43.67377970678444,44.88308813036604 43.580569354508924,44.91388067146442 43.485960359806526,44.94006250638909 43.390180644032256,44.961570560806464 43.29346094891072,44.978353019929564 43.19603428065912,44.99036945334439 43.098135348654836,44.997590912410345 43,45 -43,45 -43.098135348654836,44.997590912410345 -43.19603428065912,44.99036945334439 -43.29346094891072,44.978353019929564 -43.390180644032256,44.961570560806464 -43.485960359806526,44.94006250638909 -43.580569354508924,44.91388067146442 -43.67377970678444,44.88308813036604 -43.76536686473018,44.84775906502257 -43.855110186860564,44.80797858624689 -43.942793473651996,44.76384252869671 -44.02820548838644,44.715457220000545 -44.1111404660392,44.66293922460509 -44.19139860898487,44.60641506296129 -44.26878656832729,44.546020906725474 -44.34311790969404,44.481902250709915 -44.41421356237309,44.41421356237309 -44.481902250709915,44.34311790969404 -44.546020906725474,44.26878656832729 -44.60641506296129,44.19139860898487 -44.66293922460509,44.1111404660392 -44.715457220000545,44.02820548838644 -44.76384252869671,43.942793473651996 -44.80797858624689,43.855110186860564 -44.84775906502257,43.76536686473018 -44.88308813036604,43.67377970678444 -44.91388067146442,43.580569354508924 -44.94006250638909,43.485960359806526 -44.961570560806464,43.390180644032256 -44.978353019929564,43.29346094891072 -44.99036945334439,43.19603428065912 -44.997590912410345,43.098135348654836 -45,43 -45,-43 -44.997590912410345,-43.098135348654836 -44.99036945334439,-43.19603428065912 -44.978353019929564,-43.29346094891072 -44.961570560806464,-43.390180644032256 -44.94006250638909,-43.485960359806526 -44.91388067146442,-43.580569354508924 -44.88308813036604,-43.67377970678444 -44.84775906502257,-43.76536686473018 -44.80797858624689,-43.855110186860564 -44.76384252869671,-43.942793473651996 -44.715457220000545,-44.02820548838644 -44.66293922460509,-44.1111404660392 -44.60641506296129,-44.19139860898487 -44.546020906725474,-44.26878656832729 -44.481902250709915,-44.34311790969404 -44.41421356237309,-44.41421356237309 -44.34311790969404,-44.481902250709915 -44.26878656832729,-44.546020906725474 -44.19139860898487,-44.60641506296129 -44.1111404660392,-44.66293922460509 -44.02820548838644,-44.715457220000545 -43.942793473651996,-44.76384252869671 -43.855110186860564,-44.80797858624689 -43.76536686473018,-44.84775906502257 -43.67377970678444,-44.88308813036604 -43.580569354508924,-44.91388067146442 -43.485960359806526,-44.94006250638909 -43.390180644032256,-44.96157056080646 -43.29346094891072,-44.978353019929564 -43.19603428065912,-44.99036945334439 -43.098135348654836,-44.997590912410345 -43,-45 -43,-45" data-type="line" data-label="outline" points="52.44444444444446,663.6074083407407 587.5555555555555,663.6074083407407 588.1661755027412,663.5924184624051 588.7753244129901,663.5474849393281 589.3815347932223,663.4727160203024 589.983346229534,663.3682918302031 590.5793089054628,663.2344639360506 591.1679870947222,663.0715547409638 591.747962619992,662.8799567074627 592.3178382694323,662.6601314119923 592.876241162688,662.4126084329437 593.4218260582791,662.1379840748536 593.9532785944045,661.8369199318552 594.469318455355,661.5101412938391 594.9687024559059,661.1584353991666 595.4502275362587,660.7826495381437 595.9127336603185,660.3836890118246 596.3551066103214,659.9625149510622 596.7762806710839,659.5201420010592 597.175241197403,659.0576358769995 597.5510270584258,658.5761107966466 597.9027329530984,658.0767267960957 598.2295115911145,657.5606869351452 598.530575734113,657.0292343990197 598.8052000922029,656.4836495034288 599.0527230712516,655.925246610173 599.272548366722,655.3553709607328 599.4641464002231,654.775395435463 599.6270555953099,654.1867172462036 599.7608834894625,653.5907545702748 599.8653076795617,652.988943133963 599.9400765985873,652.3827327537308 599.9850101216643,651.7735838434819 600,651.1629638962963 600,116.05185278518519 599.9850101216643,115.44123283799951 599.9400765985873,114.83208392775066 599.8653076795617,114.22587354751846 599.7608834894625,113.62406211120668 599.6270555953099,113.02809943527791 599.4641464002231,112.43942124601853 599.272548366722,111.85944572074868 599.0527230712516,111.2895700713085 598.8052000922029,110.73116717805277 598.530575734113,110.18558228246167 598.2295115911145,109.6541297463362 597.9027329530984,109.13808988538568 597.5510270584258,108.63870588483485 597.175241197403,108.15718080448204 596.7762806710839,107.69467468042228 596.3551066103214,107.25230173041928 595.9127336603185,106.83112766965684 595.4502275362587,106.43216714333778 594.9687024559059,106.05638128231493 594.469318455355,105.7046753876424 593.9532785944045,105.37789674962625 593.4218260582791,105.07683260662782 592.876241162688,104.80220824853785 592.3178382694323,104.55468526948914 591.747962619992,104.33485997401868 591.1679870947222,104.14326194051768 590.5793089054628,103.98035274543082 589.983346229534,103.84652485127828 589.3815347932223,103.742100661179 588.7753244129901,103.66733174215341 588.1661755027412,103.62239821907633 587.5555555555555,103.60740834074073 52.44444444444446,103.60740834074073 51.833824497258774,103.62239821907633 51.224675587009926,103.66733174215341 50.61846520677773,103.742100661179 50.01665377046595,103.84652485127828 49.420691094537176,103.98035274543082 48.83201290527779,104.14326194051768 48.25203738000795,104.33485997401868 47.68216173056777,104.55468526948914 47.12375883731204,104.80220824853785 46.578173941720934,105.07683260662782 46.04672140559546,105.37789674962625 45.53068154464495,105.7046753876424 45.031297544094116,106.05638128231493 44.549772463741306,106.43216714333778 44.08726633968155,106.83112766965684 43.64489338967854,107.25230173041928 43.223719328916104,107.69467468042228 42.824758802597046,108.15718080448204 42.4489729415742,108.63870588483485 42.09726704690166,109.13808988538568 41.77048840888551,109.6541297463362 41.469424265887085,110.18558228246167 41.19479990779712,110.73116717805277 40.94727692874841,111.2895700713085 40.72745163327795,111.85944572074868 40.53585359977694,112.43942124601853 40.37294440469009,113.02809943527791 40.23911651053754,113.62406211120668 40.13469232043826,114.22587354751846 40.059923401412675,114.83208392775066 40.0149898783356,115.44123283799951 40,116.05185278518519 40,651.1629638962963 40.0149898783356,651.7735838434819 40.059923401412675,652.3827327537308 40.13469232043826,652.988943133963 40.23911651053754,653.5907545702748 40.37294440469009,654.1867172462036 40.53585359977694,654.775395435463 40.72745163327795,655.3553709607328 40.94727692874841,655.925246610173 41.19479990779712,656.4836495034288 41.469424265887085,657.0292343990197 41.77048840888551,657.5606869351452 42.09726704690166,658.0767267960957 42.4489729415742,658.5761107966466 42.824758802597046,659.0576358769995 43.223719328916104,659.5201420010592 43.64489338967854,659.9625149510622 44.08726633968155,660.3836890118246 44.549772463741306,660.7826495381437 45.031297544094116,661.1584353991666 45.53068154464495,661.5101412938391 46.04672140559546,661.8369199318552 46.578173941720934,662.1379840748536 47.12375883731204,662.4126084329437 47.68216173056777,662.6601314119923 48.25203738000795,662.8799567074627 48.83201290527779,663.0715547409638 49.420691094537176,663.2344639360506 50.01665377046595,663.3682918302031 50.61846520677773,663.4727160203024 51.224675587009926,663.5474849393281 51.833824497258774,663.5924184624051 52.44444444444446,663.6074083407407 52.44444444444446,663.6074083407407" fill="none" stroke="#111827" stroke-width="0.6222222222222222"/></g><g><rect data-type="rect" data-label="node" data-x="-16.74997964999996" data-y="17.9499991" x="119.64444444444442" y="103.60740834074073" width="192.26691991111161" height="336.6222334222222" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="15.450020350000042" data-y="18.45" x="311.91136435555603" y="103.60740834074073" width="208.44419119999958" height="330.40000000000003" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="26.445" data-y="-37.45" x="381.53777777777776" y="569.6518527851852" width="206.01777777777778" height="93.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="22" data-y="-22.9" x="419.8666666666667" y="482.54074167407407" width="74.04444444444448" height="87.11111111111109" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-26.494067674327418" data-y="-38.35" x="51.833824497258774" y="580.8518527851852" width="206.62839772496346" height="82.75555555555547" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-37.974999999999994" data-y="-14.700000900000001" x="40" y="440.22964176296296" width="87.42222222222227" height="69.68887768888891" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-35" data-y="21.499999999999993" x="84.80000000000001" y="197.56296389629628" width="34.844444444444406" height="104.53333333333345" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-35" data-y="7.099999999999993" x="84.80000000000001" y="302.0962972296297" width="34.844444444444406" height="74.66666666666657" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-19.874982599999964" data-y="-14.700000900000001" x="164.13333333333333" y="440.22964176296296" width="64.40021653333378" height="69.68887768888891" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="17.6" data-y="-12" x="388.1333333333333" y="434.0074083407407" width="82.75555555555559" height="48.53333333333336" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-12.294982599999962" data-y="-18.11494599999989" x="228.53354986666713" y="451.42961936296297" width="29.928672355555108" height="89.7860170666653" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="12.07" data-y="-22.439999999999998" x="381.53777777777776" y="482.54074167407407" width="27.128888888888923" height="81.38666666666666" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-28" data-y="-24.3" x="114.35555555555553" y="509.91851945185186" width="62.84444444444449" height="49.77777777777777" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-36" data-y="-26" x="86.35555555555553" y="509.91851945185186" width="19.28888888888895" height="70.93333333333334" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="35.075" data-y="-13.024999999999999" x="520.3555555555556" y="395.4296305629629" width="35.777777777777715" height="138.4444444444444" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-40.1" data-y="-4.2550009000000015" x="40" y="379.93629722962964" width="60.97777777777776" height="60.29334453333331" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="29.125" data-y="-12" x="482.08888888888885" y="434.0074083407407" width="38.266666666666765" height="48.53333333333336" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-16.42" data-y="-28.51494689999989" x="177.2" y="541.2156364296283" width="81.26222222222225" height="39.63621635555694" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-41.275000000000006" data-y="-27.7" x="40" y="531.0740750074074" width="46.35555555555547" height="49.77777777777783" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-33.7" data-y="-5.5000009" x="100.97777777777776" y="395.4296305629629" width="18.666666666666657" height="44.80001120000003" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="38.6" data-y="18" x="520.3555555555556" y="166.4518527851852" width="79.64444444444439" height="210.3111111111111" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-28" data-y="-18" x="127.42222222222225" y="481.2962972296296" width="36.71111111111105" height="28.622222222222263" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-41.975" data-y="-22" x="40" y="509.91851945185186" width="37.64444444444442" height="21.15555555555551" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="37.375" data-y="-27.025" x="505.1111111111111" y="533.8740750074073" width="94.88888888888891" height="35.77777777777783" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-28" data-y="-12.4000009" x="136.13333333333333" y="440.22964176296296" width="19.28888888888889" height="41.066655466666646" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="30.075000000000003" data-y="-19" x="493.91111111111115" y="482.54074167407407" width="26.444444444444457" height="38.57777777777778" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-41.349067674327415" data-y="33.425" x="51.833824497258774" y="103.60740834074073" width="21.76617550274125" height="144.04444444444448" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-42.3" data-y="13.225000000000001" x="40" y="247.65185278518516" width="33.60000000000002" height="107.33333333333337" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-5.11999965" data-y="-13.869999100000001" x="258.46222222222224" y="451.42961936296297" width="59.36000435555553" height="36.9600112" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-28" data-y="-30" x="136.13333333333333" y="559.6962972296296" width="19.28888888888889" height="21.155555555555566" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-24" data-y="-30" x="164.13333333333333" y="559.6962972296296" width="13.066666666666663" height="21.155555555555566" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-35" data-y="32.4" x="84.79999999999998" y="166.4518527851852" width="34.84444444444449" height="31.111111111111086" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="37.6" data-y="41.45" x="520.3555555555556" y="103.60740834074068" width="67.19999999999993" height="44.177777777777834" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="40.5" data-y="36.4" x="544" y="147.7851861185185" width="56" height="18.666666666666686" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="3.174979649999959" data-y="-12.47" x="328.0886356444439" y="434.00740834074077" width="23.333586577778306" height="54.3822222222222" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.47" data-y="-14.27" x="351.4222222222222" y="456.40740834074074" width="30.115555555555545" height="31.98222222222222" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-35.900000000000006" data-y="41.45" x="73.59999999999994" y="103.60740834074068" width="46.04444444444448" height="44.177777777777834" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="42.375" data-y="-9.8125" x="567.3333333333334" y="376.7629638962963" width="32.66666666666663" height="135.8" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-37.400000000000006" data-y="36.655" x="73.59999999999994" y="147.7851861185185" width="27.377777777777823" height="15.493333333333311" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-42.3" data-y="2.594999999999999" x="40" y="354.9851861185185" width="33.60000000000002" height="24.951111111111118" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-20" data-y="-22.81494689999989" x="185.9111111111111" y="509.9185194518518" width="19.28888888888889" height="31.297116977776454" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.8850000000000025" data-y="-17.92" x="356.5866666666667" y="488.38963056296296" width="24.951111111111118" height="13.439999999999998" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="41.475" data-y="-22.4375" x="556.1333333333333" y="512.5629638962963" width="43.866666666666674" height="21.311111111111018" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="37.475" data-y="-0.3999999999999986" x="539.0222222222222" y="376.7629638962963" width="28.31111111111113" height="18.66666666666663" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8" data-y="-9.9" x="360.1333333333333" y="434.00740834074077" width="19.28888888888889" height="22.399999999999977" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-6.0000000000000036" data-y="-44" x="264" y="651.1629638962963" width="37.333333333333314" height="12.444444444444343" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.82" data-y="-43.129999999999995" x="368.22222222222223" y="640.3362972296295" width="13.315555555555534" height="23.271111111111168" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="28.85" data-y="-26" x="493.91111111111115" y="532.3185194518519" width="11.199999999999932" height="26.133333333333326" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="30.975" data-y="-23.125" x="505.1111111111111" y="521.1185194518519" width="15.244444444444525" height="12.755555555555475" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-25.75" data-y="-10.7000009" x="155.42222222222222" y="440.22964176296296" width="8.711111111111109" height="19.911099911111137" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="1.1102230246251565e-16" data-y="-9.237496449999945" x="316.2669112000005" y="434.0074083407407" width="7.466177599999014" height="14.155511377777145" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-32.7" data-y="-30" x="105.64444444444442" y="559.6962972296296" width="21.77777777777777" height="21.155555555555566" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.82" data-y="-31.57" x="368.22222222222223" y="577.1185194518519" width="13.315555555555534" height="5.848888888888837" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.82" data-y="-31.569999999999993" x="258.46222222222224" y="577.1185194518519" width="13.315555555555534" height="5.848888888888837" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-7.884999999999998" data-y="-17.92" x="258.46222222222224" y="488.38963056296296" width="24.951111111111118" height="13.439999999999998" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="0.47497999999995943" data-y="-14.232501549999945" x="317.82222657777777" y="455.94076096296226" width="10.2664090666662" height="32.448869600000705" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.82" data-y="-29.029999999999998" x="258.46222222222224" y="561.3140750074074" width="13.315555555555534" height="5.8488888888889505" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.82" data-y="-29.03" x="368.22222222222223" y="561.3140750074074" width="13.315555555555534" height="5.8488888888889505" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="25.15" data-y="-12" x="470.8888888888889" y="445.20740834074076" width="11.199999999999932" height="26.133333333333326" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="2.3749999999999982" data-y="-44" x="301.3333333333333" y="651.1629638962963" width="66.88888888888891" height="12.444444444444343" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="15.15" data-y="-26" x="408.6666666666667" y="532.3185194518519" width="11.199999999999989" height="26.133333333333326" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="15.15" data-y="-18.6" x="408.6666666666667" y="482.54074167407407" width="11.199999999999989" height="33.60000000000002" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.82" data-y="-34.11" x="368.22222222222223" y="592.9229638962963" width="13.315555555555534" height="5.848888888888837" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.82" data-y="-34.10999999999999" x="258.46222222222224" y="592.9229638962962" width="13.315555555555534" height="5.8488888888889505" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-44.04786313053259" data-y="-37.4125" x="40.0149898783356" y="580.8518527851852" width="11.818834618923177" height="71.08888888888885" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-43.43175110669251" data-y="33.36654406518302" x="47.68216173056777" y="104.33485997401868" width="4.151662766691004" height="143.31699281116647" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-15.874982599999964" data-y="-22.81494689999989" x="213.9111111111111" y="509.9185194518518" width="14.622438755556004" height="31.297116977776454" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="43.98917650996478" data-y="-36.5775" x="587.5555555555555" y="569.6518527851852" width="12.309752124006195" height="83.09777777777776" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="43.95694033573221" data-y="40.740284677254465" x="587.5555555555555" y="112.43942124601847" width="11.908590844667629" height="35.34576487250004" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="43.85772861000027" data-y="-43.64160274419322" x="587.5555555555555" y="652.7496305629629" width="10.673956035558945" height="4.8110563721824064" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-9.999999999999943" data-y="-10" x="239.7335274666671" y="440.22964176296296" width="36.088500622222" height="11.199977600000011" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-3.2999970499999405" data-y="-10" x="287.0220056888891" y="440.22964176296296" width="24.889358666666908" height="11.199977600000011" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="43.740951125354954" data-y="43.96184363210148" x="587.5555555555555" y="107.69467468042234" width="9.220725115528353" height="4.744746565596188" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-43.756174455513964" data-y="-43.769606781186546" x="43.64489338967854" y="651.940741674074" width="8.188931107580231" height="8.021773276988142" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="43.514102744193224" data-y="-44.37183135419349" x="587.5555555555555" y="657.5606869351452" width="6.397723038848994" height="4.27623299670995" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-44.37786815903729" data-y="32.571730474455364" x="40.05992340141262" y="114.22587354751846" width="7.622238329155152" height="133.4259792376667" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-44.08979021355164" data-y="43.853837255641906" x="43.64489338967854" y="107.25230173041928" width="4.037268340889227" height="6.9735718170991845" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-33.75" data-y="-26" x="105.64444444444442" y="531.0740750074074" width="8.711111111111165" height="28.622222222222263" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.82" data-y="-23.95" x="258.46222222222224" y="529.7051861185186" width="13.315555555555534" height="5.848888888888837" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="1.2700000000000014" data-y="-17.92" x="324.97777777777776" y="488.38963056296296" width="5.848888888888894" height="13.439999999999998" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="11.377500000000005" data-y="-29.439999999999998" x="381.53777777777776" y="563.9274083407407" width="18.511111111111177" height="5.72444444444443" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.82" data-y="-42.129999999999995" x="258.46222222222224" y="640.3362972296295" width="13.315555555555534" height="10.826666666666824" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.82" data-y="-21.41" x="258.46222222222224" y="513.9007416740741" width="13.315555555555534" height="5.848888888888837" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="7.84" x="73.6" y="332.5229638962963" width="11.199999999999989" height="4.604444444444425" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-30.25" data-y="-10.7000009" x="127.42222222222225" y="440.22964176296296" width="8.711111111111052" height="19.911099911111137" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="0.9499599999999192" data-y="-10.6250051" x="323.7330887999995" y="443.49634140740807" width="4.355546844444461" height="12.444419555554191" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.82" data-y="-23.95" x="368.22222222222223" y="529.7051861185186" width="13.315555555555534" height="5.848888888888837" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9499599999999192" data-y="-10.262502650000055" x="311.91136435555603" y="443.49634140740807" width="4.355546844444461" height="7.9332779555549" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.82" data-y="-21.41" x="368.22222222222223" y="513.9007416740741" width="13.315555555555534" height="5.848888888888837" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="3.810000000000002" data-y="-17.92" x="340.78222222222223" y="488.38963056296296" width="5.848888888888894" height="13.439999999999998" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-3.8099999999999983" data-y="-17.92" x="293.36888888888893" y="488.38963056296296" width="5.848888888888837" height="13.439999999999998" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.82" data-y="-26.490000000000002" x="368.22222222222223" y="545.5096305629629" width="13.315555555555534" height="5.8488888888889505" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.82" data-y="-36.64999999999999" x="258.46222222222224" y="608.7274083407407" width="13.315555555555534" height="5.8488888888889505" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.82" data-y="-26.49" x="258.46222222222224" y="545.5096305629629" width="13.315555555555534" height="5.8488888888889505" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.82" data-y="-39.19" x="368.22222222222223" y="624.5318527851852" width="13.315555555555534" height="5.848888888888837" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.82" data-y="-36.65" x="368.22222222222223" y="608.7274083407408" width="13.315555555555534" height="5.848888888888837" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.82" data-y="-39.19" x="258.46222222222224" y="624.5318527851852" width="13.315555555555534" height="5.848888888888837" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="10.420000000000002" data-y="-13.8" x="381.53777777777776" y="456.40740834074074" width="6.595555555555563" height="26.133333333333326" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-1.2699999999999987" data-y="-17.92" x="309.17333333333335" y="488.38963056296296" width="5.848888888888894" height="13.439999999999998" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-22.25" data-y="-24.51494689999989" x="177.2" y="531.0740750074074" width="8.711111111111109" height="10.141561422220889" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-17.75" data-y="-24.51494689999989" x="205.2" y="531.0740750074074" width="8.711111111111109" height="10.141561422220889" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="15.15" data-y="-21.700000000000003" x="408.6666666666667" y="516.1407416740741" width="11.199999999999989" height="4.97777777777776" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="35.6" data-y="36.4" x="539.0222222222222" y="147.7851861185185" width="4.97777777777776" height="18.666666666666686" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="23.080000000000002" x="73.6" y="237.6962972296296" width="11.199999999999989" height="4.604444444444454" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="25.620000000000005" x="73.6" y="221.89185278518514" width="11.199999999999989" height="4.604444444444454" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="28.160000000000004" x="73.6" y="206.0874083407407" width="11.199999999999989" height="4.604444444444454" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="30.700000000000003" x="73.6" y="190.28296389629625" width="11.199999999999989" height="4.604444444444454" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="33.24" x="73.6" y="174.4785194518518" width="11.199999999999989" height="4.604444444444482" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="18" x="73.6" y="269.3051861185185" width="11.199999999999989" height="4.604444444444425" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="20.54" x="73.6" y="253.50074167407408" width="11.199999999999989" height="4.604444444444454" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="15.46" x="73.6" y="285.10963056296293" width="11.199999999999989" height="4.604444444444482" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="38.85" data-y="-18.3125" x="556.1333333333333" y="482.54074167407407" width="11.200000000000045" height="30.02222222222224" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="38.85" data-y="-12" x="556.1333333333333" y="445.20740834074076" width="11.200000000000045" height="26.133333333333326" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="38.85" data-y="-4.599999999999994" x="556.1333333333333" y="395.4296305629629" width="11.200000000000045" height="33.599999999999966" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="38.85" data-y="-7.699999999999995" x="556.1333333333333" y="429.0296305629629" width="11.200000000000045" height="4.977777777777817" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="10.379999999999999" x="73.6" y="316.7185194518519" width="11.199999999999989" height="4.604444444444425" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="12.92" x="73.6" y="300.9140750074074" width="11.199999999999989" height="4.604444444444425" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="2.759999999999999" x="73.6" y="364.1318527851852" width="11.199999999999989" height="4.604444444444482" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="5.3" x="73.6" y="348.3274083407407" width="11.199999999999989" height="4.604444444444482" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-9.445000000000002" data-y="-44" x="258.46222222222224" y="651.1629638962963" width="5.537777777777762" height="12.444444444444343" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="13.557500000000005" data-y="-29.439999999999998" x="400.04888888888894" y="563.9274083407407" width="8.617777777777746" height="5.72444444444443" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.889999999999999" data-y="-40.459999999999994" x="369.0933333333333" y="630.380741674074" width="12.444444444444457" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.889999999999999" data-y="-37.92" x="369.0933333333333" y="614.5762972296296" width="12.444444444444457" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.89" data-y="-35.379999999999995" x="369.09333333333336" y="598.7718527851852" width="12.4444444444444" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.89" data-y="-32.84" x="369.09333333333336" y="582.9674083407408" width="12.4444444444444" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.89" data-y="-30.3" x="369.09333333333336" y="567.1629638962963" width="12.4444444444444" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.89" data-y="-27.76" x="369.09333333333336" y="551.3585194518519" width="12.4444444444444" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.89" data-y="-25.22" x="369.09333333333336" y="535.5540750074074" width="12.4444444444444" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.890000000000002" data-y="-22.68" x="369.09333333333336" y="519.7496305629629" width="12.444444444444457" height="9.955555555555634" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.890000000000002" data-y="-20.14" x="369.09333333333336" y="503.9451861185185" width="12.444444444444457" height="9.955555555555577" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.890000000000002" data-y="-40.459999999999994" x="258.4622222222222" y="630.380741674074" width="12.444444444444457" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.890000000000002" data-y="-37.92" x="258.4622222222222" y="614.5762972296296" width="12.444444444444457" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.89" data-y="-35.379999999999995" x="258.46222222222224" y="598.7718527851852" width="12.4444444444444" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.89" data-y="-32.83999999999999" x="258.46222222222224" y="582.9674083407407" width="12.4444444444444" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.89" data-y="-30.299999999999997" x="258.46222222222224" y="567.1629638962963" width="12.4444444444444" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.89" data-y="-27.759999999999998" x="258.46222222222224" y="551.3585194518519" width="12.4444444444444" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.89" data-y="-25.22" x="258.46222222222224" y="535.5540750074074" width="12.4444444444444" height="9.95555555555552" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.889999999999999" data-y="-22.68" x="258.46222222222224" y="519.7496305629629" width="12.444444444444457" height="9.955555555555634" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.889999999999999" data-y="-20.14" x="258.46222222222224" y="503.9451861185185" width="12.444444444444457" height="9.955555555555577" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="5.080000000000002" data-y="-17.84" x="346.6311111111111" y="488.38963056296296" width="9.955555555555577" height="12.444444444444457" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="2.5400000000000014" data-y="-17.84" x="330.82666666666665" y="488.38963056296296" width="9.955555555555577" height="12.444444444444457" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="1.4432899320127035e-15" data-y="-17.84" x="315.02222222222224" y="488.38963056296296" width="9.95555555555552" height="12.444444444444457" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-2.539999999999999" data-y="-17.84" x="299.21777777777777" y="488.38963056296296" width="9.955555555555577" height="12.444444444444457" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-5.079999999999998" data-y="-17.84" x="283.41333333333336" y="488.38963056296296" width="9.955555555555577" height="12.444444444444457" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="0.9499599999999192" data-y="-9.000002000000109" x="323.7330887999995" y="435.71850016296366" width="4.355546844444461" height="7.777841244444403" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-0.949959999999919" data-y="-9.000002000000109" x="311.9113643555561" y="435.71850016296366" width="4.3555468444444045" height="7.777841244444403" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-5.551115123125783e-17" data-y="-10.999997999999891" x="317.82222657777777" y="448.16291971851786" width="4.355546844444461" height="7.777841244444403" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="1.4899999999999984" x="73.6" y="368.73629722962966" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="4.029999999999999" x="73.6" y="352.9318527851852" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="6.57" x="73.6" y="337.1274083407407" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="9.11" x="73.6" y="321.3229638962963" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="11.65" x="73.6" y="305.51851945185183" width="11.199999999999989" height="11.200000000000045" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="14.19" x="73.6" y="289.7140750074074" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="16.73" x="73.6" y="273.90963056296295" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="19.270000000000003" x="73.6" y="258.10518611851853" width="11.199999999999989" height="11.199999999999932" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="21.810000000000002" x="73.6" y="242.30074167407406" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="24.35" x="73.6" y="226.49629722962962" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="26.89" x="73.6" y="210.69185278518518" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="29.43" x="73.6" y="194.88740834074073" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="31.97" x="73.6" y="179.0829638962963" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.7" data-y="34.510000000000005" x="73.6" y="163.27851945185182" width="11.199999999999989" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-13.799966999999924" data-y="-10" x="228.53354986666716" y="440.22964176296296" width="11.199977599999954" height="11.199977600000011" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-6.200032999999962" data-y="-10" x="275.8220280888891" y="440.22964176296296" width="11.199977600000011" height="11.199977600000011" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="10.25" data-y="-9" x="379.4222222222222" y="435.2518527851852" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="10.25" data-y="-11" x="379.4222222222222" y="447.69629722962964" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="5.75" data-y="-9" x="351.4222222222222" y="435.2518527851852" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="5.75" data-y="-11" x="351.4222222222222" y="447.69629722962964" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-25.75" data-y="-13" x="155.42222222222222" y="460.1407416740741" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-25.75" data-y="-15" x="155.42222222222222" y="472.58518611851855" width="8.711111111111109" height="8.711111111111052" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-30.25" data-y="-13" x="127.42222222222222" y="460.1407416740741" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-30.25" data-y="-15" x="127.42222222222222" y="472.58518611851855" width="8.711111111111109" height="8.711111111111052" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-25.75" data-y="-29" x="155.42222222222222" y="559.6962972296296" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-25.75" data-y="-31" x="155.42222222222222" y="572.1407416740741" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-30.25" data-y="-29" x="127.42222222222222" y="559.6962972296296" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-30.25" data-y="-31" x="127.42222222222222" y="572.1407416740741" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-33.75" data-y="-21" x="105.64444444444442" y="509.91851945185186" width="8.711111111111165" height="8.711111111111052" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-33.75" data-y="-23" x="105.64444444444442" y="522.3629638962963" width="8.711111111111165" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.25" data-y="-21" x="77.64444444444442" y="509.91851945185186" width="8.711111111111165" height="8.711111111111052" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.25" data-y="-23" x="77.64444444444442" y="522.3629638962963" width="8.711111111111165" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-17.75" data-y="-21" x="205.2" y="509.91851945185186" width="8.711111111111109" height="8.711111111111052" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-17.75" data-y="-23" x="205.2" y="522.3629638962963" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-22.25" data-y="-21" x="177.2" y="509.91851945185186" width="8.711111111111109" height="8.711111111111052" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-22.25" data-y="-23" x="177.2" y="522.3629638962963" width="8.711111111111109" height="8.711111111111109" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="38.85" data-y="-9" x="556.1333333333333" y="434.0074083407407" width="11.200000000000045" height="11.200000000000045" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="38.85" data-y="-15" x="556.1333333333333" y="471.3407416740741" width="11.200000000000045" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="25.15" data-y="-9" x="470.8888888888889" y="434.0074083407407" width="11.199999999999932" height="11.200000000000045" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="25.15" data-y="-15" x="470.8888888888889" y="471.3407416740741" width="11.199999999999932" height="11.199999999999989" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="28.85" data-y="-23" x="493.91111111111115" y="521.1185194518519" width="11.199999999999932" height="11.200000000000045" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="28.85" data-y="-29" x="493.91111111111115" y="558.4518527851852" width="11.199999999999932" height="11.199999999999932" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="15.15" data-y="-23" x="408.6666666666667" y="521.1185194518519" width="11.199999999999989" height="11.200000000000045" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="15.15" data-y="-29" x="408.6666666666667" y="558.4518527851852" width="11.199999999999989" height="11.199999999999932" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="33.7" data-y="36.4" x="520.3555555555556" y="147.7851861185185" width="18.66666666666663" height="18.666666666666686" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-33.7" data-y="36.4" x="100.97777777777776" y="147.7851861185185" width="18.666666666666657" height="18.666666666666686" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="33.7" data-y="-0.3999999999999986" x="520.3555555555556" y="376.7629638962963" width="18.66666666666663" height="18.66666666666663" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-33.7" data-y="-0.3999999999999986" x="100.97777777777776" y="376.7629638962963" width="18.666666666666657" height="18.66666666666663" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-31" x="271.77777777777777" y="501.82963056296296" width="96.44444444444446" height="149.33333333333337" fill="red" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9499599999999192" data-y="-8.237498450000055" x="311.91136435555603" y="434.00740834074077" width="4.355546844444461" height="1.7110918222228975" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="0.949959999999919" data-y="-8.237498450000055" x="323.7330887999995" y="434.00740834074077" width="4.3555468444444045" height="1.7110918222228975" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="5.75" data-y="-8.200000000000001" x="351.4222222222222" y="434.00740834074077" width="8.711111111111109" height="1.2444444444444116" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="10.250000000000002" data-y="-8.200000000000001" x="379.4222222222222" y="434.00740834074077" width="8.711111111111109" height="1.2444444444444116" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-30.249999999999996" data-y="-14" x="127.42222222222227" y="468.8518527851852" width="8.711111111111052" height="3.7333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-36.5" data-y="0.8449999999999998" x="84.80000000000001" y="376.7629638962963" width="16.17777777777775" height="3.173333333333346" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-25.75" data-y="-14" x="155.42222222222222" y="468.8518527851852" width="8.711111111111109" height="3.7333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="10.250000000000002" data-y="-10" x="379.4222222222222" y="443.9629638962963" width="8.711111111111109" height="3.7333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-8.82" data-y="-19.17" x="258.46222222222224" y="501.82963056296296" width="13.315555555555534" height="2.115555555555602" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="8.82" data-y="-19.17" x="368.22222222222223" y="501.82963056296296" width="13.315555555555534" height="2.115555555555602" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-33.75" data-y="-22" x="105.64444444444447" y="518.6296305629629" width="8.711111111111052" height="3.7333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-22.25" data-y="-22" x="177.20000000000002" y="518.6296305629629" width="8.711111111111052" height="3.7333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-38.25" data-y="-22" x="77.64444444444442" y="518.6296305629629" width="8.711111111111165" height="3.7333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-44.99879545620517" data-y="-37.39906767432742" x="40" y="580.8518527851852" width="0.01498987833559795" height="70.9217310582967" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="44.98917650996478" data-y="-36.45" x="599.8653076795617" y="569.6518527851852" width="0.13469232043826196" height="81.51111111111118" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-44.9951847266722" data-y="32.474067674327415" x="40" y="115.44123283799951" width="0.059923401412618205" height="132.21061994718568" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-0.47497999999995966" data-y="-10.637495549999947" x="316.2669112000005" y="448.16291971851786" width="1.5553153777772764" height="3.2666996444451115" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-30.25" data-y="-30" x="127.42222222222219" y="568.4074083407407" width="8.711111111111165" height="3.7333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-25.75" data-y="-30" x="155.42222222222222" y="568.4074083407407" width="8.711111111111109" height="3.7333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-36.5" data-y="35.155" x="84.80000000000001" y="163.27851945185182" width="16.17777777777775" height="3.1733333333333746" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="44.95694033573221" data-y="40.45" x="599.4641464002232" y="116.05185278518519" width="0.5358535997768286" height="31.73333333333329" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="5.75" data-y="-10" x="351.4222222222222" y="443.9629638962963" width="8.711111111111109" height="3.7333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-17.75" data-y="-22" x="205.2" y="518.6296305629629" width="8.711111111111109" height="3.7333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="5.080000000000002" data-y="-18.92" x="346.6311111111111" y="500.8340750074074" width="9.955555555555577" height="0.9955555555555406" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.819999999999999" data-y="-40.459999999999994" x="368.22222222222223" y="630.380741674074" width="0.8711111111110768" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="0.47497999999995955" data-y="-10.999997999999891" x="322.17777342222223" y="448.16291971851786" width="1.5553153777772764" height="7.777841244444403" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.82" data-y="-32.84" x="368.22222222222223" y="582.9674083407408" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.82" data-y="-30.3" x="368.22222222222223" y="567.1629638962963" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-7.82" data-y="-32.83999999999999" x="270.90666666666664" y="582.9674083407407" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-7.82" data-y="-30.299999999999997" x="270.90666666666664" y="567.1629638962963" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-5.079999999999997" data-y="-18.92" x="283.41333333333336" y="500.8340750074074" width="9.955555555555577" height="0.9955555555555406" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-7.82" data-y="-27.759999999999998" x="270.90666666666664" y="551.3585194518519" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.82" data-y="-27.76" x="368.22222222222223" y="551.3585194518519" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.82" data-y="-35.379999999999995" x="368.22222222222223" y="598.7718527851852" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-7.82" data-y="-35.37999999999999" x="270.90666666666664" y="598.7718527851852" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-44.70590223739172" data-y="-43.16051714032956" x="40.0149898783356" y="651.940741674074" width="3.6299035113429454" height="0.4419910796567592" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="44.84690511996505" data-y="-43.27423047445536" x="598.2295115911145" y="652.7496305629629" width="1.6357960884472504" height="0.23931257100002767" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-7.82" data-y="-25.22" x="270.90666666666664" y="535.5540750074074" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-7.819999999999999" data-y="-22.68" x="270.9066666666667" y="519.7496305629629" width="0.8711111111110768" height="9.955555555555634" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="1.4432899320127035e-15" data-y="-18.92" x="315.02222222222224" y="500.8340750074074" width="9.95555555555552" height="0.9955555555555406" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="2.5400000000000014" data-y="-18.92" x="330.82666666666665" y="500.8340750074074" width="9.955555555555577" height="0.9955555555555406" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-7.820000000000001" data-y="-40.459999999999994" x="270.90666666666664" y="630.380741674074" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-7.819999999999999" data-y="-20.14" x="270.9066666666667" y="503.94518611851856" width="0.8711111111110768" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.82" data-y="-25.22" x="368.22222222222223" y="535.5540750074074" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.820000000000001" data-y="-22.68" x="368.22222222222223" y="519.7496305629629" width="0.8711111111111336" height="9.955555555555634" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.820000000000001" data-y="-20.14" x="368.22222222222223" y="503.94518611851856" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-2.539999999999999" data-y="-18.92" x="299.21777777777777" y="500.8340750074074" width="9.955555555555577" height="0.9955555555555406" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-7.820000000000001" data-y="-37.92" x="270.90666666666664" y="614.5762972296296" width="0.8711111111111336" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="7.819999999999999" data-y="-37.92" x="368.22222222222223" y="614.5762972296296" width="0.8711111111110768" height="9.95555555555552" fill="#dbeafe" stroke="black" stroke-width="0.1607142857142857"/></g><text data-type="text" data-label="Layer z=0" data-x="0" data-y="54.01666696666666" x="320" y="47.50370277037041" fill="black" font-size="3.111111111111111" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=0</text><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="708" stroke="#666" stroke-width="0.5"/><line id="crosshair-v" x1="0" x2="640" stroke="#666" stroke-width="0.5"/><text id="coordinates" font-family="monospace" font-size="12" fill="#666"></text></g><script><![CDATA[
|
|
2
|
+
document.currentScript.parentElement.addEventListener('mousemove', (e) => {
|
|
3
|
+
const svg = e.currentTarget;
|
|
4
|
+
const rect = svg.getBoundingClientRect();
|
|
5
|
+
const x = e.clientX - rect.left;
|
|
6
|
+
const y = e.clientY - rect.top;
|
|
7
|
+
const crosshair = svg.getElementById('crosshair');
|
|
8
|
+
const h = svg.getElementById('crosshair-h');
|
|
9
|
+
const v = svg.getElementById('crosshair-v');
|
|
10
|
+
const coords = svg.getElementById('coordinates');
|
|
11
|
+
|
|
12
|
+
crosshair.style.display = 'block';
|
|
13
|
+
h.setAttribute('x1', '0');
|
|
14
|
+
h.setAttribute('x2', '640');
|
|
15
|
+
h.setAttribute('y1', y);
|
|
16
|
+
h.setAttribute('y2', y);
|
|
17
|
+
v.setAttribute('x1', x);
|
|
18
|
+
v.setAttribute('x2', x);
|
|
19
|
+
v.setAttribute('y1', '0');
|
|
20
|
+
v.setAttribute('y2', '708');
|
|
21
|
+
|
|
22
|
+
// Calculate real coordinates using inverse transformation
|
|
23
|
+
const matrix = {"a":6.222222222222222,"c":0,"e":320,"b":0,"d":-6.222222222222222,"f":383.60740834074073};
|
|
24
|
+
// Manually invert and apply the affine transform
|
|
25
|
+
// Since we only use translate and scale, we can directly compute:
|
|
26
|
+
// x' = (x - tx) / sx
|
|
27
|
+
// y' = (y - ty) / sy
|
|
28
|
+
const sx = matrix.a;
|
|
29
|
+
const sy = matrix.d;
|
|
30
|
+
const tx = matrix.e;
|
|
31
|
+
const ty = matrix.f;
|
|
32
|
+
const realPoint = {
|
|
33
|
+
x: (x - tx) / sx,
|
|
34
|
+
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
38
|
+
coords.setAttribute('x', (x + 5).toString());
|
|
39
|
+
coords.setAttribute('y', (y - 5).toString());
|
|
40
|
+
});
|
|
41
|
+
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
42
|
+
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
43
|
+
});
|
|
44
|
+
]]></script></svg>
|