{
  "schemaVersion": 1,
  "browserId": "chrome",
  "executionContext": "dedicated-worker",
  "crossOriginIsolated": true,
  "sharedArrayBuffer": true,
  "status": "pass",
  "solve": {
    "solveStatus": 0,
    "startX": 0,
    "startY": 0,
    "endX": 5,
    "endY": 0,
    "residual": 0
  },
  "verticalSolve": {
    "solveStatus": 0,
    "startX": 0,
    "startY": 0,
    "endX": 0,
    "endY": 5,
    "residual": 0
  },
  "distanceXSolve": {
    "solveStatus": 0,
    "startX": 0,
    "startY": 0,
    "endX": 6,
    "endY": 0,
    "residual": 0
  },
  "distanceYSolve": {
    "solveStatus": 0,
    "startX": 0,
    "startY": 0,
    "endX": 0,
    "endY": 6,
    "residual": 0
  },
  "angleSolve": {
    "solveStatus": 0,
    "startX": 0,
    "startY": 0,
    "endX": 3.5355339059327666,
    "endY": 3.535533905932768,
    "lengthResidual": 4.1744385725905886e-14,
    "residual": 2.220446049250313e-16,
    "targetAngle": 0.7853981633974483
  },
  "circleRadiusSolve": {
    "solveStatus": 0,
    "centerX": 2,
    "centerY": 3,
    "radius": 4,
    "residual": 0
  },
  "circleDiameterSolve": {
    "solveStatus": 0,
    "centerX": 2,
    "centerY": 3,
    "radius": 4,
    "residual": 0
  },
  "equalLinesSolve": {
    "solveStatus": 0,
    "firstStartX": 0,
    "firstStartY": 0,
    "firstEndX": 4,
    "firstEndY": 0,
    "secondStartX": 0,
    "secondStartY": 2,
    "secondEndX": 2.8550078532679066,
    "secondEndY": 4.801594217187551,
    "residual": 1.865174681370263e-14
  },
  "equalCirclesSolve": {
    "solveStatus": 0,
    "firstCenterX": 2,
    "firstCenterY": 3,
    "firstRadius": 4,
    "secondCenterX": 8,
    "secondCenterY": 9,
    "secondRadius": 4,
    "residual": 0
  },
  "tangentCirclesSolve": {
    "solveStatus": 0,
    "firstCenterX": 2,
    "firstCenterY": 3,
    "firstRadius": 4,
    "secondCenterX": 10,
    "secondCenterY": 3,
    "secondRadius": 4.000000000000001,
    "residual": -8.881784197001252e-16
  },
  "pointSymmetrySolve": {
    "solveStatus": 0,
    "firstX": 1,
    "firstY": 2,
    "secondX": 7.000000000002508,
    "secondY": 9.99999999999955,
    "centerX": 4,
    "centerY": 6,
    "residual": 1.2740804112383381e-12
  },
  "pointOnLineSolve": {
    "solveStatus": 0,
    "pointX": 2,
    "pointY": 0,
    "startX": 0,
    "startY": 0,
    "endX": 4,
    "endY": 0,
    "residual": 0
  },
  "pointOnCircleSolve": {
    "solveStatus": 0,
    "pointX": 4,
    "pointY": 6.464101615137755,
    "centerX": 2,
    "centerY": 3,
    "radius": 4,
    "residual": 0
  },
  "pointOnArcSolve": {
    "solveStatus": 0,
    "pointX": 2,
    "pointY": 7,
    "centerX": 2,
    "centerY": 3,
    "radius": 4,
    "startAngle": 0,
    "endAngle": 3.141592653589793,
    "residual": 0
  },
  "pointOnEllipseSolve": {
    "solveStatus": 0,
    "pointX": 2,
    "pointY": 6.000000000037419,
    "centerX": 2,
    "centerY": 3,
    "focusX": 6,
    "focusY": 3,
    "minorRadius": 3,
    "residual": 4.490274818635953e-11
  },
  "pointOnBsplineSolve": {
    "solveStatus": 0,
    "pointX": 2,
    "pointY": 1.500000000000298,
    "pointParameter": 0.5,
    "residualX": 0,
    "residualY": 2.97983859809392e-13
  },
  "bsplineWeightSolve": {
    "solveStatus": 0,
    "weights": [
      1,
      1.5,
      1.25,
      1
    ],
    "helper": {
      "center": {
        "x": 1,
        "y": 2
      },
      "radius": 1.5
    },
    "alignmentResidual": 0,
    "residual": 0
  },
  "parallelSolve": {
    "solveStatus": 0,
    "firstStartX": 0,
    "firstStartY": 0,
    "firstEndX": 4,
    "firstEndY": 0,
    "secondStartX": 0,
    "secondStartY": 2,
    "secondEndX": 5,
    "secondEndY": 2,
    "residual": 0
  },
  "perpendicularSolve": {
    "solveStatus": 0,
    "firstStartX": 0,
    "firstStartY": 0,
    "firstEndX": 4,
    "firstEndY": 0,
    "secondStartX": 0,
    "secondStartY": 2,
    "secondEndX": 0,
    "secondEndY": 7,
    "residual": 0
  },
  "coincidentSolve": {
    "solveStatus": 0,
    "firstEndX": 4,
    "firstEndY": 0,
    "secondStartX": 4,
    "secondStartY": 0,
    "residual": 0
  },
  "coincidentEndpointSolves": [
    {
      "firstPoint": "start",
      "secondPoint": "start",
      "solveStatus": 0,
      "first": {
        "x": 0,
        "y": 0
      },
      "second": {
        "x": 0,
        "y": 0
      },
      "secondLength": 5.000000000000613,
      "residual": 0
    },
    {
      "firstPoint": "start",
      "secondPoint": "end",
      "solveStatus": 0,
      "first": {
        "x": 0,
        "y": 0
      },
      "second": {
        "x": 0,
        "y": 0
      },
      "secondLength": 5,
      "residual": 0
    },
    {
      "firstPoint": "end",
      "secondPoint": "start",
      "solveStatus": 0,
      "first": {
        "x": 4,
        "y": 0
      },
      "second": {
        "x": 4,
        "y": 0
      },
      "secondLength": 5.000000000000001,
      "residual": 0
    },
    {
      "firstPoint": "end",
      "secondPoint": "end",
      "solveStatus": 0,
      "first": {
        "x": 4,
        "y": 0
      },
      "second": {
        "x": 4,
        "y": 0
      },
      "secondLength": 5,
      "residual": 0
    }
  ],
  "coincidentEndpointProviders": [
    {
      "firstPoint": "start",
      "secondPoint": "start",
      "completed": "completed",
      "first": {
        "x": 0,
        "y": 0
      },
      "second": {
        "x": 0,
        "y": 0
      },
      "secondLength": 5.000000000000613
    },
    {
      "firstPoint": "start",
      "secondPoint": "end",
      "completed": "completed",
      "first": {
        "x": 0,
        "y": 0
      },
      "second": {
        "x": 0,
        "y": 0
      },
      "secondLength": 5
    },
    {
      "firstPoint": "end",
      "secondPoint": "start",
      "completed": "completed",
      "first": {
        "x": 4,
        "y": 0
      },
      "second": {
        "x": 4,
        "y": 0
      },
      "secondLength": 5.000000000000001
    },
    {
      "firstPoint": "end",
      "secondPoint": "end",
      "completed": "completed",
      "first": {
        "x": 4,
        "y": 0
      },
      "second": {
        "x": 4,
        "y": 0
      },
      "secondLength": 5
    }
  ],
  "snellsLawSolve": {
    "solveStatus": 0,
    "firstStart": {
      "x": 0,
      "y": 0
    },
    "firstEnd": {
      "x": -4,
      "y": 4
    },
    "secondStart": {
      "x": 0,
      "y": 0
    },
    "secondEnd": {
      "x": 2.3570226039551594,
      "y": 4.409585518440984
    },
    "boundaryStart": {
      "x": -5,
      "y": 0
    },
    "boundaryEnd": {
      "x": 5,
      "y": 0
    },
    "ratio": 1.5,
    "residual": -4.440892098500626e-16
  },
  "snellsLawProvider": {
    "completed": "completed",
    "degreesOfFreedom": 8,
    "residual": 4.440892098500626e-16,
    "first": {
      "start": {
        "x": 0,
        "y": 0
      },
      "end": {
        "x": -4,
        "y": 4
      }
    },
    "second": {
      "start": {
        "x": 0,
        "y": 0
      },
      "end": {
        "x": 2.3570226039551594,
        "y": 4.409585518440984
      }
    },
    "boundary": {
      "start": {
        "x": -5,
        "y": 0
      },
      "end": {
        "x": 5,
        "y": 0
      }
    }
  },
  "ellipseInternalAlignmentSolves": [
    {
      "alignmentType": 1,
      "solveStatus": 0,
      "center": {
        "x": 2,
        "y": 3
      },
      "focus": {
        "x": 5.8756496868425785,
        "y": 3.989615837018092
      },
      "minorRadius": 3,
      "helperStart": {
        "x": 6.844562108553224,
        "y": 4.237019796272614
      },
      "helperEnd": {
        "x": -2.844562108553224,
        "y": 1.7629802037273854
      },
      "helperError": 0,
      "residual": 7.771561172376096e-16
    },
    {
      "alignmentType": 2,
      "solveStatus": 0,
      "center": {
        "x": 2,
        "y": 3
      },
      "focus": {
        "x": 5.8756496868425785,
        "y": 3.989615837018092
      },
      "minorRadius": 3,
      "helperStart": {
        "x": 1.2577881222364313,
        "y": 5.906737265131934
      },
      "helperEnd": {
        "x": 2.7422118777635687,
        "y": 0.09326273486806569
      },
      "helperError": 0,
      "residual": 5.874748045952207e-16
    },
    {
      "alignmentType": 3,
      "solveStatus": 0,
      "center": {
        "x": 2,
        "y": 3
      },
      "focus": {
        "x": 5.8756496868425785,
        "y": 3.989615837018092
      },
      "minorRadius": 3,
      "helperStart": {
        "x": 5.8756496868425785,
        "y": 3.989615837018092
      },
      "helperEnd": {
        "x": 5.8756496868425785,
        "y": 3.989615837018092
      },
      "helperError": 0,
      "residual": 0
    },
    {
      "alignmentType": 4,
      "solveStatus": 0,
      "center": {
        "x": 2,
        "y": 3
      },
      "focus": {
        "x": 5.8756496868425785,
        "y": 3.989615837018092
      },
      "minorRadius": 3,
      "helperStart": {
        "x": -1.875649686842579,
        "y": 2.010384162981908
      },
      "helperEnd": {
        "x": -1.875649686842579,
        "y": 2.010384162981908
      },
      "helperError": 0,
      "residual": 3.1401849173675503e-16
    }
  ],
  "ellipseInternalAlignmentProvider": {
    "completed": "completed",
    "degreesOfFreedom": 5,
    "residual": 7.771561172376096e-16,
    "ellipse": {
      "center": {
        "x": 2,
        "y": 3
      },
      "majorRadius": 5,
      "minorRadius": 3,
      "rotation": 0.25
    }
  },
  "bsplineWeightProvider": {
    "completed": "completed",
    "degreesOfFreedom": 11,
    "residual": 0,
    "bspline": {
      "degree": 3,
      "controlPoints": [
        {
          "x": 0,
          "y": 0
        },
        {
          "x": 1,
          "y": 2
        },
        {
          "x": 3,
          "y": 2
        },
        {
          "x": 4,
          "y": 0
        }
      ],
      "weights": [
        1,
        1.5,
        1.25,
        1
      ],
      "knots": [
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        1
      ],
      "periodic": false
    }
  },
  "pointOnCircleProvider": {
    "completed": "completed",
    "point": {
      "x": 4,
      "y": 6.464101615137755
    }
  },
  "pointOnArcProvider": {
    "completed": "completed",
    "point": {
      "x": 2,
      "y": 7
    },
    "arc": {
      "center": {
        "x": 2,
        "y": 3
      },
      "radius": 4,
      "startAngle": 0,
      "endAngle": 3.141592653589793
    }
  },
  "pointOnEllipseProvider": {
    "completed": "completed",
    "point": {
      "x": 2,
      "y": 6.000000000037419
    },
    "ellipse": {
      "center": {
        "x": 2,
        "y": 3
      },
      "majorRadius": 5,
      "minorRadius": 3,
      "rotation": 0
    }
  },
  "pointOnBsplineProvider": {
    "completed": "completed",
    "point": {
      "x": 2,
      "y": 1.5
    },
    "bspline": {
      "degree": 3,
      "controlPoints": [
        {
          "x": 0,
          "y": 0
        },
        {
          "x": 1,
          "y": 2
        },
        {
          "x": 3,
          "y": 2
        },
        {
          "x": 4,
          "y": 0
        }
      ],
      "weights": [
        1,
        1,
        1,
        1
      ],
      "knots": [
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        1
      ],
      "periodic": false
    }
  },
  "blockProvider": {
    "completed": "completed",
    "degreesOfFreedom": 0,
    "line": {
      "start": {
        "x": 1,
        "y": 2
      },
      "end": {
        "x": 4,
        "y": 6
      }
    }
  },
  "providerLifecycle": {
    "availability": "available",
    "engine": "planegcs-wasm",
    "supportedGeometry": [
      "point",
      "line",
      "circle",
      "arc",
      "ellipse",
      "bspline"
    ],
    "supportedConstraints": [
      "horizontal",
      "vertical",
      "parallel",
      "perpendicular",
      "distance",
      "distanceX",
      "distanceY",
      "angle",
      "radius",
      "diameter",
      "equal",
      "tangent",
      "coincident",
      "symmetric",
      "pointOnObject",
      "snellsLaw",
      "internalAlignment",
      "weight",
      "block"
    ],
    "completed": "completed",
    "verticalCompleted": "completed",
    "verticalEnd": {
      "x": 0,
      "y": 5
    },
    "angleCompleted": "completed",
    "angleEnd": {
      "x": 3.5355339059327666,
      "y": 3.535533905932768
    },
    "circleRadiusCompleted": "completed",
    "circleRadius": {
      "center": {
        "x": 2,
        "y": 3
      },
      "radius": 4
    },
    "circleDiameterCompleted": "completed",
    "circleDiameter": {
      "center": {
        "x": 2,
        "y": 3
      },
      "radius": 4
    },
    "equalLinesCompleted": "completed",
    "equalLinesSecond": {
      "start": {
        "x": 0,
        "y": 2
      },
      "end": {
        "x": 2.8550078532679066,
        "y": 4.801594217187551
      }
    },
    "equalCirclesCompleted": "completed",
    "equalCirclesSecond": {
      "center": {
        "x": 8,
        "y": 9
      },
      "radius": 4
    },
    "tangentCirclesCompleted": "completed",
    "tangentCirclesSecond": {
      "center": {
        "x": 10,
        "y": 3
      },
      "radius": 4.000000000000001
    },
    "pointSymmetryCompleted": "completed",
    "pointSymmetrySecond": {
      "x": 7.000000000002508,
      "y": 9.99999999999955
    },
    "pointOnLineCompleted": "completed",
    "pointOnLinePoint": {
      "x": 2,
      "y": 0
    },
    "parallelCompleted": "completed",
    "parallelEnd": {
      "x": 5,
      "y": 2
    },
    "perpendicularCompleted": "completed",
    "perpendicularEnd": {
      "x": 0,
      "y": 7
    },
    "coincidentCompleted": "completed",
    "coincidentStart": {
      "x": 4,
      "y": 0
    },
    "cancelled": "cancelled",
    "recovered": "completed",
    "stale": "stale",
    "recoveredEnd": {
      "x": 5,
      "y": 0
    }
  }
}
