{
  "type": "File",
  "start": 0,
  "end": 914,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 28,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 914,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 28,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ImportDeclaration",
        "start": 0,
        "end": 53,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 53
          }
        },
        "specifiers": [
          {
            "type": "ImportNamespaceSpecifier",
            "start": 7,
            "end": 26,
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 26
              }
            },
            "local": {
              "type": "Identifier",
              "start": 12,
              "end": 26,
              "loc": {
                "start": {
                  "line": 1,
                  "column": 12
                },
                "end": {
                  "line": 1,
                  "column": 26
                },
                "identifierName": "ConstraintType"
              },
              "name": "ConstraintType"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 32,
          "end": 52,
          "loc": {
            "start": {
              "line": 1,
              "column": 32
            },
            "end": {
              "line": 1,
              "column": 52
            }
          },
          "extra": {
            "rawValue": "../constraint/type",
            "raw": "'../constraint/type'"
          },
          "value": "../constraint/type"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 54,
        "end": 82,
        "loc": {
          "start": {
            "line": 2,
            "column": 0
          },
          "end": {
            "line": 2,
            "column": 28
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 61,
            "end": 66,
            "loc": {
              "start": {
                "line": 2,
                "column": 7
              },
              "end": {
                "line": 2,
                "column": 12
              }
            },
            "local": {
              "type": "Identifier",
              "start": 61,
              "end": 66,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 7
                },
                "end": {
                  "line": 2,
                  "column": 12
                },
                "identifierName": "Point"
              },
              "name": "Point"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 72,
          "end": 81,
          "loc": {
            "start": {
              "line": 2,
              "column": 18
            },
            "end": {
              "line": 2,
              "column": 27
            }
          },
          "extra": {
            "rawValue": "./point",
            "raw": "'./point'"
          },
          "value": "./point"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 83,
        "end": 109,
        "loc": {
          "start": {
            "line": 3,
            "column": 0
          },
          "end": {
            "line": 3,
            "column": 26
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 90,
            "end": 94,
            "loc": {
              "start": {
                "line": 3,
                "column": 7
              },
              "end": {
                "line": 3,
                "column": 11
              }
            },
            "local": {
              "type": "Identifier",
              "start": 90,
              "end": 94,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 7
                },
                "end": {
                  "line": 3,
                  "column": 11
                },
                "identifierName": "Line"
              },
              "name": "Line"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 100,
          "end": 108,
          "loc": {
            "start": {
              "line": 3,
              "column": 17
            },
            "end": {
              "line": 3,
              "column": 25
            }
          },
          "extra": {
            "rawValue": "./line",
            "raw": "'./line'"
          },
          "value": "./line"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 110,
        "end": 134,
        "loc": {
          "start": {
            "line": 4,
            "column": 0
          },
          "end": {
            "line": 4,
            "column": 24
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 117,
            "end": 120,
            "loc": {
              "start": {
                "line": 4,
                "column": 7
              },
              "end": {
                "line": 4,
                "column": 10
              }
            },
            "local": {
              "type": "Identifier",
              "start": 117,
              "end": 120,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 7
                },
                "end": {
                  "line": 4,
                  "column": 10
                },
                "identifierName": "Arc"
              },
              "name": "Arc"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 126,
          "end": 133,
          "loc": {
            "start": {
              "line": 4,
              "column": 16
            },
            "end": {
              "line": 4,
              "column": 23
            }
          },
          "extra": {
            "rawValue": "./arc",
            "raw": "'./arc'"
          },
          "value": "./arc"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 135,
        "end": 165,
        "loc": {
          "start": {
            "line": 5,
            "column": 0
          },
          "end": {
            "line": 5,
            "column": 30
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 142,
            "end": 148,
            "loc": {
              "start": {
                "line": 5,
                "column": 7
              },
              "end": {
                "line": 5,
                "column": 13
              }
            },
            "local": {
              "type": "Identifier",
              "start": 142,
              "end": 148,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 7
                },
                "end": {
                  "line": 5,
                  "column": 13
                },
                "identifierName": "Circle"
              },
              "name": "Circle"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 154,
          "end": 164,
          "loc": {
            "start": {
              "line": 5,
              "column": 19
            },
            "end": {
              "line": 5,
              "column": 29
            }
          },
          "extra": {
            "rawValue": "./circle",
            "raw": "'./circle'"
          },
          "value": "./circle"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 166,
        "end": 196,
        "loc": {
          "start": {
            "line": 6,
            "column": 0
          },
          "end": {
            "line": 6,
            "column": 30
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 173,
            "end": 179,
            "loc": {
              "start": {
                "line": 6,
                "column": 7
              },
              "end": {
                "line": 6,
                "column": 13
              }
            },
            "local": {
              "type": "Identifier",
              "start": 173,
              "end": 179,
              "loc": {
                "start": {
                  "line": 6,
                  "column": 7
                },
                "end": {
                  "line": 6,
                  "column": 13
                },
                "identifierName": "Sketch"
              },
              "name": "Sketch"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 185,
          "end": 195,
          "loc": {
            "start": {
              "line": 6,
              "column": 19
            },
            "end": {
              "line": 6,
              "column": 29
            }
          },
          "extra": {
            "rawValue": "./sketch",
            "raw": "'./sketch'"
          },
          "value": "./sketch"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 197,
        "end": 235,
        "loc": {
          "start": {
            "line": 7,
            "column": 0
          },
          "end": {
            "line": 7,
            "column": 38
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 204,
            "end": 214,
            "loc": {
              "start": {
                "line": 7,
                "column": 7
              },
              "end": {
                "line": 7,
                "column": 17
              }
            },
            "local": {
              "type": "Identifier",
              "start": 204,
              "end": 214,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 7
                },
                "end": {
                  "line": 7,
                  "column": 17
                },
                "identifierName": "Constraint"
              },
              "name": "Constraint"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 220,
          "end": 234,
          "loc": {
            "start": {
              "line": 7,
              "column": 23
            },
            "end": {
              "line": 7,
              "column": 37
            }
          },
          "extra": {
            "rawValue": "./constraint",
            "raw": "'./constraint'"
          },
          "value": "./constraint"
        }
      },
      {
        "type": "ExportDefaultDeclaration",
        "start": 237,
        "end": 780,
        "loc": {
          "start": {
            "line": 9,
            "column": 0
          },
          "end": {
            "line": 24,
            "column": 1
          }
        },
        "declaration": {
          "type": "FunctionDeclaration",
          "start": 252,
          "end": 780,
          "loc": {
            "start": {
              "line": 9,
              "column": 15
            },
            "end": {
              "line": 24,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 261,
            "end": 269,
            "loc": {
              "start": {
                "line": 9,
                "column": 24
              },
              "end": {
                "line": 9,
                "column": 32
              },
              "identifierName": "Graphics"
            },
            "name": "Graphics"
          },
          "generator": false,
          "expression": false,
          "async": false,
          "params": [
            {
              "type": "Identifier",
              "start": 270,
              "end": 274,
              "loc": {
                "start": {
                  "line": 9,
                  "column": 33
                },
                "end": {
                  "line": 9,
                  "column": 37
                },
                "identifierName": "name"
              },
              "name": "name"
            },
            {
              "type": "RestElement",
              "start": 276,
              "end": 283,
              "loc": {
                "start": {
                  "line": 9,
                  "column": 39
                },
                "end": {
                  "line": 9,
                  "column": 46
                }
              },
              "argument": {
                "type": "Identifier",
                "start": 279,
                "end": 283,
                "loc": {
                  "start": {
                    "line": 9,
                    "column": 42
                  },
                  "end": {
                    "line": 9,
                    "column": 46
                  },
                  "identifierName": "args"
                },
                "name": "args"
              }
            }
          ],
          "body": {
            "type": "BlockStatement",
            "start": 285,
            "end": 780,
            "loc": {
              "start": {
                "line": 9,
                "column": 48
              },
              "end": {
                "line": 24,
                "column": 1
              }
            },
            "body": [
              {
                "type": "SwitchStatement",
                "start": 291,
                "end": 630,
                "loc": {
                  "start": {
                    "line": 10,
                    "column": 4
                  },
                  "end": {
                    "line": 21,
                    "column": 5
                  }
                },
                "discriminant": {
                  "type": "Identifier",
                  "start": 299,
                  "end": 303,
                  "loc": {
                    "start": {
                      "line": 10,
                      "column": 12
                    },
                    "end": {
                      "line": 10,
                      "column": 16
                    },
                    "identifierName": "name"
                  },
                  "name": "name"
                },
                "cases": [
                  {
                    "type": "SwitchCase",
                    "start": 315,
                    "end": 370,
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 8
                      },
                      "end": {
                        "line": 12,
                        "column": 38
                      }
                    },
                    "consequent": [
                      {
                        "type": "ReturnStatement",
                        "start": 344,
                        "end": 370,
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 12
                          },
                          "end": {
                            "line": 12,
                            "column": 38
                          }
                        },
                        "argument": {
                          "type": "NewExpression",
                          "start": 351,
                          "end": 369,
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 19
                            },
                            "end": {
                              "line": 12,
                              "column": 37
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 355,
                            "end": 360,
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 23
                              },
                              "end": {
                                "line": 12,
                                "column": 28
                              },
                              "identifierName": "Point"
                            },
                            "name": "Point"
                          },
                          "arguments": [
                            {
                              "type": "SpreadElement",
                              "start": 361,
                              "end": 368,
                              "loc": {
                                "start": {
                                  "line": 12,
                                  "column": 29
                                },
                                "end": {
                                  "line": 12,
                                  "column": 36
                                }
                              },
                              "argument": {
                                "type": "Identifier",
                                "start": 364,
                                "end": 368,
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 36
                                  },
                                  "identifierName": "args"
                                },
                                "name": "args"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "test": {
                      "type": "StringLiteral",
                      "start": 320,
                      "end": 330,
                      "loc": {
                        "start": {
                          "line": 11,
                          "column": 13
                        },
                        "end": {
                          "line": 11,
                          "column": 23
                        }
                      },
                      "extra": {
                        "rawValue": "CC_Point",
                        "raw": "'CC_Point'"
                      },
                      "value": "CC_Point"
                    }
                  },
                  {
                    "type": "SwitchCase",
                    "start": 379,
                    "end": 432,
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 8
                      },
                      "end": {
                        "line": 14,
                        "column": 37
                      }
                    },
                    "consequent": [
                      {
                        "type": "ReturnStatement",
                        "start": 407,
                        "end": 432,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 12
                          },
                          "end": {
                            "line": 14,
                            "column": 37
                          }
                        },
                        "argument": {
                          "type": "NewExpression",
                          "start": 414,
                          "end": 431,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 19
                            },
                            "end": {
                              "line": 14,
                              "column": 36
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 418,
                            "end": 422,
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 23
                              },
                              "end": {
                                "line": 14,
                                "column": 27
                              },
                              "identifierName": "Line"
                            },
                            "name": "Line"
                          },
                          "arguments": [
                            {
                              "type": "SpreadElement",
                              "start": 423,
                              "end": 430,
                              "loc": {
                                "start": {
                                  "line": 14,
                                  "column": 28
                                },
                                "end": {
                                  "line": 14,
                                  "column": 35
                                }
                              },
                              "argument": {
                                "type": "Identifier",
                                "start": 426,
                                "end": 430,
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 35
                                  },
                                  "identifierName": "args"
                                },
                                "name": "args"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "test": {
                      "type": "StringLiteral",
                      "start": 384,
                      "end": 393,
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 13
                        },
                        "end": {
                          "line": 13,
                          "column": 22
                        }
                      },
                      "extra": {
                        "rawValue": "CC_Line",
                        "raw": "'CC_Line'"
                      },
                      "value": "CC_Line"
                    }
                  },
                  {
                    "type": "SwitchCase",
                    "start": 441,
                    "end": 492,
                    "loc": {
                      "start": {
                        "line": 15,
                        "column": 8
                      },
                      "end": {
                        "line": 16,
                        "column": 36
                      }
                    },
                    "consequent": [
                      {
                        "type": "ReturnStatement",
                        "start": 468,
                        "end": 492,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 12
                          },
                          "end": {
                            "line": 16,
                            "column": 36
                          }
                        },
                        "argument": {
                          "type": "NewExpression",
                          "start": 475,
                          "end": 491,
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 19
                            },
                            "end": {
                              "line": 16,
                              "column": 35
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 479,
                            "end": 482,
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 23
                              },
                              "end": {
                                "line": 16,
                                "column": 26
                              },
                              "identifierName": "Arc"
                            },
                            "name": "Arc"
                          },
                          "arguments": [
                            {
                              "type": "SpreadElement",
                              "start": 483,
                              "end": 490,
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 27
                                },
                                "end": {
                                  "line": 16,
                                  "column": 34
                                }
                              },
                              "argument": {
                                "type": "Identifier",
                                "start": 486,
                                "end": 490,
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 34
                                  },
                                  "identifierName": "args"
                                },
                                "name": "args"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "test": {
                      "type": "StringLiteral",
                      "start": 446,
                      "end": 454,
                      "loc": {
                        "start": {
                          "line": 15,
                          "column": 13
                        },
                        "end": {
                          "line": 15,
                          "column": 21
                        }
                      },
                      "extra": {
                        "rawValue": "CC_Arc",
                        "raw": "'CC_Arc'"
                      },
                      "value": "CC_Arc"
                    }
                  },
                  {
                    "type": "SwitchCase",
                    "start": 501,
                    "end": 558,
                    "loc": {
                      "start": {
                        "line": 17,
                        "column": 8
                      },
                      "end": {
                        "line": 18,
                        "column": 39
                      }
                    },
                    "consequent": [
                      {
                        "type": "ReturnStatement",
                        "start": 531,
                        "end": 558,
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 12
                          },
                          "end": {
                            "line": 18,
                            "column": 39
                          }
                        },
                        "argument": {
                          "type": "NewExpression",
                          "start": 538,
                          "end": 557,
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 19
                            },
                            "end": {
                              "line": 18,
                              "column": 38
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 542,
                            "end": 548,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 23
                              },
                              "end": {
                                "line": 18,
                                "column": 29
                              },
                              "identifierName": "Circle"
                            },
                            "name": "Circle"
                          },
                          "arguments": [
                            {
                              "type": "SpreadElement",
                              "start": 549,
                              "end": 556,
                              "loc": {
                                "start": {
                                  "line": 18,
                                  "column": 30
                                },
                                "end": {
                                  "line": 18,
                                  "column": 37
                                }
                              },
                              "argument": {
                                "type": "Identifier",
                                "start": 552,
                                "end": 556,
                                "loc": {
                                  "start": {
                                    "line": 18,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 18,
                                    "column": 37
                                  },
                                  "identifierName": "args"
                                },
                                "name": "args"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "test": {
                      "type": "StringLiteral",
                      "start": 506,
                      "end": 517,
                      "loc": {
                        "start": {
                          "line": 17,
                          "column": 13
                        },
                        "end": {
                          "line": 17,
                          "column": 24
                        }
                      },
                      "extra": {
                        "rawValue": "CC_Circle",
                        "raw": "'CC_Circle'"
                      },
                      "value": "CC_Circle"
                    }
                  },
                  {
                    "type": "SwitchCase",
                    "start": 567,
                    "end": 624,
                    "loc": {
                      "start": {
                        "line": 19,
                        "column": 8
                      },
                      "end": {
                        "line": 20,
                        "column": 39
                      }
                    },
                    "consequent": [
                      {
                        "type": "ReturnStatement",
                        "start": 597,
                        "end": 624,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 12
                          },
                          "end": {
                            "line": 20,
                            "column": 39
                          }
                        },
                        "argument": {
                          "type": "NewExpression",
                          "start": 604,
                          "end": 623,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 19
                            },
                            "end": {
                              "line": 20,
                              "column": 38
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 608,
                            "end": 614,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 23
                              },
                              "end": {
                                "line": 20,
                                "column": 29
                              },
                              "identifierName": "Sketch"
                            },
                            "name": "Sketch"
                          },
                          "arguments": [
                            {
                              "type": "SpreadElement",
                              "start": 615,
                              "end": 622,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 30
                                },
                                "end": {
                                  "line": 20,
                                  "column": 37
                                }
                              },
                              "argument": {
                                "type": "Identifier",
                                "start": 618,
                                "end": 622,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 37
                                  },
                                  "identifierName": "args"
                                },
                                "name": "args"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "test": {
                      "type": "StringLiteral",
                      "start": 572,
                      "end": 583,
                      "loc": {
                        "start": {
                          "line": 19,
                          "column": 13
                        },
                        "end": {
                          "line": 19,
                          "column": 24
                        }
                      },
                      "extra": {
                        "rawValue": "CC_Sketch",
                        "raw": "'CC_Sketch'"
                      },
                      "value": "CC_Sketch"
                    }
                  }
                ]
              },
              {
                "type": "IfStatement",
                "start": 635,
                "end": 778,
                "loc": {
                  "start": {
                    "line": 22,
                    "column": 4
                  },
                  "end": {
                    "line": 23,
                    "column": 110
                  }
                },
                "test": {
                  "type": "CallExpression",
                  "start": 639,
                  "end": 666,
                  "loc": {
                    "start": {
                      "line": 22,
                      "column": 8
                    },
                    "end": {
                      "line": 22,
                      "column": 35
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 639,
                    "end": 652,
                    "loc": {
                      "start": {
                        "line": 22,
                        "column": 8
                      },
                      "end": {
                        "line": 22,
                        "column": 21
                      }
                    },
                    "object": {
                      "type": "Identifier",
                      "start": 639,
                      "end": 643,
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 8
                        },
                        "end": {
                          "line": 22,
                          "column": 12
                        },
                        "identifierName": "name"
                      },
                      "name": "name"
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 644,
                      "end": 652,
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 13
                        },
                        "end": {
                          "line": 22,
                          "column": 21
                        },
                        "identifierName": "endsWith"
                      },
                      "name": "endsWith"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "StringLiteral",
                      "start": 653,
                      "end": 665,
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 22
                        },
                        "end": {
                          "line": 22,
                          "column": 34
                        }
                      },
                      "extra": {
                        "rawValue": "Constraint",
                        "raw": "'Constraint'"
                      },
                      "value": "Constraint"
                    }
                  ]
                },
                "consequent": {
                  "type": "IfStatement",
                  "start": 676,
                  "end": 778,
                  "loc": {
                    "start": {
                      "line": 23,
                      "column": 8
                    },
                    "end": {
                      "line": 23,
                      "column": 110
                    }
                  },
                  "test": {
                    "type": "UnaryExpression",
                    "start": 680,
                    "end": 752,
                    "loc": {
                      "start": {
                        "line": 23,
                        "column": 12
                      },
                      "end": {
                        "line": 23,
                        "column": 84
                      }
                    },
                    "operator": "!",
                    "prefix": true,
                    "argument": {
                      "type": "MemberExpression",
                      "start": 681,
                      "end": 752,
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 13
                        },
                        "end": {
                          "line": 23,
                          "column": 84
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 681,
                        "end": 739,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 13
                          },
                          "end": {
                            "line": 23,
                            "column": 71
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 681,
                          "end": 715,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 13
                            },
                            "end": {
                              "line": 23,
                              "column": 47
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 681,
                            "end": 710,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 13
                              },
                              "end": {
                                "line": 23,
                                "column": 42
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 681,
                              "end": 694,
                              "loc": {
                                "start": {
                                  "line": 23,
                                  "column": 13
                                },
                                "end": {
                                  "line": 23,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 681,
                                "end": 687,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 19
                                  },
                                  "identifierName": "Object"
                                },
                                "name": "Object"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 688,
                                "end": 694,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 26
                                  },
                                  "identifierName": "values"
                                },
                                "name": "values"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 695,
                                "end": 709,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 41
                                  },
                                  "identifierName": "ConstraintType"
                                },
                                "name": "ConstraintType"
                              }
                            ]
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 711,
                            "end": 715,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 43
                              },
                              "end": {
                                "line": 23,
                                "column": 47
                              },
                              "identifierName": "find"
                            },
                            "name": "find"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "ArrowFunctionExpression",
                            "start": 716,
                            "end": 738,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 48
                              },
                              "end": {
                                "line": 23,
                                "column": 70
                              }
                            },
                            "id": null,
                            "generator": false,
                            "expression": true,
                            "async": false,
                            "params": [
                              {
                                "type": "Identifier",
                                "start": 716,
                                "end": 718,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 50
                                  },
                                  "identifierName": "ct"
                                },
                                "name": "ct"
                              }
                            ],
                            "body": {
                              "type": "BinaryExpression",
                              "start": 722,
                              "end": 738,
                              "loc": {
                                "start": {
                                  "line": 23,
                                  "column": 54
                                },
                                "end": {
                                  "line": 23,
                                  "column": 70
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 722,
                                "end": 729,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 54
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 61
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 722,
                                  "end": 724,
                                  "loc": {
                                    "start": {
                                      "line": 23,
                                      "column": 54
                                    },
                                    "end": {
                                      "line": 23,
                                      "column": 56
                                    },
                                    "identifierName": "ct"
                                  },
                                  "name": "ct"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 725,
                                  "end": 729,
                                  "loc": {
                                    "start": {
                                      "line": 23,
                                      "column": 57
                                    },
                                    "end": {
                                      "line": 23,
                                      "column": 61
                                    },
                                    "identifierName": "type"
                                  },
                                  "name": "type"
                                },
                                "computed": false
                              },
                              "operator": "===",
                              "right": {
                                "type": "Identifier",
                                "start": 734,
                                "end": 738,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 66
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 70
                                  },
                                  "identifierName": "name"
                                },
                                "name": "name"
                              }
                            }
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 740,
                        "end": 752,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 72
                          },
                          "end": {
                            "line": 23,
                            "column": 84
                          },
                          "identifierName": "isParametric"
                        },
                        "name": "isParametric"
                      },
                      "computed": false
                    },
                    "extra": {
                      "parenthesizedArgument": false
                    }
                  },
                  "consequent": {
                    "type": "ReturnStatement",
                    "start": 754,
                    "end": 778,
                    "loc": {
                      "start": {
                        "line": 23,
                        "column": 86
                      },
                      "end": {
                        "line": 23,
                        "column": 110
                      }
                    },
                    "argument": {
                      "type": "NewExpression",
                      "start": 761,
                      "end": 777,
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 93
                        },
                        "end": {
                          "line": 23,
                          "column": 109
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 765,
                        "end": 775,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 97
                          },
                          "end": {
                            "line": 23,
                            "column": 107
                          },
                          "identifierName": "Constraint"
                        },
                        "name": "Constraint"
                      },
                      "arguments": []
                    }
                  },
                  "alternate": null
                },
                "alternate": null
              }
            ],
            "directives": [],
            "trailingComments": null
          },
          "trailingComments": [
            {
              "type": "CommentLine",
              "value": " Support hot reloading",
              "start": 782,
              "end": 806,
              "loc": {
                "start": {
                  "line": 26,
                  "column": 0
                },
                "end": {
                  "line": 26,
                  "column": 24
                }
              }
            }
          ],
          "leadingComments": []
        },
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": " Support hot reloading",
            "start": 782,
            "end": 806,
            "loc": {
              "start": {
                "line": 26,
                "column": 0
              },
              "end": {
                "line": 26,
                "column": 24
              }
            }
          }
        ]
      },
      {
        "type": "IfStatement",
        "start": 807,
        "end": 913,
        "loc": {
          "start": {
            "line": 27,
            "column": 0
          },
          "end": {
            "line": 27,
            "column": 106
          }
        },
        "test": {
          "type": "MemberExpression",
          "start": 811,
          "end": 821,
          "loc": {
            "start": {
              "line": 27,
              "column": 4
            },
            "end": {
              "line": 27,
              "column": 14
            }
          },
          "object": {
            "type": "Identifier",
            "start": 811,
            "end": 817,
            "loc": {
              "start": {
                "line": 27,
                "column": 4
              },
              "end": {
                "line": 27,
                "column": 10
              },
              "identifierName": "module"
            },
            "name": "module",
            "leadingComments": null
          },
          "property": {
            "type": "Identifier",
            "start": 818,
            "end": 821,
            "loc": {
              "start": {
                "line": 27,
                "column": 11
              },
              "end": {
                "line": 27,
                "column": 14
              },
              "identifierName": "hot"
            },
            "name": "hot"
          },
          "computed": false,
          "leadingComments": null
        },
        "consequent": {
          "type": "ExpressionStatement",
          "start": 823,
          "end": 913,
          "loc": {
            "start": {
              "line": 27,
              "column": 16
            },
            "end": {
              "line": 27,
              "column": 106
            }
          },
          "expression": {
            "type": "CallExpression",
            "start": 823,
            "end": 912,
            "loc": {
              "start": {
                "line": 27,
                "column": 16
              },
              "end": {
                "line": 27,
                "column": 105
              }
            },
            "callee": {
              "type": "MemberExpression",
              "start": 823,
              "end": 840,
              "loc": {
                "start": {
                  "line": 27,
                  "column": 16
                },
                "end": {
                  "line": 27,
                  "column": 33
                }
              },
              "object": {
                "type": "MemberExpression",
                "start": 823,
                "end": 833,
                "loc": {
                  "start": {
                    "line": 27,
                    "column": 16
                  },
                  "end": {
                    "line": 27,
                    "column": 26
                  }
                },
                "object": {
                  "type": "Identifier",
                  "start": 823,
                  "end": 829,
                  "loc": {
                    "start": {
                      "line": 27,
                      "column": 16
                    },
                    "end": {
                      "line": 27,
                      "column": 22
                    },
                    "identifierName": "module"
                  },
                  "name": "module"
                },
                "property": {
                  "type": "Identifier",
                  "start": 830,
                  "end": 833,
                  "loc": {
                    "start": {
                      "line": 27,
                      "column": 23
                    },
                    "end": {
                      "line": 27,
                      "column": 26
                    },
                    "identifierName": "hot"
                  },
                  "name": "hot"
                },
                "computed": false
              },
              "property": {
                "type": "Identifier",
                "start": 834,
                "end": 840,
                "loc": {
                  "start": {
                    "line": 27,
                    "column": 27
                  },
                  "end": {
                    "line": 27,
                    "column": 33
                  },
                  "identifierName": "accept"
                },
                "name": "accept"
              },
              "computed": false
            },
            "arguments": [
              {
                "type": "ArrayExpression",
                "start": 841,
                "end": 911,
                "loc": {
                  "start": {
                    "line": 27,
                    "column": 34
                  },
                  "end": {
                    "line": 27,
                    "column": 104
                  }
                },
                "elements": [
                  {
                    "type": "StringLiteral",
                    "start": 842,
                    "end": 851,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 35
                      },
                      "end": {
                        "line": 27,
                        "column": 44
                      }
                    },
                    "extra": {
                      "rawValue": "./point",
                      "raw": "'./point'"
                    },
                    "value": "./point"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 853,
                    "end": 861,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 46
                      },
                      "end": {
                        "line": 27,
                        "column": 54
                      }
                    },
                    "extra": {
                      "rawValue": "./line",
                      "raw": "'./line'"
                    },
                    "value": "./line"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 863,
                    "end": 870,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 56
                      },
                      "end": {
                        "line": 27,
                        "column": 63
                      }
                    },
                    "extra": {
                      "rawValue": "./arc",
                      "raw": "'./arc'"
                    },
                    "value": "./arc"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 872,
                    "end": 882,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 65
                      },
                      "end": {
                        "line": 27,
                        "column": 75
                      }
                    },
                    "extra": {
                      "rawValue": "./circle",
                      "raw": "'./circle'"
                    },
                    "value": "./circle"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 884,
                    "end": 894,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 77
                      },
                      "end": {
                        "line": 27,
                        "column": 87
                      }
                    },
                    "extra": {
                      "rawValue": "./sketch",
                      "raw": "'./sketch'"
                    },
                    "value": "./sketch"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 896,
                    "end": 910,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 89
                      },
                      "end": {
                        "line": 27,
                        "column": 103
                      }
                    },
                    "extra": {
                      "rawValue": "./constraint",
                      "raw": "'./constraint'"
                    },
                    "value": "./constraint"
                  }
                ]
              }
            ]
          }
        },
        "alternate": null,
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " Support hot reloading",
            "start": 782,
            "end": 806,
            "loc": {
              "start": {
                "line": 26,
                "column": 0
              },
              "end": {
                "line": 26,
                "column": 24
              }
            }
          }
        ]
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentLine",
      "value": " Support hot reloading",
      "start": 782,
      "end": 806,
      "loc": {
        "start": {
          "line": 26,
          "column": 0
        },
        "end": {
          "line": 26,
          "column": 24
        }
      }
    }
  ],
  "tokens": [
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 0,
      "end": 6,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7,
      "end": 8,
      "loc": {
        "start": {
          "line": 1,
          "column": 7
        },
        "end": {
          "line": 1,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 9,
      "end": 11,
      "loc": {
        "start": {
          "line": 1,
          "column": 9
        },
        "end": {
          "line": 1,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ConstraintType",
      "start": 12,
      "end": 26,
      "loc": {
        "start": {
          "line": 1,
          "column": 12
        },
        "end": {
          "line": 1,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 27,
      "end": 31,
      "loc": {
        "start": {
          "line": 1,
          "column": 27
        },
        "end": {
          "line": 1,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "../constraint/type",
      "start": 32,
      "end": 52,
      "loc": {
        "start": {
          "line": 1,
          "column": 32
        },
        "end": {
          "line": 1,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 52,
      "end": 53,
      "loc": {
        "start": {
          "line": 1,
          "column": 52
        },
        "end": {
          "line": 1,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 54,
      "end": 60,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Point",
      "start": 61,
      "end": 66,
      "loc": {
        "start": {
          "line": 2,
          "column": 7
        },
        "end": {
          "line": 2,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 67,
      "end": 71,
      "loc": {
        "start": {
          "line": 2,
          "column": 13
        },
        "end": {
          "line": 2,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./point",
      "start": 72,
      "end": 81,
      "loc": {
        "start": {
          "line": 2,
          "column": 18
        },
        "end": {
          "line": 2,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 81,
      "end": 82,
      "loc": {
        "start": {
          "line": 2,
          "column": 27
        },
        "end": {
          "line": 2,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 83,
      "end": 89,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Line",
      "start": 90,
      "end": 94,
      "loc": {
        "start": {
          "line": 3,
          "column": 7
        },
        "end": {
          "line": 3,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 95,
      "end": 99,
      "loc": {
        "start": {
          "line": 3,
          "column": 12
        },
        "end": {
          "line": 3,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./line",
      "start": 100,
      "end": 108,
      "loc": {
        "start": {
          "line": 3,
          "column": 17
        },
        "end": {
          "line": 3,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 108,
      "end": 109,
      "loc": {
        "start": {
          "line": 3,
          "column": 25
        },
        "end": {
          "line": 3,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 110,
      "end": 116,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Arc",
      "start": 117,
      "end": 120,
      "loc": {
        "start": {
          "line": 4,
          "column": 7
        },
        "end": {
          "line": 4,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 121,
      "end": 125,
      "loc": {
        "start": {
          "line": 4,
          "column": 11
        },
        "end": {
          "line": 4,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./arc",
      "start": 126,
      "end": 133,
      "loc": {
        "start": {
          "line": 4,
          "column": 16
        },
        "end": {
          "line": 4,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 133,
      "end": 134,
      "loc": {
        "start": {
          "line": 4,
          "column": 23
        },
        "end": {
          "line": 4,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 135,
      "end": 141,
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Circle",
      "start": 142,
      "end": 148,
      "loc": {
        "start": {
          "line": 5,
          "column": 7
        },
        "end": {
          "line": 5,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 149,
      "end": 153,
      "loc": {
        "start": {
          "line": 5,
          "column": 14
        },
        "end": {
          "line": 5,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./circle",
      "start": 154,
      "end": 164,
      "loc": {
        "start": {
          "line": 5,
          "column": 19
        },
        "end": {
          "line": 5,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 164,
      "end": 165,
      "loc": {
        "start": {
          "line": 5,
          "column": 29
        },
        "end": {
          "line": 5,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 166,
      "end": 172,
      "loc": {
        "start": {
          "line": 6,
          "column": 0
        },
        "end": {
          "line": 6,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Sketch",
      "start": 173,
      "end": 179,
      "loc": {
        "start": {
          "line": 6,
          "column": 7
        },
        "end": {
          "line": 6,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 180,
      "end": 184,
      "loc": {
        "start": {
          "line": 6,
          "column": 14
        },
        "end": {
          "line": 6,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./sketch",
      "start": 185,
      "end": 195,
      "loc": {
        "start": {
          "line": 6,
          "column": 19
        },
        "end": {
          "line": 6,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 195,
      "end": 196,
      "loc": {
        "start": {
          "line": 6,
          "column": 29
        },
        "end": {
          "line": 6,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 197,
      "end": 203,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Constraint",
      "start": 204,
      "end": 214,
      "loc": {
        "start": {
          "line": 7,
          "column": 7
        },
        "end": {
          "line": 7,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 215,
      "end": 219,
      "loc": {
        "start": {
          "line": 7,
          "column": 18
        },
        "end": {
          "line": 7,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./constraint",
      "start": 220,
      "end": 234,
      "loc": {
        "start": {
          "line": 7,
          "column": 23
        },
        "end": {
          "line": 7,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 234,
      "end": 235,
      "loc": {
        "start": {
          "line": 7,
          "column": 37
        },
        "end": {
          "line": 7,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 237,
      "end": 243,
      "loc": {
        "start": {
          "line": 9,
          "column": 0
        },
        "end": {
          "line": 9,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "default",
        "keyword": "default",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "default",
      "start": 244,
      "end": 251,
      "loc": {
        "start": {
          "line": 9,
          "column": 7
        },
        "end": {
          "line": 9,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 252,
      "end": 260,
      "loc": {
        "start": {
          "line": 9,
          "column": 15
        },
        "end": {
          "line": 9,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Graphics",
      "start": 261,
      "end": 269,
      "loc": {
        "start": {
          "line": 9,
          "column": 24
        },
        "end": {
          "line": 9,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 269,
      "end": 270,
      "loc": {
        "start": {
          "line": 9,
          "column": 32
        },
        "end": {
          "line": 9,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 270,
      "end": 274,
      "loc": {
        "start": {
          "line": 9,
          "column": 33
        },
        "end": {
          "line": 9,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 274,
      "end": 275,
      "loc": {
        "start": {
          "line": 9,
          "column": 37
        },
        "end": {
          "line": 9,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 276,
      "end": 279,
      "loc": {
        "start": {
          "line": 9,
          "column": 39
        },
        "end": {
          "line": 9,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "args",
      "start": 279,
      "end": 283,
      "loc": {
        "start": {
          "line": 9,
          "column": 42
        },
        "end": {
          "line": 9,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 283,
      "end": 284,
      "loc": {
        "start": {
          "line": 9,
          "column": 46
        },
        "end": {
          "line": 9,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 285,
      "end": 286,
      "loc": {
        "start": {
          "line": 9,
          "column": 48
        },
        "end": {
          "line": 9,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "switch",
        "keyword": "switch",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "switch",
      "start": 291,
      "end": 297,
      "loc": {
        "start": {
          "line": 10,
          "column": 4
        },
        "end": {
          "line": 10,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 298,
      "end": 299,
      "loc": {
        "start": {
          "line": 10,
          "column": 11
        },
        "end": {
          "line": 10,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 299,
      "end": 303,
      "loc": {
        "start": {
          "line": 10,
          "column": 12
        },
        "end": {
          "line": 10,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 303,
      "end": 304,
      "loc": {
        "start": {
          "line": 10,
          "column": 16
        },
        "end": {
          "line": 10,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 305,
      "end": 306,
      "loc": {
        "start": {
          "line": 10,
          "column": 18
        },
        "end": {
          "line": 10,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 315,
      "end": 319,
      "loc": {
        "start": {
          "line": 11,
          "column": 8
        },
        "end": {
          "line": 11,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Point",
      "start": 320,
      "end": 330,
      "loc": {
        "start": {
          "line": 11,
          "column": 13
        },
        "end": {
          "line": 11,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 330,
      "end": 331,
      "loc": {
        "start": {
          "line": 11,
          "column": 23
        },
        "end": {
          "line": 11,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 344,
      "end": 350,
      "loc": {
        "start": {
          "line": 12,
          "column": 12
        },
        "end": {
          "line": 12,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 351,
      "end": 354,
      "loc": {
        "start": {
          "line": 12,
          "column": 19
        },
        "end": {
          "line": 12,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Point",
      "start": 355,
      "end": 360,
      "loc": {
        "start": {
          "line": 12,
          "column": 23
        },
        "end": {
          "line": 12,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 360,
      "end": 361,
      "loc": {
        "start": {
          "line": 12,
          "column": 28
        },
        "end": {
          "line": 12,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 361,
      "end": 364,
      "loc": {
        "start": {
          "line": 12,
          "column": 29
        },
        "end": {
          "line": 12,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "args",
      "start": 364,
      "end": 368,
      "loc": {
        "start": {
          "line": 12,
          "column": 32
        },
        "end": {
          "line": 12,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 368,
      "end": 369,
      "loc": {
        "start": {
          "line": 12,
          "column": 36
        },
        "end": {
          "line": 12,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 369,
      "end": 370,
      "loc": {
        "start": {
          "line": 12,
          "column": 37
        },
        "end": {
          "line": 12,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 379,
      "end": 383,
      "loc": {
        "start": {
          "line": 13,
          "column": 8
        },
        "end": {
          "line": 13,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Line",
      "start": 384,
      "end": 393,
      "loc": {
        "start": {
          "line": 13,
          "column": 13
        },
        "end": {
          "line": 13,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 393,
      "end": 394,
      "loc": {
        "start": {
          "line": 13,
          "column": 22
        },
        "end": {
          "line": 13,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 407,
      "end": 413,
      "loc": {
        "start": {
          "line": 14,
          "column": 12
        },
        "end": {
          "line": 14,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 414,
      "end": 417,
      "loc": {
        "start": {
          "line": 14,
          "column": 19
        },
        "end": {
          "line": 14,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Line",
      "start": 418,
      "end": 422,
      "loc": {
        "start": {
          "line": 14,
          "column": 23
        },
        "end": {
          "line": 14,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 422,
      "end": 423,
      "loc": {
        "start": {
          "line": 14,
          "column": 27
        },
        "end": {
          "line": 14,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 423,
      "end": 426,
      "loc": {
        "start": {
          "line": 14,
          "column": 28
        },
        "end": {
          "line": 14,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "args",
      "start": 426,
      "end": 430,
      "loc": {
        "start": {
          "line": 14,
          "column": 31
        },
        "end": {
          "line": 14,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 430,
      "end": 431,
      "loc": {
        "start": {
          "line": 14,
          "column": 35
        },
        "end": {
          "line": 14,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 431,
      "end": 432,
      "loc": {
        "start": {
          "line": 14,
          "column": 36
        },
        "end": {
          "line": 14,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 441,
      "end": 445,
      "loc": {
        "start": {
          "line": 15,
          "column": 8
        },
        "end": {
          "line": 15,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Arc",
      "start": 446,
      "end": 454,
      "loc": {
        "start": {
          "line": 15,
          "column": 13
        },
        "end": {
          "line": 15,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 454,
      "end": 455,
      "loc": {
        "start": {
          "line": 15,
          "column": 21
        },
        "end": {
          "line": 15,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 468,
      "end": 474,
      "loc": {
        "start": {
          "line": 16,
          "column": 12
        },
        "end": {
          "line": 16,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 475,
      "end": 478,
      "loc": {
        "start": {
          "line": 16,
          "column": 19
        },
        "end": {
          "line": 16,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Arc",
      "start": 479,
      "end": 482,
      "loc": {
        "start": {
          "line": 16,
          "column": 23
        },
        "end": {
          "line": 16,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 482,
      "end": 483,
      "loc": {
        "start": {
          "line": 16,
          "column": 26
        },
        "end": {
          "line": 16,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 483,
      "end": 486,
      "loc": {
        "start": {
          "line": 16,
          "column": 27
        },
        "end": {
          "line": 16,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "args",
      "start": 486,
      "end": 490,
      "loc": {
        "start": {
          "line": 16,
          "column": 30
        },
        "end": {
          "line": 16,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 490,
      "end": 491,
      "loc": {
        "start": {
          "line": 16,
          "column": 34
        },
        "end": {
          "line": 16,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 491,
      "end": 492,
      "loc": {
        "start": {
          "line": 16,
          "column": 35
        },
        "end": {
          "line": 16,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 501,
      "end": 505,
      "loc": {
        "start": {
          "line": 17,
          "column": 8
        },
        "end": {
          "line": 17,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Circle",
      "start": 506,
      "end": 517,
      "loc": {
        "start": {
          "line": 17,
          "column": 13
        },
        "end": {
          "line": 17,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 517,
      "end": 518,
      "loc": {
        "start": {
          "line": 17,
          "column": 24
        },
        "end": {
          "line": 17,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 531,
      "end": 537,
      "loc": {
        "start": {
          "line": 18,
          "column": 12
        },
        "end": {
          "line": 18,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 538,
      "end": 541,
      "loc": {
        "start": {
          "line": 18,
          "column": 19
        },
        "end": {
          "line": 18,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Circle",
      "start": 542,
      "end": 548,
      "loc": {
        "start": {
          "line": 18,
          "column": 23
        },
        "end": {
          "line": 18,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 548,
      "end": 549,
      "loc": {
        "start": {
          "line": 18,
          "column": 29
        },
        "end": {
          "line": 18,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 549,
      "end": 552,
      "loc": {
        "start": {
          "line": 18,
          "column": 30
        },
        "end": {
          "line": 18,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "args",
      "start": 552,
      "end": 556,
      "loc": {
        "start": {
          "line": 18,
          "column": 33
        },
        "end": {
          "line": 18,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 556,
      "end": 557,
      "loc": {
        "start": {
          "line": 18,
          "column": 37
        },
        "end": {
          "line": 18,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 557,
      "end": 558,
      "loc": {
        "start": {
          "line": 18,
          "column": 38
        },
        "end": {
          "line": 18,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 567,
      "end": 571,
      "loc": {
        "start": {
          "line": 19,
          "column": 8
        },
        "end": {
          "line": 19,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Sketch",
      "start": 572,
      "end": 583,
      "loc": {
        "start": {
          "line": 19,
          "column": 13
        },
        "end": {
          "line": 19,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 583,
      "end": 584,
      "loc": {
        "start": {
          "line": 19,
          "column": 24
        },
        "end": {
          "line": 19,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 597,
      "end": 603,
      "loc": {
        "start": {
          "line": 20,
          "column": 12
        },
        "end": {
          "line": 20,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 604,
      "end": 607,
      "loc": {
        "start": {
          "line": 20,
          "column": 19
        },
        "end": {
          "line": 20,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Sketch",
      "start": 608,
      "end": 614,
      "loc": {
        "start": {
          "line": 20,
          "column": 23
        },
        "end": {
          "line": 20,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 614,
      "end": 615,
      "loc": {
        "start": {
          "line": 20,
          "column": 29
        },
        "end": {
          "line": 20,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 615,
      "end": 618,
      "loc": {
        "start": {
          "line": 20,
          "column": 30
        },
        "end": {
          "line": 20,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "args",
      "start": 618,
      "end": 622,
      "loc": {
        "start": {
          "line": 20,
          "column": 33
        },
        "end": {
          "line": 20,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 622,
      "end": 623,
      "loc": {
        "start": {
          "line": 20,
          "column": 37
        },
        "end": {
          "line": 20,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 623,
      "end": 624,
      "loc": {
        "start": {
          "line": 20,
          "column": 38
        },
        "end": {
          "line": 20,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 629,
      "end": 630,
      "loc": {
        "start": {
          "line": 21,
          "column": 4
        },
        "end": {
          "line": 21,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 635,
      "end": 637,
      "loc": {
        "start": {
          "line": 22,
          "column": 4
        },
        "end": {
          "line": 22,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 638,
      "end": 639,
      "loc": {
        "start": {
          "line": 22,
          "column": 7
        },
        "end": {
          "line": 22,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 639,
      "end": 643,
      "loc": {
        "start": {
          "line": 22,
          "column": 8
        },
        "end": {
          "line": 22,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 643,
      "end": 644,
      "loc": {
        "start": {
          "line": 22,
          "column": 12
        },
        "end": {
          "line": 22,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "endsWith",
      "start": 644,
      "end": 652,
      "loc": {
        "start": {
          "line": 22,
          "column": 13
        },
        "end": {
          "line": 22,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 652,
      "end": 653,
      "loc": {
        "start": {
          "line": 22,
          "column": 21
        },
        "end": {
          "line": 22,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Constraint",
      "start": 653,
      "end": 665,
      "loc": {
        "start": {
          "line": 22,
          "column": 22
        },
        "end": {
          "line": 22,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 665,
      "end": 666,
      "loc": {
        "start": {
          "line": 22,
          "column": 34
        },
        "end": {
          "line": 22,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 666,
      "end": 667,
      "loc": {
        "start": {
          "line": 22,
          "column": 35
        },
        "end": {
          "line": 22,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 676,
      "end": 678,
      "loc": {
        "start": {
          "line": 23,
          "column": 8
        },
        "end": {
          "line": 23,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 679,
      "end": 680,
      "loc": {
        "start": {
          "line": 23,
          "column": 11
        },
        "end": {
          "line": 23,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 680,
      "end": 681,
      "loc": {
        "start": {
          "line": 23,
          "column": 12
        },
        "end": {
          "line": 23,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Object",
      "start": 681,
      "end": 687,
      "loc": {
        "start": {
          "line": 23,
          "column": 13
        },
        "end": {
          "line": 23,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 687,
      "end": 688,
      "loc": {
        "start": {
          "line": 23,
          "column": 19
        },
        "end": {
          "line": 23,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "values",
      "start": 688,
      "end": 694,
      "loc": {
        "start": {
          "line": 23,
          "column": 20
        },
        "end": {
          "line": 23,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 694,
      "end": 695,
      "loc": {
        "start": {
          "line": 23,
          "column": 26
        },
        "end": {
          "line": 23,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ConstraintType",
      "start": 695,
      "end": 709,
      "loc": {
        "start": {
          "line": 23,
          "column": 27
        },
        "end": {
          "line": 23,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 709,
      "end": 710,
      "loc": {
        "start": {
          "line": 23,
          "column": 41
        },
        "end": {
          "line": 23,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 710,
      "end": 711,
      "loc": {
        "start": {
          "line": 23,
          "column": 42
        },
        "end": {
          "line": 23,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "find",
      "start": 711,
      "end": 715,
      "loc": {
        "start": {
          "line": 23,
          "column": 43
        },
        "end": {
          "line": 23,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 715,
      "end": 716,
      "loc": {
        "start": {
          "line": 23,
          "column": 47
        },
        "end": {
          "line": 23,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ct",
      "start": 716,
      "end": 718,
      "loc": {
        "start": {
          "line": 23,
          "column": 48
        },
        "end": {
          "line": 23,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 719,
      "end": 721,
      "loc": {
        "start": {
          "line": 23,
          "column": 51
        },
        "end": {
          "line": 23,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ct",
      "start": 722,
      "end": 724,
      "loc": {
        "start": {
          "line": 23,
          "column": 54
        },
        "end": {
          "line": 23,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 724,
      "end": 725,
      "loc": {
        "start": {
          "line": 23,
          "column": 56
        },
        "end": {
          "line": 23,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 725,
      "end": 729,
      "loc": {
        "start": {
          "line": 23,
          "column": 57
        },
        "end": {
          "line": 23,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 730,
      "end": 733,
      "loc": {
        "start": {
          "line": 23,
          "column": 62
        },
        "end": {
          "line": 23,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 734,
      "end": 738,
      "loc": {
        "start": {
          "line": 23,
          "column": 66
        },
        "end": {
          "line": 23,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 738,
      "end": 739,
      "loc": {
        "start": {
          "line": 23,
          "column": 70
        },
        "end": {
          "line": 23,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 739,
      "end": 740,
      "loc": {
        "start": {
          "line": 23,
          "column": 71
        },
        "end": {
          "line": 23,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isParametric",
      "start": 740,
      "end": 752,
      "loc": {
        "start": {
          "line": 23,
          "column": 72
        },
        "end": {
          "line": 23,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 752,
      "end": 753,
      "loc": {
        "start": {
          "line": 23,
          "column": 84
        },
        "end": {
          "line": 23,
          "column": 85
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 754,
      "end": 760,
      "loc": {
        "start": {
          "line": 23,
          "column": 86
        },
        "end": {
          "line": 23,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 761,
      "end": 764,
      "loc": {
        "start": {
          "line": 23,
          "column": 93
        },
        "end": {
          "line": 23,
          "column": 96
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Constraint",
      "start": 765,
      "end": 775,
      "loc": {
        "start": {
          "line": 23,
          "column": 97
        },
        "end": {
          "line": 23,
          "column": 107
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 775,
      "end": 776,
      "loc": {
        "start": {
          "line": 23,
          "column": 107
        },
        "end": {
          "line": 23,
          "column": 108
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 776,
      "end": 777,
      "loc": {
        "start": {
          "line": 23,
          "column": 108
        },
        "end": {
          "line": 23,
          "column": 109
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 777,
      "end": 778,
      "loc": {
        "start": {
          "line": 23,
          "column": 109
        },
        "end": {
          "line": 23,
          "column": 110
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 779,
      "end": 780,
      "loc": {
        "start": {
          "line": 24,
          "column": 0
        },
        "end": {
          "line": 24,
          "column": 1
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Support hot reloading",
      "start": 782,
      "end": 806,
      "loc": {
        "start": {
          "line": 26,
          "column": 0
        },
        "end": {
          "line": 26,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 807,
      "end": 809,
      "loc": {
        "start": {
          "line": 27,
          "column": 0
        },
        "end": {
          "line": 27,
          "column": 2
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 810,
      "end": 811,
      "loc": {
        "start": {
          "line": 27,
          "column": 3
        },
        "end": {
          "line": 27,
          "column": 4
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "module",
      "start": 811,
      "end": 817,
      "loc": {
        "start": {
          "line": 27,
          "column": 4
        },
        "end": {
          "line": 27,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 817,
      "end": 818,
      "loc": {
        "start": {
          "line": 27,
          "column": 10
        },
        "end": {
          "line": 27,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hot",
      "start": 818,
      "end": 821,
      "loc": {
        "start": {
          "line": 27,
          "column": 11
        },
        "end": {
          "line": 27,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 821,
      "end": 822,
      "loc": {
        "start": {
          "line": 27,
          "column": 14
        },
        "end": {
          "line": 27,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "module",
      "start": 823,
      "end": 829,
      "loc": {
        "start": {
          "line": 27,
          "column": 16
        },
        "end": {
          "line": 27,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 829,
      "end": 830,
      "loc": {
        "start": {
          "line": 27,
          "column": 22
        },
        "end": {
          "line": 27,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hot",
      "start": 830,
      "end": 833,
      "loc": {
        "start": {
          "line": 27,
          "column": 23
        },
        "end": {
          "line": 27,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 833,
      "end": 834,
      "loc": {
        "start": {
          "line": 27,
          "column": 26
        },
        "end": {
          "line": 27,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "accept",
      "start": 834,
      "end": 840,
      "loc": {
        "start": {
          "line": 27,
          "column": 27
        },
        "end": {
          "line": 27,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 840,
      "end": 841,
      "loc": {
        "start": {
          "line": 27,
          "column": 33
        },
        "end": {
          "line": 27,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 841,
      "end": 842,
      "loc": {
        "start": {
          "line": 27,
          "column": 34
        },
        "end": {
          "line": 27,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./point",
      "start": 842,
      "end": 851,
      "loc": {
        "start": {
          "line": 27,
          "column": 35
        },
        "end": {
          "line": 27,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 851,
      "end": 852,
      "loc": {
        "start": {
          "line": 27,
          "column": 44
        },
        "end": {
          "line": 27,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./line",
      "start": 853,
      "end": 861,
      "loc": {
        "start": {
          "line": 27,
          "column": 46
        },
        "end": {
          "line": 27,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 861,
      "end": 862,
      "loc": {
        "start": {
          "line": 27,
          "column": 54
        },
        "end": {
          "line": 27,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./arc",
      "start": 863,
      "end": 870,
      "loc": {
        "start": {
          "line": 27,
          "column": 56
        },
        "end": {
          "line": 27,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 870,
      "end": 871,
      "loc": {
        "start": {
          "line": 27,
          "column": 63
        },
        "end": {
          "line": 27,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./circle",
      "start": 872,
      "end": 882,
      "loc": {
        "start": {
          "line": 27,
          "column": 65
        },
        "end": {
          "line": 27,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 882,
      "end": 883,
      "loc": {
        "start": {
          "line": 27,
          "column": 75
        },
        "end": {
          "line": 27,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./sketch",
      "start": 884,
      "end": 894,
      "loc": {
        "start": {
          "line": 27,
          "column": 77
        },
        "end": {
          "line": 27,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 894,
      "end": 895,
      "loc": {
        "start": {
          "line": 27,
          "column": 87
        },
        "end": {
          "line": 27,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./constraint",
      "start": 896,
      "end": 910,
      "loc": {
        "start": {
          "line": 27,
          "column": 89
        },
        "end": {
          "line": 27,
          "column": 103
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 910,
      "end": 911,
      "loc": {
        "start": {
          "line": 27,
          "column": 103
        },
        "end": {
          "line": 27,
          "column": 104
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 911,
      "end": 912,
      "loc": {
        "start": {
          "line": 27,
          "column": 104
        },
        "end": {
          "line": 27,
          "column": 105
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 912,
      "end": 913,
      "loc": {
        "start": {
          "line": 27,
          "column": 105
        },
        "end": {
          "line": 27,
          "column": 106
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 914,
      "end": 914,
      "loc": {
        "start": {
          "line": 28,
          "column": 0
        },
        "end": {
          "line": 28,
          "column": 0
        }
      }
    }
  ]
}