diff --git a/README.md b/README.md index b4b5d22..3ff54e9 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ const coonsPatch = getCoonsPatch( const point = coonsPatch.api.getPoint(0.5, 0.75) // Get an object wity `xAxis` and `yAxis` keys. Each key contains an Array containing data representing all the sub-curves that make up each curve along that axis. -const curves = coonsPatch.api.getyLines() +const curves = coonsPatch.api.getLines() // Get an array of points representing every grid intersection const intersections = coonsPatch.api.getIntersections() @@ -126,7 +126,7 @@ The `coonsPatch` object comprises of two fields, `config` and `api`. TBD -#### getyLines +#### getLines TBD diff --git a/package.json b/package.json index 61798c0..5f2a08d 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "prepare": "husky", "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js ./tests", "test-watch": "node --experimental-vm-modules node_modules/jest/bin/jest.js ./tests --watchAll", + "test-snapshot": "node ./tests/snapshotData", "lint": "pnpm run lint-prettier && pnpm run lint-eslint", "lint-prettier": "prettier . --write", "lint-eslint": "eslint './**/*.{js,jsx,cjs}'", diff --git a/src/utils/getCoonsPatch.js b/src/utils/getCoonsPatch.js index db2e8b5..98eed51 100644 --- a/src/utils/getCoonsPatch.js +++ b/src/utils/getCoonsPatch.js @@ -12,7 +12,7 @@ import { getStraightLineOnXAxis, getStraightLineOnYAxis, } from './surface' -import { isArray } from './types' +import { isInt, isPlainObj } from './types' import { validateBoundingCurves, validateGetSquareArguments, @@ -26,11 +26,22 @@ import { const buildStepSpacing = (v) => { const spacing = [] for (let idx = 0; idx < v; idx++) { - spacing.push(1) + spacing.push({ value: 1 }) } return spacing } +const processSteps = (steps) => + steps.map((step) => { + if (isPlainObj(step)) { + return step + } else { + return { + value: step, + } + } + }) + // ----------------------------------------------------------------------------- // Exports // ----------------------------------------------------------------------------- @@ -39,23 +50,16 @@ const getCoonsPatch = (boundingCurves, grid) => { validateBoundingCurves(boundingCurves) validateGrid(grid) - // Columns can be either an int, or an array containing ints, each - // representing the width of that column. If the total widths are different to - // the width of the shape described by the bounding curves, they will be - // mapped to the the width of the shape, acting as ratios instead of absolute - // widths. If the supplied value is an int, we create an array with a length - // of the int, with a uniform value for each item. - const columns = isArray(grid.columns) - ? grid.columns - : buildStepSpacing(grid.columns) - - // Rows can be either an int, or an array containing ints, each representing - // the height of that column. If the total heights are different to the height - // of the shape described by the bounding curves, they will be mapped to the - // the height of the shape, acting as ratios instead of absolute heights. If - // the supplied value is an int, we create an array with a length of the int, - // with a uniform value for each item. - const rows = isArray(grid.rows) ? grid.rows : buildStepSpacing(grid.rows) + const columns = isInt(grid.columns) + ? buildStepSpacing(grid.columns) + : processSteps(grid.columns) + + const rows = isInt(grid.rows) + ? buildStepSpacing(grid.rows) + : processSteps(grid.rows) + + console.log('@columns', columns) + console.log('@rows', rows) const gutter = grid.gutter diff --git a/src/utils/interpolate/even.js b/src/utils/interpolate/even.js index c25c74d..3c080a5 100644 --- a/src/utils/interpolate/even.js +++ b/src/utils/interpolate/even.js @@ -51,7 +51,6 @@ const findClosestPointOnCurve = (lut, curve, targetLength, precision) => { // We only want to do this once per curve as it is very expensive const getLutForCurve = memoize((curve, precision) => { - console.log(curve) const pointsApproximate = getApproximatePointsOnCurve(curve, precision) return getLut(pointsApproximate) }) diff --git a/src/utils/surface.js b/src/utils/surface.js index 414e9e1..35ecf35 100644 --- a/src/utils/surface.js +++ b/src/utils/surface.js @@ -31,7 +31,7 @@ const getCoordinateOnSurface = ( ) } -const addAll = (list) => list.reduce((total, value) => total + value, 0) +const addAll = (list) => list.reduce((total, { value }) => total + value, 0) // ----------------------------------------------------------------------------- // Exports @@ -224,13 +224,13 @@ export const getLinesOnXAxis = ( for (let columnIdx = 0; columnIdx <= columnsTotalCount; columnIdx++) { const lineSections = [] - const columnValue = columns[columnIdx] + const columnValue = columns[columnIdx]?.value const columnWidthRatio = columnValue / columnsTotalValue let rowStartRatio = 0 for (let rowIdx = 0; rowIdx < rowsTotalCount; rowIdx++) { - const rowValue = rows[rowIdx] + const rowValue = rows[rowIdx]?.value const rowRatio = rowValue / rowsTotalValue const rowEndRatio = rowStartRatio + rowRatio @@ -280,13 +280,13 @@ export const getLinesOnYAxis = ( for (let rowIdx = 0; rowIdx <= rowsTotalCount; rowIdx++) { const lineSections = [] - const rowValue = rows[rowIdx] + const rowValue = rows[rowIdx]?.value const rowRatio = rowValue / rowsTotalValue let columnStartRatio = 0 for (let columnIdx = 0; columnIdx < columnsTotalCount; columnIdx++) { - const columnValue = columns[columnIdx] + const columnValue = columns[columnIdx]?.value const columnWidthRatio = columnValue / columnsTotalValue const columnEndRatio = columnStartRatio + columnWidthRatio @@ -327,13 +327,13 @@ export const getGridIntersections = ( let rowStartRatio = 0 for (let rowIdx = 0; rowIdx <= rowsTotal; rowIdx++) { - const rowValue = rows[rowIdx] + const rowValue = rows[rowIdx]?.value const rowRatio = rowValue / rowsTotalValue let columnStartRatio = 0 for (let columnIdx = 0; columnIdx <= columnsTotal; columnIdx++) { - const columnValue = columns[columnIdx] + const columnValue = columns[columnIdx]?.value const columnWidthRatio = columnValue / columnsTotalValue const point = getPointOnSurface( diff --git a/src/utils/validation.js b/src/utils/validation.js index 24331b9..dae436d 100644 --- a/src/utils/validation.js +++ b/src/utils/validation.js @@ -102,14 +102,18 @@ export const validateGrid = (grid) => { } if (!isArray(grid.rows) && !isInt(grid.rows)) { - throw new Error('grid.rows must be an Array of Ints or Int') + throw new Error( + 'grid.rows must be an Int, an Array of Ints, or an Array of objects' + ) } } export const validateGetSquareArguments = (x, y, columns, rows) => { - if (x >= columns || y >= rows) { + const columnCount = columns.length + const rowCount = rows.length + if (x >= columnCount || y >= rowCount) { throw new Error( - `Grid is '${columns}' x '${rows}' but you passed x:'${x}' and y:'${y}'` + `Grid is '${columnCount}' x '${rowCount}' but you passed x:'${x}' and y:'${y}'` ) } } diff --git a/tests/fixtures.js b/tests/fixtures.js new file mode 100644 index 0000000..93766c6 --- /dev/null +++ b/tests/fixtures.js @@ -0,0 +1,78 @@ +// ----------------------------------------------------------------------------- +// Const +// ----------------------------------------------------------------------------- + +export const boundsValid = { + top: { + startPoint: { x: 0, y: 0 }, + endPoint: { x: 100, y: 0 }, + controlPoint1: { x: 10, y: -10 }, + controlPoint2: { x: 90, y: -10 }, + }, + bottom: { + startPoint: { x: 0, y: 100 }, + endPoint: { x: 100, y: 100 }, + controlPoint1: { x: -10, y: 110 }, + controlPoint2: { x: 110, y: 110 }, + }, + left: { + startPoint: { x: 0, y: 0 }, + endPoint: { x: 0, y: 100 }, + controlPoint1: { x: -10, y: -10 }, + controlPoint2: { x: -10, y: 110 }, + }, + right: { + startPoint: { x: 100, y: 0 }, + endPoint: { x: 100, y: 100 }, + controlPoint1: { x: 110, y: -10 }, + controlPoint2: { x: 110, y: 110 }, + }, +} + +// ----------------------------------------------------------------------------- +// Exports +// ----------------------------------------------------------------------------- + +// Define different sets of params to test +// Save the results to JSON files to import into tests +// Set 'skipSnapshot' to 'true' for each item to skip the snapshot +const fixtures = [ + { + name: '3x3 grid', + skipSnapshot: true, + skipTest: false, + input: { + bounds: boundsValid, + grid: { + columns: 3, + rows: 3, + }, + }, + }, + { + name: '3x3 grid with gutters', + skipSnapshot: true, + skipTest: true, + input: { + bounds: boundsValid, + grid: { + columns: 3, + rows: 3, + gutters: 0.1, + }, + }, + }, + { + name: 'Variant columns and rows', + skipSnapshot: true, + input: { + bounds: boundsValid, + grid: { + columns: [5, 1, 5, 4, 5, 1, 5, 1, 5], + rows: [5, 1, 5, 3, 5, 1, 10], + }, + }, + }, +] + +export default fixtures diff --git a/tests/fixtures/3x3 grid with gutters.json b/tests/fixtures/3x3 grid with gutters.json new file mode 100644 index 0000000..00a6e68 --- /dev/null +++ b/tests/fixtures/3x3 grid with gutters.json @@ -0,0 +1,1429 @@ +{ + "config": { + "boundingCurves": { + "top": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 100, + "y": 0 + }, + "controlPoint1": { + "x": 10, + "y": -10 + }, + "controlPoint2": { + "x": 90, + "y": -10 + } + }, + "bottom": { + "startPoint": { + "x": 0, + "y": 100 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": -10, + "y": 110 + }, + "controlPoint2": { + "x": 110, + "y": 110 + } + }, + "left": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 0, + "y": 100 + }, + "controlPoint1": { + "x": -10, + "y": -10 + }, + "controlPoint2": { + "x": -10, + "y": 110 + } + }, + "right": { + "startPoint": { + "x": 100, + "y": 0 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 110, + "y": -10 + }, + "controlPoint2": { + "x": 110, + "y": 110 + } + } + }, + "columns": [1, 0.1, 1, 0.1, 1], + "rows": [1, 0.1, 1, 0.1, 1] + }, + "api": { + "patch": { + "config": { + "boundingCurves": { + "top": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 100, + "y": 0 + }, + "controlPoint1": { + "x": 10, + "y": -10 + }, + "controlPoint2": { + "x": 90, + "y": -10 + } + }, + "bottom": { + "startPoint": { + "x": 0, + "y": 100 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": -10, + "y": 110 + }, + "controlPoint2": { + "x": 110, + "y": 110 + } + }, + "left": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 0, + "y": 100 + }, + "controlPoint1": { + "x": -10, + "y": -10 + }, + "controlPoint2": { + "x": -10, + "y": 110 + } + }, + "right": { + "startPoint": { + "x": 100, + "y": 0 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 110, + "y": -10 + }, + "controlPoint2": { + "x": 110, + "y": 110 + } + } + }, + "columns": [1, 1, 1], + "rows": [1, 1, 1] + }, + "api": {} + }, + "getGridCellBounds": { + "top": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + "bottom": { + "startPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + }, + "left": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + }, + "right": { + "startPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + }, + "getIntersections": [ + { + "x": 0, + "y": 0 + }, + { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + { + "x": 100, + "y": 0 + }, + { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + { + "x": 0, + "y": 100 + }, + { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + { + "x": 100, + "y": 100 + } + ], + "getPoint": { + "x": 50, + "y": 19.63775315990067 + }, + "getLines": { + "xAxis": [ + [ + { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": 32.93531070479358, + "y": -7.0037745041489 + } + }, + { + "startPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "endPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint1": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint2": { + "x": 67.06468929520642, + "y": -7.003774504148899 + } + }, + { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 100, + "y": 0 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 100, + "y": 0 + } + } + ], + [ + { + "startPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + }, + { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + }, + { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 107.14000775530239, + "y": 32.267118123887784 + } + } + ], + [ + { + "startPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + }, + { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + }, + { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + } + ], + [ + { + "startPoint": { + "x": 0, + "y": 100 + }, + "endPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint1": { + "x": 0, + "y": 100 + }, + "controlPoint2": { + "x": 32.267118123887784, + "y": 107.14000775530239 + } + }, + { + "startPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + { + "startPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + ] + ], + "yAxis": [ + [ + { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": -7.140007755302385, + "y": 32.267118123887784 + } + }, + { + "startPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "endPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": -7.140007755302383, + "y": 67.73288187611223 + } + }, + { + "startPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 0, + "y": 100 + }, + "controlPoint1": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 0, + "y": 100 + } + } + ], + [ + { + "startPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + }, + { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + }, + { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 32.267118123887784, + "y": 107.14000775530239 + } + } + ], + [ + { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + }, + { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + }, + { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + } + ], + [ + { + "startPoint": { + "x": 100, + "y": 0 + }, + "endPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 100, + "y": 0 + }, + "controlPoint2": { + "x": 107.14000775530239, + "y": 32.267118123887784 + } + }, + { + "startPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + }, + { + "startPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + ] + ] + }, + "getAllGridCellBounds": [ + { + "top": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": -7.140007755302385, + "y": 32.267118123887784 + } + }, + "bottom": { + "startPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + }, + "left": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": 32.93531070479358, + "y": -7.0037745041489 + } + }, + "right": { + "startPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + } + }, + { + "top": { + "startPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + }, + "bottom": { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + }, + "left": { + "startPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "endPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint1": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint2": { + "x": 67.06468929520642, + "y": -7.003774504148899 + } + }, + "right": { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + } + }, + { + "top": { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + }, + "bottom": { + "startPoint": { + "x": 100, + "y": 0 + }, + "endPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 100, + "y": 0 + }, + "controlPoint2": { + "x": 107.14000775530239, + "y": 32.267118123887784 + } + }, + "left": { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 100, + "y": 0 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 100, + "y": 0 + } + }, + "right": { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 107.14000775530239, + "y": 32.267118123887784 + } + } + }, + { + "top": { + "startPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "endPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": -7.140007755302383, + "y": 67.73288187611223 + } + }, + "bottom": { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + }, + "left": { + "startPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + }, + "right": { + "startPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + } + }, + { + "top": { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + }, + "bottom": { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + }, + "left": { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + }, + "right": { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + }, + "bottom": { + "startPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + }, + "left": { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 107.14000775530239, + "y": 32.267118123887784 + } + }, + "right": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + } + }, + { + "top": { + "startPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 0, + "y": 100 + }, + "controlPoint1": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 0, + "y": 100 + } + }, + "bottom": { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 32.267118123887784, + "y": 107.14000775530239 + } + }, + "left": { + "startPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + }, + "right": { + "startPoint": { + "x": 0, + "y": 100 + }, + "endPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint1": { + "x": 0, + "y": 100 + }, + "controlPoint2": { + "x": 32.267118123887784, + "y": 107.14000775530239 + } + } + }, + { + "top": { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 32.267118123887784, + "y": 107.14000775530239 + } + }, + "bottom": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + "left": { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + }, + "right": { + "startPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + "bottom": { + "startPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + }, + "left": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + }, + "right": { + "startPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + } + ] + } +} diff --git a/tests/fixtures/3x3 grid.json b/tests/fixtures/3x3 grid.json new file mode 100644 index 0000000..89b2c6b --- /dev/null +++ b/tests/fixtures/3x3 grid.json @@ -0,0 +1,1348 @@ +{ + "config": { + "boundingCurves": { + "top": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 100, + "y": 0 + }, + "controlPoint1": { + "x": 10, + "y": -10 + }, + "controlPoint2": { + "x": 90, + "y": -10 + } + }, + "bottom": { + "startPoint": { + "x": 0, + "y": 100 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": -10, + "y": 110 + }, + "controlPoint2": { + "x": 110, + "y": 110 + } + }, + "left": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 0, + "y": 100 + }, + "controlPoint1": { + "x": -10, + "y": -10 + }, + "controlPoint2": { + "x": -10, + "y": 110 + } + }, + "right": { + "startPoint": { + "x": 100, + "y": 0 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 110, + "y": -10 + }, + "controlPoint2": { + "x": 110, + "y": 110 + } + } + }, + "columns": [{ "value": 1 }, { "value": 1 }, { "value": 1 }], + "rows": [{ "value": 1 }, { "value": 1 }, { "value": 1 }] + }, + "api": { + "getGridCellBounds": { + "top": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + "bottom": { + "startPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + }, + "left": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + }, + "right": { + "startPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + }, + "getIntersections": [ + { + "x": 0, + "y": 0 + }, + { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + { + "x": 100, + "y": 0 + }, + { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + { + "x": 0, + "y": 100 + }, + { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + { + "x": 100, + "y": 100 + } + ], + "getPoint": { + "x": 50, + "y": 19.63775315990067 + }, + "getLines": { + "xAxis": [ + [ + { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": 32.93531070479358, + "y": -7.0037745041489 + } + }, + { + "startPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "endPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint1": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint2": { + "x": 67.06468929520642, + "y": -7.003774504148899 + } + }, + { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 100, + "y": 0 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 100, + "y": 0 + } + } + ], + [ + { + "startPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + }, + { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + }, + { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 107.14000775530239, + "y": 32.267118123887784 + } + } + ], + [ + { + "startPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + }, + { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + }, + { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + } + ], + [ + { + "startPoint": { + "x": 0, + "y": 100 + }, + "endPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint1": { + "x": 0, + "y": 100 + }, + "controlPoint2": { + "x": 32.267118123887784, + "y": 107.14000775530239 + } + }, + { + "startPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + { + "startPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + ] + ], + "yAxis": [ + [ + { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": -7.140007755302385, + "y": 32.267118123887784 + } + }, + { + "startPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "endPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": -7.140007755302383, + "y": 67.73288187611223 + } + }, + { + "startPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 0, + "y": 100 + }, + "controlPoint1": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 0, + "y": 100 + } + } + ], + [ + { + "startPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + }, + { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + }, + { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 32.267118123887784, + "y": 107.14000775530239 + } + } + ], + [ + { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + }, + { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + }, + { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + } + ], + [ + { + "startPoint": { + "x": 100, + "y": 0 + }, + "endPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 100, + "y": 0 + }, + "controlPoint2": { + "x": 107.14000775530239, + "y": 32.267118123887784 + } + }, + { + "startPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + }, + { + "startPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + ] + ] + }, + "getAllGridCellBounds": [ + { + "top": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": -7.140007755302385, + "y": 32.267118123887784 + } + }, + "bottom": { + "startPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + }, + "left": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": 32.93531070479358, + "y": -7.0037745041489 + } + }, + "right": { + "startPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + } + }, + { + "top": { + "startPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + }, + "bottom": { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + }, + "left": { + "startPoint": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "endPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint1": { + "x": 32.93531070479358, + "y": -7.0037745041489 + }, + "controlPoint2": { + "x": 67.06468929520642, + "y": -7.003774504148899 + } + }, + "right": { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + } + }, + { + "top": { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + }, + "bottom": { + "startPoint": { + "x": 100, + "y": 0 + }, + "endPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 100, + "y": 0 + }, + "controlPoint2": { + "x": 107.14000775530239, + "y": 32.267118123887784 + } + }, + "left": { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 100, + "y": 0 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 100, + "y": 0 + } + }, + "right": { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 107.14000775530239, + "y": 32.267118123887784 + } + } + }, + { + "top": { + "startPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "endPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": -7.140007755302383, + "y": 67.73288187611223 + } + }, + "bottom": { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + }, + "left": { + "startPoint": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "endPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint1": { + "x": -7.140007755302385, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": 30.33257725939085, + "y": 29.977937706222637 + } + }, + "right": { + "startPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + } + }, + { + "top": { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + }, + "bottom": { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + }, + "left": { + "startPoint": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "endPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint1": { + "x": 30.33257725939085, + "y": 29.977937706222637 + }, + "controlPoint2": { + "x": 69.66742274060914, + "y": 29.97793770622264 + } + }, + "right": { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + }, + "bottom": { + "startPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + }, + "left": { + "startPoint": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "endPoint": { + "x": 107.14000775530239, + "y": 32.267118123887784 + }, + "controlPoint1": { + "x": 69.66742274060914, + "y": 29.97793770622264 + }, + "controlPoint2": { + "x": 107.14000775530239, + "y": 32.267118123887784 + } + }, + "right": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + } + }, + { + "top": { + "startPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 0, + "y": 100 + }, + "controlPoint1": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 0, + "y": 100 + } + }, + "bottom": { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 32.267118123887784, + "y": 107.14000775530239 + } + }, + "left": { + "startPoint": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint1": { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 30.109846399088916, + "y": 70.15829554493084 + } + }, + "right": { + "startPoint": { + "x": 0, + "y": 100 + }, + "endPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint1": { + "x": 0, + "y": 100 + }, + "controlPoint2": { + "x": 32.267118123887784, + "y": 107.14000775530239 + } + } + }, + { + "top": { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 32.267118123887784, + "y": 107.14000775530239 + } + }, + "bottom": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + "left": { + "startPoint": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "endPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint1": { + "x": 30.109846399088916, + "y": 70.15829554493084 + }, + "controlPoint2": { + "x": 69.89015360091106, + "y": 70.15829554493085 + } + }, + "right": { + "startPoint": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 32.267118123887784, + "y": 107.14000775530239 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + "bottom": { + "startPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + }, + "left": { + "startPoint": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "endPoint": { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + "controlPoint1": { + "x": 69.89015360091106, + "y": 70.15829554493085 + }, + "controlPoint2": { + "x": 107.1400077553024, + "y": 67.73288187611223 + } + }, + "right": { + "startPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + } + ] + } +} diff --git a/tests/fixtures/Variant columns and rows.json b/tests/fixtures/Variant columns and rows.json new file mode 100644 index 0000000..894a9bf --- /dev/null +++ b/tests/fixtures/Variant columns and rows.json @@ -0,0 +1,7762 @@ +{ + "config": { + "boundingCurves": { + "top": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 100, + "y": 0 + }, + "controlPoint1": { + "x": 10, + "y": -10 + }, + "controlPoint2": { + "x": 90, + "y": -10 + } + }, + "bottom": { + "startPoint": { + "x": 0, + "y": 100 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": -10, + "y": 110 + }, + "controlPoint2": { + "x": 110, + "y": 110 + } + }, + "left": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 0, + "y": 100 + }, + "controlPoint1": { + "x": -10, + "y": -10 + }, + "controlPoint2": { + "x": -10, + "y": 110 + } + }, + "right": { + "startPoint": { + "x": 100, + "y": 0 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 110, + "y": -10 + }, + "controlPoint2": { + "x": 110, + "y": 110 + } + } + }, + "columns": [ + { "value": 5 }, + { "value": 1 }, + { "value": 5 }, + { "value": 4 }, + { "value": 5 }, + { "value": 1 }, + { "value": 5 }, + { "value": 1 }, + { "value": 5 } + ], + "rows": [ + { "value": 5 }, + { "value": 1 }, + { "value": 5 }, + { "value": 3 }, + { "value": 5 }, + { "value": 1 }, + { "value": 10 } + ] + }, + "api": { + "getGridCellBounds": { + "top": { + "startPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "endPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint1": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint2": { + "x": 14.622542002928427, + "y": 31.76059461403331 + } + }, + "bottom": { + "startPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "endPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint1": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint2": { + "x": 34.25879649479483, + "y": 31.181558761300586 + } + }, + "left": { + "startPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "endPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint1": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint2": { + "x": 34.640999560570975, + "y": 12.278351502824385 + } + }, + "right": { + "startPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "endPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint1": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint2": { + "x": 34.25879649479483, + "y": 31.181558761300586 + } + } + }, + "getIntersections": [ + { + "x": 0, + "y": 0 + }, + { + "x": 14.90676898205037, + "y": -5.087033283766091 + }, + { + "x": 18.11054053377437, + "y": -5.579497164258915 + }, + { + "x": 33.99983494798167, + "y": -7.065646696251983 + }, + { + "x": 46.79824744277457, + "y": -7.483105838237211 + }, + { + "x": 62.7850476914268, + "y": -7.225759331946189 + }, + { + "x": 66.0001650520183, + "y": -7.065646696251983 + }, + { + "x": 81.88945946622562, + "y": -5.5794971642589175 + }, + { + "x": 85.09323101794962, + "y": -5.087033283766095 + }, + { + "x": 100, + "y": 0 + }, + { + "x": -5.838859053019665, + "y": 14.561321305940428 + }, + { + "x": 10.659204831542489, + "y": 11.274235146715425 + }, + { + "x": 14.235223966785739, + "y": 10.924643059972356 + }, + { + "x": 32.07491703081854, + "y": 9.870951587656227 + }, + { + "x": 46.41194748564698, + "y": 9.573360649447153 + }, + { + "x": 64.33213248431734, + "y": 9.756631108430929 + }, + { + "x": 67.92508296918146, + "y": 9.87095158765623 + }, + { + "x": 85.76477603321426, + "y": 10.924643059972345 + }, + { + "x": 89.3407951684575, + "y": 11.274235146715416 + }, + { + "x": 105.83885905301966, + "y": 14.561321305940421 + }, + { + "x": -6.211679114533506, + "y": 18.120956058294 + }, + { + "x": 10.356221328940357, + "y": 15.193859323977215 + }, + { + "x": 13.957005496569316, + "y": 14.872841595984102 + }, + { + "x": 31.938355868976572, + "y": 13.90564173560336 + }, + { + "x": 46.384371978539576, + "y": 13.632024438149516 + }, + { + "x": 64.44281150562294, + "y": 13.800479687671848 + }, + { + "x": 68.06164413102343, + "y": 13.90564173560337 + }, + { + "x": 86.04299450343069, + "y": 14.872841595984102 + }, + { + "x": 89.64377867105964, + "y": 15.193859323977208 + }, + { + "x": 106.21167911453352, + "y": 18.120956058294 + }, + { + "x": -7.2727736047420315, + "y": 35.81144501614644 + }, + { + "x": 9.393370315365134, + "y": 34.684295406370744 + }, + { + "x": 13.06779178133764, + "y": 34.50614947212735 + }, + { + "x": 31.506489377691942, + "y": 33.971407671423584 + }, + { + "x": 46.296682306587655, + "y": 33.81765857774588 + }, + { + "x": 64.79545515781072, + "y": 33.912037779960976 + }, + { + "x": 68.49351062230804, + "y": 33.97140767142358 + }, + { + "x": 86.93220821866234, + "y": 34.50614947212735 + }, + { + "x": 90.60662968463484, + "y": 34.68429540637071 + }, + { + "x": 107.27277360474201, + "y": 35.811445016146415 + }, + { + "x": -7.4860795758943635, + "y": 46.44833586791841 + }, + { + "x": 9.106713329263794, + "y": 46.401154532867345 + }, + { + "x": 12.798857754056634, + "y": 46.30873167487385 + }, + { + "x": 31.379666583850142, + "y": 46.033464709976215 + }, + { + "x": 46.27052792360233, + "y": 45.951636538564216 + }, + { + "x": 64.90120366838019, + "y": 46.00157011239496 + }, + { + "x": 68.62033341614983, + "y": 46.03346470997623 + }, + { + "x": 87.2011422459434, + "y": 46.30873167487385 + }, + { + "x": 90.89328667073619, + "y": 46.40115453286735 + }, + { + "x": 107.48607957589437, + "y": 46.448335867918395 + }, + { + "x": -7.2727736047420315, + "y": 64.18855498385358 + }, + { + "x": 9.020012632874163, + "y": 65.94132077334363 + }, + { + "x": 12.706144327175494, + "y": 65.99176970909987 + }, + { + "x": 31.346050236740783, + "y": 66.14896080387918 + }, + { + "x": 46.26248828048547, + "y": 66.18700083624334 + }, + { + "x": 64.93524720522774, + "y": 66.16285836276681 + }, + { + "x": 68.65394976325922, + "y": 66.1489608038792 + }, + { + "x": 87.2938556728245, + "y": 65.99176970909987 + }, + { + "x": 90.97998736712583, + "y": 65.94132077334365 + }, + { + "x": 107.27277360474203, + "y": 64.18855498385358 + }, + { + "x": -7.140007755302383, + "y": 67.73288187611223 + }, + { + "x": 9.064619444052552, + "y": 69.84563709051046 + }, + { + "x": 12.743917051305004, + "y": 69.9246603850167 + }, + { + "x": 31.367484672071782, + "y": 70.1683430917314 + }, + { + "x": 46.26651189281267, + "y": 70.23035676485077 + }, + { + "x": 64.91952974879499, + "y": 70.19139908191283 + }, + { + "x": 68.63251532792822, + "y": 70.1683430917314 + }, + { + "x": 87.25608294869502, + "y": 69.9246603850167 + }, + { + "x": 90.93538055594746, + "y": 69.8456370905105 + }, + { + "x": 107.1400077553024, + "y": 67.73288187611223 + }, + { + "x": 0, + "y": 100 + }, + { + "x": 13.506677672709223, + "y": 105.71264946348043 + }, + { + "x": 16.75436258066631, + "y": 106.07741634548614 + }, + { + "x": 33.39818816941482, + "y": 107.18601517155474 + }, + { + "x": 46.67001984489133, + "y": 107.48776525222644 + }, + { + "x": 63.30926786924066, + "y": 107.30065547467399 + }, + { + "x": 66.60181183058518, + "y": 107.18601517155474 + }, + { + "x": 83.24563741933372, + "y": 106.07741634548614 + }, + { + "x": 86.4933223272908, + "y": 105.71264946348043 + }, + { + "x": 100, + "y": 100 + } + ], + "getPoint": { + "x": 50, + "y": 19.63775315990067 + }, + "getLines": { + "xAxis": [ + [ + { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": 15.951110467249187, + "y": -5.257426401654685 + } + }, + { + "startPoint": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "endPoint": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "controlPoint1": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "controlPoint2": { + "x": 19.360110416491764, + "y": -5.749117334860832 + } + }, + { + "startPoint": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "endPoint": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "controlPoint1": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "controlPoint2": { + "x": 36.36553597395672, + "y": -7.18726908151514 + } + }, + { + "startPoint": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "endPoint": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "controlPoint1": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "controlPoint2": { + "x": 46.58507222905951, + "y": -7.48077819821056 + } + }, + { + "startPoint": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "endPoint": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "controlPoint1": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "controlPoint2": { + "x": 63.63446402604329, + "y": -7.18726908151514 + } + }, + { + "startPoint": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "endPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint1": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "controlPoint2": { + "x": 67.06468929520642, + "y": -7.003774504148899 + } + }, + { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 100, + "y": 0 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 100, + "y": 0 + } + } + ], + [ + { + "startPoint": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "endPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint1": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "controlPoint2": { + "x": 11.925522935141066, + "y": 9.983045873347411 + } + }, + { + "startPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "endPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint1": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint2": { + "x": 15.738902869935103, + "y": 9.626434783066262 + } + }, + { + "startPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "endPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint1": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint2": { + "x": 34.755586071537415, + "y": 8.57879026092177 + } + }, + { + "startPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "endPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint1": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint2": { + "x": 46.182863875065856, + "y": 8.364471001702562 + } + }, + { + "startPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "endPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint1": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint2": { + "x": 65.2444139284626, + "y": 8.578790260921771 + } + }, + { + "startPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "endPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint1": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint2": { + "x": 69.07331087379977, + "y": 8.712869146599592 + } + }, + { + "startPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "endPoint": { + "x": 105.71264946348043, + "y": 13.506677672709223 + }, + "controlPoint1": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint2": { + "x": 105.71264946348043, + "y": 13.506677672709223 + } + } + ], + [ + { + "startPoint": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "endPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint1": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "controlPoint2": { + "x": 11.638914102513018, + "y": 13.57748970176307 + } + }, + { + "startPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "endPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint1": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint2": { + "x": 15.481319167037991, + "y": 13.247894580066912 + } + }, + { + "startPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "endPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint1": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint2": { + "x": 34.640999560570975, + "y": 12.278351502824385 + } + }, + { + "startPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "endPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint1": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint2": { + "x": 46.15427307164648, + "y": 12.079870215100424 + } + }, + { + "startPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "endPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint1": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint2": { + "x": 65.35900043942904, + "y": 12.278351502824393 + } + }, + { + "startPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "endPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint1": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint2": { + "x": 69.21578085262163, + "y": 12.402547250164528 + } + }, + { + "startPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "endPoint": { + "x": 106.07741634548614, + "y": 16.75436258066631 + }, + "controlPoint1": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint2": { + "x": 106.07741634548614, + "y": 16.75436258066631 + } + } + ], + [ + { + "startPoint": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "endPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint1": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "controlPoint2": { + "x": 10.682693662012786, + "y": 31.955109892804444 + } + }, + { + "startPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "endPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint1": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint2": { + "x": 14.622542002928427, + "y": 31.76059461403331 + } + }, + { + "startPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "endPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint1": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint2": { + "x": 34.25879649479483, + "y": 31.181558761300586 + } + }, + { + "startPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "endPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint1": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint2": { + "x": 46.059001426813595, + "y": 31.062267331052826 + } + }, + { + "startPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "endPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint1": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint2": { + "x": 65.74120350520518, + "y": 31.181558761300582 + } + }, + { + "startPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "endPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint1": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint2": { + "x": 69.68971888541105, + "y": 31.256338816952308 + } + }, + { + "startPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "endPoint": { + "x": 107.18601517155474, + "y": 33.39818816941482 + }, + "controlPoint1": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint2": { + "x": 107.18601517155474, + "y": 33.39818816941482 + } + } + ], + [ + { + "startPoint": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "endPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint1": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "controlPoint2": { + "x": 10.30780329640141, + "y": 46.61397725011524 + } + }, + { + "startPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "endPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint1": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint2": { + "x": 14.286597659750699, + "y": 46.527525845684096 + } + }, + { + "startPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "endPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint1": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint2": { + "x": 34.10906843688942, + "y": 46.26089577255922 + } + }, + { + "startPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "endPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint1": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint2": { + "x": 46.02179270962617, + "y": 46.20495622829246 + } + }, + { + "startPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "endPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint1": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint2": { + "x": 65.89093156311058, + "y": 46.26089577255924 + } + }, + { + "startPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "endPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint1": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint2": { + "x": 69.87382631824815, + "y": 46.29614327486021 + } + }, + { + "startPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "endPoint": { + "x": 107.48776525222644, + "y": 46.67001984489133 + }, + "controlPoint1": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint2": { + "x": 107.48776525222644, + "y": 46.67001984489133 + } + } + ], + [ + { + "startPoint": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "endPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint1": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "controlPoint2": { + "x": 10.215388591648553, + "y": 64.98701987675743 + } + }, + { + "startPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "endPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint1": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint2": { + "x": 14.205245657813771, + "y": 65.03564831525131 + } + }, + { + "startPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "endPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint2": { + "x": 34.07238766541223, + "y": 65.15952546663624 + } + }, + { + "startPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint1": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 46.012901638368035, + "y": 65.18277577984568 + } + }, + { + "startPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "endPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint2": { + "x": 65.92761233458778, + "y": 65.15952546663624 + } + }, + { + "startPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint1": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 69.9158614831639, + "y": 65.14535727724882 + } + }, + { + "startPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "endPoint": { + "x": 107.30065547467399, + "y": 63.30926786924066 + }, + "controlPoint1": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint2": { + "x": 107.30065547467399, + "y": 63.30926786924066 + } + } + ], + [ + { + "startPoint": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "endPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint1": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "controlPoint2": { + "x": 10.248384549103797, + "y": 68.62632275856055 + } + }, + { + "startPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "endPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint1": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint2": { + "x": 14.235306265991627, + "y": 68.70196716563939 + } + }, + { + "startPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "endPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint2": { + "x": 34.08564307047911, + "y": 68.90394576192631 + } + }, + { + "startPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint1": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 46.01627131395699, + "y": 68.943034046631 + } + }, + { + "startPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "endPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint2": { + "x": 65.9143569295209, + "y": 68.90394576192631 + } + }, + { + "startPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint1": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 69.89852906694412, + "y": 68.87989443420119 + } + }, + { + "startPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "endPoint": { + "x": 107.18601517155474, + "y": 66.60181183058518 + }, + "controlPoint1": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint2": { + "x": 107.18601517155474, + "y": 66.60181183058518 + } + } + ], + [ + { + "startPoint": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "endPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint1": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "controlPoint2": { + "x": 10.770295876695046, + "y": 87.00394294960192 + } + }, + { + "startPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "endPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint1": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint2": { + "x": 14.706847693164395, + "y": 87.2146671996058 + } + }, + { + "startPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "endPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint1": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint2": { + "x": 34.29469271193953, + "y": 87.8071530204025 + } + }, + { + "startPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "endPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint1": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint2": { + "x": 46.06881284593327, + "y": 87.92543116258344 + } + }, + { + "startPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "endPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint1": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint2": { + "x": 65.70530728806044, + "y": 87.80715302040254 + } + }, + { + "startPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "endPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint1": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint2": { + "x": 69.63340121568777, + "y": 87.73368600098897 + } + }, + { + "startPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "endPoint": { + "x": 106.07741634548614, + "y": 83.24563741933372 + }, + "controlPoint1": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint2": { + "x": 106.07741634548614, + "y": 83.24563741933372 + } + } + ], + [ + { + "startPoint": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "endPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint1": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "controlPoint2": { + "x": 10.97004288674129, + "y": 90.59838677801758 + } + }, + { + "startPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "endPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint1": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint2": { + "x": 14.886984248674139, + "y": 90.83612699660642 + } + }, + { + "startPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "endPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint2": { + "x": 34.37464853804282, + "y": 91.50671426230514 + } + }, + { + "startPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint1": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 46.08885762678133, + "y": 91.64083037598127 + } + }, + { + "startPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "endPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint2": { + "x": 65.6253514619572, + "y": 91.50671426230514 + } + }, + { + "startPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint1": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 69.53269327317248, + "y": 91.42336410455391 + } + }, + { + "startPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "endPoint": { + "x": 105.71264946348043, + "y": 86.4933223272908 + }, + "controlPoint1": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint2": { + "x": 105.71264946348043, + "y": 86.4933223272908 + } + } + ], + [ + { + "startPoint": { + "x": 0, + "y": 100 + }, + "endPoint": { + "x": 14.561321305940421, + "y": 105.83885905301966 + }, + "controlPoint1": { + "x": 0, + "y": 100 + }, + "controlPoint2": { + "x": 14.561321305940421, + "y": 105.83885905301966 + } + }, + { + "startPoint": { + "x": 14.561321305940421, + "y": 105.83885905301966 + }, + "endPoint": { + "x": 18.120956058294, + "y": 106.21167911453352 + }, + "controlPoint1": { + "x": 14.561321305940421, + "y": 105.83885905301966 + }, + "controlPoint2": { + "x": 18.120956058294, + "y": 106.21167911453352 + } + }, + { + "startPoint": { + "x": 18.120956058294, + "y": 106.21167911453352 + }, + "endPoint": { + "x": 35.811445016146415, + "y": 107.27277360474201 + }, + "controlPoint1": { + "x": 18.120956058294, + "y": 106.21167911453352 + }, + "controlPoint2": { + "x": 35.811445016146415, + "y": 107.27277360474201 + } + }, + { + "startPoint": { + "x": 35.811445016146415, + "y": 107.27277360474201 + }, + "endPoint": { + "x": 46.448335867918395, + "y": 107.48607957589437 + }, + "controlPoint1": { + "x": 35.811445016146415, + "y": 107.27277360474201 + }, + "controlPoint2": { + "x": 46.448335867918395, + "y": 107.48607957589437 + } + }, + { + "startPoint": { + "x": 46.448335867918395, + "y": 107.48607957589437 + }, + "endPoint": { + "x": 64.18855498385358, + "y": 107.27277360474203 + }, + "controlPoint1": { + "x": 46.448335867918395, + "y": 107.48607957589437 + }, + "controlPoint2": { + "x": 64.18855498385358, + "y": 107.27277360474203 + } + }, + { + "startPoint": { + "x": 64.18855498385358, + "y": 107.27277360474203 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 64.18855498385358, + "y": 107.27277360474203 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + { + "startPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + ] + ], + "yAxis": [ + [ + { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": -5.712649463480435, + "y": 13.50667767270923 + } + }, + { + "startPoint": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "endPoint": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "controlPoint1": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "controlPoint2": { + "x": -6.077416345486151, + "y": 16.75436258066631 + } + }, + { + "startPoint": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "endPoint": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "controlPoint1": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "controlPoint2": { + "x": -7.186015171554757, + "y": 33.39818816941482 + } + }, + { + "startPoint": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "endPoint": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "controlPoint1": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "controlPoint2": { + "x": -7.487765252226435, + "y": 46.67001984489133 + } + }, + { + "startPoint": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "endPoint": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "controlPoint1": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "controlPoint2": { + "x": -7.300655474673984, + "y": 63.30926786924066 + } + }, + { + "startPoint": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "endPoint": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "controlPoint1": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "controlPoint2": { + "x": -7.186015171554758, + "y": 66.60181183058518 + } + }, + { + "startPoint": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "endPoint": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "controlPoint1": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "controlPoint2": { + "x": -6.077416345486149, + "y": 83.24563741933372 + } + }, + { + "startPoint": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "endPoint": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "controlPoint1": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "controlPoint2": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + } + }, + { + "startPoint": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "endPoint": { + "x": 0, + "y": 100 + }, + "controlPoint1": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "controlPoint2": { + "x": 0, + "y": 100 + } + } + ], + [ + { + "startPoint": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "endPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint1": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "controlPoint2": { + "x": 11.925522935141066, + "y": 9.983045873347411 + } + }, + { + "startPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "endPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint1": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint2": { + "x": 11.638914102513018, + "y": 13.57748970176307 + } + }, + { + "startPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "endPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint1": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint2": { + "x": 10.682693662012786, + "y": 31.955109892804444 + } + }, + { + "startPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "endPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint1": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint2": { + "x": 10.30780329640141, + "y": 46.61397725011524 + } + }, + { + "startPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "endPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint1": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint2": { + "x": 10.215388591648553, + "y": 64.98701987675743 + } + }, + { + "startPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "endPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint1": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint2": { + "x": 10.248384549103797, + "y": 68.62632275856055 + } + }, + { + "startPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "endPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint1": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint2": { + "x": 10.770295876695046, + "y": 87.00394294960192 + } + }, + { + "startPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "endPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint1": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint2": { + "x": 10.97004288674129, + "y": 90.59838677801758 + } + }, + { + "startPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "endPoint": { + "x": 14.561321305940421, + "y": 105.83885905301966 + }, + "controlPoint1": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint2": { + "x": 14.561321305940421, + "y": 105.83885905301966 + } + } + ], + [ + { + "startPoint": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "endPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint1": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "controlPoint2": { + "x": 15.738902869935103, + "y": 9.626434783066262 + } + }, + { + "startPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "endPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint1": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint2": { + "x": 15.481319167037991, + "y": 13.247894580066912 + } + }, + { + "startPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "endPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint1": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint2": { + "x": 14.622542002928427, + "y": 31.76059461403331 + } + }, + { + "startPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "endPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint1": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint2": { + "x": 14.286597659750699, + "y": 46.527525845684096 + } + }, + { + "startPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "endPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint1": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint2": { + "x": 14.205245657813771, + "y": 65.03564831525131 + } + }, + { + "startPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "endPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint1": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint2": { + "x": 14.235306265991627, + "y": 68.70196716563939 + } + }, + { + "startPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "endPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint1": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint2": { + "x": 14.706847693164395, + "y": 87.2146671996058 + } + }, + { + "startPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "endPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint1": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint2": { + "x": 14.886984248674139, + "y": 90.83612699660642 + } + }, + { + "startPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "endPoint": { + "x": 18.120956058294, + "y": 106.21167911453352 + }, + "controlPoint1": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint2": { + "x": 18.120956058294, + "y": 106.21167911453352 + } + } + ], + [ + { + "startPoint": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "endPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint1": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "controlPoint2": { + "x": 34.755586071537415, + "y": 8.57879026092177 + } + }, + { + "startPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "endPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint1": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint2": { + "x": 34.640999560570975, + "y": 12.278351502824385 + } + }, + { + "startPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "endPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint1": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint2": { + "x": 34.25879649479483, + "y": 31.181558761300586 + } + }, + { + "startPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "endPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint1": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint2": { + "x": 34.10906843688942, + "y": 46.26089577255922 + } + }, + { + "startPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "endPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint2": { + "x": 34.07238766541223, + "y": 65.15952546663624 + } + }, + { + "startPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 34.08564307047911, + "y": 68.90394576192631 + } + }, + { + "startPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint1": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 34.29469271193953, + "y": 87.8071530204025 + } + }, + { + "startPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "endPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint2": { + "x": 34.37464853804282, + "y": 91.50671426230514 + } + }, + { + "startPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 35.811445016146415, + "y": 107.27277360474201 + }, + "controlPoint1": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 35.811445016146415, + "y": 107.27277360474201 + } + } + ], + [ + { + "startPoint": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "endPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint1": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "controlPoint2": { + "x": 46.182863875065856, + "y": 8.364471001702562 + } + }, + { + "startPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "endPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint1": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint2": { + "x": 46.15427307164648, + "y": 12.079870215100424 + } + }, + { + "startPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "endPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint1": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint2": { + "x": 46.059001426813595, + "y": 31.062267331052826 + } + }, + { + "startPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "endPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint1": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint2": { + "x": 46.02179270962617, + "y": 46.20495622829246 + } + }, + { + "startPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "endPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint1": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint2": { + "x": 46.012901638368035, + "y": 65.18277577984568 + } + }, + { + "startPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "endPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint1": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint2": { + "x": 46.01627131395699, + "y": 68.943034046631 + } + }, + { + "startPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "endPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint1": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint2": { + "x": 46.06881284593327, + "y": 87.92543116258344 + } + }, + { + "startPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "endPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint1": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint2": { + "x": 46.08885762678133, + "y": 91.64083037598127 + } + }, + { + "startPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "endPoint": { + "x": 46.448335867918395, + "y": 107.48607957589437 + }, + "controlPoint1": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint2": { + "x": 46.448335867918395, + "y": 107.48607957589437 + } + } + ], + [ + { + "startPoint": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "endPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint1": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "controlPoint2": { + "x": 65.2444139284626, + "y": 8.578790260921771 + } + }, + { + "startPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "endPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint1": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint2": { + "x": 65.35900043942904, + "y": 12.278351502824393 + } + }, + { + "startPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "endPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint1": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint2": { + "x": 65.74120350520518, + "y": 31.181558761300582 + } + }, + { + "startPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "endPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint1": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint2": { + "x": 65.89093156311058, + "y": 46.26089577255924 + } + }, + { + "startPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "endPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint2": { + "x": 65.92761233458778, + "y": 65.15952546663624 + } + }, + { + "startPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 65.9143569295209, + "y": 68.90394576192631 + } + }, + { + "startPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint1": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 65.70530728806044, + "y": 87.80715302040254 + } + }, + { + "startPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "endPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint2": { + "x": 65.6253514619572, + "y": 91.50671426230514 + } + }, + { + "startPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 64.18855498385358, + "y": 107.27277360474203 + }, + "controlPoint1": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 64.18855498385358, + "y": 107.27277360474203 + } + } + ], + [ + { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 69.07331087379977, + "y": 8.712869146599592 + } + }, + { + "startPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "endPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint1": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint2": { + "x": 69.21578085262163, + "y": 12.402547250164528 + } + }, + { + "startPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "endPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint1": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint2": { + "x": 69.68971888541105, + "y": 31.256338816952308 + } + }, + { + "startPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "endPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint1": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint2": { + "x": 69.87382631824815, + "y": 46.29614327486021 + } + }, + { + "startPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "endPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint1": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint2": { + "x": 69.9158614831639, + "y": 65.14535727724882 + } + }, + { + "startPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "endPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint1": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint2": { + "x": 69.89852906694412, + "y": 68.87989443420119 + } + }, + { + "startPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "endPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint1": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint2": { + "x": 69.63340121568777, + "y": 87.73368600098897 + } + }, + { + "startPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "endPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint1": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint2": { + "x": 69.53269327317248, + "y": 91.42336410455391 + } + }, + { + "startPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + } + ], + [ + { + "startPoint": { + "x": 100, + "y": 0 + }, + "endPoint": { + "x": 105.71264946348043, + "y": 13.506677672709223 + }, + "controlPoint1": { + "x": 100, + "y": 0 + }, + "controlPoint2": { + "x": 105.71264946348043, + "y": 13.506677672709223 + } + }, + { + "startPoint": { + "x": 105.71264946348043, + "y": 13.506677672709223 + }, + "endPoint": { + "x": 106.07741634548614, + "y": 16.75436258066631 + }, + "controlPoint1": { + "x": 105.71264946348043, + "y": 13.506677672709223 + }, + "controlPoint2": { + "x": 106.07741634548614, + "y": 16.75436258066631 + } + }, + { + "startPoint": { + "x": 106.07741634548614, + "y": 16.75436258066631 + }, + "endPoint": { + "x": 107.18601517155474, + "y": 33.39818816941482 + }, + "controlPoint1": { + "x": 106.07741634548614, + "y": 16.75436258066631 + }, + "controlPoint2": { + "x": 107.18601517155474, + "y": 33.39818816941482 + } + }, + { + "startPoint": { + "x": 107.18601517155474, + "y": 33.39818816941482 + }, + "endPoint": { + "x": 107.48776525222644, + "y": 46.67001984489133 + }, + "controlPoint1": { + "x": 107.18601517155474, + "y": 33.39818816941482 + }, + "controlPoint2": { + "x": 107.48776525222644, + "y": 46.67001984489133 + } + }, + { + "startPoint": { + "x": 107.48776525222644, + "y": 46.67001984489133 + }, + "endPoint": { + "x": 107.30065547467399, + "y": 63.30926786924066 + }, + "controlPoint1": { + "x": 107.48776525222644, + "y": 46.67001984489133 + }, + "controlPoint2": { + "x": 107.30065547467399, + "y": 63.30926786924066 + } + }, + { + "startPoint": { + "x": 107.30065547467399, + "y": 63.30926786924066 + }, + "endPoint": { + "x": 107.18601517155474, + "y": 66.60181183058518 + }, + "controlPoint1": { + "x": 107.30065547467399, + "y": 63.30926786924066 + }, + "controlPoint2": { + "x": 107.18601517155474, + "y": 66.60181183058518 + } + }, + { + "startPoint": { + "x": 107.18601517155474, + "y": 66.60181183058518 + }, + "endPoint": { + "x": 106.07741634548614, + "y": 83.24563741933372 + }, + "controlPoint1": { + "x": 107.18601517155474, + "y": 66.60181183058518 + }, + "controlPoint2": { + "x": 106.07741634548614, + "y": 83.24563741933372 + } + }, + { + "startPoint": { + "x": 106.07741634548614, + "y": 83.24563741933372 + }, + "endPoint": { + "x": 105.71264946348043, + "y": 86.4933223272908 + }, + "controlPoint1": { + "x": 106.07741634548614, + "y": 83.24563741933372 + }, + "controlPoint2": { + "x": 105.71264946348043, + "y": 86.4933223272908 + } + }, + { + "startPoint": { + "x": 105.71264946348043, + "y": 86.4933223272908 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 105.71264946348043, + "y": 86.4933223272908 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + ] + ] + }, + "getAllGridCellBounds": [ + { + "top": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": -5.712649463480435, + "y": 13.50667767270923 + } + }, + "bottom": { + "startPoint": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "endPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint1": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "controlPoint2": { + "x": 11.925522935141066, + "y": 9.983045873347411 + } + }, + "left": { + "startPoint": { + "x": 0, + "y": 0 + }, + "endPoint": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "controlPoint1": { + "x": 0, + "y": 0 + }, + "controlPoint2": { + "x": 15.951110467249187, + "y": -5.257426401654685 + } + }, + "right": { + "startPoint": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "endPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint1": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "controlPoint2": { + "x": 11.925522935141066, + "y": 9.983045873347411 + } + } + }, + { + "top": { + "startPoint": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "endPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint1": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "controlPoint2": { + "x": 11.925522935141066, + "y": 9.983045873347411 + } + }, + "bottom": { + "startPoint": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "endPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint1": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "controlPoint2": { + "x": 15.738902869935103, + "y": 9.626434783066262 + } + }, + "left": { + "startPoint": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "endPoint": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "controlPoint1": { + "x": 15.951110467249187, + "y": -5.257426401654685 + }, + "controlPoint2": { + "x": 19.360110416491764, + "y": -5.749117334860832 + } + }, + "right": { + "startPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "endPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint1": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint2": { + "x": 15.738902869935103, + "y": 9.626434783066262 + } + } + }, + { + "top": { + "startPoint": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "endPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint1": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "controlPoint2": { + "x": 15.738902869935103, + "y": 9.626434783066262 + } + }, + "bottom": { + "startPoint": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "endPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint1": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "controlPoint2": { + "x": 34.755586071537415, + "y": 8.57879026092177 + } + }, + "left": { + "startPoint": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "endPoint": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "controlPoint1": { + "x": 19.360110416491764, + "y": -5.749117334860832 + }, + "controlPoint2": { + "x": 36.36553597395672, + "y": -7.18726908151514 + } + }, + "right": { + "startPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "endPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint1": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint2": { + "x": 34.755586071537415, + "y": 8.57879026092177 + } + } + }, + { + "top": { + "startPoint": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "endPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint1": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "controlPoint2": { + "x": 34.755586071537415, + "y": 8.57879026092177 + } + }, + "bottom": { + "startPoint": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "endPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint1": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "controlPoint2": { + "x": 46.182863875065856, + "y": 8.364471001702562 + } + }, + "left": { + "startPoint": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "endPoint": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "controlPoint1": { + "x": 36.36553597395672, + "y": -7.18726908151514 + }, + "controlPoint2": { + "x": 46.58507222905951, + "y": -7.48077819821056 + } + }, + "right": { + "startPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "endPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint1": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint2": { + "x": 46.182863875065856, + "y": 8.364471001702562 + } + } + }, + { + "top": { + "startPoint": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "endPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint1": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "controlPoint2": { + "x": 46.182863875065856, + "y": 8.364471001702562 + } + }, + "bottom": { + "startPoint": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "endPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint1": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "controlPoint2": { + "x": 65.2444139284626, + "y": 8.578790260921771 + } + }, + "left": { + "startPoint": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "endPoint": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "controlPoint1": { + "x": 46.58507222905951, + "y": -7.48077819821056 + }, + "controlPoint2": { + "x": 63.63446402604329, + "y": -7.18726908151514 + } + }, + "right": { + "startPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "endPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint1": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint2": { + "x": 65.2444139284626, + "y": 8.578790260921771 + } + } + }, + { + "top": { + "startPoint": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "endPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint1": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "controlPoint2": { + "x": 65.2444139284626, + "y": 8.578790260921771 + } + }, + "bottom": { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 69.07331087379977, + "y": 8.712869146599592 + } + }, + "left": { + "startPoint": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "endPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint1": { + "x": 63.63446402604329, + "y": -7.18726908151514 + }, + "controlPoint2": { + "x": 67.06468929520642, + "y": -7.003774504148899 + } + }, + "right": { + "startPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "endPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint1": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint2": { + "x": 69.07331087379977, + "y": 8.712869146599592 + } + } + }, + { + "top": { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 69.07331087379977, + "y": 8.712869146599592 + } + }, + "bottom": { + "startPoint": { + "x": 100, + "y": 0 + }, + "endPoint": { + "x": 105.71264946348043, + "y": 13.506677672709223 + }, + "controlPoint1": { + "x": 100, + "y": 0 + }, + "controlPoint2": { + "x": 105.71264946348043, + "y": 13.506677672709223 + } + }, + "left": { + "startPoint": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "endPoint": { + "x": 100, + "y": 0 + }, + "controlPoint1": { + "x": 67.06468929520642, + "y": -7.003774504148899 + }, + "controlPoint2": { + "x": 100, + "y": 0 + } + }, + "right": { + "startPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "endPoint": { + "x": 105.71264946348043, + "y": 13.506677672709223 + }, + "controlPoint1": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint2": { + "x": 105.71264946348043, + "y": 13.506677672709223 + } + } + }, + { + "top": { + "startPoint": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "endPoint": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "controlPoint1": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "controlPoint2": { + "x": -6.077416345486151, + "y": 16.75436258066631 + } + }, + "bottom": { + "startPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "endPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint1": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint2": { + "x": 11.638914102513018, + "y": 13.57748970176307 + } + }, + "left": { + "startPoint": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "endPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint1": { + "x": -5.712649463480435, + "y": 13.50667767270923 + }, + "controlPoint2": { + "x": 11.925522935141066, + "y": 9.983045873347411 + } + }, + "right": { + "startPoint": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "endPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint1": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "controlPoint2": { + "x": 11.638914102513018, + "y": 13.57748970176307 + } + } + }, + { + "top": { + "startPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "endPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint1": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint2": { + "x": 11.638914102513018, + "y": 13.57748970176307 + } + }, + "bottom": { + "startPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "endPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint1": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint2": { + "x": 15.481319167037991, + "y": 13.247894580066912 + } + }, + "left": { + "startPoint": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "endPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint1": { + "x": 11.925522935141066, + "y": 9.983045873347411 + }, + "controlPoint2": { + "x": 15.738902869935103, + "y": 9.626434783066262 + } + }, + "right": { + "startPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "endPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint1": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint2": { + "x": 15.481319167037991, + "y": 13.247894580066912 + } + } + }, + { + "top": { + "startPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "endPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint1": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint2": { + "x": 15.481319167037991, + "y": 13.247894580066912 + } + }, + "bottom": { + "startPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "endPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint1": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint2": { + "x": 34.640999560570975, + "y": 12.278351502824385 + } + }, + "left": { + "startPoint": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "endPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint1": { + "x": 15.738902869935103, + "y": 9.626434783066262 + }, + "controlPoint2": { + "x": 34.755586071537415, + "y": 8.57879026092177 + } + }, + "right": { + "startPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "endPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint1": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint2": { + "x": 34.640999560570975, + "y": 12.278351502824385 + } + } + }, + { + "top": { + "startPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "endPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint1": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint2": { + "x": 34.640999560570975, + "y": 12.278351502824385 + } + }, + "bottom": { + "startPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "endPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint1": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint2": { + "x": 46.15427307164648, + "y": 12.079870215100424 + } + }, + "left": { + "startPoint": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "endPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint1": { + "x": 34.755586071537415, + "y": 8.57879026092177 + }, + "controlPoint2": { + "x": 46.182863875065856, + "y": 8.364471001702562 + } + }, + "right": { + "startPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "endPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint1": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint2": { + "x": 46.15427307164648, + "y": 12.079870215100424 + } + } + }, + { + "top": { + "startPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "endPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint1": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint2": { + "x": 46.15427307164648, + "y": 12.079870215100424 + } + }, + "bottom": { + "startPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "endPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint1": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint2": { + "x": 65.35900043942904, + "y": 12.278351502824393 + } + }, + "left": { + "startPoint": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "endPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint1": { + "x": 46.182863875065856, + "y": 8.364471001702562 + }, + "controlPoint2": { + "x": 65.2444139284626, + "y": 8.578790260921771 + } + }, + "right": { + "startPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "endPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint1": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint2": { + "x": 65.35900043942904, + "y": 12.278351502824393 + } + } + }, + { + "top": { + "startPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "endPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint1": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint2": { + "x": 65.35900043942904, + "y": 12.278351502824393 + } + }, + "bottom": { + "startPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "endPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint1": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint2": { + "x": 69.21578085262163, + "y": 12.402547250164528 + } + }, + "left": { + "startPoint": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "endPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint1": { + "x": 65.2444139284626, + "y": 8.578790260921771 + }, + "controlPoint2": { + "x": 69.07331087379977, + "y": 8.712869146599592 + } + }, + "right": { + "startPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "endPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint1": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint2": { + "x": 69.21578085262163, + "y": 12.402547250164528 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "endPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint1": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint2": { + "x": 69.21578085262163, + "y": 12.402547250164528 + } + }, + "bottom": { + "startPoint": { + "x": 105.71264946348043, + "y": 13.506677672709223 + }, + "endPoint": { + "x": 106.07741634548614, + "y": 16.75436258066631 + }, + "controlPoint1": { + "x": 105.71264946348043, + "y": 13.506677672709223 + }, + "controlPoint2": { + "x": 106.07741634548614, + "y": 16.75436258066631 + } + }, + "left": { + "startPoint": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "endPoint": { + "x": 105.71264946348043, + "y": 13.506677672709223 + }, + "controlPoint1": { + "x": 69.07331087379977, + "y": 8.712869146599592 + }, + "controlPoint2": { + "x": 105.71264946348043, + "y": 13.506677672709223 + } + }, + "right": { + "startPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "endPoint": { + "x": 106.07741634548614, + "y": 16.75436258066631 + }, + "controlPoint1": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint2": { + "x": 106.07741634548614, + "y": 16.75436258066631 + } + } + }, + { + "top": { + "startPoint": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "endPoint": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "controlPoint1": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "controlPoint2": { + "x": -7.186015171554757, + "y": 33.39818816941482 + } + }, + "bottom": { + "startPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "endPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint1": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint2": { + "x": 10.682693662012786, + "y": 31.955109892804444 + } + }, + "left": { + "startPoint": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "endPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint1": { + "x": -6.077416345486151, + "y": 16.75436258066631 + }, + "controlPoint2": { + "x": 11.638914102513018, + "y": 13.57748970176307 + } + }, + "right": { + "startPoint": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "endPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint1": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "controlPoint2": { + "x": 10.682693662012786, + "y": 31.955109892804444 + } + } + }, + { + "top": { + "startPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "endPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint1": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint2": { + "x": 10.682693662012786, + "y": 31.955109892804444 + } + }, + "bottom": { + "startPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "endPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint1": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint2": { + "x": 14.622542002928427, + "y": 31.76059461403331 + } + }, + "left": { + "startPoint": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "endPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint1": { + "x": 11.638914102513018, + "y": 13.57748970176307 + }, + "controlPoint2": { + "x": 15.481319167037991, + "y": 13.247894580066912 + } + }, + "right": { + "startPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "endPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint1": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint2": { + "x": 14.622542002928427, + "y": 31.76059461403331 + } + } + }, + { + "top": { + "startPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "endPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint1": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint2": { + "x": 14.622542002928427, + "y": 31.76059461403331 + } + }, + "bottom": { + "startPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "endPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint1": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint2": { + "x": 34.25879649479483, + "y": 31.181558761300586 + } + }, + "left": { + "startPoint": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "endPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint1": { + "x": 15.481319167037991, + "y": 13.247894580066912 + }, + "controlPoint2": { + "x": 34.640999560570975, + "y": 12.278351502824385 + } + }, + "right": { + "startPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "endPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint1": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint2": { + "x": 34.25879649479483, + "y": 31.181558761300586 + } + } + }, + { + "top": { + "startPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "endPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint1": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint2": { + "x": 34.25879649479483, + "y": 31.181558761300586 + } + }, + "bottom": { + "startPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "endPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint1": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint2": { + "x": 46.059001426813595, + "y": 31.062267331052826 + } + }, + "left": { + "startPoint": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "endPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint1": { + "x": 34.640999560570975, + "y": 12.278351502824385 + }, + "controlPoint2": { + "x": 46.15427307164648, + "y": 12.079870215100424 + } + }, + "right": { + "startPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "endPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint1": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint2": { + "x": 46.059001426813595, + "y": 31.062267331052826 + } + } + }, + { + "top": { + "startPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "endPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint1": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint2": { + "x": 46.059001426813595, + "y": 31.062267331052826 + } + }, + "bottom": { + "startPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "endPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint1": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint2": { + "x": 65.74120350520518, + "y": 31.181558761300582 + } + }, + "left": { + "startPoint": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "endPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint1": { + "x": 46.15427307164648, + "y": 12.079870215100424 + }, + "controlPoint2": { + "x": 65.35900043942904, + "y": 12.278351502824393 + } + }, + "right": { + "startPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "endPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint1": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint2": { + "x": 65.74120350520518, + "y": 31.181558761300582 + } + } + }, + { + "top": { + "startPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "endPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint1": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint2": { + "x": 65.74120350520518, + "y": 31.181558761300582 + } + }, + "bottom": { + "startPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "endPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint1": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint2": { + "x": 69.68971888541105, + "y": 31.256338816952308 + } + }, + "left": { + "startPoint": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "endPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint1": { + "x": 65.35900043942904, + "y": 12.278351502824393 + }, + "controlPoint2": { + "x": 69.21578085262163, + "y": 12.402547250164528 + } + }, + "right": { + "startPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "endPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint1": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint2": { + "x": 69.68971888541105, + "y": 31.256338816952308 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "endPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint1": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint2": { + "x": 69.68971888541105, + "y": 31.256338816952308 + } + }, + "bottom": { + "startPoint": { + "x": 106.07741634548614, + "y": 16.75436258066631 + }, + "endPoint": { + "x": 107.18601517155474, + "y": 33.39818816941482 + }, + "controlPoint1": { + "x": 106.07741634548614, + "y": 16.75436258066631 + }, + "controlPoint2": { + "x": 107.18601517155474, + "y": 33.39818816941482 + } + }, + "left": { + "startPoint": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "endPoint": { + "x": 106.07741634548614, + "y": 16.75436258066631 + }, + "controlPoint1": { + "x": 69.21578085262163, + "y": 12.402547250164528 + }, + "controlPoint2": { + "x": 106.07741634548614, + "y": 16.75436258066631 + } + }, + "right": { + "startPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "endPoint": { + "x": 107.18601517155474, + "y": 33.39818816941482 + }, + "controlPoint1": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint2": { + "x": 107.18601517155474, + "y": 33.39818816941482 + } + } + }, + { + "top": { + "startPoint": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "endPoint": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "controlPoint1": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "controlPoint2": { + "x": -7.487765252226435, + "y": 46.67001984489133 + } + }, + "bottom": { + "startPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "endPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint1": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint2": { + "x": 10.30780329640141, + "y": 46.61397725011524 + } + }, + "left": { + "startPoint": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "endPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint1": { + "x": -7.186015171554757, + "y": 33.39818816941482 + }, + "controlPoint2": { + "x": 10.682693662012786, + "y": 31.955109892804444 + } + }, + "right": { + "startPoint": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "endPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint1": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "controlPoint2": { + "x": 10.30780329640141, + "y": 46.61397725011524 + } + } + }, + { + "top": { + "startPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "endPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint1": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint2": { + "x": 10.30780329640141, + "y": 46.61397725011524 + } + }, + "bottom": { + "startPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "endPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint1": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint2": { + "x": 14.286597659750699, + "y": 46.527525845684096 + } + }, + "left": { + "startPoint": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "endPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint1": { + "x": 10.682693662012786, + "y": 31.955109892804444 + }, + "controlPoint2": { + "x": 14.622542002928427, + "y": 31.76059461403331 + } + }, + "right": { + "startPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "endPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint1": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint2": { + "x": 14.286597659750699, + "y": 46.527525845684096 + } + } + }, + { + "top": { + "startPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "endPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint1": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint2": { + "x": 14.286597659750699, + "y": 46.527525845684096 + } + }, + "bottom": { + "startPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "endPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint1": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint2": { + "x": 34.10906843688942, + "y": 46.26089577255922 + } + }, + "left": { + "startPoint": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "endPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint1": { + "x": 14.622542002928427, + "y": 31.76059461403331 + }, + "controlPoint2": { + "x": 34.25879649479483, + "y": 31.181558761300586 + } + }, + "right": { + "startPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "endPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint1": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint2": { + "x": 34.10906843688942, + "y": 46.26089577255922 + } + } + }, + { + "top": { + "startPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "endPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint1": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint2": { + "x": 34.10906843688942, + "y": 46.26089577255922 + } + }, + "bottom": { + "startPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "endPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint1": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint2": { + "x": 46.02179270962617, + "y": 46.20495622829246 + } + }, + "left": { + "startPoint": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "endPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint1": { + "x": 34.25879649479483, + "y": 31.181558761300586 + }, + "controlPoint2": { + "x": 46.059001426813595, + "y": 31.062267331052826 + } + }, + "right": { + "startPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "endPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint1": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint2": { + "x": 46.02179270962617, + "y": 46.20495622829246 + } + } + }, + { + "top": { + "startPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "endPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint1": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint2": { + "x": 46.02179270962617, + "y": 46.20495622829246 + } + }, + "bottom": { + "startPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "endPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint1": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint2": { + "x": 65.89093156311058, + "y": 46.26089577255924 + } + }, + "left": { + "startPoint": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "endPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint1": { + "x": 46.059001426813595, + "y": 31.062267331052826 + }, + "controlPoint2": { + "x": 65.74120350520518, + "y": 31.181558761300582 + } + }, + "right": { + "startPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "endPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint1": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint2": { + "x": 65.89093156311058, + "y": 46.26089577255924 + } + } + }, + { + "top": { + "startPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "endPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint1": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint2": { + "x": 65.89093156311058, + "y": 46.26089577255924 + } + }, + "bottom": { + "startPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "endPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint1": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint2": { + "x": 69.87382631824815, + "y": 46.29614327486021 + } + }, + "left": { + "startPoint": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "endPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint1": { + "x": 65.74120350520518, + "y": 31.181558761300582 + }, + "controlPoint2": { + "x": 69.68971888541105, + "y": 31.256338816952308 + } + }, + "right": { + "startPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "endPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint1": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint2": { + "x": 69.87382631824815, + "y": 46.29614327486021 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "endPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint1": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint2": { + "x": 69.87382631824815, + "y": 46.29614327486021 + } + }, + "bottom": { + "startPoint": { + "x": 107.18601517155474, + "y": 33.39818816941482 + }, + "endPoint": { + "x": 107.48776525222644, + "y": 46.67001984489133 + }, + "controlPoint1": { + "x": 107.18601517155474, + "y": 33.39818816941482 + }, + "controlPoint2": { + "x": 107.48776525222644, + "y": 46.67001984489133 + } + }, + "left": { + "startPoint": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "endPoint": { + "x": 107.18601517155474, + "y": 33.39818816941482 + }, + "controlPoint1": { + "x": 69.68971888541105, + "y": 31.256338816952308 + }, + "controlPoint2": { + "x": 107.18601517155474, + "y": 33.39818816941482 + } + }, + "right": { + "startPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "endPoint": { + "x": 107.48776525222644, + "y": 46.67001984489133 + }, + "controlPoint1": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint2": { + "x": 107.48776525222644, + "y": 46.67001984489133 + } + } + }, + { + "top": { + "startPoint": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "endPoint": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "controlPoint1": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "controlPoint2": { + "x": -7.300655474673984, + "y": 63.30926786924066 + } + }, + "bottom": { + "startPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "endPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint1": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint2": { + "x": 10.215388591648553, + "y": 64.98701987675743 + } + }, + "left": { + "startPoint": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "endPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint1": { + "x": -7.487765252226435, + "y": 46.67001984489133 + }, + "controlPoint2": { + "x": 10.30780329640141, + "y": 46.61397725011524 + } + }, + "right": { + "startPoint": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "endPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint1": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "controlPoint2": { + "x": 10.215388591648553, + "y": 64.98701987675743 + } + } + }, + { + "top": { + "startPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "endPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint1": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint2": { + "x": 10.215388591648553, + "y": 64.98701987675743 + } + }, + "bottom": { + "startPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "endPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint1": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint2": { + "x": 14.205245657813771, + "y": 65.03564831525131 + } + }, + "left": { + "startPoint": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "endPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint1": { + "x": 10.30780329640141, + "y": 46.61397725011524 + }, + "controlPoint2": { + "x": 14.286597659750699, + "y": 46.527525845684096 + } + }, + "right": { + "startPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "endPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint1": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint2": { + "x": 14.205245657813771, + "y": 65.03564831525131 + } + } + }, + { + "top": { + "startPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "endPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint1": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint2": { + "x": 14.205245657813771, + "y": 65.03564831525131 + } + }, + "bottom": { + "startPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "endPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint2": { + "x": 34.07238766541223, + "y": 65.15952546663624 + } + }, + "left": { + "startPoint": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "endPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint1": { + "x": 14.286597659750699, + "y": 46.527525845684096 + }, + "controlPoint2": { + "x": 34.10906843688942, + "y": 46.26089577255922 + } + }, + "right": { + "startPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "endPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint2": { + "x": 34.07238766541223, + "y": 65.15952546663624 + } + } + }, + { + "top": { + "startPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "endPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint2": { + "x": 34.07238766541223, + "y": 65.15952546663624 + } + }, + "bottom": { + "startPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "endPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint1": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint2": { + "x": 46.012901638368035, + "y": 65.18277577984568 + } + }, + "left": { + "startPoint": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "endPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint1": { + "x": 34.10906843688942, + "y": 46.26089577255922 + }, + "controlPoint2": { + "x": 46.02179270962617, + "y": 46.20495622829246 + } + }, + "right": { + "startPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint1": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 46.012901638368035, + "y": 65.18277577984568 + } + } + }, + { + "top": { + "startPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "endPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint1": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint2": { + "x": 46.012901638368035, + "y": 65.18277577984568 + } + }, + "bottom": { + "startPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "endPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint2": { + "x": 65.92761233458778, + "y": 65.15952546663624 + } + }, + "left": { + "startPoint": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "endPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint1": { + "x": 46.02179270962617, + "y": 46.20495622829246 + }, + "controlPoint2": { + "x": 65.89093156311058, + "y": 46.26089577255924 + } + }, + "right": { + "startPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "endPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint2": { + "x": 65.92761233458778, + "y": 65.15952546663624 + } + } + }, + { + "top": { + "startPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "endPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint2": { + "x": 65.92761233458778, + "y": 65.15952546663624 + } + }, + "bottom": { + "startPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "endPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint1": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint2": { + "x": 69.9158614831639, + "y": 65.14535727724882 + } + }, + "left": { + "startPoint": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "endPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint1": { + "x": 65.89093156311058, + "y": 46.26089577255924 + }, + "controlPoint2": { + "x": 69.87382631824815, + "y": 46.29614327486021 + } + }, + "right": { + "startPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint1": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 69.9158614831639, + "y": 65.14535727724882 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "endPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint1": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint2": { + "x": 69.9158614831639, + "y": 65.14535727724882 + } + }, + "bottom": { + "startPoint": { + "x": 107.48776525222644, + "y": 46.67001984489133 + }, + "endPoint": { + "x": 107.30065547467399, + "y": 63.30926786924066 + }, + "controlPoint1": { + "x": 107.48776525222644, + "y": 46.67001984489133 + }, + "controlPoint2": { + "x": 107.30065547467399, + "y": 63.30926786924066 + } + }, + "left": { + "startPoint": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "endPoint": { + "x": 107.48776525222644, + "y": 46.67001984489133 + }, + "controlPoint1": { + "x": 69.87382631824815, + "y": 46.29614327486021 + }, + "controlPoint2": { + "x": 107.48776525222644, + "y": 46.67001984489133 + } + }, + "right": { + "startPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "endPoint": { + "x": 107.30065547467399, + "y": 63.30926786924066 + }, + "controlPoint1": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint2": { + "x": 107.30065547467399, + "y": 63.30926786924066 + } + } + }, + { + "top": { + "startPoint": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "endPoint": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "controlPoint1": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "controlPoint2": { + "x": -7.186015171554758, + "y": 66.60181183058518 + } + }, + "bottom": { + "startPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "endPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint1": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint2": { + "x": 10.248384549103797, + "y": 68.62632275856055 + } + }, + "left": { + "startPoint": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "endPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint1": { + "x": -7.300655474673984, + "y": 63.30926786924066 + }, + "controlPoint2": { + "x": 10.215388591648553, + "y": 64.98701987675743 + } + }, + "right": { + "startPoint": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "endPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint1": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "controlPoint2": { + "x": 10.248384549103797, + "y": 68.62632275856055 + } + } + }, + { + "top": { + "startPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "endPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint1": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint2": { + "x": 10.248384549103797, + "y": 68.62632275856055 + } + }, + "bottom": { + "startPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "endPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint1": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint2": { + "x": 14.235306265991627, + "y": 68.70196716563939 + } + }, + "left": { + "startPoint": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "endPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint1": { + "x": 10.215388591648553, + "y": 64.98701987675743 + }, + "controlPoint2": { + "x": 14.205245657813771, + "y": 65.03564831525131 + } + }, + "right": { + "startPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "endPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint1": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint2": { + "x": 14.235306265991627, + "y": 68.70196716563939 + } + } + }, + { + "top": { + "startPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "endPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint1": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint2": { + "x": 14.235306265991627, + "y": 68.70196716563939 + } + }, + "bottom": { + "startPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 34.08564307047911, + "y": 68.90394576192631 + } + }, + "left": { + "startPoint": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "endPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 14.205245657813771, + "y": 65.03564831525131 + }, + "controlPoint2": { + "x": 34.07238766541223, + "y": 65.15952546663624 + } + }, + "right": { + "startPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "endPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint2": { + "x": 34.08564307047911, + "y": 68.90394576192631 + } + } + }, + { + "top": { + "startPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 34.08564307047911, + "y": 68.90394576192631 + } + }, + "bottom": { + "startPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "endPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint1": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint2": { + "x": 46.01627131395699, + "y": 68.943034046631 + } + }, + "left": { + "startPoint": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint1": { + "x": 34.07238766541223, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 46.012901638368035, + "y": 65.18277577984568 + } + }, + "right": { + "startPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint1": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 46.01627131395699, + "y": 68.943034046631 + } + } + }, + { + "top": { + "startPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "endPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint1": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint2": { + "x": 46.01627131395699, + "y": 68.943034046631 + } + }, + "bottom": { + "startPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 65.9143569295209, + "y": 68.90394576192631 + } + }, + "left": { + "startPoint": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "endPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint1": { + "x": 46.012901638368035, + "y": 65.18277577984568 + }, + "controlPoint2": { + "x": 65.92761233458778, + "y": 65.15952546663624 + } + }, + "right": { + "startPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "endPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint2": { + "x": 65.9143569295209, + "y": 68.90394576192631 + } + } + }, + { + "top": { + "startPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 65.9143569295209, + "y": 68.90394576192631 + } + }, + "bottom": { + "startPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "endPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint1": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint2": { + "x": 69.89852906694412, + "y": 68.87989443420119 + } + }, + "left": { + "startPoint": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "endPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint1": { + "x": 65.92761233458778, + "y": 65.15952546663624 + }, + "controlPoint2": { + "x": 69.9158614831639, + "y": 65.14535727724882 + } + }, + "right": { + "startPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint1": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 69.89852906694412, + "y": 68.87989443420119 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "endPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint1": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint2": { + "x": 69.89852906694412, + "y": 68.87989443420119 + } + }, + "bottom": { + "startPoint": { + "x": 107.30065547467399, + "y": 63.30926786924066 + }, + "endPoint": { + "x": 107.18601517155474, + "y": 66.60181183058518 + }, + "controlPoint1": { + "x": 107.30065547467399, + "y": 63.30926786924066 + }, + "controlPoint2": { + "x": 107.18601517155474, + "y": 66.60181183058518 + } + }, + "left": { + "startPoint": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "endPoint": { + "x": 107.30065547467399, + "y": 63.30926786924066 + }, + "controlPoint1": { + "x": 69.9158614831639, + "y": 65.14535727724882 + }, + "controlPoint2": { + "x": 107.30065547467399, + "y": 63.30926786924066 + } + }, + "right": { + "startPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "endPoint": { + "x": 107.18601517155474, + "y": 66.60181183058518 + }, + "controlPoint1": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint2": { + "x": 107.18601517155474, + "y": 66.60181183058518 + } + } + }, + { + "top": { + "startPoint": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "endPoint": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "controlPoint1": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "controlPoint2": { + "x": -6.077416345486149, + "y": 83.24563741933372 + } + }, + "bottom": { + "startPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "endPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint1": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint2": { + "x": 10.770295876695046, + "y": 87.00394294960192 + } + }, + "left": { + "startPoint": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "endPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint1": { + "x": -7.186015171554758, + "y": 66.60181183058518 + }, + "controlPoint2": { + "x": 10.248384549103797, + "y": 68.62632275856055 + } + }, + "right": { + "startPoint": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "endPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint1": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "controlPoint2": { + "x": 10.770295876695046, + "y": 87.00394294960192 + } + } + }, + { + "top": { + "startPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "endPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint1": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint2": { + "x": 10.770295876695046, + "y": 87.00394294960192 + } + }, + "bottom": { + "startPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "endPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint1": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint2": { + "x": 14.706847693164395, + "y": 87.2146671996058 + } + }, + "left": { + "startPoint": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "endPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint1": { + "x": 10.248384549103797, + "y": 68.62632275856055 + }, + "controlPoint2": { + "x": 14.235306265991627, + "y": 68.70196716563939 + } + }, + "right": { + "startPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "endPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint1": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint2": { + "x": 14.706847693164395, + "y": 87.2146671996058 + } + } + }, + { + "top": { + "startPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "endPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint1": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint2": { + "x": 14.706847693164395, + "y": 87.2146671996058 + } + }, + "bottom": { + "startPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint1": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 34.29469271193953, + "y": 87.8071530204025 + } + }, + "left": { + "startPoint": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "endPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 14.235306265991627, + "y": 68.70196716563939 + }, + "controlPoint2": { + "x": 34.08564307047911, + "y": 68.90394576192631 + } + }, + "right": { + "startPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "endPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint1": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint2": { + "x": 34.29469271193953, + "y": 87.8071530204025 + } + } + }, + { + "top": { + "startPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint1": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 34.29469271193953, + "y": 87.8071530204025 + } + }, + "bottom": { + "startPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "endPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint1": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint2": { + "x": 46.06881284593327, + "y": 87.92543116258344 + } + }, + "left": { + "startPoint": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint1": { + "x": 34.08564307047911, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 46.01627131395699, + "y": 68.943034046631 + } + }, + "right": { + "startPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "endPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint1": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint2": { + "x": 46.06881284593327, + "y": 87.92543116258344 + } + } + }, + { + "top": { + "startPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "endPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint1": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint2": { + "x": 46.06881284593327, + "y": 87.92543116258344 + } + }, + "bottom": { + "startPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint1": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 65.70530728806044, + "y": 87.80715302040254 + } + }, + "left": { + "startPoint": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "endPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint1": { + "x": 46.01627131395699, + "y": 68.943034046631 + }, + "controlPoint2": { + "x": 65.9143569295209, + "y": 68.90394576192631 + } + }, + "right": { + "startPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "endPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint1": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint2": { + "x": 65.70530728806044, + "y": 87.80715302040254 + } + } + }, + { + "top": { + "startPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint1": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 65.70530728806044, + "y": 87.80715302040254 + } + }, + "bottom": { + "startPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "endPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint1": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint2": { + "x": 69.63340121568777, + "y": 87.73368600098897 + } + }, + "left": { + "startPoint": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "endPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint1": { + "x": 65.9143569295209, + "y": 68.90394576192631 + }, + "controlPoint2": { + "x": 69.89852906694412, + "y": 68.87989443420119 + } + }, + "right": { + "startPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "endPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint1": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint2": { + "x": 69.63340121568777, + "y": 87.73368600098897 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "endPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint1": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint2": { + "x": 69.63340121568777, + "y": 87.73368600098897 + } + }, + "bottom": { + "startPoint": { + "x": 107.18601517155474, + "y": 66.60181183058518 + }, + "endPoint": { + "x": 106.07741634548614, + "y": 83.24563741933372 + }, + "controlPoint1": { + "x": 107.18601517155474, + "y": 66.60181183058518 + }, + "controlPoint2": { + "x": 106.07741634548614, + "y": 83.24563741933372 + } + }, + "left": { + "startPoint": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "endPoint": { + "x": 107.18601517155474, + "y": 66.60181183058518 + }, + "controlPoint1": { + "x": 69.89852906694412, + "y": 68.87989443420119 + }, + "controlPoint2": { + "x": 107.18601517155474, + "y": 66.60181183058518 + } + }, + "right": { + "startPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "endPoint": { + "x": 106.07741634548614, + "y": 83.24563741933372 + }, + "controlPoint1": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint2": { + "x": 106.07741634548614, + "y": 83.24563741933372 + } + } + }, + { + "top": { + "startPoint": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "endPoint": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "controlPoint1": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "controlPoint2": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + } + }, + "bottom": { + "startPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "endPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint1": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint2": { + "x": 10.97004288674129, + "y": 90.59838677801758 + } + }, + "left": { + "startPoint": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "endPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint1": { + "x": -6.077416345486149, + "y": 83.24563741933372 + }, + "controlPoint2": { + "x": 10.770295876695046, + "y": 87.00394294960192 + } + }, + "right": { + "startPoint": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "endPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint1": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "controlPoint2": { + "x": 10.97004288674129, + "y": 90.59838677801758 + } + } + }, + { + "top": { + "startPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "endPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint1": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint2": { + "x": 10.97004288674129, + "y": 90.59838677801758 + } + }, + "bottom": { + "startPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "endPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint1": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint2": { + "x": 14.886984248674139, + "y": 90.83612699660642 + } + }, + "left": { + "startPoint": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "endPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint1": { + "x": 10.770295876695046, + "y": 87.00394294960192 + }, + "controlPoint2": { + "x": 14.706847693164395, + "y": 87.2146671996058 + } + }, + "right": { + "startPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "endPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint1": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint2": { + "x": 14.886984248674139, + "y": 90.83612699660642 + } + } + }, + { + "top": { + "startPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "endPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint1": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint2": { + "x": 14.886984248674139, + "y": 90.83612699660642 + } + }, + "bottom": { + "startPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "endPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint2": { + "x": 34.37464853804282, + "y": 91.50671426230514 + } + }, + "left": { + "startPoint": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "endPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint1": { + "x": 14.706847693164395, + "y": 87.2146671996058 + }, + "controlPoint2": { + "x": 34.29469271193953, + "y": 87.8071530204025 + } + }, + "right": { + "startPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "endPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint2": { + "x": 34.37464853804282, + "y": 91.50671426230514 + } + } + }, + { + "top": { + "startPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "endPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint2": { + "x": 34.37464853804282, + "y": 91.50671426230514 + } + }, + "bottom": { + "startPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "endPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint1": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint2": { + "x": 46.08885762678133, + "y": 91.64083037598127 + } + }, + "left": { + "startPoint": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "endPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint1": { + "x": 34.29469271193953, + "y": 87.8071530204025 + }, + "controlPoint2": { + "x": 46.06881284593327, + "y": 87.92543116258344 + } + }, + "right": { + "startPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint1": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 46.08885762678133, + "y": 91.64083037598127 + } + } + }, + { + "top": { + "startPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "endPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint1": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint2": { + "x": 46.08885762678133, + "y": 91.64083037598127 + } + }, + "bottom": { + "startPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "endPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint2": { + "x": 65.6253514619572, + "y": 91.50671426230514 + } + }, + "left": { + "startPoint": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "endPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint1": { + "x": 46.06881284593327, + "y": 87.92543116258344 + }, + "controlPoint2": { + "x": 65.70530728806044, + "y": 87.80715302040254 + } + }, + "right": { + "startPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "endPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint2": { + "x": 65.6253514619572, + "y": 91.50671426230514 + } + } + }, + { + "top": { + "startPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "endPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint2": { + "x": 65.6253514619572, + "y": 91.50671426230514 + } + }, + "bottom": { + "startPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "endPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint1": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint2": { + "x": 69.53269327317248, + "y": 91.42336410455391 + } + }, + "left": { + "startPoint": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "endPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint1": { + "x": 65.70530728806044, + "y": 87.80715302040254 + }, + "controlPoint2": { + "x": 69.63340121568777, + "y": 87.73368600098897 + } + }, + "right": { + "startPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint1": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 69.53269327317248, + "y": 91.42336410455391 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "endPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint1": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint2": { + "x": 69.53269327317248, + "y": 91.42336410455391 + } + }, + "bottom": { + "startPoint": { + "x": 106.07741634548614, + "y": 83.24563741933372 + }, + "endPoint": { + "x": 105.71264946348043, + "y": 86.4933223272908 + }, + "controlPoint1": { + "x": 106.07741634548614, + "y": 83.24563741933372 + }, + "controlPoint2": { + "x": 105.71264946348043, + "y": 86.4933223272908 + } + }, + "left": { + "startPoint": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "endPoint": { + "x": 106.07741634548614, + "y": 83.24563741933372 + }, + "controlPoint1": { + "x": 69.63340121568777, + "y": 87.73368600098897 + }, + "controlPoint2": { + "x": 106.07741634548614, + "y": 83.24563741933372 + } + }, + "right": { + "startPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "endPoint": { + "x": 105.71264946348043, + "y": 86.4933223272908 + }, + "controlPoint1": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint2": { + "x": 105.71264946348043, + "y": 86.4933223272908 + } + } + }, + { + "top": { + "startPoint": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "endPoint": { + "x": 0, + "y": 100 + }, + "controlPoint1": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "controlPoint2": { + "x": 0, + "y": 100 + } + }, + "bottom": { + "startPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "endPoint": { + "x": 14.561321305940421, + "y": 105.83885905301966 + }, + "controlPoint1": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint2": { + "x": 14.561321305940421, + "y": 105.83885905301966 + } + }, + "left": { + "startPoint": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "endPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint1": { + "x": -5.7126494634804335, + "y": 86.4933223272908 + }, + "controlPoint2": { + "x": 10.97004288674129, + "y": 90.59838677801758 + } + }, + "right": { + "startPoint": { + "x": 0, + "y": 100 + }, + "endPoint": { + "x": 14.561321305940421, + "y": 105.83885905301966 + }, + "controlPoint1": { + "x": 0, + "y": 100 + }, + "controlPoint2": { + "x": 14.561321305940421, + "y": 105.83885905301966 + } + } + }, + { + "top": { + "startPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "endPoint": { + "x": 14.561321305940421, + "y": 105.83885905301966 + }, + "controlPoint1": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint2": { + "x": 14.561321305940421, + "y": 105.83885905301966 + } + }, + "bottom": { + "startPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "endPoint": { + "x": 18.120956058294, + "y": 106.21167911453352 + }, + "controlPoint1": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint2": { + "x": 18.120956058294, + "y": 106.21167911453352 + } + }, + "left": { + "startPoint": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "endPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint1": { + "x": 10.97004288674129, + "y": 90.59838677801758 + }, + "controlPoint2": { + "x": 14.886984248674139, + "y": 90.83612699660642 + } + }, + "right": { + "startPoint": { + "x": 14.561321305940421, + "y": 105.83885905301966 + }, + "endPoint": { + "x": 18.120956058294, + "y": 106.21167911453352 + }, + "controlPoint1": { + "x": 14.561321305940421, + "y": 105.83885905301966 + }, + "controlPoint2": { + "x": 18.120956058294, + "y": 106.21167911453352 + } + } + }, + { + "top": { + "startPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "endPoint": { + "x": 18.120956058294, + "y": 106.21167911453352 + }, + "controlPoint1": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint2": { + "x": 18.120956058294, + "y": 106.21167911453352 + } + }, + "bottom": { + "startPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 35.811445016146415, + "y": 107.27277360474201 + }, + "controlPoint1": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 35.811445016146415, + "y": 107.27277360474201 + } + }, + "left": { + "startPoint": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "endPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 14.886984248674139, + "y": 90.83612699660642 + }, + "controlPoint2": { + "x": 34.37464853804282, + "y": 91.50671426230514 + } + }, + "right": { + "startPoint": { + "x": 18.120956058294, + "y": 106.21167911453352 + }, + "endPoint": { + "x": 35.811445016146415, + "y": 107.27277360474201 + }, + "controlPoint1": { + "x": 18.120956058294, + "y": 106.21167911453352 + }, + "controlPoint2": { + "x": 35.811445016146415, + "y": 107.27277360474201 + } + } + }, + { + "top": { + "startPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 35.811445016146415, + "y": 107.27277360474201 + }, + "controlPoint1": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 35.811445016146415, + "y": 107.27277360474201 + } + }, + "bottom": { + "startPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "endPoint": { + "x": 46.448335867918395, + "y": 107.48607957589437 + }, + "controlPoint1": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint2": { + "x": 46.448335867918395, + "y": 107.48607957589437 + } + }, + "left": { + "startPoint": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint1": { + "x": 34.37464853804282, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 46.08885762678133, + "y": 91.64083037598127 + } + }, + "right": { + "startPoint": { + "x": 35.811445016146415, + "y": 107.27277360474201 + }, + "endPoint": { + "x": 46.448335867918395, + "y": 107.48607957589437 + }, + "controlPoint1": { + "x": 35.811445016146415, + "y": 107.27277360474201 + }, + "controlPoint2": { + "x": 46.448335867918395, + "y": 107.48607957589437 + } + } + }, + { + "top": { + "startPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "endPoint": { + "x": 46.448335867918395, + "y": 107.48607957589437 + }, + "controlPoint1": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint2": { + "x": 46.448335867918395, + "y": 107.48607957589437 + } + }, + "bottom": { + "startPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 64.18855498385358, + "y": 107.27277360474203 + }, + "controlPoint1": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 64.18855498385358, + "y": 107.27277360474203 + } + }, + "left": { + "startPoint": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "endPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint1": { + "x": 46.08885762678133, + "y": 91.64083037598127 + }, + "controlPoint2": { + "x": 65.6253514619572, + "y": 91.50671426230514 + } + }, + "right": { + "startPoint": { + "x": 46.448335867918395, + "y": 107.48607957589437 + }, + "endPoint": { + "x": 64.18855498385358, + "y": 107.27277360474203 + }, + "controlPoint1": { + "x": 46.448335867918395, + "y": 107.48607957589437 + }, + "controlPoint2": { + "x": 64.18855498385358, + "y": 107.27277360474203 + } + } + }, + { + "top": { + "startPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 64.18855498385358, + "y": 107.27277360474203 + }, + "controlPoint1": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 64.18855498385358, + "y": 107.27277360474203 + } + }, + "bottom": { + "startPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + "left": { + "startPoint": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "endPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint1": { + "x": 65.6253514619572, + "y": 91.50671426230514 + }, + "controlPoint2": { + "x": 69.53269327317248, + "y": 91.42336410455391 + } + }, + "right": { + "startPoint": { + "x": 64.18855498385358, + "y": 107.27277360474203 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 64.18855498385358, + "y": 107.27277360474203 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + } + }, + { + "top": { + "startPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "endPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint1": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint2": { + "x": 67.73288187611223, + "y": 107.14000775530238 + } + }, + "bottom": { + "startPoint": { + "x": 105.71264946348043, + "y": 86.4933223272908 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 105.71264946348043, + "y": 86.4933223272908 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + }, + "left": { + "startPoint": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "endPoint": { + "x": 105.71264946348043, + "y": 86.4933223272908 + }, + "controlPoint1": { + "x": 69.53269327317248, + "y": 91.42336410455391 + }, + "controlPoint2": { + "x": 105.71264946348043, + "y": 86.4933223272908 + } + }, + "right": { + "startPoint": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "endPoint": { + "x": 100, + "y": 100 + }, + "controlPoint1": { + "x": 67.73288187611223, + "y": 107.14000775530238 + }, + "controlPoint2": { + "x": 100, + "y": 100 + } + } + } + ] + } +} diff --git a/tests/fixtures/patch3x3Grid.js b/tests/fixtures/patch3x3Grid.js deleted file mode 100644 index e1f66c9..0000000 --- a/tests/fixtures/patch3x3Grid.js +++ /dev/null @@ -1,489 +0,0 @@ -const fixture3X3Grid = { - api: { - getGridCellBounds: (columns, rows) => { - if (columns === 2 && rows === 2) { - return { - top: { - startPoint: { x: 69.91009991027006, y: 70.12845714779243 }, - controlPoint1: { x: 81.65369075063307, y: 69.58991178073114 }, - controlPoint2: { x: 98.56371828238882, y: 71.54168448749557 }, - endPoint: { x: 107.14141232389639, y: 67.69958505702864 }, - }, - bottom: { - startPoint: { x: 67.69958505702562, y: 107.1414123238936 }, - controlPoint1: { x: 77.31685262053347, y: 105.85164532587855 }, - controlPoint2: { x: 93.66044410925804, y: 108.61675756986449 }, - endPoint: { x: 99.9999999999981, y: 99.99999999999775 }, - }, - left: { - startPoint: { x: 69.9100999102717, y: 70.1284571477908 }, - controlPoint1: { x: 69.53682955139652, y: 81.31657145567644 }, - controlPoint2: { x: 70.5151856065218, y: 99.23100968877866 }, - endPoint: { x: 67.69958505702866, y: 107.14141232389636 }, - }, - right: { - startPoint: { x: 107.14141232389363, y: 67.69958505702562 }, - controlPoint1: { x: 105.8516453258785, y: 77.31685262053347 }, - controlPoint2: { x: 108.61675756986449, y: 93.66044410925804 }, - endPoint: { x: 99.99999999999775, y: 99.9999999999981 }, - }, - } - } else { - throw new Error( - `No fixture data for columns: '${columns}', rows: '${rows}'` - ) - } - }, - getIntersections: () => [ - { x: 0, y: 0 }, - { x: 32.810282707133965, y: -6.996208375500232 }, - { x: 67.18971729286605, y: -6.996208375500231 }, - { x: 100, y: 0 }, - { x: -7.141412323898402, y: 32.30041494296988 }, - { x: 30.259856011113133, y: 30.016746800602522 }, - { x: 69.74014398888687, y: 30.016746800602505 }, - { x: 107.14141232389845, y: 32.30041494296988 }, - { x: -7.1414123238983995, y: 67.69958505703013 }, - { x: 30.0899000897251, y: 70.12845714779564 }, - { x: 69.9100999102749, y: 70.12845714779563 }, - { x: 107.14141232389841, y: 67.69958505703013 }, - { x: 0, y: 100 }, - { x: 32.30041494296988, y: 107.1414123238984 }, - { x: 67.69958505703013, y: 107.14141232389838 }, - { x: 100, y: 100 }, - ], - getPoint: (ratioX, ratioY) => { - if (ratioX === 0.5 && ratioY === 0.25) { - return { x: 50, y: 20.337690401911956 } - } else { - throw new Error( - `No fixture data for ratioX: '${ratioX}', ratioY: '${ratioY}'` - ) - } - }, - getyLines: () => { - return { - xAxis: [ - [ - { - startPoint: { - x: 3.2221584947667386e-13, - y: -1.3201868544081903e-12, - }, - controlPoint1: { x: -8.616757569865289, y: 6.339555890740057 }, - controlPoint2: { x: -5.8516453258817895, y: 22.68314737946305 }, - endPoint: { x: -7.141412323898271, y: 32.30041494296946 }, - }, - { - startPoint: { x: -7.141412323898063, y: 32.30041494296691 }, - controlPoint1: { x: -7.619529225658512, y: 43.647112223947005 }, - controlPoint2: { x: -7.619529225658676, y: 56.35288777605031 }, - endPoint: { x: -7.141412323898241, y: 67.69958505702897 }, - }, - { - startPoint: { x: -7.141412323898311, y: 67.69958505702562 }, - controlPoint1: { x: -5.851645325881795, y: 77.31685262053347 }, - controlPoint2: { x: -8.616757569865488, y: 93.66044410925804 }, - endPoint: { x: 1.0872464583664995e-13, y: 99.9999999999981 }, - }, - ], - [ - { - startPoint: { x: 32.81028270713254, y: -6.996208375501419 }, - controlPoint1: { x: 29.881378210048425, y: 0.9141942596175472 }, - controlPoint2: { x: 30.746430317581037, y: 18.8286324927181 }, - endPoint: { x: 30.25985601111248, y: 30.01674680060219 }, - }, - { - startPoint: { x: 30.259856011111722, y: 30.016746800599467 }, - controlPoint1: { x: 30.0438317367294, y: 42.93429082595724 }, - controlPoint2: { x: 29.98717976293402, y: 57.21091312243824 }, - endPoint: { x: 30.08990008972446, y: 70.12845714779446 }, - }, - { - startPoint: { x: 30.089900089723614, y: 70.12845714779081 }, - controlPoint1: { x: 30.463170448600266, y: 81.31657145567655 }, - controlPoint2: { x: 29.484814393477016, y: 99.23100968877878 }, - endPoint: { x: 32.300414942969226, y: 107.14141232389638 }, - }, - ], - [ - { - startPoint: { x: 67.1897172928628, y: -6.996208375501418 }, - controlPoint1: { x: 70.11862178994821, y: 0.9141942596175401 }, - controlPoint2: { x: 69.25356968241807, y: 18.828632492718107 }, - endPoint: { x: 69.7401439888854, y: 30.01674680060217 }, - }, - { - startPoint: { x: 69.74014398888359, y: 30.01674680059945 }, - controlPoint1: { x: 69.9561682632674, y: 42.93429082595728 }, - controlPoint2: { x: 70.012820237065, y: 57.21091312243814 }, - endPoint: { x: 69.9100999102734, y: 70.12845714779445 }, - }, - { - startPoint: { x: 69.9100999102717, y: 70.1284571477908 }, - controlPoint1: { x: 69.53682955139652, y: 81.31657145567644 }, - controlPoint2: { x: 70.5151856065218, y: 99.23100968877866 }, - endPoint: { x: 67.69958505702866, y: 107.14141232389636 }, - }, - ], - [ - { - startPoint: { x: 99.999999999995, y: -1.3201868544081903e-12 }, - controlPoint1: { x: 108.61675756986196, y: 6.339555890740057 }, - controlPoint2: { x: 105.85164532588082, y: 22.68314737946305 }, - endPoint: { x: 107.14141232389619, y: 32.30041494296946 }, - }, - { - startPoint: { x: 107.14141232389343, y: 32.30041494296691 }, - controlPoint1: { x: 107.61952922565526, y: 43.647112223947005 }, - controlPoint2: { x: 107.6195292256577, y: 56.35288777605031 }, - endPoint: { x: 107.14141232389612, y: 67.69958505702897 }, - }, - { - startPoint: { x: 107.14141232389363, y: 67.69958505702562 }, - controlPoint1: { x: 105.8516453258785, y: 77.31685262053347 }, - controlPoint2: { x: 108.61675756986449, y: 93.66044410925804 }, - endPoint: { x: 99.99999999999775, y: 99.9999999999981 }, - }, - ], - ], - yAxis: [ - [ - { - startPoint: { - x: -1.3368460054227538e-12, - y: 3.085611621890457e-13, - }, - controlPoint1: { x: 8.293028793777319, y: -5.707216848332035 }, - controlPoint2: { x: 21.574986862327677, y: -6.032310480654061 }, - endPoint: { x: 32.81028270713354, y: -6.996208375500113 }, - }, - { - startPoint: { x: 32.81028270713101, y: -6.996208375499897 }, - controlPoint1: { x: 43.863874280237056, y: -7.667930542190832 }, - controlPoint2: { x: 56.13612571976027, y: -7.667930542190988 }, - endPoint: { x: 67.18971729286488, y: -6.996208375500074 }, - }, - { - startPoint: { x: 67.18971729286153, y: -6.996208375500162 }, - controlPoint1: { x: 78.42501313766893, y: -6.032310480654086 }, - controlPoint2: { x: 91.70697120622077, y: -5.7072168483322265 }, - endPoint: { x: 99.99999999999811, y: 8.737015557454814e-14 }, - }, - ], - [ - { - startPoint: { x: -7.141412323899595, y: 32.300414942968466 }, - controlPoint1: { x: 2.0874393519551244, y: 31.36785623403583 }, - controlPoint2: { x: 17.97692241031819, y: 30.229423064494128 }, - endPoint: { x: 30.2598560111128, y: 30.01674680060187 }, - }, - { - startPoint: { x: 30.25985601111009, y: 30.01674680060112 }, - controlPoint1: { x: 42.998130003262744, y: 29.72830432339446 }, - controlPoint2: { x: 57.00186999673453, y: 29.728304323395122 }, - endPoint: { x: 69.7401439888857, y: 30.01674680060187 }, - }, - { - startPoint: { x: 69.74014398888204, y: 30.01674680060101 }, - controlPoint1: { x: 82.02307758967834, y: 30.229423064493382 }, - controlPoint2: { x: 97.912560648043, y: 31.36785623403656 }, - endPoint: { x: 107.14141232389645, y: 32.30041494296921 }, - }, - ], - [ - { - startPoint: { x: -7.141412323899586, y: 67.69958505702685 }, - controlPoint1: { x: 1.4362817176093703, y: 71.54168448749398 }, - controlPoint2: { x: 18.346309249363287, y: 69.58991178073266 }, - endPoint: { x: 30.089900089724768, y: 70.12845714779415 }, - }, - { - startPoint: { x: 30.089900089722054, y: 70.12845714779236 }, - controlPoint1: { x: 42.9258759844994, y: 70.22329436007004 }, - controlPoint2: { x: 57.07412401549783, y: 70.22329436007155 }, - endPoint: { x: 69.91009991027371, y: 70.12845714779414 }, - }, - { - startPoint: { x: 69.91009991027006, y: 70.12845714779243 }, - controlPoint1: { x: 81.65369075063307, y: 69.58991178073114 }, - controlPoint2: { x: 98.56371828238882, y: 71.54168448749557 }, - endPoint: { x: 107.14141232389639, y: 67.69958505702864 }, - }, - ], - [ - { - startPoint: { x: -1.3201868544081903e-12, y: 99.999999999995 }, - controlPoint1: { x: 6.339555890740057, y: 108.61675756986193 }, - controlPoint2: { x: 22.68314737946305, y: 105.8516453258809 }, - endPoint: { x: 32.30041494296946, y: 107.14141232389613 }, - }, - { - startPoint: { x: 32.30041494296691, y: 107.14141232389338 }, - controlPoint1: { x: 43.647112223947005, y: 107.61952922565534 }, - controlPoint2: { x: 56.35288777605031, y: 107.61952922565762 }, - endPoint: { x: 67.69958505702897, y: 107.14141232389609 }, - }, - { - startPoint: { x: 67.69958505702562, y: 107.1414123238936 }, - controlPoint1: { x: 77.31685262053347, y: 105.85164532587855 }, - controlPoint2: { x: 93.66044410925804, y: 108.61675756986449 }, - endPoint: { x: 99.9999999999981, y: 99.99999999999775 }, - }, - ], - ], - } - }, - getAllGridCellBounds: () => { - return [ - { - top: { - startPoint: { - x: -1.3368460054227538e-12, - y: 3.085611621890457e-13, - }, - controlPoint1: { x: 8.293028793777319, y: -5.707216848332035 }, - controlPoint2: { x: 21.574986862327677, y: -6.032310480654061 }, - endPoint: { x: 32.81028270713354, y: -6.996208375500113 }, - }, - bottom: { - startPoint: { x: -7.141412323899595, y: 32.300414942968466 }, - controlPoint1: { x: 2.0874393519551244, y: 31.36785623403583 }, - controlPoint2: { x: 17.97692241031819, y: 30.229423064494128 }, - endPoint: { x: 30.2598560111128, y: 30.01674680060187 }, - }, - left: { - startPoint: { - x: 3.2221584947667386e-13, - y: -1.3201868544081903e-12, - }, - controlPoint1: { x: -8.616757569865289, y: 6.339555890740057 }, - controlPoint2: { x: -5.8516453258817895, y: 22.68314737946305 }, - endPoint: { x: -7.141412323898271, y: 32.30041494296946 }, - }, - right: { - startPoint: { x: 32.81028270713254, y: -6.996208375501419 }, - controlPoint1: { x: 29.881378210048425, y: 0.9141942596175472 }, - controlPoint2: { x: 30.746430317581037, y: 18.8286324927181 }, - endPoint: { x: 30.25985601111248, y: 30.01674680060219 }, - }, - }, - { - top: { - startPoint: { x: -7.141412323899595, y: 32.300414942968466 }, - controlPoint1: { x: 2.0874393519551244, y: 31.36785623403583 }, - controlPoint2: { x: 17.97692241031819, y: 30.229423064494128 }, - endPoint: { x: 30.2598560111128, y: 30.01674680060187 }, - }, - bottom: { - startPoint: { x: -7.141412323899586, y: 67.69958505702685 }, - controlPoint1: { x: 1.4362817176093703, y: 71.54168448749398 }, - controlPoint2: { x: 18.346309249363287, y: 69.58991178073266 }, - endPoint: { x: 30.089900089724768, y: 70.12845714779415 }, - }, - left: { - startPoint: { x: -7.141412323898063, y: 32.30041494296691 }, - controlPoint1: { x: -7.619529225658512, y: 43.647112223947005 }, - controlPoint2: { x: -7.619529225658676, y: 56.35288777605031 }, - endPoint: { x: -7.141412323898241, y: 67.69958505702897 }, - }, - right: { - startPoint: { x: 30.259856011111722, y: 30.016746800599467 }, - controlPoint1: { x: 30.0438317367294, y: 42.93429082595724 }, - controlPoint2: { x: 29.98717976293402, y: 57.21091312243824 }, - endPoint: { x: 30.08990008972446, y: 70.12845714779446 }, - }, - }, - { - top: { - startPoint: { x: -7.141412323899586, y: 67.69958505702685 }, - controlPoint1: { x: 1.4362817176093703, y: 71.54168448749398 }, - controlPoint2: { x: 18.346309249363287, y: 69.58991178073266 }, - endPoint: { x: 30.089900089724768, y: 70.12845714779415 }, - }, - bottom: { - startPoint: { x: -1.3201868544081903e-12, y: 99.999999999995 }, - controlPoint1: { x: 6.339555890740057, y: 108.61675756986193 }, - controlPoint2: { x: 22.68314737946305, y: 105.8516453258809 }, - endPoint: { x: 32.30041494296946, y: 107.14141232389613 }, - }, - left: { - startPoint: { x: -7.141412323898311, y: 67.69958505702562 }, - controlPoint1: { x: -5.851645325881795, y: 77.31685262053347 }, - controlPoint2: { x: -8.616757569865488, y: 93.66044410925804 }, - endPoint: { x: 1.0872464583664995e-13, y: 99.9999999999981 }, - }, - right: { - startPoint: { x: 30.089900089723614, y: 70.12845714779081 }, - controlPoint1: { x: 30.463170448600266, y: 81.31657145567655 }, - controlPoint2: { x: 29.484814393477016, y: 99.23100968877878 }, - endPoint: { x: 32.300414942969226, y: 107.14141232389638 }, - }, - }, - { - top: { - startPoint: { x: 32.81028270713101, y: -6.996208375499897 }, - controlPoint1: { x: 43.863874280237056, y: -7.667930542190832 }, - controlPoint2: { x: 56.13612571976027, y: -7.667930542190988 }, - endPoint: { x: 67.18971729286488, y: -6.996208375500074 }, - }, - bottom: { - startPoint: { x: 30.25985601111009, y: 30.01674680060112 }, - controlPoint1: { x: 42.998130003262744, y: 29.72830432339446 }, - controlPoint2: { x: 57.00186999673453, y: 29.728304323395122 }, - endPoint: { x: 69.7401439888857, y: 30.01674680060187 }, - }, - left: { - startPoint: { x: 32.81028270713254, y: -6.996208375501419 }, - controlPoint1: { x: 29.881378210048425, y: 0.9141942596175472 }, - controlPoint2: { x: 30.746430317581037, y: 18.8286324927181 }, - endPoint: { x: 30.25985601111248, y: 30.01674680060219 }, - }, - right: { - startPoint: { x: 67.1897172928628, y: -6.996208375501418 }, - controlPoint1: { x: 70.11862178994821, y: 0.9141942596175401 }, - controlPoint2: { x: 69.25356968241807, y: 18.828632492718107 }, - endPoint: { x: 69.7401439888854, y: 30.01674680060217 }, - }, - }, - { - top: { - startPoint: { x: 30.25985601111009, y: 30.01674680060112 }, - controlPoint1: { x: 42.998130003262744, y: 29.72830432339446 }, - controlPoint2: { x: 57.00186999673453, y: 29.728304323395122 }, - endPoint: { x: 69.7401439888857, y: 30.01674680060187 }, - }, - bottom: { - startPoint: { x: 30.089900089722054, y: 70.12845714779236 }, - controlPoint1: { x: 42.9258759844994, y: 70.22329436007004 }, - controlPoint2: { x: 57.07412401549783, y: 70.22329436007155 }, - endPoint: { x: 69.91009991027371, y: 70.12845714779414 }, - }, - left: { - startPoint: { x: 30.259856011111722, y: 30.016746800599467 }, - controlPoint1: { x: 30.0438317367294, y: 42.93429082595724 }, - controlPoint2: { x: 29.98717976293402, y: 57.21091312243824 }, - endPoint: { x: 30.08990008972446, y: 70.12845714779446 }, - }, - right: { - startPoint: { x: 69.74014398888359, y: 30.01674680059945 }, - controlPoint1: { x: 69.9561682632674, y: 42.93429082595728 }, - controlPoint2: { x: 70.012820237065, y: 57.21091312243814 }, - endPoint: { x: 69.9100999102734, y: 70.12845714779445 }, - }, - }, - { - top: { - startPoint: { x: 30.089900089722054, y: 70.12845714779236 }, - controlPoint1: { x: 42.9258759844994, y: 70.22329436007004 }, - controlPoint2: { x: 57.07412401549783, y: 70.22329436007155 }, - endPoint: { x: 69.91009991027371, y: 70.12845714779414 }, - }, - bottom: { - startPoint: { x: 32.30041494296691, y: 107.14141232389338 }, - controlPoint1: { x: 43.647112223947005, y: 107.61952922565534 }, - controlPoint2: { x: 56.35288777605031, y: 107.61952922565762 }, - endPoint: { x: 67.69958505702897, y: 107.14141232389609 }, - }, - left: { - startPoint: { x: 30.089900089723614, y: 70.12845714779081 }, - controlPoint1: { x: 30.463170448600266, y: 81.31657145567655 }, - controlPoint2: { x: 29.484814393477016, y: 99.23100968877878 }, - endPoint: { x: 32.300414942969226, y: 107.14141232389638 }, - }, - right: { - startPoint: { x: 69.9100999102717, y: 70.1284571477908 }, - controlPoint1: { x: 69.53682955139652, y: 81.31657145567644 }, - controlPoint2: { x: 70.5151856065218, y: 99.23100968877866 }, - endPoint: { x: 67.69958505702866, y: 107.14141232389636 }, - }, - }, - { - top: { - startPoint: { x: 67.18971729286153, y: -6.996208375500162 }, - controlPoint1: { x: 78.42501313766893, y: -6.032310480654086 }, - controlPoint2: { x: 91.70697120622077, y: -5.7072168483322265 }, - endPoint: { x: 99.99999999999811, y: 8.737015557454814e-14 }, - }, - bottom: { - startPoint: { x: 69.74014398888204, y: 30.01674680060101 }, - controlPoint1: { x: 82.02307758967834, y: 30.229423064493382 }, - controlPoint2: { x: 97.912560648043, y: 31.36785623403656 }, - endPoint: { x: 107.14141232389645, y: 32.30041494296921 }, - }, - left: { - startPoint: { x: 67.1897172928628, y: -6.996208375501418 }, - controlPoint1: { x: 70.11862178994821, y: 0.9141942596175401 }, - controlPoint2: { x: 69.25356968241807, y: 18.828632492718107 }, - endPoint: { x: 69.7401439888854, y: 30.01674680060217 }, - }, - right: { - startPoint: { x: 99.999999999995, y: -1.3201868544081903e-12 }, - controlPoint1: { x: 108.61675756986196, y: 6.339555890740057 }, - controlPoint2: { x: 105.85164532588082, y: 22.68314737946305 }, - endPoint: { x: 107.14141232389619, y: 32.30041494296946 }, - }, - }, - { - top: { - startPoint: { x: 69.74014398888204, y: 30.01674680060101 }, - controlPoint1: { x: 82.02307758967834, y: 30.229423064493382 }, - controlPoint2: { x: 97.912560648043, y: 31.36785623403656 }, - endPoint: { x: 107.14141232389645, y: 32.30041494296921 }, - }, - bottom: { - startPoint: { x: 69.91009991027006, y: 70.12845714779243 }, - controlPoint1: { x: 81.65369075063307, y: 69.58991178073114 }, - controlPoint2: { x: 98.56371828238882, y: 71.54168448749557 }, - endPoint: { x: 107.14141232389639, y: 67.69958505702864 }, - }, - left: { - startPoint: { x: 69.74014398888359, y: 30.01674680059945 }, - controlPoint1: { x: 69.9561682632674, y: 42.93429082595728 }, - controlPoint2: { x: 70.012820237065, y: 57.21091312243814 }, - endPoint: { x: 69.9100999102734, y: 70.12845714779445 }, - }, - right: { - startPoint: { x: 107.14141232389343, y: 32.30041494296691 }, - controlPoint1: { x: 107.61952922565526, y: 43.647112223947005 }, - controlPoint2: { x: 107.6195292256577, y: 56.35288777605031 }, - endPoint: { x: 107.14141232389612, y: 67.69958505702897 }, - }, - }, - { - top: { - startPoint: { x: 69.91009991027006, y: 70.12845714779243 }, - controlPoint1: { x: 81.65369075063307, y: 69.58991178073114 }, - controlPoint2: { x: 98.56371828238882, y: 71.54168448749557 }, - endPoint: { x: 107.14141232389639, y: 67.69958505702864 }, - }, - bottom: { - startPoint: { x: 67.69958505702562, y: 107.1414123238936 }, - controlPoint1: { x: 77.31685262053347, y: 105.85164532587855 }, - controlPoint2: { x: 93.66044410925804, y: 108.61675756986449 }, - endPoint: { x: 99.9999999999981, y: 99.99999999999775 }, - }, - left: { - startPoint: { x: 69.9100999102717, y: 70.1284571477908 }, - controlPoint1: { x: 69.53682955139652, y: 81.31657145567644 }, - controlPoint2: { x: 70.5151856065218, y: 99.23100968877866 }, - endPoint: { x: 67.69958505702866, y: 107.14141232389636 }, - }, - right: { - startPoint: { x: 107.14141232389363, y: 67.69958505702562 }, - controlPoint1: { x: 105.8516453258785, y: 77.31685262053347 }, - controlPoint2: { x: 108.61675756986449, y: 93.66044410925804 }, - endPoint: { x: 99.99999999999775, y: 99.9999999999981 }, - }, - }, - ] - }, - }, - config: { - columns: [1, 1, 1], - rows: [1, 1, 1], - }, -} - -export default fixture3X3Grid diff --git a/tests/fixtures/patchVariantColumnsAndRows.js b/tests/fixtures/patchVariantColumnsAndRows.js deleted file mode 100644 index 60c3863..0000000 --- a/tests/fixtures/patchVariantColumnsAndRows.js +++ /dev/null @@ -1,2685 +0,0 @@ -const fixtureVariantColumnsAndRows = { - api: { - getGridCellBounds: (columns, rows) => { - if (columns === 2 && rows === 2) { - return { - top: { - startPoint: { x: 13.441066726261182, y: 14.854958289725408 }, - controlPoint1: { x: 19.544011207943267, y: 14.379087915099392 }, - controlPoint2: { x: 26.237570568361967, y: 13.994776519120032 }, - endPoint: { x: 31.81499273016532, y: 13.828180479096444 }, - }, - bottom: { - startPoint: { x: 12.621610788988264, y: 34.4858912512066 }, - controlPoint1: { x: 19.08385881477089, y: 34.247262903543486 }, - controlPoint2: { x: 25.617260619096825, y: 33.99244370550633 }, - endPoint: { x: 31.40129205712564, y: 33.90734872837479 }, - }, - left: { - startPoint: { x: 13.441066726261974, y: 14.854958289724554 }, - controlPoint1: { x: 12.961273631476981, y: 23.12998698416392 }, - controlPoint2: { x: 12.814237362941043, y: 27.687248390938898 }, - endPoint: { x: 12.621610788989354, y: 34.48589125120762 }, - }, - right: { - startPoint: { x: 31.81499273016438, y: 13.828180479095268 }, - controlPoint1: { x: 31.573771947971164, y: 22.25262093613356 }, - controlPoint2: { x: 31.49892957890267, y: 26.959294105507297 }, - endPoint: { x: 31.40129205712549, y: 33.90734872837495 }, - }, - } - } else { - throw new Error( - `No fixture data for columns: '${columns}', rows: '${rows}'` - ) - } - }, - getIntersections: () => [ - { x: 0, y: 0 }, - { x: 14.466679679542068, y: -5.012090149817358 }, - { x: 17.50165243414535, y: -5.4925542368176234 }, - { x: 33.8500528293911, y: -7.057214392802851 }, - { x: 46.721811607812086, y: -7.482288575682956 }, - { x: 62.992256166923084, y: -7.216617211510453 }, - { x: 66.14994717060893, y: -7.05721439280285 }, - { x: 82.49834756585466, y: -5.492554236817625 }, - { x: 85.53332032045793, y: -5.012090149817356 }, - { x: 100, y: 0 }, - { x: -5.803919656043844, y: 14.262562861524238 }, - { x: 10.256892018351259, y: 11.030484042693912 }, - { x: 13.721485960329773, y: 10.695448244113257 }, - { x: 31.955996888080094, y: 9.579023375924633 }, - { x: 46.34207481185794, y: 9.275221282132748 }, - { x: 64.50888933266945, y: 9.465097590692496 }, - { x: 68.04400311191989, y: 9.579023375924635 }, - { x: 86.27851403967018, y: 10.695448244113257 }, - { x: 89.74310798164873, y: 11.030484042693914 }, - { x: 105.80391965604383, y: 14.262562861524238 }, - { x: -6.203721090139167, y: 18.036984983255707 }, - { x: 9.938109952878591, y: 15.16090843062279 }, - { x: 13.44106672626257, y: 14.85495828972606 }, - { x: 31.814992730165855, y: 13.828180479096744 }, - { x: 46.313688858736725, y: 13.548632803122517 }, - { x: 64.62197034154042, y: 13.723350100559715 }, - { x: 68.18500726983416, y: 13.828180479096753 }, - { x: 86.55893327373741, y: 14.85495828972606 }, - { x: 90.06189004712141, y: 15.16090843062279 }, - { x: 106.20372109013917, y: 18.036984983255707 }, - { x: -7.270503887714801, y: 35.74247832533123 }, - { x: 8.985103881884674, y: 34.64641310368534 }, - { x: 12.621610788989628, y: 34.4858912512082 }, - { x: 31.401292057126163, y: 33.90734872837552 }, - { x: 46.230023116436854, y: 33.7490731414895 }, - { x: 64.95431929266977, y: 33.84799538331395 }, - { x: 68.59870794287383, y: 33.907348728375524 }, - { x: 87.37838921101036, y: 34.4858912512082 }, - { x: 91.01489611811533, y: 34.64641310368535 }, - { x: 107.2705038877148, y: 35.74247832533123 }, - { x: -7.485656492982174, y: 46.3948472307083 }, - { x: 8.705430727166952, y: 46.36678880765465 }, - { x: 12.39551039742462, y: 46.2935239282293 }, - { x: 31.285858238701724, y: 45.983922578074555 }, - { x: 46.2063809881368, y: 45.89841024464147 }, - { x: 65.04749939502787, y: 45.95185545309825 }, - { x: 68.71414176129827, y: 45.98392257807454 }, - { x: 87.60448960257537, y: 46.2935239282293 }, - { x: 91.29456927283303, y: 46.36678880765466 }, - { x: 107.48565649298217, y: 46.3948472307083 }, - { x: -7.270503887714801, y: 64.25752167466877 }, - { x: 8.633755245627604, y: 66.00947458260215 }, - { x: 12.377264086928562, y: 66.0816379915964 }, - { x: 31.27276237905048, y: 66.22027192923825 }, - { x: 46.202836208514626, y: 66.25603168489341 }, - { x: 65.05936449544646, y: 66.23368183773742 }, - { x: 68.7272376209495, y: 66.22027192923825 }, - { x: 87.62273591307142, y: 66.0816379915964 }, - { x: 91.36624475437239, y: 66.00947458260217 }, - { x: 107.27050388771481, y: 64.25752167466877 }, - { x: -7.1414123238983995, y: 67.69958505703013 }, - { x: 8.678587116219246, y: 69.8075402311609 }, - { x: 12.42740297655618, y: 69.90878929783909 }, - { x: 31.297037282983638, y: 70.13707029304024 }, - { x: 46.207506067762864, y: 70.19708446651305 }, - { x: 65.04022225483945, y: 70.15957560823452 }, - { x: 68.70296271701636, y: 70.13707029304027 }, - { x: 87.57259702344382, y: 69.90878929783909 }, - { x: 91.32141288378074, y: 69.8075402311609 }, - { x: 107.14141232389841, y: 67.69958505703013 }, - { x: 0, y: 100 }, - { x: 13.149122293578067, y: 105.66797783610485 }, - { x: 16.58535230141635, y: 106.06008347962222 }, - { x: 33.3680665366073, y: 107.18483505041661 }, - { x: 46.61986070310374, y: 107.48739340206586 }, - { x: 63.38617567733573, y: 107.29829443256182 }, - { x: 66.6319334633927, y: 107.18483505041664 }, - { x: 83.41464769858365, y: 106.06008347962222 }, - { x: 86.85087770642193, y: 105.66797783610485 }, - { x: 100, y: 100 }, - ], - getPoint: (ratioX, ratioY) => { - if (ratioX === 0.5 && ratioY === 0.25) { - return { x: 50, y: 20.337690401911956 } - } else { - throw new Error( - `No fixture data for ratioX: '${ratioX}', ratioY: '${ratioY}'` - ) - } - }, - getyLines: () => { - return { - xAxis: [ - [ - { - startPoint: { - x: 2.5675571170907226e-13, - y: -5.690676384381097e-13, - }, - controlPoint1: { x: -5.456764822330806, y: -0.5895233794453079 }, - controlPoint2: { x: -4.771144485272147, y: 9.675326183431137 }, - endPoint: { x: -5.803919656043744, y: 14.26256286152407 }, - }, - { - startPoint: { x: -5.803919656043554, y: 14.262562861523413 }, - controlPoint1: { x: -5.946129630461618, y: 15.467735852244207 }, - controlPoint2: { x: -6.079396777377466, y: 16.72819432186639 }, - endPoint: { x: -6.203721090139038, y: 18.03698498325535 }, - }, - { - startPoint: { x: -6.20372109013883, y: 18.03698498325413 }, - controlPoint1: { x: -6.889941141108163, y: 25.67020047122469 }, - controlPoint2: { x: -7.043750270079279, y: 29.58564867153074 }, - endPoint: { x: -7.270503887714652, y: 35.7424783253306 }, - }, - { - startPoint: { x: -7.270503887714451, y: 35.74247832532912 }, - controlPoint1: { x: -7.38525194385716, y: 39.219877729331344 }, - controlPoint2: { x: -7.456969478946453, y: 42.7951307748328 }, - endPoint: { x: -7.485656492982016, y: 46.3948472307074 }, - }, - { - startPoint: { x: -7.48565649298183, y: 46.39484723070539 }, - controlPoint1: { x: -7.533468183041354, y: 52.394374657164775 }, - controlPoint2: { x: -7.461750647952391, y: 58.46185600133218 }, - endPoint: { x: -7.270503887714643, y: 64.25752167466754 }, - }, - { - startPoint: { x: -7.270503887714465, y: 64.25752167466563 }, - controlPoint1: { x: -7.232254533961497, y: 65.41665485672674 }, - controlPoint2: { x: -7.189224015838214, y: 66.56491528580399 }, - endPoint: { x: -7.141412323898246, y: 67.69958505702871 }, - }, - { - startPoint: { x: -7.141412323898311, y: 67.69958505702562 }, - controlPoint1: { x: -5.851645325881795, y: 77.31685262053347 }, - controlPoint2: { x: -8.616757569865488, y: 93.66044410925804 }, - endPoint: { x: 1.0872464583664995e-13, y: 99.9999999999981 }, - }, - ], - [ - { - startPoint: { x: 14.466679679541576, y: -5.012090149817765 }, - controlPoint1: { x: 10.641956231635632, y: -5.008276418933546 }, - controlPoint2: { x: 11.040122580810209, y: 5.84991025427184 }, - endPoint: { x: 10.256892018351023, y: 11.030484042693828 }, - }, - { - startPoint: { x: 10.256892018350792, y: 11.030484042693224 }, - controlPoint1: { x: 10.144483134427839, y: 12.354324455479798 }, - controlPoint2: { x: 10.038222444412852, y: 13.733450347167686 }, - endPoint: { x: 9.938109952878376, y: 15.1609084306225 }, - }, - { - startPoint: { x: 9.938109952878166, y: 15.160908430621276 }, - controlPoint1: { x: 9.393136035283387, y: 23.387461028920804 }, - controlPoint2: { x: 9.214194626562511, y: 27.89624633955586 }, - endPoint: { x: 8.985103881884477, y: 34.64641310368475 }, - }, - { - startPoint: { x: 8.985103881884266, y: 34.64641310368324 }, - controlPoint1: { x: 8.862296013754218, y: 38.47981477388291 }, - controlPoint2: { x: 8.769071628848513, y: 42.411070085581684 }, - endPoint: { x: 8.705430727166764, y: 46.366788807653755 }, - }, - { - startPoint: { x: 8.705430727166549, y: 46.366788807651666 }, - controlPoint1: { x: 8.599362557697264, y: 52.95965334444003 }, - controlPoint2: { x: 8.575470730517685, y: 59.620471798936535 }, - endPoint: { x: 8.633755245627421, y: 66.0094745826009 }, - }, - { - startPoint: { x: 8.633755245627198, y: 66.0094745825989 }, - controlPoint1: { x: 8.645412149821855, y: 67.2872751867258 }, - controlPoint2: { x: 8.660356104521206, y: 68.55420303786894 }, - endPoint: { x: 8.678587116219061, y: 69.80754023115944 }, - }, - { - startPoint: { x: 8.67858711621869, y: 69.80754023115612 }, - controlPoint1: { x: 9.41890666224813, y: 80.6114820153222 }, - controlPoint2: { x: 7.3714967294025175, y: 98.14174772470481 }, - endPoint: { x: 13.149122293577857, y: 105.66797783610286 }, - }, - ], - [ - { - startPoint: { x: 17.50165243414469, y: -5.492554236818013 }, - controlPoint1: { x: 14.040268857258667, y: -5.440264409793931 }, - controlPoint2: { x: 14.417876004991312, y: 5.466398359551315 }, - endPoint: { x: 13.721485960329463, y: 10.69544824411318 }, - }, - { - startPoint: { x: 13.72148596032914, y: 10.695448244112583 }, - controlPoint1: { x: 13.62242361373221, y: 12.028983876127107 }, - controlPoint2: { x: 13.52895053432436, y: 13.417804987042981 }, - endPoint: { x: 13.44106672626228, y: 14.854958289725777 }, - }, - { - startPoint: { x: 13.441066726261974, y: 14.854958289724554 }, - controlPoint1: { x: 12.961273631476981, y: 23.12998698416392 }, - controlPoint2: { x: 12.814237362941043, y: 27.687248390938898 }, - endPoint: { x: 12.621610788989354, y: 34.48589125120762 }, - }, - { - startPoint: { x: 12.621610788989047, y: 34.485891251206105 }, - controlPoint1: { x: 12.519349916142463, y: 38.34837857908967 }, - controlPoint2: { x: 12.443983118954424, y: 42.308719548472396 }, - endPoint: { x: 12.395510397424353, y: 46.29352392822841 }, - }, - { - startPoint: { x: 12.39551039742404, y: 46.293523928226314 }, - controlPoint1: { x: 12.314722528207705, y: 52.93486456115452 }, - controlPoint2: { x: 12.308640424709285, y: 59.64415911179097 }, - endPoint: { x: 12.3772640869283, y: 66.08163799159514 }, - }, - { - startPoint: { x: 12.37726408692798, y: 66.08163799159313 }, - controlPoint1: { x: 12.390988820437965, y: 67.36913381494804 }, - controlPoint2: { x: 12.407701781679506, y: 68.64575688531914 }, - endPoint: { x: 12.427402976555916, y: 69.90878929783763 }, - }, - { - startPoint: { x: 12.42740297655546, y: 69.9087892978343 }, - controlPoint1: { x: 13.13169622445724, y: 80.80968327428009 }, - controlPoint2: { x: 11.301689946109015, y: 98.43690117594248 }, - endPoint: { x: 16.585352301416062, y: 106.06008347962022 }, - }, - ], - [ - { - startPoint: { x: 33.850052829389604, y: -7.057214392803187 }, - controlPoint1: { x: 32.118036806145874, y: -6.855512803180248 }, - controlPoint2: { x: 32.3055161452117, y: 4.200561728763827 }, - endPoint: { x: 31.955996888079405, y: 9.579023375924585 }, - }, - { - startPoint: { x: 31.9559968880786, y: 9.57902337592401 }, - controlPoint1: { x: 31.906200867820242, y: 10.94244136045828 }, - controlPoint2: { x: 31.859199481156715, y: 12.361144823893936 }, - endPoint: { x: 31.814992730165176, y: 13.828180479096485 }, - }, - { - startPoint: { x: 31.81499273016438, y: 13.828180479095268 }, - controlPoint1: { x: 31.573771947971164, y: 22.25262093613356 }, - controlPoint2: { x: 31.49892957890267, y: 26.959294105507297 }, - endPoint: { x: 31.40129205712549, y: 33.90734872837495 }, - }, - { - startPoint: { x: 31.401292057124696, y: 33.90734872837343 }, - controlPoint1: { x: 31.349367079821086, y: 37.85948311381631 }, - controlPoint2: { x: 31.310889140347044, y: 41.90947114075835 }, - endPoint: { x: 31.285858238701056, y: 45.983922578073674 }, - }, - { - startPoint: { x: 31.285858238700257, y: 45.983922578071564 }, - controlPoint1: { x: 31.244140069291362, y: 52.774674973598664 }, - controlPoint2: { x: 31.239774782741677, y: 59.63338128683391 }, - endPoint: { x: 31.272762379049812, y: 66.220271929237 }, - }, - { - startPoint: { x: 31.272762379049013, y: 66.22027192923498 }, - controlPoint1: { x: 31.279359898844113, y: 67.53765010510965 }, - controlPoint2: { x: 31.287451532505315, y: 68.84415552800056 }, - endPoint: { x: 31.29703728298297, y: 70.13707029303878 }, - }, - { - startPoint: { x: 31.2970372829821, y: 70.1370702930354 }, - controlPoint1: { x: 31.64653543733121, y: 81.33678779467894 }, - controlPoint2: { x: 30.728883828555503, y: 99.26282922153914 }, - endPoint: { x: 33.36806653660662, y: 107.18483505041459 }, - }, - ], - [ - { - startPoint: { x: 46.72181160780991, y: -7.482288575683277 }, - controlPoint1: { x: 46.37509986726444, y: -7.240162956364272 }, - controlPoint2: { x: 46.41228719918118, y: 3.8563356052758824 }, - endPoint: { x: 46.34207481185695, y: 9.275221282132707 }, - }, - { - startPoint: { x: 46.342074811855774, y: 9.275221282132136 }, - controlPoint1: { x: 46.33205390062518, y: 10.646724072605636 }, - controlPoint2: { x: 46.322591916113986, y: 12.073512341980472 }, - endPoint: { x: 46.31368885873574, y: 13.548632803122263 }, - }, - { - startPoint: { x: 46.31368885873456, y: 13.548632803121048 }, - controlPoint1: { x: 46.26513616639919, y: 22.013497289855373 }, - controlPoint2: { x: 46.249859156689034, y: 26.760594488925243 }, - endPoint: { x: 46.230023116435866, y: 33.749073141488935 }, - }, - { - startPoint: { x: 46.23002311643469, y: 33.749073141487415 }, - controlPoint1: { x: 46.219452999436115, y: 37.72546194474792 }, - controlPoint2: { x: 46.21157229000389, y: 41.79970438950766 }, - endPoint: { x: 46.20638098813581, y: 45.89841024464059 }, - }, - { - startPoint: { x: 46.20638098813463, y: 45.89841024463848 }, - controlPoint1: { x: 46.19772881835611, y: 52.729586669861696 }, - controlPoint2: { x: 46.19654722514981, y: 59.62871701279295 }, - endPoint: { x: 46.20283620851364, y: 66.25603168489216 }, - }, - { - startPoint: { x: 46.20283620851246, y: 66.25603168489015 }, - controlPoint1: { x: 46.20409400529257, y: 67.58149466670409 }, - controlPoint2: { x: 46.20565062484627, y: 68.89608489553405 }, - endPoint: { x: 46.20750606776188, y: 70.19708446651158 }, - }, - { - startPoint: { x: 46.20750606776069, y: 70.1970844665082 }, - controlPoint1: { x: 46.27678862683649, y: 81.47765002754387 }, - controlPoint2: { x: 46.0926412332876, y: 99.48453951379621 }, - endPoint: { x: 46.61986070310275, y: 107.48739340206384 }, - }, - ], - [ - { - startPoint: { x: 62.992256166920065, y: -7.216617211510783 }, - controlPoint1: { x: 64.3783317897489, y: -6.99975661072936 }, - controlPoint2: { x: 64.22881112273082, y: 4.07147693237321 }, - endPoint: { x: 64.50888933266809, y: 9.46509759069245 }, - }, - { - startPoint: { x: 64.50888933266643, y: 9.465097590691876 }, - controlPoint1: { x: 64.54881870972092, y: 10.83154737745786 }, - controlPoint2: { x: 64.58651237990037, y: 12.25328264312518 }, - endPoint: { x: 64.62197034153904, y: 13.723350100559458 }, - }, - { - startPoint: { x: 64.62197034153738, y: 13.72335010055824 }, - controlPoint1: { x: 64.81540977152572, y: 22.162949568754968 }, - controlPoint2: { x: 64.87574647101505, y: 26.884781749287257 }, - endPoint: { x: 64.95431929266839, y: 33.84799538331338 }, - }, - { - startPoint: { x: 64.95431929266672, y: 33.84799538331186 }, - controlPoint1: { x: 64.9961369570504, y: 37.8092251754498 }, - controlPoint2: { x: 65.0271969911712, y: 41.86830860908704 }, - endPoint: { x: 65.04749939502648, y: 45.951855453097366 }, - }, - { - startPoint: { x: 65.04749939502483, y: 45.951855453095256 }, - controlPoint1: { x: 65.08133673478574, y: 52.7577668597809 }, - controlPoint2: { x: 65.08529176826008, y: 59.631632184174606 }, - endPoint: { x: 65.05936449544507, y: 66.23368183773617 }, - }, - { - startPoint: { x: 65.05936449544342, y: 66.23368183773415 }, - controlPoint1: { x: 65.0541790404551, y: 67.55409181584058 }, - controlPoint2: { x: 65.04779829437474, y: 68.86362904096316 }, - endPoint: { x: 65.04022225483806, y: 70.15957560823306 }, - }, - { - startPoint: { x: 65.04022225483645, y: 70.15957560822967 }, - controlPoint1: { x: 64.7615493398235, y: 81.38961113219025 }, - controlPoint2: { x: 65.49659623531116, y: 99.34597058136734 }, - endPoint: { x: 63.38617567733435, y: 107.2982944325598 }, - }, - ], - [ - { - startPoint: { x: 66.14994717060574, y: -7.0572143928031865 }, - controlPoint1: { x: 67.88196319385086, y: -6.855512803180247 }, - controlPoint2: { x: 67.69448385478735, y: 4.200561728763832 }, - endPoint: { x: 68.04400311191846, y: 9.579023375924587 }, - }, - { - startPoint: { x: 68.0440031119167, y: 9.579023375924011 }, - controlPoint1: { x: 68.0937991321764, y: 10.942441360458284 }, - controlPoint2: { x: 68.14080051884238, y: 12.361144823893932 }, - endPoint: { x: 68.18500726983271, y: 13.828180479096494 }, - }, - { - startPoint: { x: 68.18500726983095, y: 13.828180479095277 }, - controlPoint1: { x: 68.42622805202558, y: 22.252620936133546 }, - controlPoint2: { x: 68.50107042109632, y: 26.959294105507304 }, - endPoint: { x: 68.59870794287237, y: 33.907348728374956 }, - }, - { - startPoint: { x: 68.59870794287062, y: 33.907348728373435 }, - controlPoint1: { x: 68.65063292017555, y: 37.85948311381631 }, - controlPoint2: { x: 68.68911085965206, y: 41.909471140758356 }, - endPoint: { x: 68.7141417612968, y: 45.98392257807366 }, - }, - { - startPoint: { x: 68.71414176129505, y: 45.98392257807155 }, - controlPoint1: { x: 68.7558599307053, y: 52.77467497359865 }, - controlPoint2: { x: 68.76022521725739, y: 59.633381286833995 }, - endPoint: { x: 68.72723762094803, y: 66.220271929237 }, - }, - { - startPoint: { x: 68.72723762094628, y: 66.22027192923498 }, - controlPoint1: { x: 68.72064010115264, y: 67.53765010510972 }, - controlPoint2: { x: 68.7125484674937, y: 68.84415552800056 }, - endPoint: { x: 68.7029627170149, y: 70.1370702930388 }, - }, - { - startPoint: { x: 68.70296271701321, y: 70.13707029303544 }, - controlPoint1: { x: 68.35346456266551, y: 81.336787794679 }, - controlPoint2: { x: 69.27111617144344, y: 99.26282922153908 }, - endPoint: { x: 66.63193346339125, y: 107.18483505041462 }, - }, - ], - [ - { - startPoint: { x: 82.49834756585061, y: -5.492554236818015 }, - controlPoint1: { x: 85.95973114273811, y: -5.4402644097939294 }, - controlPoint2: { x: 85.58212399500769, y: 5.466398359551308 }, - endPoint: { x: 86.27851403966837, y: 10.69544824411318 }, - }, - { - startPoint: { x: 86.27851403966613, y: 10.695448244112583 }, - controlPoint1: { x: 86.37757638626451, y: 12.028983876127107 }, - controlPoint2: { x: 86.47104946567478, y: 13.417804987042981 }, - endPoint: { x: 86.55893327373556, y: 14.854958289725777 }, - }, - { - startPoint: { x: 86.55893327373332, y: 14.854958289724554 }, - controlPoint1: { x: 87.03872636851966, y: 23.129986984163956 }, - controlPoint2: { x: 87.18576263705795, y: 27.68724839093887 }, - endPoint: { x: 87.3783892110085, y: 34.48589125120762 }, - }, - { - startPoint: { x: 87.37838921100625, y: 34.485891251206105 }, - controlPoint1: { x: 87.48065008385416, y: 38.34837857908967 }, - controlPoint2: { x: 87.55601688104466, y: 42.308719548472396 }, - endPoint: { x: 87.60448960257351, y: 46.29352392822841 }, - }, - { - startPoint: { x: 87.60448960257125, y: 46.293523928226314 }, - controlPoint1: { x: 87.68527747178904, y: 52.93486456115453 }, - controlPoint2: { x: 87.69135957528977, y: 59.64415911179094 }, - endPoint: { x: 87.62273591306956, y: 66.08163799159514 }, - }, - { - startPoint: { x: 87.6227359130673, y: 66.08163799159313 }, - controlPoint1: { x: 87.60901117955883, y: 67.36913381494806 }, - controlPoint2: { x: 87.5922982183195, y: 68.64575688531906 }, - endPoint: { x: 87.57259702344196, y: 69.90878929783763 }, - }, - { - startPoint: { x: 87.57259702343985, y: 69.9087892978343 }, - controlPoint1: { x: 86.86830377553949, y: 80.80968327428009 }, - controlPoint2: { x: 88.69831005388995, y: 98.43690117594248 }, - endPoint: { x: 83.4146476985818, y: 106.06008347962022 }, - }, - ], - [ - { - startPoint: { x: 85.53332032045374, y: -5.012090149817762 }, - controlPoint1: { x: 89.35804376836118, y: -5.008276418933541 }, - controlPoint2: { x: 88.95987741918879, y: 5.849910254271835 }, - endPoint: { x: 89.74310798164684, y: 11.03048404269383 }, - }, - { - startPoint: { x: 89.74310798164451, y: 11.030484042693226 }, - controlPoint1: { x: 89.8555168655688, y: 12.354324455479787 }, - controlPoint2: { x: 89.9617775555862, y: 13.73345034716769 }, - endPoint: { x: 90.06189004711949, y: 15.1609084306225 }, - }, - { - startPoint: { x: 90.06189004711715, y: 15.160908430621276 }, - controlPoint1: { x: 90.60686396471338, y: 23.38746102892083 }, - controlPoint2: { x: 90.7858053734364, y: 27.89624633955585 }, - endPoint: { x: 91.0148961181134, y: 34.64641310368476 }, - }, - { - startPoint: { x: 91.01489611811104, y: 34.646413103683244 }, - controlPoint1: { x: 91.13770398624251, y: 38.479814773882886 }, - controlPoint2: { x: 91.23092837115054, y: 42.41107008558166 }, - endPoint: { x: 91.29456927283108, y: 46.36678880765376 }, - }, - { - startPoint: { x: 91.29456927282874, y: 46.36678880765167 }, - controlPoint1: { x: 91.4006374422995, y: 52.95965334444002 }, - controlPoint2: { x: 91.4245292694813, y: 59.62047179893658 }, - endPoint: { x: 91.36624475437044, y: 66.00947458260092 }, - }, - { - startPoint: { x: 91.3662447543681, y: 66.00947458259891 }, - controlPoint1: { x: 91.35458785017487, y: 67.28727518672574 }, - controlPoint2: { x: 91.33964389547782, y: 68.55420303786906 }, - endPoint: { x: 91.32141288377879, y: 69.80754023115944 }, - }, - { - startPoint: { x: 91.3214128837766, y: 69.80754023115612 }, - controlPoint1: { x: 90.58109333774858, y: 80.61148201532217 }, - controlPoint2: { x: 92.6285032705965, y: 98.14174772470481 }, - endPoint: { x: 86.85087770642001, y: 105.66797783610286 }, - }, - ], - [ - { - startPoint: { x: 99.99999999999507, y: -5.690676384381097e-13 }, - controlPoint1: { x: 105.45676482232759, y: -0.5895233794453079 }, - controlPoint2: { x: 104.77114448527118, y: 9.675326183431137 }, - endPoint: { x: 105.8039196560416, y: 14.26256286152407 }, - }, - { - startPoint: { x: 105.80391965603887, y: 14.262562861523413 }, - controlPoint1: { x: 105.9461296304583, y: 15.467735852244207 }, - controlPoint2: { x: 106.07939677737657, y: 16.72819432186639 }, - endPoint: { x: 106.20372109013691, y: 18.03698498325535 }, - }, - { - startPoint: { x: 106.20372109013415, y: 18.03698498325413 }, - controlPoint1: { x: 106.889941141105, y: 25.67020047122469 }, - controlPoint2: { x: 107.04375027007822, y: 29.58564867153074 }, - endPoint: { x: 107.27050388771252, y: 35.7424783253306 }, - }, - { - startPoint: { x: 107.27050388770976, y: 35.74247832532912 }, - controlPoint1: { x: 107.38525194385383, y: 39.219877729331344 }, - controlPoint2: { x: 107.45696947894548, y: 42.7951307748328 }, - endPoint: { x: 107.48565649297989, y: 46.3948472307074 }, - }, - { - startPoint: { x: 107.48565649297714, y: 46.39484723070539 }, - controlPoint1: { x: 107.53346818303811, y: 52.394374657164775 }, - controlPoint2: { x: 107.4617506479514, y: 58.46185600133218 }, - endPoint: { x: 107.27050388771252, y: 64.25752167466754 }, - }, - { - startPoint: { x: 107.2705038877098, y: 64.25752167466563 }, - controlPoint1: { x: 107.2322545339582, y: 65.41665485672674 }, - controlPoint2: { x: 107.18922401583724, y: 66.56491528580399 }, - endPoint: { x: 107.14141232389612, y: 67.69958505702871 }, - }, - { - startPoint: { x: 107.14141232389363, y: 67.69958505702562 }, - controlPoint1: { x: 105.8516453258785, y: 77.31685262053347 }, - controlPoint2: { x: 108.61675756986449, y: 93.66044410925804 }, - endPoint: { x: 99.99999999999775, y: 99.9999999999981 }, - }, - ], - ], - yAxis: [ - [ - { - startPoint: { - x: -5.933222534270543e-13, - y: 2.1637903020125002e-13, - }, - controlPoint1: { x: 1.859582406351584, y: -2.3506738832273517 }, - controlPoint2: { x: 10.910300945624368, y: -4.489599412243377 }, - endPoint: { x: 14.46667967954188, y: -5.01209014981728 }, - }, - { - startPoint: { x: 14.466679679541265, y: -5.012090149817103 }, - controlPoint1: { x: 15.444905933753493, y: -5.18082810524351 }, - controlPoint2: { x: 16.457737005496973, y: -5.340982797994894 }, - endPoint: { x: 17.501652434145, y: -5.49255423681751 }, - }, - { - startPoint: { x: 17.501652434143853, y: -5.492554236817298 }, - controlPoint1: { x: 22.66055956571276, y: -6.25311504379867 }, - controlPoint2: { x: 29.033434896250277, y: -6.792817077308687 }, - endPoint: { x: 33.850052829390506, y: -7.05721439280271 }, - }, - { - startPoint: { x: 33.850052829388986, y: -7.057214392802502 }, - controlPoint1: { x: 38.02281943193151, y: -7.293366717046042 }, - controlPoint2: { x: 42.35624918370604, y: -7.435058110562059 }, - endPoint: { x: 46.72181160781119, y: -7.482288575682799 }, - }, - { - startPoint: { x: 46.72181160780922, y: -7.482288575682614 }, - controlPoint1: { x: 52.178764636215234, y: -7.541326656577548 }, - controlPoint2: { x: 57.68592487405209, y: -7.452769535575639 }, - endPoint: { x: 62.99225616692187, y: -7.216617211510295 }, - }, - { - startPoint: { x: 62.99225616692, y: -7.216617211510121 }, - controlPoint1: { x: 64.05352242399367, y: -7.169386746713373 }, - controlPoint2: { x: 65.10675552182781, y: -7.116252473810994 }, - endPoint: { x: 66.14994717060755, y: -7.057214392802698 }, - }, - { - startPoint: { x: 66.14994717060516, y: -7.057214392802581 }, - controlPoint1: { x: 70.96656510374677, y: -6.792817077308566 }, - controlPoint2: { x: 77.33944043428542, y: -6.253115043798826 }, - endPoint: { x: 82.49834756585302, y: -5.492554236817493 }, - }, - { - startPoint: { x: 82.49834756585066, y: -5.492554236817388 }, - controlPoint1: { x: 83.54226299450009, y: -5.3409827979947835 }, - controlPoint2: { x: 84.55509406624515, y: -5.180828105243638 }, - endPoint: { x: 85.53332032045613, y: -5.0120901498172445 }, - }, - { - startPoint: { x: 85.5333203204533, y: -5.012090149817317 }, - controlPoint1: { x: 89.08969905437233, y: -4.4895994122434 }, - controlPoint2: { x: 98.14041759364702, y: -2.3506738832274943 }, - endPoint: { x: 99.99999999999797, y: 5.0323222442983466e-14 }, - }, - ], - [ - { - startPoint: { x: -5.803919656044227, y: 14.26256286152371 }, - controlPoint1: { x: -3.8536336443540824, y: 13.148247896513425 }, - controlPoint2: { x: 6.041345366551788, y: 11.31440940675072 }, - endPoint: { x: 10.256892018351175, y: 11.030484042693658 }, - }, - { - startPoint: { x: 10.256892018350634, y: 11.030484042693407 }, - controlPoint1: { x: 11.375798764538729, y: 10.912962711090257 }, - controlPoint2: { x: 12.531959617873886, y: 10.801284114821984 }, - endPoint: { x: 13.721485960329508, y: 10.695448244113026 }, - }, - { - startPoint: { x: 13.721485960328376, y: 10.695448244112802 }, - controlPoint1: { x: 19.733148392088246, y: 10.172129464094233 }, - controlPoint2: { x: 26.43931792262341, y: 9.761919628526387 }, - endPoint: { x: 31.955996888079554, y: 9.579023375924422 }, - }, - { - startPoint: { x: 31.955996888078005, y: 9.579023375924198 }, - controlPoint1: { x: 36.63127394149733, y: 9.410244434714546 }, - controlPoint2: { x: 41.470299499851095, y: 9.30897707054673 }, - endPoint: { x: 46.34207481185707, y: 9.275221282132549 }, - }, - { - startPoint: { x: 46.34207481185502, y: 9.275221282132307 }, - controlPoint1: { x: 52.43179394546149, y: 9.233026546896607 }, - controlPoint2: { x: 58.572684463424096, y: 9.296318649480765 }, - endPoint: { x: 64.50888933266822, y: 9.465097590692297 }, - }, - { - startPoint: { x: 64.50888933266629, y: 9.465097590692048 }, - controlPoint1: { x: 65.69613030784308, y: 9.49885337882718 }, - controlPoint2: { x: 66.87518384852514, y: 9.536828640735429 }, - endPoint: { x: 68.04400311191847, y: 9.579023375924432 }, - }, - { - startPoint: { x: 68.04400311191594, y: 9.579023375924141 }, - controlPoint1: { x: 73.56068207737346, y: 9.761919628526147 }, - controlPoint2: { x: 80.26685160791004, y: 10.172129464094441 }, - endPoint: { x: 86.2785140396685, y: 10.69544824411304 }, - }, - { - startPoint: { x: 86.278514039666, y: 10.695448244112743 }, - controlPoint1: { x: 87.46804038212304, y: 10.801284114821726 }, - controlPoint2: { x: 88.62420123545994, y: 10.912962711090499 }, - endPoint: { x: 89.74310798164684, y: 11.030484042693681 }, - }, - { - startPoint: { x: 89.74310798164383, y: 11.030484042693267 }, - controlPoint1: { x: 93.95865463344468, y: 11.314409406750386 }, - controlPoint2: { x: 103.85363364435273, y: 13.148247896513647 }, - endPoint: { x: 105.80391965604169, y: 14.262562861523964 }, - }, - ], - [ - { - startPoint: { x: -6.203721090139536, y: 18.036984983254985 }, - controlPoint1: { x: -4.314563367497776, y: 17.169941801888164 }, - controlPoint2: { x: 5.669998727618754, y: 15.397120719976137 }, - endPoint: { x: 9.938109952878516, y: 15.160908430622449 }, - }, - { - startPoint: { x: 9.938109952877982, y: 15.160908430622092 }, - controlPoint1: { x: 11.06929899543806, y: 15.053630423783627 }, - controlPoint2: { x: 12.238272003068376, y: 14.951647046811939 }, - endPoint: { x: 13.441066726262312, y: 14.85495828972574 }, - }, - { - startPoint: { x: 13.441066726261182, y: 14.854958289725408 }, - controlPoint1: { x: 19.544011207943267, y: 14.379087915099392 }, - controlPoint2: { x: 26.237570568361967, y: 13.994776519120032 }, - endPoint: { x: 31.81499273016532, y: 13.828180479096444 }, - }, - { - startPoint: { x: 31.814992730163766, y: 13.828180479096108 }, - controlPoint1: { x: 36.527356665665664, y: 13.672876214493263 }, - controlPoint2: { x: 41.40408617724247, y: 13.579693656195094 }, - endPoint: { x: 46.31368885873586, y: 13.548632803122228 }, - }, - { - startPoint: { x: 46.313688858733805, y: 13.548632803121876 }, - controlPoint1: { x: 52.45069220326438, y: 13.509806737018021 }, - controlPoint2: { x: 58.639059767136075, y: 13.568045835918655 }, - endPoint: { x: 64.62197034153918, y: 13.723350100559426 }, - }, - { - startPoint: { x: 64.62197034153725, y: 13.723350100559069 }, - controlPoint1: { x: 65.8185524583114, y: 13.754410953361864 }, - controlPoint2: { x: 67.00691628553989, y: 13.789354413071324 }, - endPoint: { x: 68.18500726983274, y: 13.82818047909646 }, - }, - { - startPoint: { x: 68.18500726983021, y: 13.828180479096064 }, - controlPoint1: { x: 73.76242943163493, y: 13.994776519119679 }, - controlPoint2: { x: 80.45598879205497, y: 14.37908791509971 }, - endPoint: { x: 86.55893327373572, y: 14.854958289725753 }, - }, - { - startPoint: { x: 86.55893327373322, y: 14.85495828972535 }, - controlPoint1: { x: 87.76172799692864, y: 14.951647046811637 }, - controlPoint2: { x: 88.93070100456063, y: 15.053630423783936 }, - endPoint: { x: 90.06189004711952, y: 15.160908430622468 }, - }, - { - startPoint: { x: 90.0618900471165, y: 15.160908430621962 }, - controlPoint1: { x: 94.33000127237776, y: 15.397120719975728 }, - controlPoint2: { x: 104.31456336749646, y: 17.16994180188849 }, - endPoint: { x: 106.20372109013701, y: 18.036984983255348 }, - }, - ], - [ - { - startPoint: { x: -7.2705038877151225, y: 35.7424783253296 }, - controlPoint1: { x: -5.7840943158257865, y: 36.11179406218015 }, - controlPoint2: { x: 4.551276494833472, y: 34.644060019521476 }, - endPoint: { x: 8.985103881884623, y: 34.646413103684594 }, - }, - { - startPoint: { x: 8.985103881884104, y: 34.64641310368372 }, - controlPoint1: { x: 10.158283065202003, y: 34.59035172066859 }, - controlPoint2: { x: 11.371895503205963, y: 34.53684444018007 }, - endPoint: { x: 12.621610788989388, y: 34.48589125120746 }, - }, - { - startPoint: { x: 12.621610788988264, y: 34.4858912512066 }, - controlPoint1: { x: 19.08385881477089, y: 34.247262903543486 }, - controlPoint2: { x: 25.617260619096825, y: 33.99244370550633 }, - endPoint: { x: 31.40129205712564, y: 33.90734872837479 }, - }, - { - startPoint: { x: 31.401292057124085, y: 33.90734872837393 }, - controlPoint1: { x: 36.22140503863042, y: 33.81941784680501 }, - controlPoint2: { x: 41.20896895191412, y: 33.76665931785514 }, - endPoint: { x: 46.23002311643599, y: 33.74907314148878 }, - }, - { - startPoint: { x: 46.23002311643391, y: 33.74907314148791 }, - controlPoint1: { x: 52.50634081007456, y: 33.727090421043336 }, - controlPoint2: { x: 58.83498689798145, y: 33.76006450152637 }, - endPoint: { x: 64.95431929266853, y: 33.84799538331323 }, - }, - { - startPoint: { x: 64.95431929266658, y: 33.84799538331236 }, - controlPoint1: { x: 66.17818577632565, y: 33.8655815594536 }, - controlPoint2: { x: 67.39367969518405, y: 33.885366008168994 }, - endPoint: { x: 68.5987079428724, y: 33.9073487283748 }, - }, - { - startPoint: { x: 68.59870794286984, y: 33.90734872837391 }, - controlPoint1: { x: 74.38273938090006, y: 33.99244370550551 }, - controlPoint2: { x: 80.91614118522732, y: 34.24726290354429 }, - endPoint: { x: 87.37838921100865, y: 34.48589125120747 }, - }, - { - startPoint: { x: 87.37838921100611, y: 34.485891251206574 }, - controlPoint1: { x: 88.62810449679094, y: 34.53684444017931 }, - controlPoint2: { x: 89.8417169347967, y: 34.59035172066937 }, - endPoint: { x: 91.01489611811341, y: 34.64641310368461 }, - }, - { - startPoint: { x: 91.01489611811036, y: 34.64641310368368 }, - controlPoint1: { x: 95.44872350516297, y: 34.644060019520666 }, - controlPoint2: { x: 105.78409431582443, y: 36.1117940621809 }, - endPoint: { x: 107.27050388771261, y: 35.74247832533047 }, - }, - ], - [ - { - startPoint: { x: -7.485656492982481, y: 46.39484723070612 }, - controlPoint1: { x: -6.285158006677722, y: 47.50597831848706 }, - controlPoint2: { x: 4.216435838174066, y: 46.22129649938044 }, - endPoint: { x: 8.705430727166908, y: 46.366788807653656 }, - }, - { - startPoint: { x: 8.705430727166394, y: 46.36678880765248 }, - controlPoint1: { x: 9.894951555912371, y: 46.341457398931276 }, - controlPoint2: { x: 11.126495213113916, y: 46.317035776332716 }, - endPoint: { x: 12.395510397424385, y: 46.29352392822831 }, - }, - { - startPoint: { x: 12.395510397423259, y: 46.29352392822714 }, - controlPoint1: { x: 19.029078354533077, y: 46.19724079674171 }, - controlPoint2: { x: 25.422123430070258, y: 46.0201169174699 }, - endPoint: { x: 31.285858238701202, y: 45.983922578073575 }, - }, - { - startPoint: { x: 31.285858238699646, y: 45.9839225780724 }, - controlPoint1: { x: 36.135210891702144, y: 45.93641572632379 }, - controlPoint2: { x: 41.15386568990352, y: 45.90791161498297 }, - endPoint: { x: 46.20638098813593, y: 45.89841024464049 }, - }, - { - startPoint: { x: 46.20638098813386, y: 45.898410244639315 }, - controlPoint1: { x: 52.522025096107406, y: 45.88653353159036 }, - controlPoint2: { x: 58.890576103302294, y: 45.904348601022676 }, - endPoint: { x: 65.04749939502663, y: 45.95185545309727 }, - }, - { - startPoint: { x: 65.04749939502469, y: 45.951855453096094 }, - controlPoint1: { x: 66.27888405978808, y: 45.96135682324038 }, - controlPoint2: { x: 67.50180359459773, y: 45.97204586535938 }, - endPoint: { x: 68.71414176129683, y: 45.98392257807356 }, - }, - { - startPoint: { x: 68.71414176129427, y: 45.983922578072374 }, - controlPoint1: { x: 74.57787656992662, y: 46.02011691746892 }, - controlPoint2: { x: 80.97092164546515, y: 46.19724079674269 }, - endPoint: { x: 87.60448960257366, y: 46.29352392822832 }, - }, - { - startPoint: { x: 87.60448960257109, y: 46.29352392822713 }, - controlPoint1: { x: 88.87350478688299, y: 46.317035776331664 }, - controlPoint2: { x: 90.10504844408631, y: 46.34145739893233 }, - endPoint: { x: 91.29456927283111, y: 46.36678880765367 }, - }, - { - startPoint: { x: 91.29456927282806, y: 46.36678880765247 }, - controlPoint1: { x: 95.78356416182231, y: 46.22129649937941 }, - controlPoint2: { x: 106.28515800667647, y: 47.50597831848806 }, - endPoint: { x: 107.48565649297998, y: 46.394847230707306 }, - }, - ], - [ - { - startPoint: { x: -7.270503887715103, y: 64.25752167466568 }, - controlPoint1: { x: -6.6062884899589065, y: 66.60501168066394 }, - controlPoint2: { x: 4.112579132639505, y: 65.62541690081073 }, - endPoint: { x: 8.633755245627562, y: 66.00947458260075 }, - }, - { - startPoint: { x: 8.633755245627047, y: 66.00947458259907 }, - controlPoint1: { x: 9.838559227571647, y: 66.03535979770106 }, - controlPoint2: { x: 11.088035327587601, y: 66.05941427158581 }, - endPoint: { x: 12.37726408692833, y: 66.08163799159499 }, - }, - { - startPoint: { x: 12.377264086927203, y: 66.08163799159331 }, - controlPoint1: { x: 19.23660065034144, y: 66.22259688707074 }, - controlPoint2: { x: 25.33595323198969, y: 66.17496520574106 }, - endPoint: { x: 31.272762379049958, y: 66.22027192923684 }, - }, - { - startPoint: { x: 31.2727623790484, y: 66.22027192923514 }, - controlPoint1: { x: 36.12303612781844, y: 66.24013846052051 }, - controlPoint2: { x: 41.14569737748979, y: 66.25205837852786 }, - endPoint: { x: 46.20283620851376, y: 66.25603168489201 }, - }, - { - startPoint: { x: 46.202836208511684, y: 66.25603168489032 }, - controlPoint1: { x: 52.52425972779909, y: 66.26099831750061 }, - controlPoint2: { x: 58.899554321233154, y: 66.25354836851525 }, - endPoint: { x: 65.05936449544522, y: 66.23368183773601 }, - }, - { - startPoint: { x: 65.05936449544328, y: 66.23368183773432 }, - controlPoint1: { x: 66.2913265395324, y: 66.22970853121707 }, - controlPoint2: { x: 67.51466917841267, y: 66.22523856234194 }, - endPoint: { x: 68.72723762094806, y: 66.22027192923684 }, - }, - { - startPoint: { x: 68.7272376209455, y: 66.22027192923517 }, - controlPoint1: { x: 74.66404676800721, y: 66.17496520573967 }, - controlPoint2: { x: 80.7633993496568, y: 66.2225968870722 }, - endPoint: { x: 87.62273591306972, y: 66.08163799159499 }, - }, - { - startPoint: { x: 87.62273591306715, y: 66.08163799159331 }, - controlPoint1: { x: 88.9119646724093, y: 66.05941427158439 }, - controlPoint2: { x: 90.16144077242706, y: 66.03535979770255 }, - endPoint: { x: 91.36624475437047, y: 66.00947458260076 }, - }, - { - startPoint: { x: 91.36624475436741, y: 66.00947458259913 }, - controlPoint1: { x: 95.88742086735692, y: 65.62541690080923 }, - controlPoint2: { x: 106.60628848995758, y: 66.6050116806655 }, - endPoint: { x: 107.27050388771262, y: 64.25752167466737 }, - }, - ], - [ - { - startPoint: { x: -7.141412323898705, y: 67.69958505702687 }, - controlPoint1: { x: -6.593418235806691, y: 70.29434684666862 }, - controlPoint2: { x: 4.15993945038657, y: 69.3757694746661 }, - endPoint: { x: 8.678587116219203, y: 69.80754023115942 }, - }, - { - startPoint: { x: 8.678587116218687, y: 69.80754023115762 }, - controlPoint1: { x: 9.88465479041212, y: 69.84366877102438 }, - controlPoint2: { x: 11.135924440600075, y: 69.87741846420559 }, - endPoint: { x: 12.427402976555946, y: 69.9087892978376 }, - }, - { - startPoint: { x: 12.42740297655482, y: 69.90878929783581 }, - controlPoint1: { x: 19.322928569275433, y: 70.09719659870568 }, - controlPoint2: { x: 25.354577960191506, y: 70.07546335696475 }, - endPoint: { x: 31.297037282983116, y: 70.13707029303875 }, - }, - { - startPoint: { x: 31.29703728298156, y: 70.13707029303696 }, - controlPoint1: { x: 36.14032349734151, y: 70.17041150092919 }, - controlPoint2: { x: 41.15661428374335, y: 70.19041622480617 }, - endPoint: { x: 46.207506067762, y: 70.19708446651155 }, - }, - { - startPoint: { x: 46.20750606775992, y: 70.19708446650976 }, - controlPoint1: { x: 52.52112077735559, y: 70.20541976825189 }, - controlPoint2: { x: 58.88879939608306, y: 70.19291681558306 }, - endPoint: { x: 65.04022225483821, y: 70.15957560823303 }, - }, - { - startPoint: { x: 65.04022225483627, y: 70.15957560823124 }, - controlPoint1: { x: 66.27050683639965, y: 70.15290736638164 }, - controlPoint2: { x: 67.4921411577031, y: 70.14540559530775 }, - endPoint: { x: 68.70296271701493, y: 70.13707029303878 }, - }, - { - startPoint: { x: 68.70296271701237, y: 70.13707029303698 }, - controlPoint1: { x: 74.64542203980541, y: 70.07546335696307 }, - controlPoint2: { x: 80.67707143072276, y: 70.09719659870737 }, - endPoint: { x: 87.57259702344211, y: 69.9087892978376 }, - }, - { - startPoint: { x: 87.57259702343954, y: 69.90878929783581 }, - controlPoint1: { x: 88.86407555939678, y: 69.87741846420408 }, - controlPoint2: { x: 90.11534520958665, y: 69.84366877102596 }, - endPoint: { x: 91.32141288377882, y: 69.80754023115941 }, - }, - { - startPoint: { x: 91.32141288377578, y: 69.8075402311577 }, - controlPoint1: { x: 95.84006054960993, y: 69.37576947466457 }, - controlPoint2: { x: 106.59341823580534, y: 70.2943468466702 }, - endPoint: { x: 107.14141232389622, y: 67.69958505702866 }, - }, - ], - [ - { - startPoint: { x: -5.24802560064622e-13, y: 99.99999999999508 }, - controlPoint1: { x: -1.223645746647601, y: 105.0674796260715 }, - controlPoint2: { x: 9.26518583739694, y: 104.75907633257559 }, - endPoint: { x: 13.149122293577912, y: 105.66797783610262 }, - }, - { - startPoint: { x: 13.149122293577312, y: 105.6679778360999 }, - controlPoint1: { x: 14.245941542639596, y: 105.8065396236132 }, - controlPoint2: { x: 15.39326134692815, y: 105.93724150976082 }, - endPoint: { x: 16.585352301416023, y: 106.06008347961996 }, - }, - { - startPoint: { x: 16.58535230141488, y: 106.06008347961722 }, - controlPoint1: { x: 23.233341449102284, y: 106.7229748344129 }, - controlPoint2: { x: 27.97853219459855, y: 106.96022598855632 }, - endPoint: { x: 33.36806653660672, y: 107.18483505041434 }, - }, - { - startPoint: { x: 33.3680665366052, y: 107.18483505041158 }, - controlPoint1: { x: 37.653936016386524, y: 107.35292302437158 }, - controlPoint2: { x: 42.118980779614766, y: 107.45377580694519 }, - endPoint: { x: 46.61986070310285, y: 107.48739340206357 }, - }, - { - startPoint: { x: 46.61986070310086, y: 107.48739340206083 }, - controlPoint1: { x: 52.245960577682254, y: 107.52941539512145 }, - controlPoint2: { x: 57.92805271124581, y: 107.46638240561731 }, - endPoint: { x: 63.38617567733451, y: 107.29829443255953 }, - }, - { - startPoint: { x: 63.38617567733262, y: 107.2982944325568 }, - controlPoint1: { x: 64.47780028601902, y: 107.264676837384 }, - controlPoint2: { x: 65.56046608393528, y: 107.22685704432197 }, - endPoint: { x: 66.6319334633913, y: 107.18483505041435 }, - }, - { - startPoint: { x: 66.63193346338889, y: 107.18483505041166 }, - controlPoint1: { x: 72.0214678053985, y: 106.96022598855389 }, - controlPoint2: { x: 76.76665855089588, y: 106.72297483441527 }, - endPoint: { x: 83.41464769858202, y: 106.06008347961995 }, - }, - { - startPoint: { x: 83.41464769857959, y: 106.06008347961728 }, - controlPoint1: { x: 84.60673865306883, y: 105.93724150975845 }, - controlPoint2: { x: 85.7540584573591, y: 105.80653962361562 }, - endPoint: { x: 86.8508777064201, y: 105.6679778361026 }, - }, - { - startPoint: { x: 86.85087770641728, y: 105.6679778361001 }, - controlPoint1: { x: 90.7348141625997, y: 104.75907633257333 }, - controlPoint2: { x: 101.22364574664624, y: 105.06747962607383 }, - endPoint: { x: 99.99999999999794, y: 99.9999999999978 }, - }, - ], - ], - } - }, - getAllGridCellBounds: () => { - return [ - { - top: { - startPoint: { - x: -5.933222534270543e-13, - y: 2.1637903020125002e-13, - }, - controlPoint1: { x: 1.859582406351584, y: -2.3506738832273517 }, - controlPoint2: { x: 10.910300945624368, y: -4.489599412243377 }, - endPoint: { x: 14.46667967954188, y: -5.01209014981728 }, - }, - bottom: { - startPoint: { x: -5.803919656044227, y: 14.26256286152371 }, - controlPoint1: { x: -3.8536336443540824, y: 13.148247896513425 }, - controlPoint2: { x: 6.041345366551788, y: 11.31440940675072 }, - endPoint: { x: 10.256892018351175, y: 11.030484042693658 }, - }, - left: { - startPoint: { - x: 2.5675571170907226e-13, - y: -5.690676384381097e-13, - }, - controlPoint1: { x: -5.456764822330806, y: -0.5895233794453079 }, - controlPoint2: { x: -4.771144485272147, y: 9.675326183431137 }, - endPoint: { x: -5.803919656043744, y: 14.26256286152407 }, - }, - right: { - startPoint: { x: 14.466679679541576, y: -5.012090149817765 }, - controlPoint1: { x: 10.641956231635632, y: -5.008276418933546 }, - controlPoint2: { x: 11.040122580810209, y: 5.84991025427184 }, - endPoint: { x: 10.256892018351023, y: 11.030484042693828 }, - }, - }, - { - top: { - startPoint: { x: -5.803919656044227, y: 14.26256286152371 }, - controlPoint1: { x: -3.8536336443540824, y: 13.148247896513425 }, - controlPoint2: { x: 6.041345366551788, y: 11.31440940675072 }, - endPoint: { x: 10.256892018351175, y: 11.030484042693658 }, - }, - bottom: { - startPoint: { x: -6.203721090139536, y: 18.036984983254985 }, - controlPoint1: { x: -4.314563367497776, y: 17.169941801888164 }, - controlPoint2: { x: 5.669998727618754, y: 15.397120719976137 }, - endPoint: { x: 9.938109952878516, y: 15.160908430622449 }, - }, - left: { - startPoint: { x: -5.803919656043554, y: 14.262562861523413 }, - controlPoint1: { x: -5.946129630461618, y: 15.467735852244207 }, - controlPoint2: { x: -6.079396777377466, y: 16.72819432186639 }, - endPoint: { x: -6.203721090139038, y: 18.03698498325535 }, - }, - right: { - startPoint: { x: 10.256892018350792, y: 11.030484042693224 }, - controlPoint1: { x: 10.144483134427839, y: 12.354324455479798 }, - controlPoint2: { x: 10.038222444412852, y: 13.733450347167686 }, - endPoint: { x: 9.938109952878376, y: 15.1609084306225 }, - }, - }, - { - top: { - startPoint: { x: -6.203721090139536, y: 18.036984983254985 }, - controlPoint1: { x: -4.314563367497776, y: 17.169941801888164 }, - controlPoint2: { x: 5.669998727618754, y: 15.397120719976137 }, - endPoint: { x: 9.938109952878516, y: 15.160908430622449 }, - }, - bottom: { - startPoint: { x: -7.2705038877151225, y: 35.7424783253296 }, - controlPoint1: { x: -5.7840943158257865, y: 36.11179406218015 }, - controlPoint2: { x: 4.551276494833472, y: 34.644060019521476 }, - endPoint: { x: 8.985103881884623, y: 34.646413103684594 }, - }, - left: { - startPoint: { x: -6.20372109013883, y: 18.03698498325413 }, - controlPoint1: { x: -6.889941141108163, y: 25.67020047122469 }, - controlPoint2: { x: -7.043750270079279, y: 29.58564867153074 }, - endPoint: { x: -7.270503887714652, y: 35.7424783253306 }, - }, - right: { - startPoint: { x: 9.938109952878166, y: 15.160908430621276 }, - controlPoint1: { x: 9.393136035283387, y: 23.387461028920804 }, - controlPoint2: { x: 9.214194626562511, y: 27.89624633955586 }, - endPoint: { x: 8.985103881884477, y: 34.64641310368475 }, - }, - }, - { - top: { - startPoint: { x: -7.2705038877151225, y: 35.7424783253296 }, - controlPoint1: { x: -5.7840943158257865, y: 36.11179406218015 }, - controlPoint2: { x: 4.551276494833472, y: 34.644060019521476 }, - endPoint: { x: 8.985103881884623, y: 34.646413103684594 }, - }, - bottom: { - startPoint: { x: -7.485656492982481, y: 46.39484723070612 }, - controlPoint1: { x: -6.285158006677722, y: 47.50597831848706 }, - controlPoint2: { x: 4.216435838174066, y: 46.22129649938044 }, - endPoint: { x: 8.705430727166908, y: 46.366788807653656 }, - }, - left: { - startPoint: { x: -7.270503887714451, y: 35.74247832532912 }, - controlPoint1: { x: -7.38525194385716, y: 39.219877729331344 }, - controlPoint2: { x: -7.456969478946453, y: 42.7951307748328 }, - endPoint: { x: -7.485656492982016, y: 46.3948472307074 }, - }, - right: { - startPoint: { x: 8.985103881884266, y: 34.64641310368324 }, - controlPoint1: { x: 8.862296013754218, y: 38.47981477388291 }, - controlPoint2: { x: 8.769071628848513, y: 42.411070085581684 }, - endPoint: { x: 8.705430727166764, y: 46.366788807653755 }, - }, - }, - { - top: { - startPoint: { x: -7.485656492982481, y: 46.39484723070612 }, - controlPoint1: { x: -6.285158006677722, y: 47.50597831848706 }, - controlPoint2: { x: 4.216435838174066, y: 46.22129649938044 }, - endPoint: { x: 8.705430727166908, y: 46.366788807653656 }, - }, - bottom: { - startPoint: { x: -7.270503887715103, y: 64.25752167466568 }, - controlPoint1: { x: -6.6062884899589065, y: 66.60501168066394 }, - controlPoint2: { x: 4.112579132639505, y: 65.62541690081073 }, - endPoint: { x: 8.633755245627562, y: 66.00947458260075 }, - }, - left: { - startPoint: { x: -7.48565649298183, y: 46.39484723070539 }, - controlPoint1: { x: -7.533468183041354, y: 52.394374657164775 }, - controlPoint2: { x: -7.461750647952391, y: 58.46185600133218 }, - endPoint: { x: -7.270503887714643, y: 64.25752167466754 }, - }, - right: { - startPoint: { x: 8.705430727166549, y: 46.366788807651666 }, - controlPoint1: { x: 8.599362557697264, y: 52.95965334444003 }, - controlPoint2: { x: 8.575470730517685, y: 59.620471798936535 }, - endPoint: { x: 8.633755245627421, y: 66.0094745826009 }, - }, - }, - { - top: { - startPoint: { x: -7.270503887715103, y: 64.25752167466568 }, - controlPoint1: { x: -6.6062884899589065, y: 66.60501168066394 }, - controlPoint2: { x: 4.112579132639505, y: 65.62541690081073 }, - endPoint: { x: 8.633755245627562, y: 66.00947458260075 }, - }, - bottom: { - startPoint: { x: -7.141412323898705, y: 67.69958505702687 }, - controlPoint1: { x: -6.593418235806691, y: 70.29434684666862 }, - controlPoint2: { x: 4.15993945038657, y: 69.3757694746661 }, - endPoint: { x: 8.678587116219203, y: 69.80754023115942 }, - }, - left: { - startPoint: { x: -7.270503887714465, y: 64.25752167466563 }, - controlPoint1: { x: -7.232254533961497, y: 65.41665485672674 }, - controlPoint2: { x: -7.189224015838214, y: 66.56491528580399 }, - endPoint: { x: -7.141412323898246, y: 67.69958505702871 }, - }, - right: { - startPoint: { x: 8.633755245627198, y: 66.0094745825989 }, - controlPoint1: { x: 8.645412149821855, y: 67.2872751867258 }, - controlPoint2: { x: 8.660356104521206, y: 68.55420303786894 }, - endPoint: { x: 8.678587116219061, y: 69.80754023115944 }, - }, - }, - { - top: { - startPoint: { x: -7.141412323898705, y: 67.69958505702687 }, - controlPoint1: { x: -6.593418235806691, y: 70.29434684666862 }, - controlPoint2: { x: 4.15993945038657, y: 69.3757694746661 }, - endPoint: { x: 8.678587116219203, y: 69.80754023115942 }, - }, - bottom: { - startPoint: { x: -5.24802560064622e-13, y: 99.99999999999508 }, - controlPoint1: { x: -1.223645746647601, y: 105.0674796260715 }, - controlPoint2: { x: 9.26518583739694, y: 104.75907633257559 }, - endPoint: { x: 13.149122293577912, y: 105.66797783610262 }, - }, - left: { - startPoint: { x: -7.141412323898311, y: 67.69958505702562 }, - controlPoint1: { x: -5.851645325881795, y: 77.31685262053347 }, - controlPoint2: { x: -8.616757569865488, y: 93.66044410925804 }, - endPoint: { x: 1.0872464583664995e-13, y: 99.9999999999981 }, - }, - right: { - startPoint: { x: 8.67858711621869, y: 69.80754023115612 }, - controlPoint1: { x: 9.41890666224813, y: 80.6114820153222 }, - controlPoint2: { x: 7.3714967294025175, y: 98.14174772470481 }, - endPoint: { x: 13.149122293577857, y: 105.66797783610286 }, - }, - }, - { - top: { - startPoint: { x: 14.466679679541265, y: -5.012090149817103 }, - controlPoint1: { x: 15.444905933753493, y: -5.18082810524351 }, - controlPoint2: { x: 16.457737005496973, y: -5.340982797994894 }, - endPoint: { x: 17.501652434145, y: -5.49255423681751 }, - }, - bottom: { - startPoint: { x: 10.256892018350634, y: 11.030484042693407 }, - controlPoint1: { x: 11.375798764538729, y: 10.912962711090257 }, - controlPoint2: { x: 12.531959617873886, y: 10.801284114821984 }, - endPoint: { x: 13.721485960329508, y: 10.695448244113026 }, - }, - left: { - startPoint: { x: 14.466679679541576, y: -5.012090149817765 }, - controlPoint1: { x: 10.641956231635632, y: -5.008276418933546 }, - controlPoint2: { x: 11.040122580810209, y: 5.84991025427184 }, - endPoint: { x: 10.256892018351023, y: 11.030484042693828 }, - }, - right: { - startPoint: { x: 17.50165243414469, y: -5.492554236818013 }, - controlPoint1: { x: 14.040268857258667, y: -5.440264409793931 }, - controlPoint2: { x: 14.417876004991312, y: 5.466398359551315 }, - endPoint: { x: 13.721485960329463, y: 10.69544824411318 }, - }, - }, - { - top: { - startPoint: { x: 10.256892018350634, y: 11.030484042693407 }, - controlPoint1: { x: 11.375798764538729, y: 10.912962711090257 }, - controlPoint2: { x: 12.531959617873886, y: 10.801284114821984 }, - endPoint: { x: 13.721485960329508, y: 10.695448244113026 }, - }, - bottom: { - startPoint: { x: 9.938109952877982, y: 15.160908430622092 }, - controlPoint1: { x: 11.06929899543806, y: 15.053630423783627 }, - controlPoint2: { x: 12.238272003068376, y: 14.951647046811939 }, - endPoint: { x: 13.441066726262312, y: 14.85495828972574 }, - }, - left: { - startPoint: { x: 10.256892018350792, y: 11.030484042693224 }, - controlPoint1: { x: 10.144483134427839, y: 12.354324455479798 }, - controlPoint2: { x: 10.038222444412852, y: 13.733450347167686 }, - endPoint: { x: 9.938109952878376, y: 15.1609084306225 }, - }, - right: { - startPoint: { x: 13.72148596032914, y: 10.695448244112583 }, - controlPoint1: { x: 13.62242361373221, y: 12.028983876127107 }, - controlPoint2: { x: 13.52895053432436, y: 13.417804987042981 }, - endPoint: { x: 13.44106672626228, y: 14.854958289725777 }, - }, - }, - { - top: { - startPoint: { x: 9.938109952877982, y: 15.160908430622092 }, - controlPoint1: { x: 11.06929899543806, y: 15.053630423783627 }, - controlPoint2: { x: 12.238272003068376, y: 14.951647046811939 }, - endPoint: { x: 13.441066726262312, y: 14.85495828972574 }, - }, - bottom: { - startPoint: { x: 8.985103881884104, y: 34.64641310368372 }, - controlPoint1: { x: 10.158283065202003, y: 34.59035172066859 }, - controlPoint2: { x: 11.371895503205963, y: 34.53684444018007 }, - endPoint: { x: 12.621610788989388, y: 34.48589125120746 }, - }, - left: { - startPoint: { x: 9.938109952878166, y: 15.160908430621276 }, - controlPoint1: { x: 9.393136035283387, y: 23.387461028920804 }, - controlPoint2: { x: 9.214194626562511, y: 27.89624633955586 }, - endPoint: { x: 8.985103881884477, y: 34.64641310368475 }, - }, - right: { - startPoint: { x: 13.441066726261974, y: 14.854958289724554 }, - controlPoint1: { x: 12.961273631476981, y: 23.12998698416392 }, - controlPoint2: { x: 12.814237362941043, y: 27.687248390938898 }, - endPoint: { x: 12.621610788989354, y: 34.48589125120762 }, - }, - }, - { - top: { - startPoint: { x: 8.985103881884104, y: 34.64641310368372 }, - controlPoint1: { x: 10.158283065202003, y: 34.59035172066859 }, - controlPoint2: { x: 11.371895503205963, y: 34.53684444018007 }, - endPoint: { x: 12.621610788989388, y: 34.48589125120746 }, - }, - bottom: { - startPoint: { x: 8.705430727166394, y: 46.36678880765248 }, - controlPoint1: { x: 9.894951555912371, y: 46.341457398931276 }, - controlPoint2: { x: 11.126495213113916, y: 46.317035776332716 }, - endPoint: { x: 12.395510397424385, y: 46.29352392822831 }, - }, - left: { - startPoint: { x: 8.985103881884266, y: 34.64641310368324 }, - controlPoint1: { x: 8.862296013754218, y: 38.47981477388291 }, - controlPoint2: { x: 8.769071628848513, y: 42.411070085581684 }, - endPoint: { x: 8.705430727166764, y: 46.366788807653755 }, - }, - right: { - startPoint: { x: 12.621610788989047, y: 34.485891251206105 }, - controlPoint1: { x: 12.519349916142463, y: 38.34837857908967 }, - controlPoint2: { x: 12.443983118954424, y: 42.308719548472396 }, - endPoint: { x: 12.395510397424353, y: 46.29352392822841 }, - }, - }, - { - top: { - startPoint: { x: 8.705430727166394, y: 46.36678880765248 }, - controlPoint1: { x: 9.894951555912371, y: 46.341457398931276 }, - controlPoint2: { x: 11.126495213113916, y: 46.317035776332716 }, - endPoint: { x: 12.395510397424385, y: 46.29352392822831 }, - }, - bottom: { - startPoint: { x: 8.633755245627047, y: 66.00947458259907 }, - controlPoint1: { x: 9.838559227571647, y: 66.03535979770106 }, - controlPoint2: { x: 11.088035327587601, y: 66.05941427158581 }, - endPoint: { x: 12.37726408692833, y: 66.08163799159499 }, - }, - left: { - startPoint: { x: 8.705430727166549, y: 46.366788807651666 }, - controlPoint1: { x: 8.599362557697264, y: 52.95965334444003 }, - controlPoint2: { x: 8.575470730517685, y: 59.620471798936535 }, - endPoint: { x: 8.633755245627421, y: 66.0094745826009 }, - }, - right: { - startPoint: { x: 12.39551039742404, y: 46.293523928226314 }, - controlPoint1: { x: 12.314722528207705, y: 52.93486456115452 }, - controlPoint2: { x: 12.308640424709285, y: 59.64415911179097 }, - endPoint: { x: 12.3772640869283, y: 66.08163799159514 }, - }, - }, - { - top: { - startPoint: { x: 8.633755245627047, y: 66.00947458259907 }, - controlPoint1: { x: 9.838559227571647, y: 66.03535979770106 }, - controlPoint2: { x: 11.088035327587601, y: 66.05941427158581 }, - endPoint: { x: 12.37726408692833, y: 66.08163799159499 }, - }, - bottom: { - startPoint: { x: 8.678587116218687, y: 69.80754023115762 }, - controlPoint1: { x: 9.88465479041212, y: 69.84366877102438 }, - controlPoint2: { x: 11.135924440600075, y: 69.87741846420559 }, - endPoint: { x: 12.427402976555946, y: 69.9087892978376 }, - }, - left: { - startPoint: { x: 8.633755245627198, y: 66.0094745825989 }, - controlPoint1: { x: 8.645412149821855, y: 67.2872751867258 }, - controlPoint2: { x: 8.660356104521206, y: 68.55420303786894 }, - endPoint: { x: 8.678587116219061, y: 69.80754023115944 }, - }, - right: { - startPoint: { x: 12.37726408692798, y: 66.08163799159313 }, - controlPoint1: { x: 12.390988820437965, y: 67.36913381494804 }, - controlPoint2: { x: 12.407701781679506, y: 68.64575688531914 }, - endPoint: { x: 12.427402976555916, y: 69.90878929783763 }, - }, - }, - { - top: { - startPoint: { x: 8.678587116218687, y: 69.80754023115762 }, - controlPoint1: { x: 9.88465479041212, y: 69.84366877102438 }, - controlPoint2: { x: 11.135924440600075, y: 69.87741846420559 }, - endPoint: { x: 12.427402976555946, y: 69.9087892978376 }, - }, - bottom: { - startPoint: { x: 13.149122293577312, y: 105.6679778360999 }, - controlPoint1: { x: 14.245941542639596, y: 105.8065396236132 }, - controlPoint2: { x: 15.39326134692815, y: 105.93724150976082 }, - endPoint: { x: 16.585352301416023, y: 106.06008347961996 }, - }, - left: { - startPoint: { x: 8.67858711621869, y: 69.80754023115612 }, - controlPoint1: { x: 9.41890666224813, y: 80.6114820153222 }, - controlPoint2: { x: 7.3714967294025175, y: 98.14174772470481 }, - endPoint: { x: 13.149122293577857, y: 105.66797783610286 }, - }, - right: { - startPoint: { x: 12.42740297655546, y: 69.9087892978343 }, - controlPoint1: { x: 13.13169622445724, y: 80.80968327428009 }, - controlPoint2: { x: 11.301689946109015, y: 98.43690117594248 }, - endPoint: { x: 16.585352301416062, y: 106.06008347962022 }, - }, - }, - { - top: { - startPoint: { x: 17.501652434143853, y: -5.492554236817298 }, - controlPoint1: { x: 22.66055956571276, y: -6.25311504379867 }, - controlPoint2: { x: 29.033434896250277, y: -6.792817077308687 }, - endPoint: { x: 33.850052829390506, y: -7.05721439280271 }, - }, - bottom: { - startPoint: { x: 13.721485960328376, y: 10.695448244112802 }, - controlPoint1: { x: 19.733148392088246, y: 10.172129464094233 }, - controlPoint2: { x: 26.43931792262341, y: 9.761919628526387 }, - endPoint: { x: 31.955996888079554, y: 9.579023375924422 }, - }, - left: { - startPoint: { x: 17.50165243414469, y: -5.492554236818013 }, - controlPoint1: { x: 14.040268857258667, y: -5.440264409793931 }, - controlPoint2: { x: 14.417876004991312, y: 5.466398359551315 }, - endPoint: { x: 13.721485960329463, y: 10.69544824411318 }, - }, - right: { - startPoint: { x: 33.850052829389604, y: -7.057214392803187 }, - controlPoint1: { x: 32.118036806145874, y: -6.855512803180248 }, - controlPoint2: { x: 32.3055161452117, y: 4.200561728763827 }, - endPoint: { x: 31.955996888079405, y: 9.579023375924585 }, - }, - }, - { - top: { - startPoint: { x: 13.721485960328376, y: 10.695448244112802 }, - controlPoint1: { x: 19.733148392088246, y: 10.172129464094233 }, - controlPoint2: { x: 26.43931792262341, y: 9.761919628526387 }, - endPoint: { x: 31.955996888079554, y: 9.579023375924422 }, - }, - bottom: { - startPoint: { x: 13.441066726261182, y: 14.854958289725408 }, - controlPoint1: { x: 19.544011207943267, y: 14.379087915099392 }, - controlPoint2: { x: 26.237570568361967, y: 13.994776519120032 }, - endPoint: { x: 31.81499273016532, y: 13.828180479096444 }, - }, - left: { - startPoint: { x: 13.72148596032914, y: 10.695448244112583 }, - controlPoint1: { x: 13.62242361373221, y: 12.028983876127107 }, - controlPoint2: { x: 13.52895053432436, y: 13.417804987042981 }, - endPoint: { x: 13.44106672626228, y: 14.854958289725777 }, - }, - right: { - startPoint: { x: 31.9559968880786, y: 9.57902337592401 }, - controlPoint1: { x: 31.906200867820242, y: 10.94244136045828 }, - controlPoint2: { x: 31.859199481156715, y: 12.361144823893936 }, - endPoint: { x: 31.814992730165176, y: 13.828180479096485 }, - }, - }, - { - top: { - startPoint: { x: 13.441066726261182, y: 14.854958289725408 }, - controlPoint1: { x: 19.544011207943267, y: 14.379087915099392 }, - controlPoint2: { x: 26.237570568361967, y: 13.994776519120032 }, - endPoint: { x: 31.81499273016532, y: 13.828180479096444 }, - }, - bottom: { - startPoint: { x: 12.621610788988264, y: 34.4858912512066 }, - controlPoint1: { x: 19.08385881477089, y: 34.247262903543486 }, - controlPoint2: { x: 25.617260619096825, y: 33.99244370550633 }, - endPoint: { x: 31.40129205712564, y: 33.90734872837479 }, - }, - left: { - startPoint: { x: 13.441066726261974, y: 14.854958289724554 }, - controlPoint1: { x: 12.961273631476981, y: 23.12998698416392 }, - controlPoint2: { x: 12.814237362941043, y: 27.687248390938898 }, - endPoint: { x: 12.621610788989354, y: 34.48589125120762 }, - }, - right: { - startPoint: { x: 31.81499273016438, y: 13.828180479095268 }, - controlPoint1: { x: 31.573771947971164, y: 22.25262093613356 }, - controlPoint2: { x: 31.49892957890267, y: 26.959294105507297 }, - endPoint: { x: 31.40129205712549, y: 33.90734872837495 }, - }, - }, - { - top: { - startPoint: { x: 12.621610788988264, y: 34.4858912512066 }, - controlPoint1: { x: 19.08385881477089, y: 34.247262903543486 }, - controlPoint2: { x: 25.617260619096825, y: 33.99244370550633 }, - endPoint: { x: 31.40129205712564, y: 33.90734872837479 }, - }, - bottom: { - startPoint: { x: 12.395510397423259, y: 46.29352392822714 }, - controlPoint1: { x: 19.029078354533077, y: 46.19724079674171 }, - controlPoint2: { x: 25.422123430070258, y: 46.0201169174699 }, - endPoint: { x: 31.285858238701202, y: 45.983922578073575 }, - }, - left: { - startPoint: { x: 12.621610788989047, y: 34.485891251206105 }, - controlPoint1: { x: 12.519349916142463, y: 38.34837857908967 }, - controlPoint2: { x: 12.443983118954424, y: 42.308719548472396 }, - endPoint: { x: 12.395510397424353, y: 46.29352392822841 }, - }, - right: { - startPoint: { x: 31.401292057124696, y: 33.90734872837343 }, - controlPoint1: { x: 31.349367079821086, y: 37.85948311381631 }, - controlPoint2: { x: 31.310889140347044, y: 41.90947114075835 }, - endPoint: { x: 31.285858238701056, y: 45.983922578073674 }, - }, - }, - { - top: { - startPoint: { x: 12.395510397423259, y: 46.29352392822714 }, - controlPoint1: { x: 19.029078354533077, y: 46.19724079674171 }, - controlPoint2: { x: 25.422123430070258, y: 46.0201169174699 }, - endPoint: { x: 31.285858238701202, y: 45.983922578073575 }, - }, - bottom: { - startPoint: { x: 12.377264086927203, y: 66.08163799159331 }, - controlPoint1: { x: 19.23660065034144, y: 66.22259688707074 }, - controlPoint2: { x: 25.33595323198969, y: 66.17496520574106 }, - endPoint: { x: 31.272762379049958, y: 66.22027192923684 }, - }, - left: { - startPoint: { x: 12.39551039742404, y: 46.293523928226314 }, - controlPoint1: { x: 12.314722528207705, y: 52.93486456115452 }, - controlPoint2: { x: 12.308640424709285, y: 59.64415911179097 }, - endPoint: { x: 12.3772640869283, y: 66.08163799159514 }, - }, - right: { - startPoint: { x: 31.285858238700257, y: 45.983922578071564 }, - controlPoint1: { x: 31.244140069291362, y: 52.774674973598664 }, - controlPoint2: { x: 31.239774782741677, y: 59.63338128683391 }, - endPoint: { x: 31.272762379049812, y: 66.220271929237 }, - }, - }, - { - top: { - startPoint: { x: 12.377264086927203, y: 66.08163799159331 }, - controlPoint1: { x: 19.23660065034144, y: 66.22259688707074 }, - controlPoint2: { x: 25.33595323198969, y: 66.17496520574106 }, - endPoint: { x: 31.272762379049958, y: 66.22027192923684 }, - }, - bottom: { - startPoint: { x: 12.42740297655482, y: 69.90878929783581 }, - controlPoint1: { x: 19.322928569275433, y: 70.09719659870568 }, - controlPoint2: { x: 25.354577960191506, y: 70.07546335696475 }, - endPoint: { x: 31.297037282983116, y: 70.13707029303875 }, - }, - left: { - startPoint: { x: 12.37726408692798, y: 66.08163799159313 }, - controlPoint1: { x: 12.390988820437965, y: 67.36913381494804 }, - controlPoint2: { x: 12.407701781679506, y: 68.64575688531914 }, - endPoint: { x: 12.427402976555916, y: 69.90878929783763 }, - }, - right: { - startPoint: { x: 31.272762379049013, y: 66.22027192923498 }, - controlPoint1: { x: 31.279359898844113, y: 67.53765010510965 }, - controlPoint2: { x: 31.287451532505315, y: 68.84415552800056 }, - endPoint: { x: 31.29703728298297, y: 70.13707029303878 }, - }, - }, - { - top: { - startPoint: { x: 12.42740297655482, y: 69.90878929783581 }, - controlPoint1: { x: 19.322928569275433, y: 70.09719659870568 }, - controlPoint2: { x: 25.354577960191506, y: 70.07546335696475 }, - endPoint: { x: 31.297037282983116, y: 70.13707029303875 }, - }, - bottom: { - startPoint: { x: 16.58535230141488, y: 106.06008347961722 }, - controlPoint1: { x: 23.233341449102284, y: 106.7229748344129 }, - controlPoint2: { x: 27.97853219459855, y: 106.96022598855632 }, - endPoint: { x: 33.36806653660672, y: 107.18483505041434 }, - }, - left: { - startPoint: { x: 12.42740297655546, y: 69.9087892978343 }, - controlPoint1: { x: 13.13169622445724, y: 80.80968327428009 }, - controlPoint2: { x: 11.301689946109015, y: 98.43690117594248 }, - endPoint: { x: 16.585352301416062, y: 106.06008347962022 }, - }, - right: { - startPoint: { x: 31.2970372829821, y: 70.1370702930354 }, - controlPoint1: { x: 31.64653543733121, y: 81.33678779467894 }, - controlPoint2: { x: 30.728883828555503, y: 99.26282922153914 }, - endPoint: { x: 33.36806653660662, y: 107.18483505041459 }, - }, - }, - { - top: { - startPoint: { x: 33.850052829388986, y: -7.057214392802502 }, - controlPoint1: { x: 38.02281943193151, y: -7.293366717046042 }, - controlPoint2: { x: 42.35624918370604, y: -7.435058110562059 }, - endPoint: { x: 46.72181160781119, y: -7.482288575682799 }, - }, - bottom: { - startPoint: { x: 31.955996888078005, y: 9.579023375924198 }, - controlPoint1: { x: 36.63127394149733, y: 9.410244434714546 }, - controlPoint2: { x: 41.470299499851095, y: 9.30897707054673 }, - endPoint: { x: 46.34207481185707, y: 9.275221282132549 }, - }, - left: { - startPoint: { x: 33.850052829389604, y: -7.057214392803187 }, - controlPoint1: { x: 32.118036806145874, y: -6.855512803180248 }, - controlPoint2: { x: 32.3055161452117, y: 4.200561728763827 }, - endPoint: { x: 31.955996888079405, y: 9.579023375924585 }, - }, - right: { - startPoint: { x: 46.72181160780991, y: -7.482288575683277 }, - controlPoint1: { x: 46.37509986726444, y: -7.240162956364272 }, - controlPoint2: { x: 46.41228719918118, y: 3.8563356052758824 }, - endPoint: { x: 46.34207481185695, y: 9.275221282132707 }, - }, - }, - { - top: { - startPoint: { x: 31.955996888078005, y: 9.579023375924198 }, - controlPoint1: { x: 36.63127394149733, y: 9.410244434714546 }, - controlPoint2: { x: 41.470299499851095, y: 9.30897707054673 }, - endPoint: { x: 46.34207481185707, y: 9.275221282132549 }, - }, - bottom: { - startPoint: { x: 31.814992730163766, y: 13.828180479096108 }, - controlPoint1: { x: 36.527356665665664, y: 13.672876214493263 }, - controlPoint2: { x: 41.40408617724247, y: 13.579693656195094 }, - endPoint: { x: 46.31368885873586, y: 13.548632803122228 }, - }, - left: { - startPoint: { x: 31.9559968880786, y: 9.57902337592401 }, - controlPoint1: { x: 31.906200867820242, y: 10.94244136045828 }, - controlPoint2: { x: 31.859199481156715, y: 12.361144823893936 }, - endPoint: { x: 31.814992730165176, y: 13.828180479096485 }, - }, - right: { - startPoint: { x: 46.342074811855774, y: 9.275221282132136 }, - controlPoint1: { x: 46.33205390062518, y: 10.646724072605636 }, - controlPoint2: { x: 46.322591916113986, y: 12.073512341980472 }, - endPoint: { x: 46.31368885873574, y: 13.548632803122263 }, - }, - }, - { - top: { - startPoint: { x: 31.814992730163766, y: 13.828180479096108 }, - controlPoint1: { x: 36.527356665665664, y: 13.672876214493263 }, - controlPoint2: { x: 41.40408617724247, y: 13.579693656195094 }, - endPoint: { x: 46.31368885873586, y: 13.548632803122228 }, - }, - bottom: { - startPoint: { x: 31.401292057124085, y: 33.90734872837393 }, - controlPoint1: { x: 36.22140503863042, y: 33.81941784680501 }, - controlPoint2: { x: 41.20896895191412, y: 33.76665931785514 }, - endPoint: { x: 46.23002311643599, y: 33.74907314148878 }, - }, - left: { - startPoint: { x: 31.81499273016438, y: 13.828180479095268 }, - controlPoint1: { x: 31.573771947971164, y: 22.25262093613356 }, - controlPoint2: { x: 31.49892957890267, y: 26.959294105507297 }, - endPoint: { x: 31.40129205712549, y: 33.90734872837495 }, - }, - right: { - startPoint: { x: 46.31368885873456, y: 13.548632803121048 }, - controlPoint1: { x: 46.26513616639919, y: 22.013497289855373 }, - controlPoint2: { x: 46.249859156689034, y: 26.760594488925243 }, - endPoint: { x: 46.230023116435866, y: 33.749073141488935 }, - }, - }, - { - top: { - startPoint: { x: 31.401292057124085, y: 33.90734872837393 }, - controlPoint1: { x: 36.22140503863042, y: 33.81941784680501 }, - controlPoint2: { x: 41.20896895191412, y: 33.76665931785514 }, - endPoint: { x: 46.23002311643599, y: 33.74907314148878 }, - }, - bottom: { - startPoint: { x: 31.285858238699646, y: 45.9839225780724 }, - controlPoint1: { x: 36.135210891702144, y: 45.93641572632379 }, - controlPoint2: { x: 41.15386568990352, y: 45.90791161498297 }, - endPoint: { x: 46.20638098813593, y: 45.89841024464049 }, - }, - left: { - startPoint: { x: 31.401292057124696, y: 33.90734872837343 }, - controlPoint1: { x: 31.349367079821086, y: 37.85948311381631 }, - controlPoint2: { x: 31.310889140347044, y: 41.90947114075835 }, - endPoint: { x: 31.285858238701056, y: 45.983922578073674 }, - }, - right: { - startPoint: { x: 46.23002311643469, y: 33.749073141487415 }, - controlPoint1: { x: 46.219452999436115, y: 37.72546194474792 }, - controlPoint2: { x: 46.21157229000389, y: 41.79970438950766 }, - endPoint: { x: 46.20638098813581, y: 45.89841024464059 }, - }, - }, - { - top: { - startPoint: { x: 31.285858238699646, y: 45.9839225780724 }, - controlPoint1: { x: 36.135210891702144, y: 45.93641572632379 }, - controlPoint2: { x: 41.15386568990352, y: 45.90791161498297 }, - endPoint: { x: 46.20638098813593, y: 45.89841024464049 }, - }, - bottom: { - startPoint: { x: 31.2727623790484, y: 66.22027192923514 }, - controlPoint1: { x: 36.12303612781844, y: 66.24013846052051 }, - controlPoint2: { x: 41.14569737748979, y: 66.25205837852786 }, - endPoint: { x: 46.20283620851376, y: 66.25603168489201 }, - }, - left: { - startPoint: { x: 31.285858238700257, y: 45.983922578071564 }, - controlPoint1: { x: 31.244140069291362, y: 52.774674973598664 }, - controlPoint2: { x: 31.239774782741677, y: 59.63338128683391 }, - endPoint: { x: 31.272762379049812, y: 66.220271929237 }, - }, - right: { - startPoint: { x: 46.20638098813463, y: 45.89841024463848 }, - controlPoint1: { x: 46.19772881835611, y: 52.729586669861696 }, - controlPoint2: { x: 46.19654722514981, y: 59.62871701279295 }, - endPoint: { x: 46.20283620851364, y: 66.25603168489216 }, - }, - }, - { - top: { - startPoint: { x: 31.2727623790484, y: 66.22027192923514 }, - controlPoint1: { x: 36.12303612781844, y: 66.24013846052051 }, - controlPoint2: { x: 41.14569737748979, y: 66.25205837852786 }, - endPoint: { x: 46.20283620851376, y: 66.25603168489201 }, - }, - bottom: { - startPoint: { x: 31.29703728298156, y: 70.13707029303696 }, - controlPoint1: { x: 36.14032349734151, y: 70.17041150092919 }, - controlPoint2: { x: 41.15661428374335, y: 70.19041622480617 }, - endPoint: { x: 46.207506067762, y: 70.19708446651155 }, - }, - left: { - startPoint: { x: 31.272762379049013, y: 66.22027192923498 }, - controlPoint1: { x: 31.279359898844113, y: 67.53765010510965 }, - controlPoint2: { x: 31.287451532505315, y: 68.84415552800056 }, - endPoint: { x: 31.29703728298297, y: 70.13707029303878 }, - }, - right: { - startPoint: { x: 46.20283620851246, y: 66.25603168489015 }, - controlPoint1: { x: 46.20409400529257, y: 67.58149466670409 }, - controlPoint2: { x: 46.20565062484627, y: 68.89608489553405 }, - endPoint: { x: 46.20750606776188, y: 70.19708446651158 }, - }, - }, - { - top: { - startPoint: { x: 31.29703728298156, y: 70.13707029303696 }, - controlPoint1: { x: 36.14032349734151, y: 70.17041150092919 }, - controlPoint2: { x: 41.15661428374335, y: 70.19041622480617 }, - endPoint: { x: 46.207506067762, y: 70.19708446651155 }, - }, - bottom: { - startPoint: { x: 33.3680665366052, y: 107.18483505041158 }, - controlPoint1: { x: 37.653936016386524, y: 107.35292302437158 }, - controlPoint2: { x: 42.118980779614766, y: 107.45377580694519 }, - endPoint: { x: 46.61986070310285, y: 107.48739340206357 }, - }, - left: { - startPoint: { x: 31.2970372829821, y: 70.1370702930354 }, - controlPoint1: { x: 31.64653543733121, y: 81.33678779467894 }, - controlPoint2: { x: 30.728883828555503, y: 99.26282922153914 }, - endPoint: { x: 33.36806653660662, y: 107.18483505041459 }, - }, - right: { - startPoint: { x: 46.20750606776069, y: 70.1970844665082 }, - controlPoint1: { x: 46.27678862683649, y: 81.47765002754387 }, - controlPoint2: { x: 46.0926412332876, y: 99.48453951379621 }, - endPoint: { x: 46.61986070310275, y: 107.48739340206384 }, - }, - }, - { - top: { - startPoint: { x: 46.72181160780922, y: -7.482288575682614 }, - controlPoint1: { x: 52.178764636215234, y: -7.541326656577548 }, - controlPoint2: { x: 57.68592487405209, y: -7.452769535575639 }, - endPoint: { x: 62.99225616692187, y: -7.216617211510295 }, - }, - bottom: { - startPoint: { x: 46.34207481185502, y: 9.275221282132307 }, - controlPoint1: { x: 52.43179394546149, y: 9.233026546896607 }, - controlPoint2: { x: 58.572684463424096, y: 9.296318649480765 }, - endPoint: { x: 64.50888933266822, y: 9.465097590692297 }, - }, - left: { - startPoint: { x: 46.72181160780991, y: -7.482288575683277 }, - controlPoint1: { x: 46.37509986726444, y: -7.240162956364272 }, - controlPoint2: { x: 46.41228719918118, y: 3.8563356052758824 }, - endPoint: { x: 46.34207481185695, y: 9.275221282132707 }, - }, - right: { - startPoint: { x: 62.992256166920065, y: -7.216617211510783 }, - controlPoint1: { x: 64.3783317897489, y: -6.99975661072936 }, - controlPoint2: { x: 64.22881112273082, y: 4.07147693237321 }, - endPoint: { x: 64.50888933266809, y: 9.46509759069245 }, - }, - }, - { - top: { - startPoint: { x: 46.34207481185502, y: 9.275221282132307 }, - controlPoint1: { x: 52.43179394546149, y: 9.233026546896607 }, - controlPoint2: { x: 58.572684463424096, y: 9.296318649480765 }, - endPoint: { x: 64.50888933266822, y: 9.465097590692297 }, - }, - bottom: { - startPoint: { x: 46.313688858733805, y: 13.548632803121876 }, - controlPoint1: { x: 52.45069220326438, y: 13.509806737018021 }, - controlPoint2: { x: 58.639059767136075, y: 13.568045835918655 }, - endPoint: { x: 64.62197034153918, y: 13.723350100559426 }, - }, - left: { - startPoint: { x: 46.342074811855774, y: 9.275221282132136 }, - controlPoint1: { x: 46.33205390062518, y: 10.646724072605636 }, - controlPoint2: { x: 46.322591916113986, y: 12.073512341980472 }, - endPoint: { x: 46.31368885873574, y: 13.548632803122263 }, - }, - right: { - startPoint: { x: 64.50888933266643, y: 9.465097590691876 }, - controlPoint1: { x: 64.54881870972092, y: 10.83154737745786 }, - controlPoint2: { x: 64.58651237990037, y: 12.25328264312518 }, - endPoint: { x: 64.62197034153904, y: 13.723350100559458 }, - }, - }, - { - top: { - startPoint: { x: 46.313688858733805, y: 13.548632803121876 }, - controlPoint1: { x: 52.45069220326438, y: 13.509806737018021 }, - controlPoint2: { x: 58.639059767136075, y: 13.568045835918655 }, - endPoint: { x: 64.62197034153918, y: 13.723350100559426 }, - }, - bottom: { - startPoint: { x: 46.23002311643391, y: 33.74907314148791 }, - controlPoint1: { x: 52.50634081007456, y: 33.727090421043336 }, - controlPoint2: { x: 58.83498689798145, y: 33.76006450152637 }, - endPoint: { x: 64.95431929266853, y: 33.84799538331323 }, - }, - left: { - startPoint: { x: 46.31368885873456, y: 13.548632803121048 }, - controlPoint1: { x: 46.26513616639919, y: 22.013497289855373 }, - controlPoint2: { x: 46.249859156689034, y: 26.760594488925243 }, - endPoint: { x: 46.230023116435866, y: 33.749073141488935 }, - }, - right: { - startPoint: { x: 64.62197034153738, y: 13.72335010055824 }, - controlPoint1: { x: 64.81540977152572, y: 22.162949568754968 }, - controlPoint2: { x: 64.87574647101505, y: 26.884781749287257 }, - endPoint: { x: 64.95431929266839, y: 33.84799538331338 }, - }, - }, - { - top: { - startPoint: { x: 46.23002311643391, y: 33.74907314148791 }, - controlPoint1: { x: 52.50634081007456, y: 33.727090421043336 }, - controlPoint2: { x: 58.83498689798145, y: 33.76006450152637 }, - endPoint: { x: 64.95431929266853, y: 33.84799538331323 }, - }, - bottom: { - startPoint: { x: 46.20638098813386, y: 45.898410244639315 }, - controlPoint1: { x: 52.522025096107406, y: 45.88653353159036 }, - controlPoint2: { x: 58.890576103302294, y: 45.904348601022676 }, - endPoint: { x: 65.04749939502663, y: 45.95185545309727 }, - }, - left: { - startPoint: { x: 46.23002311643469, y: 33.749073141487415 }, - controlPoint1: { x: 46.219452999436115, y: 37.72546194474792 }, - controlPoint2: { x: 46.21157229000389, y: 41.79970438950766 }, - endPoint: { x: 46.20638098813581, y: 45.89841024464059 }, - }, - right: { - startPoint: { x: 64.95431929266672, y: 33.84799538331186 }, - controlPoint1: { x: 64.9961369570504, y: 37.8092251754498 }, - controlPoint2: { x: 65.0271969911712, y: 41.86830860908704 }, - endPoint: { x: 65.04749939502648, y: 45.951855453097366 }, - }, - }, - { - top: { - startPoint: { x: 46.20638098813386, y: 45.898410244639315 }, - controlPoint1: { x: 52.522025096107406, y: 45.88653353159036 }, - controlPoint2: { x: 58.890576103302294, y: 45.904348601022676 }, - endPoint: { x: 65.04749939502663, y: 45.95185545309727 }, - }, - bottom: { - startPoint: { x: 46.202836208511684, y: 66.25603168489032 }, - controlPoint1: { x: 52.52425972779909, y: 66.26099831750061 }, - controlPoint2: { x: 58.899554321233154, y: 66.25354836851525 }, - endPoint: { x: 65.05936449544522, y: 66.23368183773601 }, - }, - left: { - startPoint: { x: 46.20638098813463, y: 45.89841024463848 }, - controlPoint1: { x: 46.19772881835611, y: 52.729586669861696 }, - controlPoint2: { x: 46.19654722514981, y: 59.62871701279295 }, - endPoint: { x: 46.20283620851364, y: 66.25603168489216 }, - }, - right: { - startPoint: { x: 65.04749939502483, y: 45.951855453095256 }, - controlPoint1: { x: 65.08133673478574, y: 52.7577668597809 }, - controlPoint2: { x: 65.08529176826008, y: 59.631632184174606 }, - endPoint: { x: 65.05936449544507, y: 66.23368183773617 }, - }, - }, - { - top: { - startPoint: { x: 46.202836208511684, y: 66.25603168489032 }, - controlPoint1: { x: 52.52425972779909, y: 66.26099831750061 }, - controlPoint2: { x: 58.899554321233154, y: 66.25354836851525 }, - endPoint: { x: 65.05936449544522, y: 66.23368183773601 }, - }, - bottom: { - startPoint: { x: 46.20750606775992, y: 70.19708446650976 }, - controlPoint1: { x: 52.52112077735559, y: 70.20541976825189 }, - controlPoint2: { x: 58.88879939608306, y: 70.19291681558306 }, - endPoint: { x: 65.04022225483821, y: 70.15957560823303 }, - }, - left: { - startPoint: { x: 46.20283620851246, y: 66.25603168489015 }, - controlPoint1: { x: 46.20409400529257, y: 67.58149466670409 }, - controlPoint2: { x: 46.20565062484627, y: 68.89608489553405 }, - endPoint: { x: 46.20750606776188, y: 70.19708446651158 }, - }, - right: { - startPoint: { x: 65.05936449544342, y: 66.23368183773415 }, - controlPoint1: { x: 65.0541790404551, y: 67.55409181584058 }, - controlPoint2: { x: 65.04779829437474, y: 68.86362904096316 }, - endPoint: { x: 65.04022225483806, y: 70.15957560823306 }, - }, - }, - { - top: { - startPoint: { x: 46.20750606775992, y: 70.19708446650976 }, - controlPoint1: { x: 52.52112077735559, y: 70.20541976825189 }, - controlPoint2: { x: 58.88879939608306, y: 70.19291681558306 }, - endPoint: { x: 65.04022225483821, y: 70.15957560823303 }, - }, - bottom: { - startPoint: { x: 46.61986070310086, y: 107.48739340206083 }, - controlPoint1: { x: 52.245960577682254, y: 107.52941539512145 }, - controlPoint2: { x: 57.92805271124581, y: 107.46638240561731 }, - endPoint: { x: 63.38617567733451, y: 107.29829443255953 }, - }, - left: { - startPoint: { x: 46.20750606776069, y: 70.1970844665082 }, - controlPoint1: { x: 46.27678862683649, y: 81.47765002754387 }, - controlPoint2: { x: 46.0926412332876, y: 99.48453951379621 }, - endPoint: { x: 46.61986070310275, y: 107.48739340206384 }, - }, - right: { - startPoint: { x: 65.04022225483645, y: 70.15957560822967 }, - controlPoint1: { x: 64.7615493398235, y: 81.38961113219025 }, - controlPoint2: { x: 65.49659623531116, y: 99.34597058136734 }, - endPoint: { x: 63.38617567733435, y: 107.2982944325598 }, - }, - }, - { - top: { - startPoint: { x: 62.99225616692, y: -7.216617211510121 }, - controlPoint1: { x: 64.05352242399367, y: -7.169386746713373 }, - controlPoint2: { x: 65.10675552182781, y: -7.116252473810994 }, - endPoint: { x: 66.14994717060755, y: -7.057214392802698 }, - }, - bottom: { - startPoint: { x: 64.50888933266629, y: 9.465097590692048 }, - controlPoint1: { x: 65.69613030784308, y: 9.49885337882718 }, - controlPoint2: { x: 66.87518384852514, y: 9.536828640735429 }, - endPoint: { x: 68.04400311191847, y: 9.579023375924432 }, - }, - left: { - startPoint: { x: 62.992256166920065, y: -7.216617211510783 }, - controlPoint1: { x: 64.3783317897489, y: -6.99975661072936 }, - controlPoint2: { x: 64.22881112273082, y: 4.07147693237321 }, - endPoint: { x: 64.50888933266809, y: 9.46509759069245 }, - }, - right: { - startPoint: { x: 66.14994717060574, y: -7.0572143928031865 }, - controlPoint1: { x: 67.88196319385086, y: -6.855512803180247 }, - controlPoint2: { x: 67.69448385478735, y: 4.200561728763832 }, - endPoint: { x: 68.04400311191846, y: 9.579023375924587 }, - }, - }, - { - top: { - startPoint: { x: 64.50888933266629, y: 9.465097590692048 }, - controlPoint1: { x: 65.69613030784308, y: 9.49885337882718 }, - controlPoint2: { x: 66.87518384852514, y: 9.536828640735429 }, - endPoint: { x: 68.04400311191847, y: 9.579023375924432 }, - }, - bottom: { - startPoint: { x: 64.62197034153725, y: 13.723350100559069 }, - controlPoint1: { x: 65.8185524583114, y: 13.754410953361864 }, - controlPoint2: { x: 67.00691628553989, y: 13.789354413071324 }, - endPoint: { x: 68.18500726983274, y: 13.82818047909646 }, - }, - left: { - startPoint: { x: 64.50888933266643, y: 9.465097590691876 }, - controlPoint1: { x: 64.54881870972092, y: 10.83154737745786 }, - controlPoint2: { x: 64.58651237990037, y: 12.25328264312518 }, - endPoint: { x: 64.62197034153904, y: 13.723350100559458 }, - }, - right: { - startPoint: { x: 68.0440031119167, y: 9.579023375924011 }, - controlPoint1: { x: 68.0937991321764, y: 10.942441360458284 }, - controlPoint2: { x: 68.14080051884238, y: 12.361144823893932 }, - endPoint: { x: 68.18500726983271, y: 13.828180479096494 }, - }, - }, - { - top: { - startPoint: { x: 64.62197034153725, y: 13.723350100559069 }, - controlPoint1: { x: 65.8185524583114, y: 13.754410953361864 }, - controlPoint2: { x: 67.00691628553989, y: 13.789354413071324 }, - endPoint: { x: 68.18500726983274, y: 13.82818047909646 }, - }, - bottom: { - startPoint: { x: 64.95431929266658, y: 33.84799538331236 }, - controlPoint1: { x: 66.17818577632565, y: 33.8655815594536 }, - controlPoint2: { x: 67.39367969518405, y: 33.885366008168994 }, - endPoint: { x: 68.5987079428724, y: 33.9073487283748 }, - }, - left: { - startPoint: { x: 64.62197034153738, y: 13.72335010055824 }, - controlPoint1: { x: 64.81540977152572, y: 22.162949568754968 }, - controlPoint2: { x: 64.87574647101505, y: 26.884781749287257 }, - endPoint: { x: 64.95431929266839, y: 33.84799538331338 }, - }, - right: { - startPoint: { x: 68.18500726983095, y: 13.828180479095277 }, - controlPoint1: { x: 68.42622805202558, y: 22.252620936133546 }, - controlPoint2: { x: 68.50107042109632, y: 26.959294105507304 }, - endPoint: { x: 68.59870794287237, y: 33.907348728374956 }, - }, - }, - { - top: { - startPoint: { x: 64.95431929266658, y: 33.84799538331236 }, - controlPoint1: { x: 66.17818577632565, y: 33.8655815594536 }, - controlPoint2: { x: 67.39367969518405, y: 33.885366008168994 }, - endPoint: { x: 68.5987079428724, y: 33.9073487283748 }, - }, - bottom: { - startPoint: { x: 65.04749939502469, y: 45.951855453096094 }, - controlPoint1: { x: 66.27888405978808, y: 45.96135682324038 }, - controlPoint2: { x: 67.50180359459773, y: 45.97204586535938 }, - endPoint: { x: 68.71414176129683, y: 45.98392257807356 }, - }, - left: { - startPoint: { x: 64.95431929266672, y: 33.84799538331186 }, - controlPoint1: { x: 64.9961369570504, y: 37.8092251754498 }, - controlPoint2: { x: 65.0271969911712, y: 41.86830860908704 }, - endPoint: { x: 65.04749939502648, y: 45.951855453097366 }, - }, - right: { - startPoint: { x: 68.59870794287062, y: 33.907348728373435 }, - controlPoint1: { x: 68.65063292017555, y: 37.85948311381631 }, - controlPoint2: { x: 68.68911085965206, y: 41.909471140758356 }, - endPoint: { x: 68.7141417612968, y: 45.98392257807366 }, - }, - }, - { - top: { - startPoint: { x: 65.04749939502469, y: 45.951855453096094 }, - controlPoint1: { x: 66.27888405978808, y: 45.96135682324038 }, - controlPoint2: { x: 67.50180359459773, y: 45.97204586535938 }, - endPoint: { x: 68.71414176129683, y: 45.98392257807356 }, - }, - bottom: { - startPoint: { x: 65.05936449544328, y: 66.23368183773432 }, - controlPoint1: { x: 66.2913265395324, y: 66.22970853121707 }, - controlPoint2: { x: 67.51466917841267, y: 66.22523856234194 }, - endPoint: { x: 68.72723762094806, y: 66.22027192923684 }, - }, - left: { - startPoint: { x: 65.04749939502483, y: 45.951855453095256 }, - controlPoint1: { x: 65.08133673478574, y: 52.7577668597809 }, - controlPoint2: { x: 65.08529176826008, y: 59.631632184174606 }, - endPoint: { x: 65.05936449544507, y: 66.23368183773617 }, - }, - right: { - startPoint: { x: 68.71414176129505, y: 45.98392257807155 }, - controlPoint1: { x: 68.7558599307053, y: 52.77467497359865 }, - controlPoint2: { x: 68.76022521725739, y: 59.633381286833995 }, - endPoint: { x: 68.72723762094803, y: 66.220271929237 }, - }, - }, - { - top: { - startPoint: { x: 65.05936449544328, y: 66.23368183773432 }, - controlPoint1: { x: 66.2913265395324, y: 66.22970853121707 }, - controlPoint2: { x: 67.51466917841267, y: 66.22523856234194 }, - endPoint: { x: 68.72723762094806, y: 66.22027192923684 }, - }, - bottom: { - startPoint: { x: 65.04022225483627, y: 70.15957560823124 }, - controlPoint1: { x: 66.27050683639965, y: 70.15290736638164 }, - controlPoint2: { x: 67.4921411577031, y: 70.14540559530775 }, - endPoint: { x: 68.70296271701493, y: 70.13707029303878 }, - }, - left: { - startPoint: { x: 65.05936449544342, y: 66.23368183773415 }, - controlPoint1: { x: 65.0541790404551, y: 67.55409181584058 }, - controlPoint2: { x: 65.04779829437474, y: 68.86362904096316 }, - endPoint: { x: 65.04022225483806, y: 70.15957560823306 }, - }, - right: { - startPoint: { x: 68.72723762094628, y: 66.22027192923498 }, - controlPoint1: { x: 68.72064010115264, y: 67.53765010510972 }, - controlPoint2: { x: 68.7125484674937, y: 68.84415552800056 }, - endPoint: { x: 68.7029627170149, y: 70.1370702930388 }, - }, - }, - { - top: { - startPoint: { x: 65.04022225483627, y: 70.15957560823124 }, - controlPoint1: { x: 66.27050683639965, y: 70.15290736638164 }, - controlPoint2: { x: 67.4921411577031, y: 70.14540559530775 }, - endPoint: { x: 68.70296271701493, y: 70.13707029303878 }, - }, - bottom: { - startPoint: { x: 63.38617567733262, y: 107.2982944325568 }, - controlPoint1: { x: 64.47780028601902, y: 107.264676837384 }, - controlPoint2: { x: 65.56046608393528, y: 107.22685704432197 }, - endPoint: { x: 66.6319334633913, y: 107.18483505041435 }, - }, - left: { - startPoint: { x: 65.04022225483645, y: 70.15957560822967 }, - controlPoint1: { x: 64.7615493398235, y: 81.38961113219025 }, - controlPoint2: { x: 65.49659623531116, y: 99.34597058136734 }, - endPoint: { x: 63.38617567733435, y: 107.2982944325598 }, - }, - right: { - startPoint: { x: 68.70296271701321, y: 70.13707029303544 }, - controlPoint1: { x: 68.35346456266551, y: 81.336787794679 }, - controlPoint2: { x: 69.27111617144344, y: 99.26282922153908 }, - endPoint: { x: 66.63193346339125, y: 107.18483505041462 }, - }, - }, - { - top: { - startPoint: { x: 66.14994717060516, y: -7.057214392802581 }, - controlPoint1: { x: 70.96656510374677, y: -6.792817077308566 }, - controlPoint2: { x: 77.33944043428542, y: -6.253115043798826 }, - endPoint: { x: 82.49834756585302, y: -5.492554236817493 }, - }, - bottom: { - startPoint: { x: 68.04400311191594, y: 9.579023375924141 }, - controlPoint1: { x: 73.56068207737346, y: 9.761919628526147 }, - controlPoint2: { x: 80.26685160791004, y: 10.172129464094441 }, - endPoint: { x: 86.2785140396685, y: 10.69544824411304 }, - }, - left: { - startPoint: { x: 66.14994717060574, y: -7.0572143928031865 }, - controlPoint1: { x: 67.88196319385086, y: -6.855512803180247 }, - controlPoint2: { x: 67.69448385478735, y: 4.200561728763832 }, - endPoint: { x: 68.04400311191846, y: 9.579023375924587 }, - }, - right: { - startPoint: { x: 82.49834756585061, y: -5.492554236818015 }, - controlPoint1: { x: 85.95973114273811, y: -5.4402644097939294 }, - controlPoint2: { x: 85.58212399500769, y: 5.466398359551308 }, - endPoint: { x: 86.27851403966837, y: 10.69544824411318 }, - }, - }, - { - top: { - startPoint: { x: 68.04400311191594, y: 9.579023375924141 }, - controlPoint1: { x: 73.56068207737346, y: 9.761919628526147 }, - controlPoint2: { x: 80.26685160791004, y: 10.172129464094441 }, - endPoint: { x: 86.2785140396685, y: 10.69544824411304 }, - }, - bottom: { - startPoint: { x: 68.18500726983021, y: 13.828180479096064 }, - controlPoint1: { x: 73.76242943163493, y: 13.994776519119679 }, - controlPoint2: { x: 80.45598879205497, y: 14.37908791509971 }, - endPoint: { x: 86.55893327373572, y: 14.854958289725753 }, - }, - left: { - startPoint: { x: 68.0440031119167, y: 9.579023375924011 }, - controlPoint1: { x: 68.0937991321764, y: 10.942441360458284 }, - controlPoint2: { x: 68.14080051884238, y: 12.361144823893932 }, - endPoint: { x: 68.18500726983271, y: 13.828180479096494 }, - }, - right: { - startPoint: { x: 86.27851403966613, y: 10.695448244112583 }, - controlPoint1: { x: 86.37757638626451, y: 12.028983876127107 }, - controlPoint2: { x: 86.47104946567478, y: 13.417804987042981 }, - endPoint: { x: 86.55893327373556, y: 14.854958289725777 }, - }, - }, - { - top: { - startPoint: { x: 68.18500726983021, y: 13.828180479096064 }, - controlPoint1: { x: 73.76242943163493, y: 13.994776519119679 }, - controlPoint2: { x: 80.45598879205497, y: 14.37908791509971 }, - endPoint: { x: 86.55893327373572, y: 14.854958289725753 }, - }, - bottom: { - startPoint: { x: 68.59870794286984, y: 33.90734872837391 }, - controlPoint1: { x: 74.38273938090006, y: 33.99244370550551 }, - controlPoint2: { x: 80.91614118522732, y: 34.24726290354429 }, - endPoint: { x: 87.37838921100865, y: 34.48589125120747 }, - }, - left: { - startPoint: { x: 68.18500726983095, y: 13.828180479095277 }, - controlPoint1: { x: 68.42622805202558, y: 22.252620936133546 }, - controlPoint2: { x: 68.50107042109632, y: 26.959294105507304 }, - endPoint: { x: 68.59870794287237, y: 33.907348728374956 }, - }, - right: { - startPoint: { x: 86.55893327373332, y: 14.854958289724554 }, - controlPoint1: { x: 87.03872636851966, y: 23.129986984163956 }, - controlPoint2: { x: 87.18576263705795, y: 27.68724839093887 }, - endPoint: { x: 87.3783892110085, y: 34.48589125120762 }, - }, - }, - { - top: { - startPoint: { x: 68.59870794286984, y: 33.90734872837391 }, - controlPoint1: { x: 74.38273938090006, y: 33.99244370550551 }, - controlPoint2: { x: 80.91614118522732, y: 34.24726290354429 }, - endPoint: { x: 87.37838921100865, y: 34.48589125120747 }, - }, - bottom: { - startPoint: { x: 68.71414176129427, y: 45.983922578072374 }, - controlPoint1: { x: 74.57787656992662, y: 46.02011691746892 }, - controlPoint2: { x: 80.97092164546515, y: 46.19724079674269 }, - endPoint: { x: 87.60448960257366, y: 46.29352392822832 }, - }, - left: { - startPoint: { x: 68.59870794287062, y: 33.907348728373435 }, - controlPoint1: { x: 68.65063292017555, y: 37.85948311381631 }, - controlPoint2: { x: 68.68911085965206, y: 41.909471140758356 }, - endPoint: { x: 68.7141417612968, y: 45.98392257807366 }, - }, - right: { - startPoint: { x: 87.37838921100625, y: 34.485891251206105 }, - controlPoint1: { x: 87.48065008385416, y: 38.34837857908967 }, - controlPoint2: { x: 87.55601688104466, y: 42.308719548472396 }, - endPoint: { x: 87.60448960257351, y: 46.29352392822841 }, - }, - }, - { - top: { - startPoint: { x: 68.71414176129427, y: 45.983922578072374 }, - controlPoint1: { x: 74.57787656992662, y: 46.02011691746892 }, - controlPoint2: { x: 80.97092164546515, y: 46.19724079674269 }, - endPoint: { x: 87.60448960257366, y: 46.29352392822832 }, - }, - bottom: { - startPoint: { x: 68.7272376209455, y: 66.22027192923517 }, - controlPoint1: { x: 74.66404676800721, y: 66.17496520573967 }, - controlPoint2: { x: 80.7633993496568, y: 66.2225968870722 }, - endPoint: { x: 87.62273591306972, y: 66.08163799159499 }, - }, - left: { - startPoint: { x: 68.71414176129505, y: 45.98392257807155 }, - controlPoint1: { x: 68.7558599307053, y: 52.77467497359865 }, - controlPoint2: { x: 68.76022521725739, y: 59.633381286833995 }, - endPoint: { x: 68.72723762094803, y: 66.220271929237 }, - }, - right: { - startPoint: { x: 87.60448960257125, y: 46.293523928226314 }, - controlPoint1: { x: 87.68527747178904, y: 52.93486456115453 }, - controlPoint2: { x: 87.69135957528977, y: 59.64415911179094 }, - endPoint: { x: 87.62273591306956, y: 66.08163799159514 }, - }, - }, - { - top: { - startPoint: { x: 68.7272376209455, y: 66.22027192923517 }, - controlPoint1: { x: 74.66404676800721, y: 66.17496520573967 }, - controlPoint2: { x: 80.7633993496568, y: 66.2225968870722 }, - endPoint: { x: 87.62273591306972, y: 66.08163799159499 }, - }, - bottom: { - startPoint: { x: 68.70296271701237, y: 70.13707029303698 }, - controlPoint1: { x: 74.64542203980541, y: 70.07546335696307 }, - controlPoint2: { x: 80.67707143072276, y: 70.09719659870737 }, - endPoint: { x: 87.57259702344211, y: 69.9087892978376 }, - }, - left: { - startPoint: { x: 68.72723762094628, y: 66.22027192923498 }, - controlPoint1: { x: 68.72064010115264, y: 67.53765010510972 }, - controlPoint2: { x: 68.7125484674937, y: 68.84415552800056 }, - endPoint: { x: 68.7029627170149, y: 70.1370702930388 }, - }, - right: { - startPoint: { x: 87.6227359130673, y: 66.08163799159313 }, - controlPoint1: { x: 87.60901117955883, y: 67.36913381494806 }, - controlPoint2: { x: 87.5922982183195, y: 68.64575688531906 }, - endPoint: { x: 87.57259702344196, y: 69.90878929783763 }, - }, - }, - { - top: { - startPoint: { x: 68.70296271701237, y: 70.13707029303698 }, - controlPoint1: { x: 74.64542203980541, y: 70.07546335696307 }, - controlPoint2: { x: 80.67707143072276, y: 70.09719659870737 }, - endPoint: { x: 87.57259702344211, y: 69.9087892978376 }, - }, - bottom: { - startPoint: { x: 66.63193346338889, y: 107.18483505041166 }, - controlPoint1: { x: 72.0214678053985, y: 106.96022598855389 }, - controlPoint2: { x: 76.76665855089588, y: 106.72297483441527 }, - endPoint: { x: 83.41464769858202, y: 106.06008347961995 }, - }, - left: { - startPoint: { x: 68.70296271701321, y: 70.13707029303544 }, - controlPoint1: { x: 68.35346456266551, y: 81.336787794679 }, - controlPoint2: { x: 69.27111617144344, y: 99.26282922153908 }, - endPoint: { x: 66.63193346339125, y: 107.18483505041462 }, - }, - right: { - startPoint: { x: 87.57259702343985, y: 69.9087892978343 }, - controlPoint1: { x: 86.86830377553949, y: 80.80968327428009 }, - controlPoint2: { x: 88.69831005388995, y: 98.43690117594248 }, - endPoint: { x: 83.4146476985818, y: 106.06008347962022 }, - }, - }, - { - top: { - startPoint: { x: 82.49834756585066, y: -5.492554236817388 }, - controlPoint1: { x: 83.54226299450009, y: -5.3409827979947835 }, - controlPoint2: { x: 84.55509406624515, y: -5.180828105243638 }, - endPoint: { x: 85.53332032045613, y: -5.0120901498172445 }, - }, - bottom: { - startPoint: { x: 86.278514039666, y: 10.695448244112743 }, - controlPoint1: { x: 87.46804038212304, y: 10.801284114821726 }, - controlPoint2: { x: 88.62420123545994, y: 10.912962711090499 }, - endPoint: { x: 89.74310798164684, y: 11.030484042693681 }, - }, - left: { - startPoint: { x: 82.49834756585061, y: -5.492554236818015 }, - controlPoint1: { x: 85.95973114273811, y: -5.4402644097939294 }, - controlPoint2: { x: 85.58212399500769, y: 5.466398359551308 }, - endPoint: { x: 86.27851403966837, y: 10.69544824411318 }, - }, - right: { - startPoint: { x: 85.53332032045374, y: -5.012090149817762 }, - controlPoint1: { x: 89.35804376836118, y: -5.008276418933541 }, - controlPoint2: { x: 88.95987741918879, y: 5.849910254271835 }, - endPoint: { x: 89.74310798164684, y: 11.03048404269383 }, - }, - }, - { - top: { - startPoint: { x: 86.278514039666, y: 10.695448244112743 }, - controlPoint1: { x: 87.46804038212304, y: 10.801284114821726 }, - controlPoint2: { x: 88.62420123545994, y: 10.912962711090499 }, - endPoint: { x: 89.74310798164684, y: 11.030484042693681 }, - }, - bottom: { - startPoint: { x: 86.55893327373322, y: 14.85495828972535 }, - controlPoint1: { x: 87.76172799692864, y: 14.951647046811637 }, - controlPoint2: { x: 88.93070100456063, y: 15.053630423783936 }, - endPoint: { x: 90.06189004711952, y: 15.160908430622468 }, - }, - left: { - startPoint: { x: 86.27851403966613, y: 10.695448244112583 }, - controlPoint1: { x: 86.37757638626451, y: 12.028983876127107 }, - controlPoint2: { x: 86.47104946567478, y: 13.417804987042981 }, - endPoint: { x: 86.55893327373556, y: 14.854958289725777 }, - }, - right: { - startPoint: { x: 89.74310798164451, y: 11.030484042693226 }, - controlPoint1: { x: 89.8555168655688, y: 12.354324455479787 }, - controlPoint2: { x: 89.9617775555862, y: 13.73345034716769 }, - endPoint: { x: 90.06189004711949, y: 15.1609084306225 }, - }, - }, - { - top: { - startPoint: { x: 86.55893327373322, y: 14.85495828972535 }, - controlPoint1: { x: 87.76172799692864, y: 14.951647046811637 }, - controlPoint2: { x: 88.93070100456063, y: 15.053630423783936 }, - endPoint: { x: 90.06189004711952, y: 15.160908430622468 }, - }, - bottom: { - startPoint: { x: 87.37838921100611, y: 34.485891251206574 }, - controlPoint1: { x: 88.62810449679094, y: 34.53684444017931 }, - controlPoint2: { x: 89.8417169347967, y: 34.59035172066937 }, - endPoint: { x: 91.01489611811341, y: 34.64641310368461 }, - }, - left: { - startPoint: { x: 86.55893327373332, y: 14.854958289724554 }, - controlPoint1: { x: 87.03872636851966, y: 23.129986984163956 }, - controlPoint2: { x: 87.18576263705795, y: 27.68724839093887 }, - endPoint: { x: 87.3783892110085, y: 34.48589125120762 }, - }, - right: { - startPoint: { x: 90.06189004711715, y: 15.160908430621276 }, - controlPoint1: { x: 90.60686396471338, y: 23.38746102892083 }, - controlPoint2: { x: 90.7858053734364, y: 27.89624633955585 }, - endPoint: { x: 91.0148961181134, y: 34.64641310368476 }, - }, - }, - { - top: { - startPoint: { x: 87.37838921100611, y: 34.485891251206574 }, - controlPoint1: { x: 88.62810449679094, y: 34.53684444017931 }, - controlPoint2: { x: 89.8417169347967, y: 34.59035172066937 }, - endPoint: { x: 91.01489611811341, y: 34.64641310368461 }, - }, - bottom: { - startPoint: { x: 87.60448960257109, y: 46.29352392822713 }, - controlPoint1: { x: 88.87350478688299, y: 46.317035776331664 }, - controlPoint2: { x: 90.10504844408631, y: 46.34145739893233 }, - endPoint: { x: 91.29456927283111, y: 46.36678880765367 }, - }, - left: { - startPoint: { x: 87.37838921100625, y: 34.485891251206105 }, - controlPoint1: { x: 87.48065008385416, y: 38.34837857908967 }, - controlPoint2: { x: 87.55601688104466, y: 42.308719548472396 }, - endPoint: { x: 87.60448960257351, y: 46.29352392822841 }, - }, - right: { - startPoint: { x: 91.01489611811104, y: 34.646413103683244 }, - controlPoint1: { x: 91.13770398624251, y: 38.479814773882886 }, - controlPoint2: { x: 91.23092837115054, y: 42.41107008558166 }, - endPoint: { x: 91.29456927283108, y: 46.36678880765376 }, - }, - }, - { - top: { - startPoint: { x: 87.60448960257109, y: 46.29352392822713 }, - controlPoint1: { x: 88.87350478688299, y: 46.317035776331664 }, - controlPoint2: { x: 90.10504844408631, y: 46.34145739893233 }, - endPoint: { x: 91.29456927283111, y: 46.36678880765367 }, - }, - bottom: { - startPoint: { x: 87.62273591306715, y: 66.08163799159331 }, - controlPoint1: { x: 88.9119646724093, y: 66.05941427158439 }, - controlPoint2: { x: 90.16144077242706, y: 66.03535979770255 }, - endPoint: { x: 91.36624475437047, y: 66.00947458260076 }, - }, - left: { - startPoint: { x: 87.60448960257125, y: 46.293523928226314 }, - controlPoint1: { x: 87.68527747178904, y: 52.93486456115453 }, - controlPoint2: { x: 87.69135957528977, y: 59.64415911179094 }, - endPoint: { x: 87.62273591306956, y: 66.08163799159514 }, - }, - right: { - startPoint: { x: 91.29456927282874, y: 46.36678880765167 }, - controlPoint1: { x: 91.4006374422995, y: 52.95965334444002 }, - controlPoint2: { x: 91.4245292694813, y: 59.62047179893658 }, - endPoint: { x: 91.36624475437044, y: 66.00947458260092 }, - }, - }, - { - top: { - startPoint: { x: 87.62273591306715, y: 66.08163799159331 }, - controlPoint1: { x: 88.9119646724093, y: 66.05941427158439 }, - controlPoint2: { x: 90.16144077242706, y: 66.03535979770255 }, - endPoint: { x: 91.36624475437047, y: 66.00947458260076 }, - }, - bottom: { - startPoint: { x: 87.57259702343954, y: 69.90878929783581 }, - controlPoint1: { x: 88.86407555939678, y: 69.87741846420408 }, - controlPoint2: { x: 90.11534520958665, y: 69.84366877102596 }, - endPoint: { x: 91.32141288377882, y: 69.80754023115941 }, - }, - left: { - startPoint: { x: 87.6227359130673, y: 66.08163799159313 }, - controlPoint1: { x: 87.60901117955883, y: 67.36913381494806 }, - controlPoint2: { x: 87.5922982183195, y: 68.64575688531906 }, - endPoint: { x: 87.57259702344196, y: 69.90878929783763 }, - }, - right: { - startPoint: { x: 91.3662447543681, y: 66.00947458259891 }, - controlPoint1: { x: 91.35458785017487, y: 67.28727518672574 }, - controlPoint2: { x: 91.33964389547782, y: 68.55420303786906 }, - endPoint: { x: 91.32141288377879, y: 69.80754023115944 }, - }, - }, - { - top: { - startPoint: { x: 87.57259702343954, y: 69.90878929783581 }, - controlPoint1: { x: 88.86407555939678, y: 69.87741846420408 }, - controlPoint2: { x: 90.11534520958665, y: 69.84366877102596 }, - endPoint: { x: 91.32141288377882, y: 69.80754023115941 }, - }, - bottom: { - startPoint: { x: 83.41464769857959, y: 106.06008347961728 }, - controlPoint1: { x: 84.60673865306883, y: 105.93724150975845 }, - controlPoint2: { x: 85.7540584573591, y: 105.80653962361562 }, - endPoint: { x: 86.8508777064201, y: 105.6679778361026 }, - }, - left: { - startPoint: { x: 87.57259702343985, y: 69.9087892978343 }, - controlPoint1: { x: 86.86830377553949, y: 80.80968327428009 }, - controlPoint2: { x: 88.69831005388995, y: 98.43690117594248 }, - endPoint: { x: 83.4146476985818, y: 106.06008347962022 }, - }, - right: { - startPoint: { x: 91.3214128837766, y: 69.80754023115612 }, - controlPoint1: { x: 90.58109333774858, y: 80.61148201532217 }, - controlPoint2: { x: 92.6285032705965, y: 98.14174772470481 }, - endPoint: { x: 86.85087770642001, y: 105.66797783610286 }, - }, - }, - { - top: { - startPoint: { x: 85.5333203204533, y: -5.012090149817317 }, - controlPoint1: { x: 89.08969905437233, y: -4.4895994122434 }, - controlPoint2: { x: 98.14041759364702, y: -2.3506738832274943 }, - endPoint: { x: 99.99999999999797, y: 5.0323222442983466e-14 }, - }, - bottom: { - startPoint: { x: 89.74310798164383, y: 11.030484042693267 }, - controlPoint1: { x: 93.95865463344468, y: 11.314409406750386 }, - controlPoint2: { x: 103.85363364435273, y: 13.148247896513647 }, - endPoint: { x: 105.80391965604169, y: 14.262562861523964 }, - }, - left: { - startPoint: { x: 85.53332032045374, y: -5.012090149817762 }, - controlPoint1: { x: 89.35804376836118, y: -5.008276418933541 }, - controlPoint2: { x: 88.95987741918879, y: 5.849910254271835 }, - endPoint: { x: 89.74310798164684, y: 11.03048404269383 }, - }, - right: { - startPoint: { x: 99.99999999999507, y: -5.690676384381097e-13 }, - controlPoint1: { x: 105.45676482232759, y: -0.5895233794453079 }, - controlPoint2: { x: 104.77114448527118, y: 9.675326183431137 }, - endPoint: { x: 105.8039196560416, y: 14.26256286152407 }, - }, - }, - { - top: { - startPoint: { x: 89.74310798164383, y: 11.030484042693267 }, - controlPoint1: { x: 93.95865463344468, y: 11.314409406750386 }, - controlPoint2: { x: 103.85363364435273, y: 13.148247896513647 }, - endPoint: { x: 105.80391965604169, y: 14.262562861523964 }, - }, - bottom: { - startPoint: { x: 90.0618900471165, y: 15.160908430621962 }, - controlPoint1: { x: 94.33000127237776, y: 15.397120719975728 }, - controlPoint2: { x: 104.31456336749646, y: 17.16994180188849 }, - endPoint: { x: 106.20372109013701, y: 18.036984983255348 }, - }, - left: { - startPoint: { x: 89.74310798164451, y: 11.030484042693226 }, - controlPoint1: { x: 89.8555168655688, y: 12.354324455479787 }, - controlPoint2: { x: 89.9617775555862, y: 13.73345034716769 }, - endPoint: { x: 90.06189004711949, y: 15.1609084306225 }, - }, - right: { - startPoint: { x: 105.80391965603887, y: 14.262562861523413 }, - controlPoint1: { x: 105.9461296304583, y: 15.467735852244207 }, - controlPoint2: { x: 106.07939677737657, y: 16.72819432186639 }, - endPoint: { x: 106.20372109013691, y: 18.03698498325535 }, - }, - }, - { - top: { - startPoint: { x: 90.0618900471165, y: 15.160908430621962 }, - controlPoint1: { x: 94.33000127237776, y: 15.397120719975728 }, - controlPoint2: { x: 104.31456336749646, y: 17.16994180188849 }, - endPoint: { x: 106.20372109013701, y: 18.036984983255348 }, - }, - bottom: { - startPoint: { x: 91.01489611811036, y: 34.64641310368368 }, - controlPoint1: { x: 95.44872350516297, y: 34.644060019520666 }, - controlPoint2: { x: 105.78409431582443, y: 36.1117940621809 }, - endPoint: { x: 107.27050388771261, y: 35.74247832533047 }, - }, - left: { - startPoint: { x: 90.06189004711715, y: 15.160908430621276 }, - controlPoint1: { x: 90.60686396471338, y: 23.38746102892083 }, - controlPoint2: { x: 90.7858053734364, y: 27.89624633955585 }, - endPoint: { x: 91.0148961181134, y: 34.64641310368476 }, - }, - right: { - startPoint: { x: 106.20372109013415, y: 18.03698498325413 }, - controlPoint1: { x: 106.889941141105, y: 25.67020047122469 }, - controlPoint2: { x: 107.04375027007822, y: 29.58564867153074 }, - endPoint: { x: 107.27050388771252, y: 35.7424783253306 }, - }, - }, - { - top: { - startPoint: { x: 91.01489611811036, y: 34.64641310368368 }, - controlPoint1: { x: 95.44872350516297, y: 34.644060019520666 }, - controlPoint2: { x: 105.78409431582443, y: 36.1117940621809 }, - endPoint: { x: 107.27050388771261, y: 35.74247832533047 }, - }, - bottom: { - startPoint: { x: 91.29456927282806, y: 46.36678880765247 }, - controlPoint1: { x: 95.78356416182231, y: 46.22129649937941 }, - controlPoint2: { x: 106.28515800667647, y: 47.50597831848806 }, - endPoint: { x: 107.48565649297998, y: 46.394847230707306 }, - }, - left: { - startPoint: { x: 91.01489611811104, y: 34.646413103683244 }, - controlPoint1: { x: 91.13770398624251, y: 38.479814773882886 }, - controlPoint2: { x: 91.23092837115054, y: 42.41107008558166 }, - endPoint: { x: 91.29456927283108, y: 46.36678880765376 }, - }, - right: { - startPoint: { x: 107.27050388770976, y: 35.74247832532912 }, - controlPoint1: { x: 107.38525194385383, y: 39.219877729331344 }, - controlPoint2: { x: 107.45696947894548, y: 42.7951307748328 }, - endPoint: { x: 107.48565649297989, y: 46.3948472307074 }, - }, - }, - { - top: { - startPoint: { x: 91.29456927282806, y: 46.36678880765247 }, - controlPoint1: { x: 95.78356416182231, y: 46.22129649937941 }, - controlPoint2: { x: 106.28515800667647, y: 47.50597831848806 }, - endPoint: { x: 107.48565649297998, y: 46.394847230707306 }, - }, - bottom: { - startPoint: { x: 91.36624475436741, y: 66.00947458259913 }, - controlPoint1: { x: 95.88742086735692, y: 65.62541690080923 }, - controlPoint2: { x: 106.60628848995758, y: 66.6050116806655 }, - endPoint: { x: 107.27050388771262, y: 64.25752167466737 }, - }, - left: { - startPoint: { x: 91.29456927282874, y: 46.36678880765167 }, - controlPoint1: { x: 91.4006374422995, y: 52.95965334444002 }, - controlPoint2: { x: 91.4245292694813, y: 59.62047179893658 }, - endPoint: { x: 91.36624475437044, y: 66.00947458260092 }, - }, - right: { - startPoint: { x: 107.48565649297714, y: 46.39484723070539 }, - controlPoint1: { x: 107.53346818303811, y: 52.394374657164775 }, - controlPoint2: { x: 107.4617506479514, y: 58.46185600133218 }, - endPoint: { x: 107.27050388771252, y: 64.25752167466754 }, - }, - }, - { - top: { - startPoint: { x: 91.36624475436741, y: 66.00947458259913 }, - controlPoint1: { x: 95.88742086735692, y: 65.62541690080923 }, - controlPoint2: { x: 106.60628848995758, y: 66.6050116806655 }, - endPoint: { x: 107.27050388771262, y: 64.25752167466737 }, - }, - bottom: { - startPoint: { x: 91.32141288377578, y: 69.8075402311577 }, - controlPoint1: { x: 95.84006054960993, y: 69.37576947466457 }, - controlPoint2: { x: 106.59341823580534, y: 70.2943468466702 }, - endPoint: { x: 107.14141232389622, y: 67.69958505702866 }, - }, - left: { - startPoint: { x: 91.3662447543681, y: 66.00947458259891 }, - controlPoint1: { x: 91.35458785017487, y: 67.28727518672574 }, - controlPoint2: { x: 91.33964389547782, y: 68.55420303786906 }, - endPoint: { x: 91.32141288377879, y: 69.80754023115944 }, - }, - right: { - startPoint: { x: 107.2705038877098, y: 64.25752167466563 }, - controlPoint1: { x: 107.2322545339582, y: 65.41665485672674 }, - controlPoint2: { x: 107.18922401583724, y: 66.56491528580399 }, - endPoint: { x: 107.14141232389612, y: 67.69958505702871 }, - }, - }, - { - top: { - startPoint: { x: 91.32141288377578, y: 69.8075402311577 }, - controlPoint1: { x: 95.84006054960993, y: 69.37576947466457 }, - controlPoint2: { x: 106.59341823580534, y: 70.2943468466702 }, - endPoint: { x: 107.14141232389622, y: 67.69958505702866 }, - }, - bottom: { - startPoint: { x: 86.85087770641728, y: 105.6679778361001 }, - controlPoint1: { x: 90.7348141625997, y: 104.75907633257333 }, - controlPoint2: { x: 101.22364574664624, y: 105.06747962607383 }, - endPoint: { x: 99.99999999999794, y: 99.9999999999978 }, - }, - left: { - startPoint: { x: 91.3214128837766, y: 69.80754023115612 }, - controlPoint1: { x: 90.58109333774858, y: 80.61148201532217 }, - controlPoint2: { x: 92.6285032705965, y: 98.14174772470481 }, - endPoint: { x: 86.85087770642001, y: 105.66797783610286 }, - }, - right: { - startPoint: { x: 107.14141232389363, y: 67.69958505702562 }, - controlPoint1: { x: 105.8516453258785, y: 77.31685262053347 }, - controlPoint2: { x: 108.61675756986449, y: 93.66044410925804 }, - endPoint: { x: 99.99999999999775, y: 99.9999999999981 }, - }, - }, - ] - }, - }, - config: { - columns: [5, 1, 5, 4, 5, 1, 5, 1, 5], - rows: [5, 1, 5, 3, 5, 1, 10], - }, -} - -export default fixtureVariantColumnsAndRows diff --git a/tests/getCoonsPatch.unit.test.js b/tests/getCoonsPatch.unit.test.js index 1c69eac..893db9b 100644 --- a/tests/getCoonsPatch.unit.test.js +++ b/tests/getCoonsPatch.unit.test.js @@ -1,61 +1,8 @@ +import { beforeAll } from '@jest/globals' +import path from 'path' import getCoonsPatch from '../src/' -import fixture3X3Grid from './fixtures/patch3x3Grid' -import fixtureVariantColumnsAndRows from './fixtures/patchVariantColumnsAndRows' -// ----------------------------------------------------------------------------- -// Const -// ----------------------------------------------------------------------------- - -const boundsValid = { - top: { - startPoint: { x: 0, y: 0 }, - endPoint: { x: 100, y: 0 }, - controlPoint1: { x: 10, y: -10 }, - controlPoint2: { x: 90, y: -10 }, - }, - bottom: { - startPoint: { x: 0, y: 100 }, - endPoint: { x: 100, y: 100 }, - controlPoint1: { x: -10, y: 110 }, - controlPoint2: { x: 110, y: 110 }, - }, - left: { - startPoint: { x: 0, y: 0 }, - endPoint: { x: 0, y: 100 }, - controlPoint1: { x: -10, y: -10 }, - controlPoint2: { x: -10, y: 110 }, - }, - right: { - startPoint: { x: 100, y: 0 }, - endPoint: { x: 100, y: 100 }, - controlPoint1: { x: 110, y: -10 }, - controlPoint2: { x: 110, y: 110 }, - }, -} - -const gridWithNumericColumns = { - columns: 3, - rows: 3, -} - -const variants = [ - { - name: '3x3 grid', - input: { - grid: gridWithNumericColumns, - }, - fixture: fixture3X3Grid, - }, - { - name: 'Variant columns and rows', - input: { - grid: { - columns: [5, 1, 5, 4, 5, 1, 5, 1, 5], - rows: [5, 1, 5, 3, 5, 1, 10], - }, - }, - fixture: fixtureVariantColumnsAndRows, - }, -] +import fixtures, { boundsValid } from './fixtures.js' +import { __dirname, readFileAsync } from './helpers.js' // ----------------------------------------------------------------------------- // Utils @@ -63,6 +10,8 @@ const variants = [ const clone = (value) => JSON.parse(JSON.stringify(value)) +const fixturesFiltered = fixtures.filter(({ skipTest }) => skipTest !== true) + // ----------------------------------------------------------------------------- // Tests // ----------------------------------------------------------------------------- @@ -151,16 +100,25 @@ describe(`getCoonsPatch`, () => { it(`throws if rows are not Array or Int`, () => { expect(() => { getCoonsPatch(boundsValid, { columns: [], rows: {} }) - }).toThrow('grid.rows must be an Array of Ints or Int') + }).toThrow( + 'grid.rows must be an Int, an Array of Ints, or an Array of objects' + ) }) }) }) // Loop through different types of grid - describe.each(variants)( - `For a $name returns correct patch`, - ({ fixture, input }) => { - const patch = getCoonsPatch(boundsValid, input.grid) + describe.each(fixturesFiltered)( + `For '$name' returns correct patch`, + ({ name, input }) => { + const patch = getCoonsPatch(input.bounds, input.grid) + let output + + beforeAll(async () => { + const filePath = path.join(__dirname, `./fixtures/${name}.json`) + const fixureJSON = await readFileAsync(filePath) + output = JSON.parse(fixureJSON) + }) describe('config', () => { const { config } = patch @@ -170,8 +128,8 @@ describe(`getCoonsPatch`, () => { }) it(`with arrays of column and row values`, () => { - expect(config.columns).toEqual(fixture.config.columns) - expect(config.rows).toEqual(fixture.config.rows) + expect(config.columns).toEqual(output.config.columns) + expect(config.rows).toEqual(output.config.rows) }) }) @@ -182,16 +140,16 @@ describe(`getCoonsPatch`, () => { it(`provides bounds for the grid square at the supplied coordinates`, () => { const args = [2, 2] const gridSquareBounds = api.getGridCellBounds(...args) - expect(gridSquareBounds).toEqual( - fixture.api.getGridCellBounds(...args) - ) + console.log('@@', output) + console.log('@@', output.config) + expect(gridSquareBounds).toEqual(output.api.getGridCellBounds) }) }) describe(`getIntersections`, () => { it(`returns all intersections between curves`, () => { const intersectons = api.getIntersections() - expect(intersectons).toEqual(fixture.api.getIntersections()) + expect(intersectons).toEqual(output.api.getIntersections) }) }) @@ -200,21 +158,21 @@ describe(`getCoonsPatch`, () => { const args = [0.5, 0.25] const point = api.getPoint(...args) - expect(point).toEqual(fixture.api.getPoint(...args)) + expect(point).toEqual(output.api.getPoint) }) }) - describe(`getyLines`, () => { + describe(`getLines`, () => { it(`returns curves along x and y axes`, () => { - const curves = api.getyLines() - expect(curves).toEqual(fixture.api.getyLines()) + const curves = api.getLines() + expect(curves).toEqual(output.api.getLines) }) }) describe(`getAllGridCellBounds`, () => { it(`returns grid cell bounds for all cells, ordered left-to-right, top-to-bottom`, () => { const gridCellBounds = api.getAllGridCellBounds() - expect(gridCellBounds).toEqual(fixture.api.getAllGridCellBounds()) + expect(gridCellBounds).toEqual(output.api.getAllGridCellBounds) }) }) }) diff --git a/tests/helpers.js b/tests/helpers.js new file mode 100644 index 0000000..3ecc711 --- /dev/null +++ b/tests/helpers.js @@ -0,0 +1,14 @@ +import { readFile, writeFile } from 'fs' +import { dirname } from 'path' +import { fileURLToPath } from 'url' +import { promisify } from 'util' + +// ----------------------------------------------------------------------------- +// Exports +// ----------------------------------------------------------------------------- + +export const readFileAsync = promisify(readFile) +export const writeFileAsync = promisify(writeFile) + +export const __filename = fileURLToPath(import.meta.url) +export const __dirname = dirname(__filename) diff --git a/tests/snapshotData.js b/tests/snapshotData.js new file mode 100644 index 0000000..3f642d4 --- /dev/null +++ b/tests/snapshotData.js @@ -0,0 +1,82 @@ +import { writeFile } from 'fs' +import path from 'path' +import getCoonsPatch from '../dist/coons-patch.js' +import fixtures from './fixtures.js' +import { __dirname } from './helpers.js' + +console.log('Generating data for fixtures', getCoonsPatch) + +// ----------------------------------------------------------------------------- +// Utils +// ----------------------------------------------------------------------------- + +const print = (o) => console.log(JSON.stringify(o)) + +fixtures.forEach(({ name, input, skip = false }) => { + if (skip) { + console.log(`Skipping snapsot for '${name}'`) + return + } + + console.log('-----------------------------') + console.log('-----------------------------') + console.log(`Data for '${name}'`) + console.log('-----------------------------') + console.log('-----------------------------') + const patch = getCoonsPatch(input.bounds, input.grid) + + console.log('-----------------------------') + console.log('api.getGridCellBounds') + console.log('-----------------------------') + const getGridCellBounds = patch.api.getGridCellBounds(2, 2) + print(getGridCellBounds) + + console.log('-----------------------------') + console.log('api.getIntersections') + console.log('-----------------------------') + const getIntersections = patch.api.getIntersections() + print(getIntersections) + + console.log('-----------------------------') + console.log('api.getPoint') + console.log('-----------------------------') + const getPoint = patch.api.getPoint(0.5, 0.25) + print(getPoint) + + console.log('-----------------------------') + console.log('api.getLines') + console.log('-----------------------------') + const getLines = patch.api.getLines() + print(getLines) + + console.log('-----------------------------') + console.log('api.getAllGridCellBounds') + console.log('-----------------------------') + const getAllGridCellBounds = patch.api.getAllGridCellBounds() + print(getAllGridCellBounds) + + const snapshot = JSON.stringify( + { + config: patch.config, + api: { + getGridCellBounds, + getIntersections, + getPoint, + getLines, + getAllGridCellBounds, + }, + }, + null, + 2 + ) + + const filepath = path.join(__dirname, `./fixtures/${name}.json`) + + writeFile(filepath, snapshot, (err) => { + if (err) { + console.error(`Error writing snapshot`, err) + } else { + console.log(`Wrote snapshot to '${filepath}'`) + } + }) +}) diff --git a/vite.config.js b/vite.config.js index 66e389f..0f9b4f0 100644 --- a/vite.config.js +++ b/vite.config.js @@ -10,6 +10,7 @@ import { defineConfig } from 'vite' export default defineConfig(() => { return { build: { + minify: false, sourcemap: true, lib: { entry: resolve(__dirname, 'src/index.js'),