{
  "type": "Program",
  "body": [
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportNamespaceSpecifier",
          "local": {
            "type": "Identifier",
            "name": "THREE",
            "range": [
              12,
              17
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 12
              },
              "end": {
                "line": 1,
                "column": 17
              }
            }
          },
          "range": [
            7,
            17
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 7
            },
            "end": {
              "line": 1,
              "column": 17
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "three",
        "raw": "'three'",
        "range": [
          23,
          30
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 23
          },
          "end": {
            "line": 1,
            "column": 30
          }
        }
      },
      "range": [
        0,
        31
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 31
        }
      }
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "ClassDeclaration",
        "id": {
          "type": "Identifier",
          "name": "Dimension",
          "range": [
            46,
            55
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 13
            },
            "end": {
              "line": 3,
              "column": 22
            }
          }
        },
        "superClass": {
          "type": "MemberExpression",
          "computed": false,
          "object": {
            "type": "Identifier",
            "name": "THREE",
            "range": [
              64,
              69
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 31
              },
              "end": {
                "line": 3,
                "column": 36
              }
            }
          },
          "property": {
            "type": "Identifier",
            "name": "Object3D",
            "range": [
              70,
              78
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 37
              },
              "end": {
                "line": 3,
                "column": 45
              }
            }
          },
          "range": [
            64,
            78
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 31
            },
            "end": {
              "line": 3,
              "column": 45
            }
          }
        },
        "body": {
          "type": "ClassBody",
          "body": [
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "constructor",
                "range": [
                  85,
                  96
                ],
                "loc": {
                  "start": {
                    "line": 4,
                    "column": 4
                  },
                  "end": {
                    "line": 4,
                    "column": 15
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "Super",
                          "range": [
                            109,
                            114
                          ],
                          "loc": {
                            "start": {
                              "line": 5,
                              "column": 8
                            },
                            "end": {
                              "line": 5,
                              "column": 13
                            }
                          }
                        },
                        "arguments": [],
                        "range": [
                          109,
                          116
                        ],
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 8
                          },
                          "end": {
                            "line": 5,
                            "column": 15
                          }
                        }
                      },
                      "range": [
                        109,
                        117
                      ],
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 8
                        },
                        "end": {
                          "line": 5,
                          "column": 16
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              126,
                              130
                            ],
                            "loc": {
                              "start": {
                                "line": 6,
                                "column": 8
                              },
                              "end": {
                                "line": 6,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "clear",
                            "range": [
                              131,
                              136
                            ],
                            "loc": {
                              "start": {
                                "line": 6,
                                "column": 13
                              },
                              "end": {
                                "line": 6,
                                "column": 18
                              }
                            }
                          },
                          "range": [
                            126,
                            136
                          ],
                          "loc": {
                            "start": {
                              "line": 6,
                              "column": 8
                            },
                            "end": {
                              "line": 6,
                              "column": 18
                            }
                          }
                        },
                        "arguments": [],
                        "range": [
                          126,
                          138
                        ],
                        "loc": {
                          "start": {
                            "line": 6,
                            "column": 8
                          },
                          "end": {
                            "line": 6,
                            "column": 20
                          }
                        }
                      },
                      "range": [
                        126,
                        139
                      ],
                      "loc": {
                        "start": {
                          "line": 6,
                          "column": 8
                        },
                        "end": {
                          "line": 6,
                          "column": 21
                        }
                      }
                    }
                  ],
                  "range": [
                    99,
                    145
                  ],
                  "loc": {
                    "start": {
                      "line": 4,
                      "column": 18
                    },
                    "end": {
                      "line": 7,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  96,
                  145
                ],
                "loc": {
                  "start": {
                    "line": 4,
                    "column": 15
                  },
                  "end": {
                    "line": 7,
                    "column": 5
                  }
                }
              },
              "kind": "constructor",
              "computed": false,
              "range": [
                85,
                145
              ],
              "loc": {
                "start": {
                  "line": 4,
                  "column": 4
                },
                "end": {
                  "line": 7,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "clear",
                "range": [
                  151,
                  156
                ],
                "loc": {
                  "start": {
                    "line": 9,
                    "column": 4
                  },
                  "end": {
                    "line": 9,
                    "column": 9
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "WhileStatement",
                      "test": {
                        "type": "BinaryExpression",
                        "operator": ">",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                176,
                                180
                              ],
                              "loc": {
                                "start": {
                                  "line": 10,
                                  "column": 15
                                },
                                "end": {
                                  "line": 10,
                                  "column": 19
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "children",
                              "range": [
                                181,
                                189
                              ],
                              "loc": {
                                "start": {
                                  "line": 10,
                                  "column": 20
                                },
                                "end": {
                                  "line": 10,
                                  "column": 28
                                }
                              }
                            },
                            "range": [
                              176,
                              189
                            ],
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 15
                              },
                              "end": {
                                "line": 10,
                                "column": 28
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "length",
                            "range": [
                              190,
                              196
                            ],
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 29
                              },
                              "end": {
                                "line": 10,
                                "column": 35
                              }
                            }
                          },
                          "range": [
                            176,
                            196
                          ],
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 15
                            },
                            "end": {
                              "line": 10,
                              "column": 35
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": 0,
                          "raw": "0",
                          "range": [
                            199,
                            200
                          ],
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 38
                            },
                            "end": {
                              "line": 10,
                              "column": 39
                            }
                          }
                        },
                        "range": [
                          176,
                          200
                        ],
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 15
                          },
                          "end": {
                            "line": 10,
                            "column": 39
                          }
                        }
                      },
                      "body": {
                        "type": "ExpressionStatement",
                        "expression": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  214,
                                  218
                                ],
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 16
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "children",
                                "range": [
                                  219,
                                  227
                                ],
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 25
                                  }
                                }
                              },
                              "range": [
                                214,
                                227
                              ],
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 12
                                },
                                "end": {
                                  "line": 11,
                                  "column": 25
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "remove",
                              "range": [
                                228,
                                234
                              ],
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 26
                                },
                                "end": {
                                  "line": 11,
                                  "column": 32
                                }
                              }
                            },
                            "range": [
                              214,
                              234
                            ],
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 12
                              },
                              "end": {
                                "line": 11,
                                "column": 32
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "MemberExpression",
                              "computed": true,
                              "object": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    235,
                                    239
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 37
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "children",
                                  "range": [
                                    240,
                                    248
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 38
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 46
                                    }
                                  }
                                },
                                "range": [
                                  235,
                                  248
                                ],
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 46
                                  }
                                }
                              },
                              "property": {
                                "type": "BinaryExpression",
                                "operator": "-",
                                "left": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        249,
                                        253
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 11,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 11,
                                          "column": 51
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "children",
                                      "range": [
                                        254,
                                        262
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 11,
                                          "column": 52
                                        },
                                        "end": {
                                          "line": 11,
                                          "column": 60
                                        }
                                      }
                                    },
                                    "range": [
                                      249,
                                      262
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 11,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 11,
                                        "column": 60
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "length",
                                    "range": [
                                      263,
                                      269
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 11,
                                        "column": 61
                                      },
                                      "end": {
                                        "line": 11,
                                        "column": 67
                                      }
                                    }
                                  },
                                  "range": [
                                    249,
                                    269
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 47
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 67
                                    }
                                  }
                                },
                                "right": {
                                  "type": "Literal",
                                  "value": 1,
                                  "raw": "1",
                                  "range": [
                                    272,
                                    273
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 70
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 71
                                    }
                                  }
                                },
                                "range": [
                                  249,
                                  273
                                ],
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 47
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 71
                                  }
                                }
                              },
                              "range": [
                                235,
                                274
                              ],
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 33
                                },
                                "end": {
                                  "line": 11,
                                  "column": 72
                                }
                              }
                            }
                          ],
                          "range": [
                            214,
                            275
                          ],
                          "loc": {
                            "start": {
                              "line": 11,
                              "column": 12
                            },
                            "end": {
                              "line": 11,
                              "column": 73
                            }
                          }
                        },
                        "range": [
                          214,
                          276
                        ],
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 12
                          },
                          "end": {
                            "line": 11,
                            "column": 74
                          }
                        }
                      },
                      "range": [
                        169,
                        276
                      ],
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 8
                        },
                        "end": {
                          "line": 11,
                          "column": 74
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              285,
                              289
                            ],
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 8
                              },
                              "end": {
                                "line": 12,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "lines",
                            "range": [
                              290,
                              295
                            ],
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 13
                              },
                              "end": {
                                "line": 12,
                                "column": 18
                              }
                            }
                          },
                          "range": [
                            285,
                            295
                          ],
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 8
                            },
                            "end": {
                              "line": 12,
                              "column": 18
                            }
                          }
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "elements": [],
                          "range": [
                            298,
                            300
                          ],
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 21
                            },
                            "end": {
                              "line": 12,
                              "column": 23
                            }
                          }
                        },
                        "range": [
                          285,
                          300
                        ],
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 8
                          },
                          "end": {
                            "line": 12,
                            "column": 23
                          }
                        }
                      },
                      "range": [
                        285,
                        301
                      ],
                      "loc": {
                        "start": {
                          "line": 12,
                          "column": 8
                        },
                        "end": {
                          "line": 12,
                          "column": 24
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              310,
                              314
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 8
                              },
                              "end": {
                                "line": 13,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "texts",
                            "range": [
                              315,
                              320
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 13
                              },
                              "end": {
                                "line": 13,
                                "column": 18
                              }
                            }
                          },
                          "range": [
                            310,
                            320
                          ],
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 8
                            },
                            "end": {
                              "line": 13,
                              "column": 18
                            }
                          }
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "elements": [],
                          "range": [
                            323,
                            325
                          ],
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 21
                            },
                            "end": {
                              "line": 13,
                              "column": 23
                            }
                          }
                        },
                        "range": [
                          310,
                          325
                        ],
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 8
                          },
                          "end": {
                            "line": 13,
                            "column": 23
                          }
                        }
                      },
                      "range": [
                        310,
                        326
                      ],
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 8
                        },
                        "end": {
                          "line": 13,
                          "column": 24
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              335,
                              339
                            ],
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 8
                              },
                              "end": {
                                "line": 14,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "arrows",
                            "range": [
                              340,
                              346
                            ],
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 13
                              },
                              "end": {
                                "line": 14,
                                "column": 19
                              }
                            }
                          },
                          "range": [
                            335,
                            346
                          ],
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 8
                            },
                            "end": {
                              "line": 14,
                              "column": 19
                            }
                          }
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "elements": [],
                          "range": [
                            349,
                            351
                          ],
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 22
                            },
                            "end": {
                              "line": 14,
                              "column": 24
                            }
                          }
                        },
                        "range": [
                          335,
                          351
                        ],
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 8
                          },
                          "end": {
                            "line": 14,
                            "column": 24
                          }
                        }
                      },
                      "range": [
                        335,
                        352
                      ],
                      "loc": {
                        "start": {
                          "line": 14,
                          "column": 8
                        },
                        "end": {
                          "line": 14,
                          "column": 25
                        }
                      }
                    }
                  ],
                  "range": [
                    159,
                    358
                  ],
                  "loc": {
                    "start": {
                      "line": 9,
                      "column": 12
                    },
                    "end": {
                      "line": 15,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  156,
                  358
                ],
                "loc": {
                  "start": {
                    "line": 9,
                    "column": 9
                  },
                  "end": {
                    "line": 15,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                151,
                358
              ],
              "loc": {
                "start": {
                  "line": 9,
                  "column": 4
                },
                "end": {
                  "line": 15,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "addLine",
                "range": [
                  364,
                  371
                ],
                "loc": {
                  "start": {
                    "line": 17,
                    "column": 4
                  },
                  "end": {
                    "line": 17,
                    "column": 11
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "startPos",
                    "range": [
                      372,
                      380
                    ],
                    "loc": {
                      "start": {
                        "line": 17,
                        "column": 12
                      },
                      "end": {
                        "line": 17,
                        "column": 20
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "endPos",
                    "range": [
                      382,
                      388
                    ],
                    "loc": {
                      "start": {
                        "line": 17,
                        "column": 22
                      },
                      "end": {
                        "line": 17,
                        "column": 28
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "geom",
                            "range": [
                              404,
                              408
                            ],
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 12
                              },
                              "end": {
                                "line": 18,
                                "column": 16
                              }
                            }
                          },
                          "init": {
                            "type": "NewExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "THREE",
                                "range": [
                                  415,
                                  420
                                ],
                                "loc": {
                                  "start": {
                                    "line": 18,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 18,
                                    "column": 28
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "Geometry",
                                "range": [
                                  421,
                                  429
                                ],
                                "loc": {
                                  "start": {
                                    "line": 18,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 18,
                                    "column": 37
                                  }
                                }
                              },
                              "range": [
                                415,
                                429
                              ],
                              "loc": {
                                "start": {
                                  "line": 18,
                                  "column": 23
                                },
                                "end": {
                                  "line": 18,
                                  "column": 37
                                }
                              }
                            },
                            "arguments": [],
                            "range": [
                              411,
                              431
                            ],
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 19
                              },
                              "end": {
                                "line": 18,
                                "column": 39
                              }
                            }
                          },
                          "range": [
                            404,
                            431
                          ],
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 12
                            },
                            "end": {
                              "line": 18,
                              "column": 39
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        400,
                        432
                      ],
                      "loc": {
                        "start": {
                          "line": 18,
                          "column": 8
                        },
                        "end": {
                          "line": 18,
                          "column": 40
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "geom",
                            "range": [
                              441,
                              445
                            ],
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 8
                              },
                              "end": {
                                "line": 19,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "vertices",
                            "range": [
                              446,
                              454
                            ],
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 13
                              },
                              "end": {
                                "line": 19,
                                "column": 21
                              }
                            }
                          },
                          "range": [
                            441,
                            454
                          ],
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 8
                            },
                            "end": {
                              "line": 19,
                              "column": 21
                            }
                          }
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "elements": [
                            {
                              "type": "Identifier",
                              "name": "startPos",
                              "range": [
                                458,
                                466
                              ],
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 25
                                },
                                "end": {
                                  "line": 19,
                                  "column": 33
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "endPos",
                              "range": [
                                468,
                                474
                              ],
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 35
                                },
                                "end": {
                                  "line": 19,
                                  "column": 41
                                }
                              }
                            }
                          ],
                          "range": [
                            457,
                            475
                          ],
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 24
                            },
                            "end": {
                              "line": 19,
                              "column": 42
                            }
                          }
                        },
                        "range": [
                          441,
                          475
                        ],
                        "loc": {
                          "start": {
                            "line": 19,
                            "column": 8
                          },
                          "end": {
                            "line": 19,
                            "column": 42
                          }
                        }
                      },
                      "range": [
                        441,
                        476
                      ],
                      "loc": {
                        "start": {
                          "line": 19,
                          "column": 8
                        },
                        "end": {
                          "line": 19,
                          "column": 43
                        }
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "mat",
                            "range": [
                              489,
                              492
                            ],
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 12
                              },
                              "end": {
                                "line": 20,
                                "column": 15
                              }
                            }
                          },
                          "init": {
                            "type": "NewExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "THREE",
                                "range": [
                                  499,
                                  504
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 27
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "LineBasicMaterial",
                                "range": [
                                  505,
                                  522
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 45
                                  }
                                }
                              },
                              "range": [
                                499,
                                522
                              ],
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 22
                                },
                                "end": {
                                  "line": 20,
                                  "column": 45
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "ObjectExpression",
                                "properties": [
                                  {
                                    "type": "Property",
                                    "key": {
                                      "type": "Identifier",
                                      "name": "color",
                                      "range": [
                                        524,
                                        529
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 52
                                        }
                                      }
                                    },
                                    "value": {
                                      "type": "Literal",
                                      "value": 16729156,
                                      "raw": "0xFF4444",
                                      "range": [
                                        531,
                                        539
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 54
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 62
                                        }
                                      }
                                    },
                                    "kind": "init",
                                    "method": false,
                                    "shorthand": false,
                                    "computed": false,
                                    "range": [
                                      524,
                                      539
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 20,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 20,
                                        "column": 62
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  523,
                                  540
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 46
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 63
                                  }
                                }
                              }
                            ],
                            "range": [
                              495,
                              541
                            ],
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 18
                              },
                              "end": {
                                "line": 20,
                                "column": 64
                              }
                            }
                          },
                          "range": [
                            489,
                            541
                          ],
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 12
                            },
                            "end": {
                              "line": 20,
                              "column": 64
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        485,
                        542
                      ],
                      "loc": {
                        "start": {
                          "line": 20,
                          "column": 8
                        },
                        "end": {
                          "line": 20,
                          "column": 65
                        }
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "line",
                            "range": [
                              555,
                              559
                            ],
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 12
                              },
                              "end": {
                                "line": 21,
                                "column": 16
                              }
                            }
                          },
                          "init": {
                            "type": "NewExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "THREE",
                                "range": [
                                  566,
                                  571
                                ],
                                "loc": {
                                  "start": {
                                    "line": 21,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 21,
                                    "column": 28
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "LineSegments",
                                "range": [
                                  572,
                                  584
                                ],
                                "loc": {
                                  "start": {
                                    "line": 21,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 21,
                                    "column": 41
                                  }
                                }
                              },
                              "range": [
                                566,
                                584
                              ],
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 23
                                },
                                "end": {
                                  "line": 21,
                                  "column": 41
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "name": "geom",
                                "range": [
                                  585,
                                  589
                                ],
                                "loc": {
                                  "start": {
                                    "line": 21,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 21,
                                    "column": 46
                                  }
                                }
                              },
                              {
                                "type": "Identifier",
                                "name": "mat",
                                "range": [
                                  591,
                                  594
                                ],
                                "loc": {
                                  "start": {
                                    "line": 21,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 21,
                                    "column": 51
                                  }
                                }
                              }
                            ],
                            "range": [
                              562,
                              595
                            ],
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 19
                              },
                              "end": {
                                "line": 21,
                                "column": 52
                              }
                            }
                          },
                          "range": [
                            555,
                            595
                          ],
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 12
                            },
                            "end": {
                              "line": 21,
                              "column": 52
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        551,
                        596
                      ],
                      "loc": {
                        "start": {
                          "line": 21,
                          "column": 8
                        },
                        "end": {
                          "line": 21,
                          "column": 53
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                605,
                                609
                              ],
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 8
                                },
                                "end": {
                                  "line": 22,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "lines",
                              "range": [
                                610,
                                615
                              ],
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 13
                                },
                                "end": {
                                  "line": 22,
                                  "column": 18
                                }
                              }
                            },
                            "range": [
                              605,
                              615
                            ],
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 8
                              },
                              "end": {
                                "line": 22,
                                "column": 18
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "push",
                            "range": [
                              616,
                              620
                            ],
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 19
                              },
                              "end": {
                                "line": 22,
                                "column": 23
                              }
                            }
                          },
                          "range": [
                            605,
                            620
                          ],
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 8
                            },
                            "end": {
                              "line": 22,
                              "column": 23
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "line",
                            "range": [
                              621,
                              625
                            ],
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 24
                              },
                              "end": {
                                "line": 22,
                                "column": 28
                              }
                            }
                          }
                        ],
                        "range": [
                          605,
                          626
                        ],
                        "loc": {
                          "start": {
                            "line": 22,
                            "column": 8
                          },
                          "end": {
                            "line": 22,
                            "column": 29
                          }
                        }
                      },
                      "range": [
                        605,
                        627
                      ],
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 8
                        },
                        "end": {
                          "line": 22,
                          "column": 30
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              636,
                              640
                            ],
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 8
                              },
                              "end": {
                                "line": 23,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "add",
                            "range": [
                              641,
                              644
                            ],
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 13
                              },
                              "end": {
                                "line": 23,
                                "column": 16
                              }
                            }
                          },
                          "range": [
                            636,
                            644
                          ],
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 8
                            },
                            "end": {
                              "line": 23,
                              "column": 16
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "line",
                            "range": [
                              645,
                              649
                            ],
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 17
                              },
                              "end": {
                                "line": 23,
                                "column": 21
                              }
                            }
                          }
                        ],
                        "range": [
                          636,
                          650
                        ],
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 8
                          },
                          "end": {
                            "line": 23,
                            "column": 22
                          }
                        }
                      },
                      "range": [
                        636,
                        651
                      ],
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 8
                        },
                        "end": {
                          "line": 23,
                          "column": 23
                        }
                      }
                    }
                  ],
                  "range": [
                    390,
                    657
                  ],
                  "loc": {
                    "start": {
                      "line": 17,
                      "column": 30
                    },
                    "end": {
                      "line": 24,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  371,
                  657
                ],
                "loc": {
                  "start": {
                    "line": 17,
                    "column": 11
                  },
                  "end": {
                    "line": 24,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                364,
                657
              ],
              "loc": {
                "start": {
                  "line": 17,
                  "column": 4
                },
                "end": {
                  "line": 24,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "addText",
                "range": [
                  662,
                  669
                ],
                "loc": {
                  "start": {
                    "line": 25,
                    "column": 4
                  },
                  "end": {
                    "line": 25,
                    "column": 11
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "point",
                    "range": [
                      670,
                      675
                    ],
                    "loc": {
                      "start": {
                        "line": 25,
                        "column": 12
                      },
                      "end": {
                        "line": 25,
                        "column": 17
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "dir",
                    "range": [
                      677,
                      680
                    ],
                    "loc": {
                      "start": {
                        "line": 25,
                        "column": 19
                      },
                      "end": {
                        "line": 25,
                        "column": 22
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "text",
                    "range": [
                      682,
                      686
                    ],
                    "loc": {
                      "start": {
                        "line": 25,
                        "column": 24
                      },
                      "end": {
                        "line": 25,
                        "column": 28
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "UnaryExpression",
                        "operator": "!",
                        "argument": {
                          "type": "Identifier",
                          "name": "text",
                          "range": [
                            703,
                            707
                          ],
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 13
                            },
                            "end": {
                              "line": 26,
                              "column": 17
                            }
                          }
                        },
                        "prefix": true,
                        "range": [
                          702,
                          707
                        ],
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 12
                          },
                          "end": {
                            "line": 26,
                            "column": 17
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "name": "text",
                                "range": [
                                  723,
                                  727
                                ],
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 16
                                  }
                                }
                              },
                              "right": {
                                "type": "BinaryExpression",
                                "operator": "+",
                                "left": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      730,
                                      734
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 27,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 27,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "paramName",
                                    "range": [
                                      735,
                                      744
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 27,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 27,
                                        "column": 33
                                      }
                                    }
                                  },
                                  "range": [
                                    730,
                                    744
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 27,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 27,
                                      "column": 33
                                    }
                                  }
                                },
                                "right": {
                                  "type": "Literal",
                                  "value": ": ",
                                  "raw": "\": \"",
                                  "range": [
                                    747,
                                    751
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 27,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 27,
                                      "column": 40
                                    }
                                  }
                                },
                                "range": [
                                  730,
                                  751
                                ],
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 40
                                  }
                                }
                              },
                              "range": [
                                723,
                                751
                              ],
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 12
                                },
                                "end": {
                                  "line": 27,
                                  "column": 40
                                }
                              }
                            },
                            "range": [
                              723,
                              752
                            ],
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 12
                              },
                              "end": {
                                "line": 27,
                                "column": 41
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "+=",
                              "left": {
                                "type": "Identifier",
                                "name": "text",
                                "range": [
                                  765,
                                  769
                                ],
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 16
                                  }
                                }
                              },
                              "right": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      773,
                                      777
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 28,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 28,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "getParamValue",
                                    "range": [
                                      778,
                                      791
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 28,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 28,
                                        "column": 38
                                      }
                                    }
                                  },
                                  "range": [
                                    773,
                                    791
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 28,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 28,
                                      "column": 38
                                    }
                                  }
                                },
                                "arguments": [],
                                "range": [
                                  773,
                                  793
                                ],
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 40
                                  }
                                }
                              },
                              "range": [
                                765,
                                793
                              ],
                              "loc": {
                                "start": {
                                  "line": 28,
                                  "column": 12
                                },
                                "end": {
                                  "line": 28,
                                  "column": 40
                                }
                              }
                            },
                            "range": [
                              765,
                              794
                            ],
                            "loc": {
                              "start": {
                                "line": 28,
                                "column": 12
                              },
                              "end": {
                                "line": 28,
                                "column": 41
                              }
                            }
                          }
                        ],
                        "range": [
                          709,
                          804
                        ],
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 19
                          },
                          "end": {
                            "line": 29,
                            "column": 9
                          }
                        }
                      },
                      "alternate": null,
                      "range": [
                        698,
                        804
                      ],
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 8
                        },
                        "end": {
                          "line": 29,
                          "column": 9
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "Line",
                          "value": "TODO:",
                          "range": [
                            813,
                            820
                          ],
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 8
                            },
                            "end": {
                              "line": 30,
                              "column": 15
                            }
                          }
                        }
                      ]
                    }
                  ],
                  "range": [
                    688,
                    826
                  ],
                  "loc": {
                    "start": {
                      "line": 25,
                      "column": 30
                    },
                    "end": {
                      "line": 31,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  669,
                  826
                ],
                "loc": {
                  "start": {
                    "line": 25,
                    "column": 11
                  },
                  "end": {
                    "line": 31,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                662,
                826
              ],
              "loc": {
                "start": {
                  "line": 25,
                  "column": 4
                },
                "end": {
                  "line": 31,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "addArrow",
                "range": [
                  831,
                  839
                ],
                "loc": {
                  "start": {
                    "line": 32,
                    "column": 4
                  },
                  "end": {
                    "line": 32,
                    "column": 12
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "point",
                    "range": [
                      840,
                      845
                    ],
                    "loc": {
                      "start": {
                        "line": 32,
                        "column": 13
                      },
                      "end": {
                        "line": 32,
                        "column": 18
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "dir",
                    "range": [
                      847,
                      850
                    ],
                    "loc": {
                      "start": {
                        "line": 32,
                        "column": 20
                      },
                      "end": {
                        "line": 32,
                        "column": 23
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [],
                  "range": [
                    852,
                    874
                  ],
                  "loc": {
                    "start": {
                      "line": 32,
                      "column": 25
                    },
                    "end": {
                      "line": 34,
                      "column": 5
                    }
                  },
                  "trailingComments": [
                    {
                      "type": "Line",
                      "value": "TODO",
                      "range": [
                        862,
                        868
                      ],
                      "loc": {
                        "start": {
                          "line": 33,
                          "column": 8
                        },
                        "end": {
                          "line": 33,
                          "column": 14
                        }
                      }
                    }
                  ]
                },
                "generator": false,
                "expression": false,
                "range": [
                  839,
                  874
                ],
                "loc": {
                  "start": {
                    "line": 32,
                    "column": 12
                  },
                  "end": {
                    "line": 34,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                831,
                874
              ],
              "loc": {
                "start": {
                  "line": 32,
                  "column": 4
                },
                "end": {
                  "line": 34,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Line",
                  "value": "TODO:",
                  "range": [
                    813,
                    820
                  ],
                  "loc": {
                    "start": {
                      "line": 30,
                      "column": 8
                    },
                    "end": {
                      "line": 30,
                      "column": 15
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "update",
                "range": [
                  880,
                  886
                ],
                "loc": {
                  "start": {
                    "line": 36,
                    "column": 4
                  },
                  "end": {
                    "line": 36,
                    "column": 10
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "ccData",
                    "range": [
                      887,
                      893
                    ],
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 11
                      },
                      "end": {
                        "line": 36,
                        "column": 17
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              905,
                              909
                            ],
                            "loc": {
                              "start": {
                                "line": 37,
                                "column": 8
                              },
                              "end": {
                                "line": 37,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "paramName",
                            "range": [
                              910,
                              919
                            ],
                            "loc": {
                              "start": {
                                "line": 37,
                                "column": 13
                              },
                              "end": {
                                "line": 37,
                                "column": 22
                              }
                            }
                          },
                          "range": [
                            905,
                            919
                          ],
                          "loc": {
                            "start": {
                              "line": 37,
                              "column": 8
                            },
                            "end": {
                              "line": 37,
                              "column": 22
                            }
                          }
                        },
                        "right": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "ccData",
                            "range": [
                              922,
                              928
                            ],
                            "loc": {
                              "start": {
                                "line": 37,
                                "column": 25
                              },
                              "end": {
                                "line": 37,
                                "column": 31
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "paramName",
                            "range": [
                              929,
                              938
                            ],
                            "loc": {
                              "start": {
                                "line": 37,
                                "column": 32
                              },
                              "end": {
                                "line": 37,
                                "column": 41
                              }
                            }
                          },
                          "range": [
                            922,
                            938
                          ],
                          "loc": {
                            "start": {
                              "line": 37,
                              "column": 25
                            },
                            "end": {
                              "line": 37,
                              "column": 41
                            }
                          }
                        },
                        "range": [
                          905,
                          938
                        ],
                        "loc": {
                          "start": {
                            "line": 37,
                            "column": 8
                          },
                          "end": {
                            "line": 37,
                            "column": 41
                          }
                        }
                      },
                      "range": [
                        905,
                        939
                      ],
                      "loc": {
                        "start": {
                          "line": 37,
                          "column": 8
                        },
                        "end": {
                          "line": 37,
                          "column": 42
                        }
                      }
                    }
                  ],
                  "range": [
                    895,
                    945
                  ],
                  "loc": {
                    "start": {
                      "line": 36,
                      "column": 19
                    },
                    "end": {
                      "line": 38,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  886,
                  945
                ],
                "loc": {
                  "start": {
                    "line": 36,
                    "column": 10
                  },
                  "end": {
                    "line": 38,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                880,
                945
              ],
              "loc": {
                "start": {
                  "line": 36,
                  "column": 4
                },
                "end": {
                  "line": 38,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Line",
                  "value": "TODO",
                  "range": [
                    862,
                    868
                  ],
                  "loc": {
                    "start": {
                      "line": 33,
                      "column": 8
                    },
                    "end": {
                      "line": 33,
                      "column": 14
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "getParamValue",
                "range": [
                  950,
                  963
                ],
                "loc": {
                  "start": {
                    "line": 39,
                    "column": 4
                  },
                  "end": {
                    "line": 39,
                    "column": 17
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Literal",
                        "value": 0,
                        "raw": "0.0",
                        "range": [
                          983,
                          986
                        ],
                        "loc": {
                          "start": {
                            "line": 40,
                            "column": 15
                          },
                          "end": {
                            "line": 40,
                            "column": 18
                          }
                        }
                      },
                      "range": [
                        976,
                        987
                      ],
                      "loc": {
                        "start": {
                          "line": 40,
                          "column": 8
                        },
                        "end": {
                          "line": 40,
                          "column": 19
                        }
                      }
                    }
                  ],
                  "range": [
                    966,
                    993
                  ],
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 20
                    },
                    "end": {
                      "line": 41,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  963,
                  993
                ],
                "loc": {
                  "start": {
                    "line": 39,
                    "column": 17
                  },
                  "end": {
                    "line": 41,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                950,
                993
              ],
              "loc": {
                "start": {
                  "line": 39,
                  "column": 4
                },
                "end": {
                  "line": 41,
                  "column": 5
                }
              },
              "static": false
            }
          ],
          "range": [
            79,
            996
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 46
            },
            "end": {
              "line": 43,
              "column": 1
            }
          }
        },
        "range": [
          40,
          996
        ],
        "loc": {
          "start": {
            "line": 3,
            "column": 7
          },
          "end": {
            "line": 43,
            "column": 1
          }
        },
        "leadingComments": [],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "range": [
        33,
        996
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 43,
          "column": 1
        }
      }
    },
    {
      "type": "ClassDeclaration",
      "id": {
        "type": "Identifier",
        "name": "LinearDimension",
        "range": [
          1004,
          1019
        ],
        "loc": {
          "start": {
            "line": 45,
            "column": 6
          },
          "end": {
            "line": 45,
            "column": 21
          }
        }
      },
      "superClass": {
        "type": "Identifier",
        "name": "Dimension",
        "range": [
          1028,
          1037
        ],
        "loc": {
          "start": {
            "line": 45,
            "column": 30
          },
          "end": {
            "line": 45,
            "column": 39
          }
        }
      },
      "body": {
        "type": "ClassBody",
        "body": [
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "constructor",
              "range": [
                1044,
                1055
              ],
              "loc": {
                "start": {
                  "line": 46,
                  "column": 4
                },
                "end": {
                  "line": 46,
                  "column": 15
                }
              }
            },
            "value": {
              "type": "FunctionExpression",
              "id": null,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "Super",
                        "range": [
                          1068,
                          1073
                        ],
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 8
                          },
                          "end": {
                            "line": 47,
                            "column": 13
                          }
                        }
                      },
                      "arguments": [],
                      "range": [
                        1068,
                        1075
                      ],
                      "loc": {
                        "start": {
                          "line": 47,
                          "column": 8
                        },
                        "end": {
                          "line": 47,
                          "column": 15
                        }
                      }
                    },
                    "range": [
                      1068,
                      1076
                    ],
                    "loc": {
                      "start": {
                        "line": 47,
                        "column": 8
                      },
                      "end": {
                        "line": 47,
                        "column": 16
                      }
                    }
                  }
                ],
                "range": [
                  1058,
                  1082
                ],
                "loc": {
                  "start": {
                    "line": 46,
                    "column": 18
                  },
                  "end": {
                    "line": 48,
                    "column": 5
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                1055,
                1082
              ],
              "loc": {
                "start": {
                  "line": 46,
                  "column": 15
                },
                "end": {
                  "line": 48,
                  "column": 5
                }
              }
            },
            "kind": "constructor",
            "computed": false,
            "range": [
              1044,
              1082
            ],
            "loc": {
              "start": {
                "line": 46,
                "column": 4
              },
              "end": {
                "line": 48,
                "column": 5
              }
            },
            "static": false
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "getParamValue",
              "range": [
                1088,
                1101
              ],
              "loc": {
                "start": {
                  "line": 50,
                  "column": 4
                },
                "end": {
                  "line": 50,
                  "column": 17
                }
              }
            },
            "value": {
              "type": "FunctionExpression",
              "id": null,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1121,
                              1125
                            ],
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 15
                              },
                              "end": {
                                "line": 51,
                                "column": 19
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "startFootPos",
                            "range": [
                              1126,
                              1138
                            ],
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 20
                              },
                              "end": {
                                "line": 51,
                                "column": 32
                              }
                            }
                          },
                          "range": [
                            1121,
                            1138
                          ],
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 15
                            },
                            "end": {
                              "line": 51,
                              "column": 32
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "distanceTo",
                          "range": [
                            1139,
                            1149
                          ],
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 33
                            },
                            "end": {
                              "line": 51,
                              "column": 43
                            }
                          }
                        },
                        "range": [
                          1121,
                          1149
                        ],
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 15
                          },
                          "end": {
                            "line": 51,
                            "column": 43
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1150,
                              1154
                            ],
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 44
                              },
                              "end": {
                                "line": 51,
                                "column": 48
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "endFootPos",
                            "range": [
                              1155,
                              1165
                            ],
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 49
                              },
                              "end": {
                                "line": 51,
                                "column": 59
                              }
                            }
                          },
                          "range": [
                            1150,
                            1165
                          ],
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 44
                            },
                            "end": {
                              "line": 51,
                              "column": 59
                            }
                          }
                        }
                      ],
                      "range": [
                        1121,
                        1166
                      ],
                      "loc": {
                        "start": {
                          "line": 51,
                          "column": 15
                        },
                        "end": {
                          "line": 51,
                          "column": 60
                        }
                      }
                    },
                    "range": [
                      1114,
                      1167
                    ],
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 8
                      },
                      "end": {
                        "line": 51,
                        "column": 61
                      }
                    }
                  }
                ],
                "range": [
                  1104,
                  1173
                ],
                "loc": {
                  "start": {
                    "line": 50,
                    "column": 20
                  },
                  "end": {
                    "line": 52,
                    "column": 5
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                1101,
                1173
              ],
              "loc": {
                "start": {
                  "line": 50,
                  "column": 17
                },
                "end": {
                  "line": 52,
                  "column": 5
                }
              }
            },
            "kind": "method",
            "computed": false,
            "range": [
              1088,
              1173
            ],
            "loc": {
              "start": {
                "line": 50,
                "column": 4
              },
              "end": {
                "line": 52,
                "column": 5
              }
            },
            "static": false
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "update",
              "range": [
                1178,
                1184
              ],
              "loc": {
                "start": {
                  "line": 53,
                  "column": 4
                },
                "end": {
                  "line": 53,
                  "column": 10
                }
              }
            },
            "value": {
              "type": "FunctionExpression",
              "id": null,
              "params": [
                {
                  "type": "Identifier",
                  "name": "ccData",
                  "range": [
                    1185,
                    1191
                  ],
                  "loc": {
                    "start": {
                      "line": 53,
                      "column": 11
                    },
                    "end": {
                      "line": 53,
                      "column": 17
                    }
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "Super",
                          "range": [
                            1203,
                            1208
                          ],
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 8
                            },
                            "end": {
                              "line": 54,
                              "column": 13
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "update",
                          "range": [
                            1209,
                            1215
                          ],
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 14
                            },
                            "end": {
                              "line": 54,
                              "column": 20
                            }
                          }
                        },
                        "range": [
                          1203,
                          1215
                        ],
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 8
                          },
                          "end": {
                            "line": 54,
                            "column": 20
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "name": "ccData",
                          "range": [
                            1216,
                            1222
                          ],
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 21
                            },
                            "end": {
                              "line": 54,
                              "column": 27
                            }
                          }
                        }
                      ],
                      "range": [
                        1203,
                        1223
                      ],
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 8
                        },
                        "end": {
                          "line": 54,
                          "column": 28
                        }
                      }
                    },
                    "range": [
                      1203,
                      1224
                    ],
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 8
                      },
                      "end": {
                        "line": 54,
                        "column": 29
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1234,
                            1238
                          ],
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 8
                            },
                            "end": {
                              "line": 56,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "startPos",
                          "range": [
                            1239,
                            1247
                          ],
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 13
                            },
                            "end": {
                              "line": 56,
                              "column": 21
                            }
                          }
                        },
                        "range": [
                          1234,
                          1247
                        ],
                        "loc": {
                          "start": {
                            "line": 56,
                            "column": 8
                          },
                          "end": {
                            "line": 56,
                            "column": 21
                          }
                        }
                      },
                      "right": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "Identifier",
                          "name": "ccData",
                          "range": [
                            1250,
                            1256
                          ],
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 24
                            },
                            "end": {
                              "line": 56,
                              "column": 30
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "startPt",
                          "range": [
                            1257,
                            1264
                          ],
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 31
                            },
                            "end": {
                              "line": 56,
                              "column": 38
                            }
                          }
                        },
                        "range": [
                          1250,
                          1264
                        ],
                        "loc": {
                          "start": {
                            "line": 56,
                            "column": 24
                          },
                          "end": {
                            "line": 56,
                            "column": 38
                          }
                        }
                      },
                      "range": [
                        1234,
                        1264
                      ],
                      "loc": {
                        "start": {
                          "line": 56,
                          "column": 8
                        },
                        "end": {
                          "line": 56,
                          "column": 38
                        }
                      }
                    },
                    "range": [
                      1234,
                      1265
                    ],
                    "loc": {
                      "start": {
                        "line": 56,
                        "column": 8
                      },
                      "end": {
                        "line": 56,
                        "column": 39
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1274,
                            1278
                          ],
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 8
                            },
                            "end": {
                              "line": 57,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "endPos",
                          "range": [
                            1279,
                            1285
                          ],
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 13
                            },
                            "end": {
                              "line": 57,
                              "column": 19
                            }
                          }
                        },
                        "range": [
                          1274,
                          1285
                        ],
                        "loc": {
                          "start": {
                            "line": 57,
                            "column": 8
                          },
                          "end": {
                            "line": 57,
                            "column": 19
                          }
                        }
                      },
                      "right": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "Identifier",
                          "name": "ccData",
                          "range": [
                            1288,
                            1294
                          ],
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 22
                            },
                            "end": {
                              "line": 57,
                              "column": 28
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "endPt",
                          "range": [
                            1295,
                            1300
                          ],
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 29
                            },
                            "end": {
                              "line": 57,
                              "column": 34
                            }
                          }
                        },
                        "range": [
                          1288,
                          1300
                        ],
                        "loc": {
                          "start": {
                            "line": 57,
                            "column": 22
                          },
                          "end": {
                            "line": 57,
                            "column": 34
                          }
                        }
                      },
                      "range": [
                        1274,
                        1300
                      ],
                      "loc": {
                        "start": {
                          "line": 57,
                          "column": 8
                        },
                        "end": {
                          "line": 57,
                          "column": 34
                        }
                      }
                    },
                    "range": [
                      1274,
                      1301
                    ],
                    "loc": {
                      "start": {
                        "line": 57,
                        "column": 8
                      },
                      "end": {
                        "line": 57,
                        "column": 35
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1310,
                            1314
                          ],
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 8
                            },
                            "end": {
                              "line": 58,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "textPos",
                          "range": [
                            1315,
                            1322
                          ],
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 13
                            },
                            "end": {
                              "line": 58,
                              "column": 20
                            }
                          }
                        },
                        "range": [
                          1310,
                          1322
                        ],
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 8
                          },
                          "end": {
                            "line": 58,
                            "column": 20
                          }
                        }
                      },
                      "right": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "Identifier",
                          "name": "ccData",
                          "range": [
                            1325,
                            1331
                          ],
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 23
                            },
                            "end": {
                              "line": 58,
                              "column": 29
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "dimPt",
                          "range": [
                            1332,
                            1337
                          ],
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 30
                            },
                            "end": {
                              "line": 58,
                              "column": 35
                            }
                          }
                        },
                        "range": [
                          1325,
                          1337
                        ],
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 23
                          },
                          "end": {
                            "line": 58,
                            "column": 35
                          }
                        }
                      },
                      "range": [
                        1310,
                        1337
                      ],
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 8
                        },
                        "end": {
                          "line": 58,
                          "column": 35
                        }
                      }
                    },
                    "range": [
                      1310,
                      1338
                    ],
                    "loc": {
                      "start": {
                        "line": 58,
                        "column": 8
                      },
                      "end": {
                        "line": 58,
                        "column": 36
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1347,
                            1351
                          ],
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 8
                            },
                            "end": {
                              "line": 59,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "angle",
                          "range": [
                            1352,
                            1357
                          ],
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 13
                            },
                            "end": {
                              "line": 59,
                              "column": 18
                            }
                          }
                        },
                        "range": [
                          1347,
                          1357
                        ],
                        "loc": {
                          "start": {
                            "line": 59,
                            "column": 8
                          },
                          "end": {
                            "line": 59,
                            "column": 18
                          }
                        }
                      },
                      "right": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "Identifier",
                          "name": "ccData",
                          "range": [
                            1360,
                            1366
                          ],
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 21
                            },
                            "end": {
                              "line": 59,
                              "column": 27
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "angle",
                          "range": [
                            1367,
                            1372
                          ],
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 28
                            },
                            "end": {
                              "line": 59,
                              "column": 33
                            }
                          }
                        },
                        "range": [
                          1360,
                          1372
                        ],
                        "loc": {
                          "start": {
                            "line": 59,
                            "column": 21
                          },
                          "end": {
                            "line": 59,
                            "column": 33
                          }
                        }
                      },
                      "range": [
                        1347,
                        1372
                      ],
                      "loc": {
                        "start": {
                          "line": 59,
                          "column": 8
                        },
                        "end": {
                          "line": 59,
                          "column": 33
                        }
                      }
                    },
                    "range": [
                      1347,
                      1373
                    ],
                    "loc": {
                      "start": {
                        "line": 59,
                        "column": 8
                      },
                      "end": {
                        "line": 59,
                        "column": 34
                      }
                    }
                  },
                  {
                    "type": "VariableDeclaration",
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "id": {
                          "type": "Identifier",
                          "name": "ori",
                          "range": [
                            1386,
                            1389
                          ],
                          "loc": {
                            "start": {
                              "line": 60,
                              "column": 12
                            },
                            "end": {
                              "line": 60,
                              "column": 15
                            }
                          }
                        },
                        "init": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "ccData",
                            "range": [
                              1392,
                              1398
                            ],
                            "loc": {
                              "start": {
                                "line": 60,
                                "column": 18
                              },
                              "end": {
                                "line": 60,
                                "column": 24
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "orientationType",
                            "range": [
                              1399,
                              1414
                            ],
                            "loc": {
                              "start": {
                                "line": 60,
                                "column": 25
                              },
                              "end": {
                                "line": 60,
                                "column": 40
                              }
                            }
                          },
                          "range": [
                            1392,
                            1414
                          ],
                          "loc": {
                            "start": {
                              "line": 60,
                              "column": 18
                            },
                            "end": {
                              "line": 60,
                              "column": 40
                            }
                          }
                        },
                        "range": [
                          1386,
                          1414
                        ],
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 12
                          },
                          "end": {
                            "line": 60,
                            "column": 40
                          }
                        }
                      }
                    ],
                    "kind": "var",
                    "range": [
                      1382,
                      1415
                    ],
                    "loc": {
                      "start": {
                        "line": 60,
                        "column": 8
                      },
                      "end": {
                        "line": 60,
                        "column": 41
                      }
                    },
                    "trailingComments": [
                      {
                        "type": "Line",
                        "value": "TODO",
                        "range": [
                          1416,
                          1422
                        ],
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 42
                          },
                          "end": {
                            "line": 60,
                            "column": 48
                          }
                        }
                      },
                      {
                        "type": "Line",
                        "value": "all points assumed to be on {Z = 0} plane",
                        "range": [
                          1432,
                          1475
                        ],
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 8
                          },
                          "end": {
                            "line": 62,
                            "column": 51
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1484,
                            1488
                          ],
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 8
                            },
                            "end": {
                              "line": 63,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "lineDir",
                          "range": [
                            1489,
                            1496
                          ],
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 13
                            },
                            "end": {
                              "line": 63,
                              "column": 20
                            }
                          }
                        },
                        "range": [
                          1484,
                          1496
                        ],
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 8
                          },
                          "end": {
                            "line": 63,
                            "column": 20
                          }
                        }
                      },
                      "right": {
                        "type": "NewExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "THREE",
                            "range": [
                              1503,
                              1508
                            ],
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 27
                              },
                              "end": {
                                "line": 63,
                                "column": 32
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "Vector3",
                            "range": [
                              1509,
                              1516
                            ],
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 33
                              },
                              "end": {
                                "line": 63,
                                "column": 40
                              }
                            }
                          },
                          "range": [
                            1503,
                            1516
                          ],
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 27
                            },
                            "end": {
                              "line": 63,
                              "column": 40
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "Math",
                                "range": [
                                  1517,
                                  1521
                                ],
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 45
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "cos",
                                "range": [
                                  1522,
                                  1525
                                ],
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 46
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 49
                                  }
                                }
                              },
                              "range": [
                                1517,
                                1525
                              ],
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 41
                                },
                                "end": {
                                  "line": 63,
                                  "column": 49
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1526,
                                    1530
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 50
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 54
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "angle",
                                  "range": [
                                    1531,
                                    1536
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 55
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 60
                                    }
                                  }
                                },
                                "range": [
                                  1526,
                                  1536
                                ],
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 50
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 60
                                  }
                                }
                              }
                            ],
                            "range": [
                              1517,
                              1537
                            ],
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 41
                              },
                              "end": {
                                "line": 63,
                                "column": 61
                              }
                            }
                          },
                          {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "Math",
                                "range": [
                                  1539,
                                  1543
                                ],
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 63
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 67
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "sin",
                                "range": [
                                  1544,
                                  1547
                                ],
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 68
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 71
                                  }
                                }
                              },
                              "range": [
                                1539,
                                1547
                              ],
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 63
                                },
                                "end": {
                                  "line": 63,
                                  "column": 71
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1548,
                                    1552
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 72
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 76
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "angle",
                                  "range": [
                                    1553,
                                    1558
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 77
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 82
                                    }
                                  }
                                },
                                "range": [
                                  1548,
                                  1558
                                ],
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 72
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 82
                                  }
                                }
                              }
                            ],
                            "range": [
                              1539,
                              1559
                            ],
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 63
                              },
                              "end": {
                                "line": 63,
                                "column": 83
                              }
                            }
                          },
                          {
                            "type": "Literal",
                            "value": 0,
                            "raw": "0.0",
                            "range": [
                              1561,
                              1564
                            ],
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 85
                              },
                              "end": {
                                "line": 63,
                                "column": 88
                              }
                            }
                          }
                        ],
                        "range": [
                          1499,
                          1565
                        ],
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 23
                          },
                          "end": {
                            "line": 63,
                            "column": 89
                          }
                        }
                      },
                      "range": [
                        1484,
                        1565
                      ],
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 8
                        },
                        "end": {
                          "line": 63,
                          "column": 89
                        }
                      }
                    },
                    "range": [
                      1484,
                      1566
                    ],
                    "loc": {
                      "start": {
                        "line": 63,
                        "column": 8
                      },
                      "end": {
                        "line": 63,
                        "column": 90
                      }
                    },
                    "leadingComments": [
                      {
                        "type": "Line",
                        "value": "TODO",
                        "range": [
                          1416,
                          1422
                        ],
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 42
                          },
                          "end": {
                            "line": 60,
                            "column": 48
                          }
                        }
                      },
                      {
                        "type": "Line",
                        "value": "all points assumed to be on {Z = 0} plane",
                        "range": [
                          1432,
                          1475
                        ],
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 8
                          },
                          "end": {
                            "line": 62,
                            "column": 51
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "IfStatement",
                    "test": {
                      "type": "BinaryExpression",
                      "operator": "<",
                      "left": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        1579,
                                        1583
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 16
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "endPos",
                                      "range": [
                                        1584,
                                        1590
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 23
                                        }
                                      }
                                    },
                                    "range": [
                                      1579,
                                      1590
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 64,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 64,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "clone",
                                    "range": [
                                      1591,
                                      1596
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 64,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 64,
                                        "column": 29
                                      }
                                    }
                                  },
                                  "range": [
                                    1579,
                                    1596
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 64,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 64,
                                      "column": 29
                                    }
                                  }
                                },
                                "arguments": [],
                                "range": [
                                  1579,
                                  1598
                                ],
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 31
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "sub",
                                "range": [
                                  1599,
                                  1602
                                ],
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 35
                                  }
                                }
                              },
                              "range": [
                                1579,
                                1602
                              ],
                              "loc": {
                                "start": {
                                  "line": 64,
                                  "column": 12
                                },
                                "end": {
                                  "line": 64,
                                  "column": 35
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1603,
                                    1607
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 64,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 64,
                                      "column": 40
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "startPos",
                                  "range": [
                                    1608,
                                    1616
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 64,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 64,
                                      "column": 49
                                    }
                                  }
                                },
                                "range": [
                                  1603,
                                  1616
                                ],
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 49
                                  }
                                }
                              }
                            ],
                            "range": [
                              1579,
                              1617
                            ],
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 12
                              },
                              "end": {
                                "line": 64,
                                "column": 50
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "dot",
                            "range": [
                              1618,
                              1621
                            ],
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 51
                              },
                              "end": {
                                "line": 64,
                                "column": 54
                              }
                            }
                          },
                          "range": [
                            1579,
                            1621
                          ],
                          "loc": {
                            "start": {
                              "line": 64,
                              "column": 12
                            },
                            "end": {
                              "line": 64,
                              "column": 54
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                1622,
                                1626
                              ],
                              "loc": {
                                "start": {
                                  "line": 64,
                                  "column": 55
                                },
                                "end": {
                                  "line": 64,
                                  "column": 59
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "lineDir",
                              "range": [
                                1627,
                                1634
                              ],
                              "loc": {
                                "start": {
                                  "line": 64,
                                  "column": 60
                                },
                                "end": {
                                  "line": 64,
                                  "column": 67
                                }
                              }
                            },
                            "range": [
                              1622,
                              1634
                            ],
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 55
                              },
                              "end": {
                                "line": 64,
                                "column": 67
                              }
                            }
                          }
                        ],
                        "range": [
                          1579,
                          1635
                        ],
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 12
                          },
                          "end": {
                            "line": 64,
                            "column": 68
                          }
                        }
                      },
                      "right": {
                        "type": "Literal",
                        "value": 0,
                        "raw": "0.0",
                        "range": [
                          1638,
                          1641
                        ],
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 71
                          },
                          "end": {
                            "line": 64,
                            "column": 74
                          }
                        }
                      },
                      "range": [
                        1579,
                        1641
                      ],
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 12
                        },
                        "end": {
                          "line": 64,
                          "column": 74
                        }
                      }
                    },
                    "consequent": {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                1655,
                                1659
                              ],
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 12
                                },
                                "end": {
                                  "line": 65,
                                  "column": 16
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "lineDir",
                              "range": [
                                1660,
                                1667
                              ],
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 17
                                },
                                "end": {
                                  "line": 65,
                                  "column": 24
                                }
                              }
                            },
                            "range": [
                              1655,
                              1667
                            ],
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 12
                              },
                              "end": {
                                "line": 65,
                                "column": 24
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "negate",
                            "range": [
                              1668,
                              1674
                            ],
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 25
                              },
                              "end": {
                                "line": 65,
                                "column": 31
                              }
                            }
                          },
                          "range": [
                            1655,
                            1674
                          ],
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 12
                            },
                            "end": {
                              "line": 65,
                              "column": 31
                            }
                          }
                        },
                        "arguments": [],
                        "range": [
                          1655,
                          1676
                        ],
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 12
                          },
                          "end": {
                            "line": 65,
                            "column": 33
                          }
                        }
                      },
                      "range": [
                        1655,
                        1677
                      ],
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 12
                        },
                        "end": {
                          "line": 65,
                          "column": 34
                        }
                      }
                    },
                    "alternate": null,
                    "range": [
                      1575,
                      1677
                    ],
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 8
                      },
                      "end": {
                        "line": 65,
                        "column": 34
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1686,
                            1690
                          ],
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 8
                            },
                            "end": {
                              "line": 66,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "startFootPos",
                          "range": [
                            1691,
                            1703
                          ],
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 13
                            },
                            "end": {
                              "line": 66,
                              "column": 25
                            }
                          }
                        },
                        "range": [
                          1686,
                          1703
                        ],
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 8
                          },
                          "end": {
                            "line": 66,
                            "column": 25
                          }
                        }
                      },
                      "right": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            1706,
                                            1710
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 66,
                                              "column": 28
                                            },
                                            "end": {
                                              "line": 66,
                                              "column": 32
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "startPos",
                                          "range": [
                                            1711,
                                            1719
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 66,
                                              "column": 33
                                            },
                                            "end": {
                                              "line": 66,
                                              "column": 41
                                            }
                                          }
                                        },
                                        "range": [
                                          1706,
                                          1719
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 66,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 66,
                                            "column": 41
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "clone",
                                        "range": [
                                          1720,
                                          1725
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 66,
                                            "column": 42
                                          },
                                          "end": {
                                            "line": 66,
                                            "column": 47
                                          }
                                        }
                                      },
                                      "range": [
                                        1706,
                                        1725
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 66,
                                          "column": 28
                                        },
                                        "end": {
                                          "line": 66,
                                          "column": 47
                                        }
                                      }
                                    },
                                    "arguments": [],
                                    "range": [
                                      1706,
                                      1727
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 66,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 66,
                                        "column": 49
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "sub",
                                    "range": [
                                      1728,
                                      1731
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 66,
                                        "column": 50
                                      },
                                      "end": {
                                        "line": 66,
                                        "column": 53
                                      }
                                    }
                                  },
                                  "range": [
                                    1706,
                                    1731
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 66,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 66,
                                      "column": 53
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        1732,
                                        1736
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 66,
                                          "column": 54
                                        },
                                        "end": {
                                          "line": 66,
                                          "column": 58
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "textPos",
                                      "range": [
                                        1737,
                                        1744
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 66,
                                          "column": 59
                                        },
                                        "end": {
                                          "line": 66,
                                          "column": 66
                                        }
                                      }
                                    },
                                    "range": [
                                      1732,
                                      1744
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 66,
                                        "column": 54
                                      },
                                      "end": {
                                        "line": 66,
                                        "column": 66
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  1706,
                                  1745
                                ],
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 67
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "projectOnVector",
                                "range": [
                                  1746,
                                  1761
                                ],
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 68
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 83
                                  }
                                }
                              },
                              "range": [
                                1706,
                                1761
                              ],
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 28
                                },
                                "end": {
                                  "line": 66,
                                  "column": 83
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1762,
                                    1766
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 66,
                                      "column": 84
                                    },
                                    "end": {
                                      "line": 66,
                                      "column": 88
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "lineDir",
                                  "range": [
                                    1767,
                                    1774
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 66,
                                      "column": 89
                                    },
                                    "end": {
                                      "line": 66,
                                      "column": 96
                                    }
                                  }
                                },
                                "range": [
                                  1762,
                                  1774
                                ],
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 84
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 96
                                  }
                                }
                              }
                            ],
                            "range": [
                              1706,
                              1775
                            ],
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 28
                              },
                              "end": {
                                "line": 66,
                                "column": 97
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "add",
                            "range": [
                              1776,
                              1779
                            ],
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 98
                              },
                              "end": {
                                "line": 66,
                                "column": 101
                              }
                            }
                          },
                          "range": [
                            1706,
                            1779
                          ],
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 28
                            },
                            "end": {
                              "line": 66,
                              "column": 101
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                1780,
                                1784
                              ],
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 102
                                },
                                "end": {
                                  "line": 66,
                                  "column": 106
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "textPos",
                              "range": [
                                1785,
                                1792
                              ],
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 107
                                },
                                "end": {
                                  "line": 66,
                                  "column": 114
                                }
                              }
                            },
                            "range": [
                              1780,
                              1792
                            ],
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 102
                              },
                              "end": {
                                "line": 66,
                                "column": 114
                              }
                            }
                          }
                        ],
                        "range": [
                          1706,
                          1793
                        ],
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 28
                          },
                          "end": {
                            "line": 66,
                            "column": 115
                          }
                        }
                      },
                      "range": [
                        1686,
                        1793
                      ],
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 8
                        },
                        "end": {
                          "line": 66,
                          "column": 115
                        }
                      }
                    },
                    "range": [
                      1686,
                      1794
                    ],
                    "loc": {
                      "start": {
                        "line": 66,
                        "column": 8
                      },
                      "end": {
                        "line": 66,
                        "column": 116
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1803,
                            1807
                          ],
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 8
                            },
                            "end": {
                              "line": 67,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "endFootPos",
                          "range": [
                            1808,
                            1818
                          ],
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 13
                            },
                            "end": {
                              "line": 67,
                              "column": 23
                            }
                          }
                        },
                        "range": [
                          1803,
                          1818
                        ],
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 8
                          },
                          "end": {
                            "line": 67,
                            "column": 23
                          }
                        }
                      },
                      "right": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            1821,
                                            1825
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 67,
                                              "column": 26
                                            },
                                            "end": {
                                              "line": 67,
                                              "column": 30
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "endPos",
                                          "range": [
                                            1826,
                                            1832
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 67,
                                              "column": 31
                                            },
                                            "end": {
                                              "line": 67,
                                              "column": 37
                                            }
                                          }
                                        },
                                        "range": [
                                          1821,
                                          1832
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 67,
                                            "column": 26
                                          },
                                          "end": {
                                            "line": 67,
                                            "column": 37
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "clone",
                                        "range": [
                                          1833,
                                          1838
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 67,
                                            "column": 38
                                          },
                                          "end": {
                                            "line": 67,
                                            "column": 43
                                          }
                                        }
                                      },
                                      "range": [
                                        1821,
                                        1838
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 43
                                        }
                                      }
                                    },
                                    "arguments": [],
                                    "range": [
                                      1821,
                                      1840
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 45
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "sub",
                                    "range": [
                                      1841,
                                      1844
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 49
                                      }
                                    }
                                  },
                                  "range": [
                                    1821,
                                    1844
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 49
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        1845,
                                        1849
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 50
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 54
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "textPos",
                                      "range": [
                                        1850,
                                        1857
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 55
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 62
                                        }
                                      }
                                    },
                                    "range": [
                                      1845,
                                      1857
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 50
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 62
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  1821,
                                  1858
                                ],
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 63
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "projectOnVector",
                                "range": [
                                  1859,
                                  1874
                                ],
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 64
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 79
                                  }
                                }
                              },
                              "range": [
                                1821,
                                1874
                              ],
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 26
                                },
                                "end": {
                                  "line": 67,
                                  "column": 79
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1875,
                                    1879
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 80
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 84
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "lineDir",
                                  "range": [
                                    1880,
                                    1887
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 85
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 92
                                    }
                                  }
                                },
                                "range": [
                                  1875,
                                  1887
                                ],
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 80
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 92
                                  }
                                }
                              }
                            ],
                            "range": [
                              1821,
                              1888
                            ],
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 26
                              },
                              "end": {
                                "line": 67,
                                "column": 93
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "add",
                            "range": [
                              1889,
                              1892
                            ],
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 94
                              },
                              "end": {
                                "line": 67,
                                "column": 97
                              }
                            }
                          },
                          "range": [
                            1821,
                            1892
                          ],
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 26
                            },
                            "end": {
                              "line": 67,
                              "column": 97
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                1893,
                                1897
                              ],
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 98
                                },
                                "end": {
                                  "line": 67,
                                  "column": 102
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "textPos",
                              "range": [
                                1898,
                                1905
                              ],
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 103
                                },
                                "end": {
                                  "line": 67,
                                  "column": 110
                                }
                              }
                            },
                            "range": [
                              1893,
                              1905
                            ],
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 98
                              },
                              "end": {
                                "line": 67,
                                "column": 110
                              }
                            }
                          }
                        ],
                        "range": [
                          1821,
                          1906
                        ],
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 26
                          },
                          "end": {
                            "line": 67,
                            "column": 111
                          }
                        }
                      },
                      "range": [
                        1803,
                        1906
                      ],
                      "loc": {
                        "start": {
                          "line": 67,
                          "column": 8
                        },
                        "end": {
                          "line": 67,
                          "column": 111
                        }
                      }
                    },
                    "range": [
                      1803,
                      1907
                    ],
                    "loc": {
                      "start": {
                        "line": 67,
                        "column": 8
                      },
                      "end": {
                        "line": 67,
                        "column": 112
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1917,
                            1921
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 8
                            },
                            "end": {
                              "line": 69,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "clear",
                          "range": [
                            1922,
                            1927
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 13
                            },
                            "end": {
                              "line": 69,
                              "column": 18
                            }
                          }
                        },
                        "range": [
                          1917,
                          1927
                        ],
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 8
                          },
                          "end": {
                            "line": 69,
                            "column": 18
                          }
                        }
                      },
                      "arguments": [],
                      "range": [
                        1917,
                        1929
                      ],
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 8
                        },
                        "end": {
                          "line": 69,
                          "column": 20
                        }
                      }
                    },
                    "range": [
                      1917,
                      1930
                    ],
                    "loc": {
                      "start": {
                        "line": 69,
                        "column": 8
                      },
                      "end": {
                        "line": 69,
                        "column": 21
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1939,
                            1943
                          ],
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 8
                            },
                            "end": {
                              "line": 70,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "addLine",
                          "range": [
                            1944,
                            1951
                          ],
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 13
                            },
                            "end": {
                              "line": 70,
                              "column": 20
                            }
                          }
                        },
                        "range": [
                          1939,
                          1951
                        ],
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 8
                          },
                          "end": {
                            "line": 70,
                            "column": 20
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1952,
                              1956
                            ],
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 21
                              },
                              "end": {
                                "line": 70,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "startFootPos",
                            "range": [
                              1957,
                              1969
                            ],
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 26
                              },
                              "end": {
                                "line": 70,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            1952,
                            1969
                          ],
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 21
                            },
                            "end": {
                              "line": 70,
                              "column": 38
                            }
                          }
                        },
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1971,
                              1975
                            ],
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 40
                              },
                              "end": {
                                "line": 70,
                                "column": 44
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "endFootPos",
                            "range": [
                              1976,
                              1986
                            ],
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 45
                              },
                              "end": {
                                "line": 70,
                                "column": 55
                              }
                            }
                          },
                          "range": [
                            1971,
                            1986
                          ],
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 40
                            },
                            "end": {
                              "line": 70,
                              "column": 55
                            }
                          }
                        }
                      ],
                      "range": [
                        1939,
                        1987
                      ],
                      "loc": {
                        "start": {
                          "line": 70,
                          "column": 8
                        },
                        "end": {
                          "line": 70,
                          "column": 56
                        }
                      }
                    },
                    "range": [
                      1939,
                      1988
                    ],
                    "loc": {
                      "start": {
                        "line": 70,
                        "column": 8
                      },
                      "end": {
                        "line": 70,
                        "column": 57
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1997,
                            2001
                          ],
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 8
                            },
                            "end": {
                              "line": 71,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "addLine",
                          "range": [
                            2002,
                            2009
                          ],
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 13
                            },
                            "end": {
                              "line": 71,
                              "column": 20
                            }
                          }
                        },
                        "range": [
                          1997,
                          2009
                        ],
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 8
                          },
                          "end": {
                            "line": 71,
                            "column": 20
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2010,
                              2014
                            ],
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 21
                              },
                              "end": {
                                "line": 71,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "startPos",
                            "range": [
                              2015,
                              2023
                            ],
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 26
                              },
                              "end": {
                                "line": 71,
                                "column": 34
                              }
                            }
                          },
                          "range": [
                            2010,
                            2023
                          ],
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 21
                            },
                            "end": {
                              "line": 71,
                              "column": 34
                            }
                          }
                        },
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2025,
                              2029
                            ],
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 36
                              },
                              "end": {
                                "line": 71,
                                "column": 40
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "startFootPos",
                            "range": [
                              2030,
                              2042
                            ],
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 41
                              },
                              "end": {
                                "line": 71,
                                "column": 53
                              }
                            }
                          },
                          "range": [
                            2025,
                            2042
                          ],
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 36
                            },
                            "end": {
                              "line": 71,
                              "column": 53
                            }
                          }
                        }
                      ],
                      "range": [
                        1997,
                        2043
                      ],
                      "loc": {
                        "start": {
                          "line": 71,
                          "column": 8
                        },
                        "end": {
                          "line": 71,
                          "column": 54
                        }
                      }
                    },
                    "range": [
                      1997,
                      2044
                    ],
                    "loc": {
                      "start": {
                        "line": 71,
                        "column": 8
                      },
                      "end": {
                        "line": 71,
                        "column": 55
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            2053,
                            2057
                          ],
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 8
                            },
                            "end": {
                              "line": 72,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "addLine",
                          "range": [
                            2058,
                            2065
                          ],
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 13
                            },
                            "end": {
                              "line": 72,
                              "column": 20
                            }
                          }
                        },
                        "range": [
                          2053,
                          2065
                        ],
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 8
                          },
                          "end": {
                            "line": 72,
                            "column": 20
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2066,
                              2070
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 21
                              },
                              "end": {
                                "line": 72,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "endPos",
                            "range": [
                              2071,
                              2077
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 26
                              },
                              "end": {
                                "line": 72,
                                "column": 32
                              }
                            }
                          },
                          "range": [
                            2066,
                            2077
                          ],
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 21
                            },
                            "end": {
                              "line": 72,
                              "column": 32
                            }
                          }
                        },
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2079,
                              2083
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 34
                              },
                              "end": {
                                "line": 72,
                                "column": 38
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "endFootPos",
                            "range": [
                              2084,
                              2094
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 39
                              },
                              "end": {
                                "line": 72,
                                "column": 49
                              }
                            }
                          },
                          "range": [
                            2079,
                            2094
                          ],
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 34
                            },
                            "end": {
                              "line": 72,
                              "column": 49
                            }
                          }
                        }
                      ],
                      "range": [
                        2053,
                        2095
                      ],
                      "loc": {
                        "start": {
                          "line": 72,
                          "column": 8
                        },
                        "end": {
                          "line": 72,
                          "column": 50
                        }
                      }
                    },
                    "range": [
                      2053,
                      2096
                    ],
                    "loc": {
                      "start": {
                        "line": 72,
                        "column": 8
                      },
                      "end": {
                        "line": 72,
                        "column": 51
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            2105,
                            2109
                          ],
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 8
                            },
                            "end": {
                              "line": 73,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "addArrow",
                          "range": [
                            2110,
                            2118
                          ],
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 13
                            },
                            "end": {
                              "line": 73,
                              "column": 21
                            }
                          }
                        },
                        "range": [
                          2105,
                          2118
                        ],
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 8
                          },
                          "end": {
                            "line": 73,
                            "column": 21
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2119,
                              2123
                            ],
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 22
                              },
                              "end": {
                                "line": 73,
                                "column": 26
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "startFootPos",
                            "range": [
                              2124,
                              2136
                            ],
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 27
                              },
                              "end": {
                                "line": 73,
                                "column": 39
                              }
                            }
                          },
                          "range": [
                            2119,
                            2136
                          ],
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 22
                            },
                            "end": {
                              "line": 73,
                              "column": 39
                            }
                          }
                        },
                        {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "CallExpression",
                              "callee": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      2138,
                                      2142
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 41
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 45
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "lineDir",
                                    "range": [
                                      2143,
                                      2150
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 53
                                      }
                                    }
                                  },
                                  "range": [
                                    2138,
                                    2150
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 73,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 73,
                                      "column": 53
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "clone",
                                  "range": [
                                    2151,
                                    2156
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 73,
                                      "column": 54
                                    },
                                    "end": {
                                      "line": 73,
                                      "column": 59
                                    }
                                  }
                                },
                                "range": [
                                  2138,
                                  2156
                                ],
                                "loc": {
                                  "start": {
                                    "line": 73,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 73,
                                    "column": 59
                                  }
                                }
                              },
                              "arguments": [],
                              "range": [
                                2138,
                                2158
                              ],
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 41
                                },
                                "end": {
                                  "line": 73,
                                  "column": 61
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "negate",
                              "range": [
                                2159,
                                2165
                              ],
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 62
                                },
                                "end": {
                                  "line": 73,
                                  "column": 68
                                }
                              }
                            },
                            "range": [
                              2138,
                              2165
                            ],
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 41
                              },
                              "end": {
                                "line": 73,
                                "column": 68
                              }
                            }
                          },
                          "arguments": [],
                          "range": [
                            2138,
                            2167
                          ],
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 41
                            },
                            "end": {
                              "line": 73,
                              "column": 70
                            }
                          }
                        }
                      ],
                      "range": [
                        2105,
                        2168
                      ],
                      "loc": {
                        "start": {
                          "line": 73,
                          "column": 8
                        },
                        "end": {
                          "line": 73,
                          "column": 71
                        }
                      }
                    },
                    "range": [
                      2105,
                      2169
                    ],
                    "loc": {
                      "start": {
                        "line": 73,
                        "column": 8
                      },
                      "end": {
                        "line": 73,
                        "column": 72
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            2178,
                            2182
                          ],
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 8
                            },
                            "end": {
                              "line": 74,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "addArrow",
                          "range": [
                            2183,
                            2191
                          ],
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 13
                            },
                            "end": {
                              "line": 74,
                              "column": 21
                            }
                          }
                        },
                        "range": [
                          2178,
                          2191
                        ],
                        "loc": {
                          "start": {
                            "line": 74,
                            "column": 8
                          },
                          "end": {
                            "line": 74,
                            "column": 21
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2192,
                              2196
                            ],
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 22
                              },
                              "end": {
                                "line": 74,
                                "column": 26
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "endFootPos",
                            "range": [
                              2197,
                              2207
                            ],
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 27
                              },
                              "end": {
                                "line": 74,
                                "column": 37
                              }
                            }
                          },
                          "range": [
                            2192,
                            2207
                          ],
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 22
                            },
                            "end": {
                              "line": 74,
                              "column": 37
                            }
                          }
                        },
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2209,
                              2213
                            ],
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 39
                              },
                              "end": {
                                "line": 74,
                                "column": 43
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "lineDir",
                            "range": [
                              2214,
                              2221
                            ],
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 44
                              },
                              "end": {
                                "line": 74,
                                "column": 51
                              }
                            }
                          },
                          "range": [
                            2209,
                            2221
                          ],
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 39
                            },
                            "end": {
                              "line": 74,
                              "column": 51
                            }
                          }
                        }
                      ],
                      "range": [
                        2178,
                        2222
                      ],
                      "loc": {
                        "start": {
                          "line": 74,
                          "column": 8
                        },
                        "end": {
                          "line": 74,
                          "column": 52
                        }
                      }
                    },
                    "range": [
                      2178,
                      2223
                    ],
                    "loc": {
                      "start": {
                        "line": 74,
                        "column": 8
                      },
                      "end": {
                        "line": 74,
                        "column": 53
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            2232,
                            2236
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 8
                            },
                            "end": {
                              "line": 75,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "addText",
                          "range": [
                            2237,
                            2244
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 13
                            },
                            "end": {
                              "line": 75,
                              "column": 20
                            }
                          }
                        },
                        "range": [
                          2232,
                          2244
                        ],
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 8
                          },
                          "end": {
                            "line": 75,
                            "column": 20
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2245,
                              2249
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 21
                              },
                              "end": {
                                "line": 75,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "textPos",
                            "range": [
                              2250,
                              2257
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 26
                              },
                              "end": {
                                "line": 75,
                                "column": 33
                              }
                            }
                          },
                          "range": [
                            2245,
                            2257
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 21
                            },
                            "end": {
                              "line": 75,
                              "column": 33
                            }
                          }
                        },
                        {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2259,
                              2263
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 35
                              },
                              "end": {
                                "line": 75,
                                "column": 39
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "lineDir",
                            "range": [
                              2264,
                              2271
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 40
                              },
                              "end": {
                                "line": 75,
                                "column": 47
                              }
                            }
                          },
                          "range": [
                            2259,
                            2271
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 35
                            },
                            "end": {
                              "line": 75,
                              "column": 47
                            }
                          }
                        }
                      ],
                      "range": [
                        2232,
                        2272
                      ],
                      "loc": {
                        "start": {
                          "line": 75,
                          "column": 8
                        },
                        "end": {
                          "line": 75,
                          "column": 48
                        }
                      }
                    },
                    "range": [
                      2232,
                      2273
                    ],
                    "loc": {
                      "start": {
                        "line": 75,
                        "column": 8
                      },
                      "end": {
                        "line": 75,
                        "column": 49
                      }
                    }
                  }
                ],
                "range": [
                  1193,
                  2279
                ],
                "loc": {
                  "start": {
                    "line": 53,
                    "column": 19
                  },
                  "end": {
                    "line": 76,
                    "column": 5
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                1184,
                2279
              ],
              "loc": {
                "start": {
                  "line": 53,
                  "column": 10
                },
                "end": {
                  "line": 76,
                  "column": 5
                }
              }
            },
            "kind": "method",
            "computed": false,
            "range": [
              1178,
              2279
            ],
            "loc": {
              "start": {
                "line": 53,
                "column": 4
              },
              "end": {
                "line": 76,
                "column": 5
              }
            },
            "static": false
          }
        ],
        "range": [
          1038,
          2281
        ],
        "loc": {
          "start": {
            "line": 45,
            "column": 40
          },
          "end": {
            "line": 77,
            "column": 1
          }
        }
      },
      "range": [
        998,
        2281
      ],
      "loc": {
        "start": {
          "line": 45,
          "column": 0
        },
        "end": {
          "line": 77,
          "column": 1
        }
      }
    },
    {
      "type": "ClassDeclaration",
      "id": {
        "type": "Identifier",
        "name": "CircularDimension",
        "range": [
          2289,
          2306
        ],
        "loc": {
          "start": {
            "line": 79,
            "column": 6
          },
          "end": {
            "line": 79,
            "column": 23
          }
        }
      },
      "superClass": {
        "type": "Identifier",
        "name": "Dimension",
        "range": [
          2315,
          2324
        ],
        "loc": {
          "start": {
            "line": 79,
            "column": 32
          },
          "end": {
            "line": 79,
            "column": 41
          }
        }
      },
      "body": {
        "type": "ClassBody",
        "body": [
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "constructor",
              "range": [
                2331,
                2342
              ],
              "loc": {
                "start": {
                  "line": 80,
                  "column": 4
                },
                "end": {
                  "line": 80,
                  "column": 15
                }
              }
            },
            "value": {
              "type": "FunctionExpression",
              "id": null,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "Super",
                        "range": [
                          2355,
                          2360
                        ],
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 8
                          },
                          "end": {
                            "line": 81,
                            "column": 13
                          }
                        }
                      },
                      "arguments": [],
                      "range": [
                        2355,
                        2362
                      ],
                      "loc": {
                        "start": {
                          "line": 81,
                          "column": 8
                        },
                        "end": {
                          "line": 81,
                          "column": 15
                        }
                      }
                    },
                    "range": [
                      2355,
                      2363
                    ],
                    "loc": {
                      "start": {
                        "line": 81,
                        "column": 8
                      },
                      "end": {
                        "line": 81,
                        "column": 16
                      }
                    }
                  }
                ],
                "range": [
                  2345,
                  2369
                ],
                "loc": {
                  "start": {
                    "line": 80,
                    "column": 18
                  },
                  "end": {
                    "line": 82,
                    "column": 5
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                2342,
                2369
              ],
              "loc": {
                "start": {
                  "line": 80,
                  "column": 15
                },
                "end": {
                  "line": 82,
                  "column": 5
                }
              }
            },
            "kind": "constructor",
            "computed": false,
            "range": [
              2331,
              2369
            ],
            "loc": {
              "start": {
                "line": 80,
                "column": 4
              },
              "end": {
                "line": 82,
                "column": 5
              }
            },
            "static": false
          }
        ],
        "range": [
          2325,
          2371
        ],
        "loc": {
          "start": {
            "line": 79,
            "column": 42
          },
          "end": {
            "line": 83,
            "column": 1
          }
        }
      },
      "range": [
        2283,
        2371
      ],
      "loc": {
        "start": {
          "line": 79,
          "column": 0
        },
        "end": {
          "line": 83,
          "column": 1
        }
      },
      "trailingComments": [
        {
          "type": "Line",
          "value": "TODO: other types",
          "range": [
            2373,
            2392
          ],
          "loc": {
            "start": {
              "line": 85,
              "column": 0
            },
            "end": {
              "line": 85,
              "column": 19
            }
          }
        },
        {
          "type": "Block",
          "value": "class RadiusDimension extends Dimension {\n    constructor() {\n        super();\n    }\n}\nclass DiameterDimension extends Dimension {\n    constructor() {\n        super();\n    }\n}",
          "range": [
            2393,
            2572
          ],
          "loc": {
            "start": {
              "line": 86,
              "column": 0
            },
            "end": {
              "line": 95,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "DimensionTypes",
            "range": [
              2578,
              2592
            ],
            "loc": {
              "start": {
                "line": 97,
                "column": 4
              },
              "end": {
                "line": 97,
                "column": 18
              }
            }
          },
          "init": {
            "type": "ArrayExpression",
            "elements": [
              {
                "type": "ArrayExpression",
                "elements": [
                  {
                    "type": "Literal",
                    "value": "CC_LinearFeatureDimension",
                    "raw": "\"CC_LinearFeatureDimension\"",
                    "range": [
                      2602,
                      2629
                    ],
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 5
                      },
                      "end": {
                        "line": 98,
                        "column": 32
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "LinearDimension",
                    "range": [
                      2631,
                      2646
                    ],
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 34
                      },
                      "end": {
                        "line": 98,
                        "column": 49
                      }
                    }
                  }
                ],
                "range": [
                  2601,
                  2647
                ],
                "loc": {
                  "start": {
                    "line": 98,
                    "column": 4
                  },
                  "end": {
                    "line": 98,
                    "column": 50
                  }
                }
              },
              {
                "type": "ArrayExpression",
                "elements": [
                  {
                    "type": "Literal",
                    "value": "CC_CircularFeatureDimension",
                    "raw": "\"CC_CircularFeatureDimension\"",
                    "range": [
                      2654,
                      2683
                    ],
                    "loc": {
                      "start": {
                        "line": 99,
                        "column": 5
                      },
                      "end": {
                        "line": 99,
                        "column": 34
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "CircularDimension",
                    "range": [
                      2685,
                      2702
                    ],
                    "loc": {
                      "start": {
                        "line": 99,
                        "column": 36
                      },
                      "end": {
                        "line": 99,
                        "column": 53
                      }
                    }
                  }
                ],
                "range": [
                  2653,
                  2703
                ],
                "loc": {
                  "start": {
                    "line": 99,
                    "column": 4
                  },
                  "end": {
                    "line": 99,
                    "column": 54
                  }
                }
              }
            ],
            "range": [
              2595,
              2723
            ],
            "loc": {
              "start": {
                "line": 97,
                "column": 21
              },
              "end": {
                "line": 101,
                "column": 1
              }
            }
          },
          "range": [
            2578,
            2723
          ],
          "loc": {
            "start": {
              "line": 97,
              "column": 4
            },
            "end": {
              "line": 101,
              "column": 1
            }
          }
        }
      ],
      "kind": "var",
      "range": [
        2574,
        2724
      ],
      "loc": {
        "start": {
          "line": 97,
          "column": 0
        },
        "end": {
          "line": 101,
          "column": 2
        }
      },
      "leadingComments": [
        {
          "type": "Line",
          "value": "TODO: other types",
          "range": [
            2373,
            2392
          ],
          "loc": {
            "start": {
              "line": 85,
              "column": 0
            },
            "end": {
              "line": 85,
              "column": 19
            }
          }
        },
        {
          "type": "Block",
          "value": "class RadiusDimension extends Dimension {\n    constructor() {\n        super();\n    }\n}\nclass DiameterDimension extends Dimension {\n    constructor() {\n        super();\n    }\n}",
          "range": [
            2393,
            2572
          ],
          "loc": {
            "start": {
              "line": 86,
              "column": 0
            },
            "end": {
              "line": 95,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "ClassDeclaration",
        "id": {
          "type": "Identifier",
          "name": "DimensionsVisualizer",
          "range": [
            2740,
            2760
          ],
          "loc": {
            "start": {
              "line": 104,
              "column": 13
            },
            "end": {
              "line": 104,
              "column": 33
            }
          }
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "body": [
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "update",
                "range": [
                  2878,
                  2884
                ],
                "loc": {
                  "start": {
                    "line": 108,
                    "column": 4
                  },
                  "end": {
                    "line": 108,
                    "column": 10
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "dimension",
                    "range": [
                      2885,
                      2894
                    ],
                    "loc": {
                      "start": {
                        "line": 108,
                        "column": 11
                      },
                      "end": {
                        "line": 108,
                        "column": 20
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "ccData",
                    "range": [
                      2896,
                      2902
                    ],
                    "loc": {
                      "start": {
                        "line": 108,
                        "column": 22
                      },
                      "end": {
                        "line": 108,
                        "column": 28
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "typeChanged",
                            "range": [
                              2918,
                              2929
                            ],
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 12
                              },
                              "end": {
                                "line": 109,
                                "column": 23
                              }
                            }
                          },
                          "init": {
                            "type": "Literal",
                            "value": true,
                            "raw": "true",
                            "range": [
                              2932,
                              2936
                            ],
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 26
                              },
                              "end": {
                                "line": 109,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            2918,
                            2936
                          ],
                          "loc": {
                            "start": {
                              "line": 109,
                              "column": 12
                            },
                            "end": {
                              "line": 109,
                              "column": 30
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        2914,
                        2937
                      ],
                      "loc": {
                        "start": {
                          "line": 109,
                          "column": 8
                        },
                        "end": {
                          "line": 109,
                          "column": 31
                        }
                      }
                    },
                    {
                      "type": "ForStatement",
                      "init": {
                        "type": "VariableDeclaration",
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "id": {
                              "type": "Identifier",
                              "name": "i",
                              "range": [
                                2955,
                                2956
                              ],
                              "loc": {
                                "start": {
                                  "line": 110,
                                  "column": 17
                                },
                                "end": {
                                  "line": 110,
                                  "column": 18
                                }
                              }
                            },
                            "init": {
                              "type": "Literal",
                              "value": 0,
                              "raw": "0",
                              "range": [
                                2959,
                                2960
                              ],
                              "loc": {
                                "start": {
                                  "line": 110,
                                  "column": 21
                                },
                                "end": {
                                  "line": 110,
                                  "column": 22
                                }
                              }
                            },
                            "range": [
                              2955,
                              2960
                            ],
                            "loc": {
                              "start": {
                                "line": 110,
                                "column": 17
                              },
                              "end": {
                                "line": 110,
                                "column": 22
                              }
                            }
                          }
                        ],
                        "kind": "var",
                        "range": [
                          2951,
                          2960
                        ],
                        "loc": {
                          "start": {
                            "line": 110,
                            "column": 13
                          },
                          "end": {
                            "line": 110,
                            "column": 22
                          }
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "operator": "<",
                        "left": {
                          "type": "Identifier",
                          "name": "i",
                          "range": [
                            2962,
                            2963
                          ],
                          "loc": {
                            "start": {
                              "line": 110,
                              "column": 24
                            },
                            "end": {
                              "line": 110,
                              "column": 25
                            }
                          }
                        },
                        "right": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "DimensionTypes",
                            "range": [
                              2966,
                              2980
                            ],
                            "loc": {
                              "start": {
                                "line": 110,
                                "column": 28
                              },
                              "end": {
                                "line": 110,
                                "column": 42
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "length",
                            "range": [
                              2981,
                              2987
                            ],
                            "loc": {
                              "start": {
                                "line": 110,
                                "column": 43
                              },
                              "end": {
                                "line": 110,
                                "column": 49
                              }
                            }
                          },
                          "range": [
                            2966,
                            2987
                          ],
                          "loc": {
                            "start": {
                              "line": 110,
                              "column": 28
                            },
                            "end": {
                              "line": 110,
                              "column": 49
                            }
                          }
                        },
                        "range": [
                          2962,
                          2987
                        ],
                        "loc": {
                          "start": {
                            "line": 110,
                            "column": 24
                          },
                          "end": {
                            "line": 110,
                            "column": 49
                          }
                        }
                      },
                      "update": {
                        "type": "UpdateExpression",
                        "operator": "++",
                        "argument": {
                          "type": "Identifier",
                          "name": "i",
                          "range": [
                            2989,
                            2990
                          ],
                          "loc": {
                            "start": {
                              "line": 110,
                              "column": 51
                            },
                            "end": {
                              "line": 110,
                              "column": 52
                            }
                          }
                        },
                        "prefix": false,
                        "range": [
                          2989,
                          2992
                        ],
                        "loc": {
                          "start": {
                            "line": 110,
                            "column": 51
                          },
                          "end": {
                            "line": 110,
                            "column": 54
                          }
                        }
                      },
                      "body": {
                        "type": "IfStatement",
                        "test": {
                          "type": "LogicalExpression",
                          "operator": "&&",
                          "left": {
                            "type": "BinaryExpression",
                            "operator": "===",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "ccData",
                                "range": [
                                  3010,
                                  3016
                                ],
                                "loc": {
                                  "start": {
                                    "line": 111,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 111,
                                    "column": 22
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "type",
                                "range": [
                                  3017,
                                  3021
                                ],
                                "loc": {
                                  "start": {
                                    "line": 111,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 111,
                                    "column": 27
                                  }
                                }
                              },
                              "range": [
                                3010,
                                3021
                              ],
                              "loc": {
                                "start": {
                                  "line": 111,
                                  "column": 16
                                },
                                "end": {
                                  "line": 111,
                                  "column": 27
                                }
                              }
                            },
                            "right": {
                              "type": "MemberExpression",
                              "computed": true,
                              "object": {
                                "type": "MemberExpression",
                                "computed": true,
                                "object": {
                                  "type": "Identifier",
                                  "name": "DimensionTypes",
                                  "range": [
                                    3026,
                                    3040
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 111,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 111,
                                      "column": 46
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "i",
                                  "range": [
                                    3041,
                                    3042
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 111,
                                      "column": 47
                                    },
                                    "end": {
                                      "line": 111,
                                      "column": 48
                                    }
                                  }
                                },
                                "range": [
                                  3026,
                                  3043
                                ],
                                "loc": {
                                  "start": {
                                    "line": 111,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 111,
                                    "column": 49
                                  }
                                }
                              },
                              "property": {
                                "type": "Literal",
                                "value": 0,
                                "raw": "0",
                                "range": [
                                  3044,
                                  3045
                                ],
                                "loc": {
                                  "start": {
                                    "line": 111,
                                    "column": 50
                                  },
                                  "end": {
                                    "line": 111,
                                    "column": 51
                                  }
                                }
                              },
                              "range": [
                                3026,
                                3046
                              ],
                              "loc": {
                                "start": {
                                  "line": 111,
                                  "column": 32
                                },
                                "end": {
                                  "line": 111,
                                  "column": 52
                                }
                              }
                            },
                            "range": [
                              3010,
                              3046
                            ],
                            "loc": {
                              "start": {
                                "line": 111,
                                "column": 16
                              },
                              "end": {
                                "line": 111,
                                "column": 52
                              }
                            }
                          },
                          "right": {
                            "type": "BinaryExpression",
                            "operator": "===",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "dimension",
                                "range": [
                                  3050,
                                  3059
                                ],
                                "loc": {
                                  "start": {
                                    "line": 111,
                                    "column": 56
                                  },
                                  "end": {
                                    "line": 111,
                                    "column": 65
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "constructor",
                                "range": [
                                  3060,
                                  3071
                                ],
                                "loc": {
                                  "start": {
                                    "line": 111,
                                    "column": 66
                                  },
                                  "end": {
                                    "line": 111,
                                    "column": 77
                                  }
                                }
                              },
                              "range": [
                                3050,
                                3071
                              ],
                              "loc": {
                                "start": {
                                  "line": 111,
                                  "column": 56
                                },
                                "end": {
                                  "line": 111,
                                  "column": 77
                                }
                              }
                            },
                            "right": {
                              "type": "MemberExpression",
                              "computed": true,
                              "object": {
                                "type": "MemberExpression",
                                "computed": true,
                                "object": {
                                  "type": "Identifier",
                                  "name": "DimensionTypes",
                                  "range": [
                                    3076,
                                    3090
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 111,
                                      "column": 82
                                    },
                                    "end": {
                                      "line": 111,
                                      "column": 96
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "i",
                                  "range": [
                                    3091,
                                    3092
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 111,
                                      "column": 97
                                    },
                                    "end": {
                                      "line": 111,
                                      "column": 98
                                    }
                                  }
                                },
                                "range": [
                                  3076,
                                  3093
                                ],
                                "loc": {
                                  "start": {
                                    "line": 111,
                                    "column": 82
                                  },
                                  "end": {
                                    "line": 111,
                                    "column": 99
                                  }
                                }
                              },
                              "property": {
                                "type": "Literal",
                                "value": 1,
                                "raw": "1",
                                "range": [
                                  3094,
                                  3095
                                ],
                                "loc": {
                                  "start": {
                                    "line": 111,
                                    "column": 100
                                  },
                                  "end": {
                                    "line": 111,
                                    "column": 101
                                  }
                                }
                              },
                              "range": [
                                3076,
                                3096
                              ],
                              "loc": {
                                "start": {
                                  "line": 111,
                                  "column": 82
                                },
                                "end": {
                                  "line": 111,
                                  "column": 102
                                }
                              }
                            },
                            "range": [
                              3050,
                              3096
                            ],
                            "loc": {
                              "start": {
                                "line": 111,
                                "column": 56
                              },
                              "end": {
                                "line": 111,
                                "column": 102
                              }
                            }
                          },
                          "range": [
                            3010,
                            3096
                          ],
                          "loc": {
                            "start": {
                              "line": 111,
                              "column": 16
                            },
                            "end": {
                              "line": 111,
                              "column": 102
                            }
                          }
                        },
                        "consequent": {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "name": "typeChanged",
                              "range": [
                                3114,
                                3125
                              ],
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 16
                                },
                                "end": {
                                  "line": 112,
                                  "column": 27
                                }
                              }
                            },
                            "right": {
                              "type": "Literal",
                              "value": false,
                              "raw": "false",
                              "range": [
                                3128,
                                3133
                              ],
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 30
                                },
                                "end": {
                                  "line": 112,
                                  "column": 35
                                }
                              }
                            },
                            "range": [
                              3114,
                              3133
                            ],
                            "loc": {
                              "start": {
                                "line": 112,
                                "column": 16
                              },
                              "end": {
                                "line": 112,
                                "column": 35
                              }
                            }
                          },
                          "range": [
                            3114,
                            3134
                          ],
                          "loc": {
                            "start": {
                              "line": 112,
                              "column": 16
                            },
                            "end": {
                              "line": 112,
                              "column": 36
                            }
                          }
                        },
                        "alternate": null,
                        "range": [
                          3006,
                          3134
                        ],
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 12
                          },
                          "end": {
                            "line": 112,
                            "column": 36
                          }
                        }
                      },
                      "range": [
                        2946,
                        3134
                      ],
                      "loc": {
                        "start": {
                          "line": 110,
                          "column": 8
                        },
                        "end": {
                          "line": 112,
                          "column": 36
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "Identifier",
                        "name": "typeChanged",
                        "range": [
                          3147,
                          3158
                        ],
                        "loc": {
                          "start": {
                            "line": 113,
                            "column": 12
                          },
                          "end": {
                            "line": 113,
                            "column": 23
                          }
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "argument": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "Identifier",
                            "name": "create",
                            "range": [
                              3179,
                              3185
                            ],
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 19
                              },
                              "end": {
                                "line": 114,
                                "column": 25
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "ccData",
                              "range": [
                                3186,
                                3192
                              ],
                              "loc": {
                                "start": {
                                  "line": 114,
                                  "column": 26
                                },
                                "end": {
                                  "line": 114,
                                  "column": 32
                                }
                              }
                            }
                          ],
                          "range": [
                            3179,
                            3193
                          ],
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 19
                            },
                            "end": {
                              "line": 114,
                              "column": 33
                            }
                          }
                        },
                        "range": [
                          3172,
                          3194
                        ],
                        "loc": {
                          "start": {
                            "line": 114,
                            "column": 12
                          },
                          "end": {
                            "line": 114,
                            "column": 34
                          }
                        }
                      },
                      "alternate": null,
                      "range": [
                        3143,
                        3194
                      ],
                      "loc": {
                        "start": {
                          "line": 113,
                          "column": 8
                        },
                        "end": {
                          "line": 114,
                          "column": 34
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "dimension",
                            "range": [
                              3203,
                              3212
                            ],
                            "loc": {
                              "start": {
                                "line": 115,
                                "column": 8
                              },
                              "end": {
                                "line": 115,
                                "column": 17
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "update",
                            "range": [
                              3213,
                              3219
                            ],
                            "loc": {
                              "start": {
                                "line": 115,
                                "column": 18
                              },
                              "end": {
                                "line": 115,
                                "column": 24
                              }
                            }
                          },
                          "range": [
                            3203,
                            3219
                          ],
                          "loc": {
                            "start": {
                              "line": 115,
                              "column": 8
                            },
                            "end": {
                              "line": 115,
                              "column": 24
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "ccData",
                            "range": [
                              3220,
                              3226
                            ],
                            "loc": {
                              "start": {
                                "line": 115,
                                "column": 25
                              },
                              "end": {
                                "line": 115,
                                "column": 31
                              }
                            }
                          }
                        ],
                        "range": [
                          3203,
                          3227
                        ],
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 8
                          },
                          "end": {
                            "line": 115,
                            "column": 32
                          }
                        }
                      },
                      "range": [
                        3203,
                        3228
                      ],
                      "loc": {
                        "start": {
                          "line": 115,
                          "column": 8
                        },
                        "end": {
                          "line": 115,
                          "column": 33
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "dimension",
                        "range": [
                          3244,
                          3253
                        ],
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 15
                          },
                          "end": {
                            "line": 116,
                            "column": 24
                          }
                        }
                      },
                      "range": [
                        3237,
                        3254
                      ],
                      "loc": {
                        "start": {
                          "line": 116,
                          "column": 8
                        },
                        "end": {
                          "line": 116,
                          "column": 25
                        }
                      }
                    }
                  ],
                  "range": [
                    2904,
                    3260
                  ],
                  "loc": {
                    "start": {
                      "line": 108,
                      "column": 30
                    },
                    "end": {
                      "line": 117,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  2884,
                  3260
                ],
                "loc": {
                  "start": {
                    "line": 108,
                    "column": 10
                  },
                  "end": {
                    "line": 117,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                2878,
                3260
              ],
              "loc": {
                "start": {
                  "line": 108,
                  "column": 4
                },
                "end": {
                  "line": 117,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Line",
                  "value": "update old dimension object or create new (if type have changed)",
                  "range": [
                    2768,
                    2834
                  ],
                  "loc": {
                    "start": {
                      "line": 106,
                      "column": 4
                    },
                    "end": {
                      "line": 106,
                      "column": 70
                    }
                  }
                },
                {
                  "type": "Line",
                  "value": "returns updated dimension object",
                  "range": [
                    2839,
                    2873
                  ],
                  "loc": {
                    "start": {
                      "line": 107,
                      "column": 4
                    },
                    "end": {
                      "line": 107,
                      "column": 38
                    }
                  }
                }
              ],
              "trailingComments": [
                {
                  "type": "Line",
                  "value": "create new dimension object",
                  "range": [
                    3265,
                    3294
                  ],
                  "loc": {
                    "start": {
                      "line": 118,
                      "column": 4
                    },
                    "end": {
                      "line": 118,
                      "column": 33
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "create",
                "range": [
                  3299,
                  3305
                ],
                "loc": {
                  "start": {
                    "line": 119,
                    "column": 4
                  },
                  "end": {
                    "line": 119,
                    "column": 10
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "ccData",
                    "range": [
                      3306,
                      3312
                    ],
                    "loc": {
                      "start": {
                        "line": 119,
                        "column": 11
                      },
                      "end": {
                        "line": 119,
                        "column": 17
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "constr",
                            "range": [
                              3328,
                              3334
                            ],
                            "loc": {
                              "start": {
                                "line": 120,
                                "column": 12
                              },
                              "end": {
                                "line": 120,
                                "column": 18
                              }
                            }
                          },
                          "init": {
                            "type": "Identifier",
                            "name": "undefined",
                            "range": [
                              3337,
                              3346
                            ],
                            "loc": {
                              "start": {
                                "line": 120,
                                "column": 21
                              },
                              "end": {
                                "line": 120,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            3328,
                            3346
                          ],
                          "loc": {
                            "start": {
                              "line": 120,
                              "column": 12
                            },
                            "end": {
                              "line": 120,
                              "column": 30
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        3324,
                        3347
                      ],
                      "loc": {
                        "start": {
                          "line": 120,
                          "column": 8
                        },
                        "end": {
                          "line": 120,
                          "column": 31
                        }
                      }
                    },
                    {
                      "type": "ForStatement",
                      "init": {
                        "type": "VariableDeclaration",
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "id": {
                              "type": "Identifier",
                              "name": "i",
                              "range": [
                                3365,
                                3366
                              ],
                              "loc": {
                                "start": {
                                  "line": 121,
                                  "column": 17
                                },
                                "end": {
                                  "line": 121,
                                  "column": 18
                                }
                              }
                            },
                            "init": {
                              "type": "Literal",
                              "value": 0,
                              "raw": "0",
                              "range": [
                                3369,
                                3370
                              ],
                              "loc": {
                                "start": {
                                  "line": 121,
                                  "column": 21
                                },
                                "end": {
                                  "line": 121,
                                  "column": 22
                                }
                              }
                            },
                            "range": [
                              3365,
                              3370
                            ],
                            "loc": {
                              "start": {
                                "line": 121,
                                "column": 17
                              },
                              "end": {
                                "line": 121,
                                "column": 22
                              }
                            }
                          }
                        ],
                        "kind": "var",
                        "range": [
                          3361,
                          3370
                        ],
                        "loc": {
                          "start": {
                            "line": 121,
                            "column": 13
                          },
                          "end": {
                            "line": 121,
                            "column": 22
                          }
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "operator": "<",
                        "left": {
                          "type": "Identifier",
                          "name": "i",
                          "range": [
                            3372,
                            3373
                          ],
                          "loc": {
                            "start": {
                              "line": 121,
                              "column": 24
                            },
                            "end": {
                              "line": 121,
                              "column": 25
                            }
                          }
                        },
                        "right": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "DimensionTypes",
                            "range": [
                              3376,
                              3390
                            ],
                            "loc": {
                              "start": {
                                "line": 121,
                                "column": 28
                              },
                              "end": {
                                "line": 121,
                                "column": 42
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "length",
                            "range": [
                              3391,
                              3397
                            ],
                            "loc": {
                              "start": {
                                "line": 121,
                                "column": 43
                              },
                              "end": {
                                "line": 121,
                                "column": 49
                              }
                            }
                          },
                          "range": [
                            3376,
                            3397
                          ],
                          "loc": {
                            "start": {
                              "line": 121,
                              "column": 28
                            },
                            "end": {
                              "line": 121,
                              "column": 49
                            }
                          }
                        },
                        "range": [
                          3372,
                          3397
                        ],
                        "loc": {
                          "start": {
                            "line": 121,
                            "column": 24
                          },
                          "end": {
                            "line": 121,
                            "column": 49
                          }
                        }
                      },
                      "update": {
                        "type": "UpdateExpression",
                        "operator": "++",
                        "argument": {
                          "type": "Identifier",
                          "name": "i",
                          "range": [
                            3399,
                            3400
                          ],
                          "loc": {
                            "start": {
                              "line": 121,
                              "column": 51
                            },
                            "end": {
                              "line": 121,
                              "column": 52
                            }
                          }
                        },
                        "prefix": false,
                        "range": [
                          3399,
                          3402
                        ],
                        "loc": {
                          "start": {
                            "line": 121,
                            "column": 51
                          },
                          "end": {
                            "line": 121,
                            "column": 54
                          }
                        }
                      },
                      "body": {
                        "type": "IfStatement",
                        "test": {
                          "type": "BinaryExpression",
                          "operator": "===",
                          "left": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "ccData",
                              "range": [
                                3420,
                                3426
                              ],
                              "loc": {
                                "start": {
                                  "line": 122,
                                  "column": 16
                                },
                                "end": {
                                  "line": 122,
                                  "column": 22
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "type",
                              "range": [
                                3427,
                                3431
                              ],
                              "loc": {
                                "start": {
                                  "line": 122,
                                  "column": 23
                                },
                                "end": {
                                  "line": 122,
                                  "column": 27
                                }
                              }
                            },
                            "range": [
                              3420,
                              3431
                            ],
                            "loc": {
                              "start": {
                                "line": 122,
                                "column": 16
                              },
                              "end": {
                                "line": 122,
                                "column": 27
                              }
                            }
                          },
                          "right": {
                            "type": "MemberExpression",
                            "computed": true,
                            "object": {
                              "type": "MemberExpression",
                              "computed": true,
                              "object": {
                                "type": "Identifier",
                                "name": "DimensionTypes",
                                "range": [
                                  3436,
                                  3450
                                ],
                                "loc": {
                                  "start": {
                                    "line": 122,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 122,
                                    "column": 46
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "i",
                                "range": [
                                  3451,
                                  3452
                                ],
                                "loc": {
                                  "start": {
                                    "line": 122,
                                    "column": 47
                                  },
                                  "end": {
                                    "line": 122,
                                    "column": 48
                                  }
                                }
                              },
                              "range": [
                                3436,
                                3453
                              ],
                              "loc": {
                                "start": {
                                  "line": 122,
                                  "column": 32
                                },
                                "end": {
                                  "line": 122,
                                  "column": 49
                                }
                              }
                            },
                            "property": {
                              "type": "Literal",
                              "value": 0,
                              "raw": "0",
                              "range": [
                                3454,
                                3455
                              ],
                              "loc": {
                                "start": {
                                  "line": 122,
                                  "column": 50
                                },
                                "end": {
                                  "line": 122,
                                  "column": 51
                                }
                              }
                            },
                            "range": [
                              3436,
                              3456
                            ],
                            "loc": {
                              "start": {
                                "line": 122,
                                "column": 32
                              },
                              "end": {
                                "line": 122,
                                "column": 52
                              }
                            }
                          },
                          "range": [
                            3420,
                            3456
                          ],
                          "loc": {
                            "start": {
                              "line": 122,
                              "column": 16
                            },
                            "end": {
                              "line": 122,
                              "column": 52
                            }
                          }
                        },
                        "consequent": {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "name": "constr",
                              "range": [
                                3474,
                                3480
                              ],
                              "loc": {
                                "start": {
                                  "line": 123,
                                  "column": 16
                                },
                                "end": {
                                  "line": 123,
                                  "column": 22
                                }
                              }
                            },
                            "right": {
                              "type": "MemberExpression",
                              "computed": true,
                              "object": {
                                "type": "MemberExpression",
                                "computed": true,
                                "object": {
                                  "type": "Identifier",
                                  "name": "DimensionTypes",
                                  "range": [
                                    3483,
                                    3497
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 39
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "i",
                                  "range": [
                                    3498,
                                    3499
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 40
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 41
                                    }
                                  }
                                },
                                "range": [
                                  3483,
                                  3500
                                ],
                                "loc": {
                                  "start": {
                                    "line": 123,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 123,
                                    "column": 42
                                  }
                                }
                              },
                              "property": {
                                "type": "Literal",
                                "value": 1,
                                "raw": "1",
                                "range": [
                                  3501,
                                  3502
                                ],
                                "loc": {
                                  "start": {
                                    "line": 123,
                                    "column": 43
                                  },
                                  "end": {
                                    "line": 123,
                                    "column": 44
                                  }
                                }
                              },
                              "range": [
                                3483,
                                3503
                              ],
                              "loc": {
                                "start": {
                                  "line": 123,
                                  "column": 25
                                },
                                "end": {
                                  "line": 123,
                                  "column": 45
                                }
                              }
                            },
                            "range": [
                              3474,
                              3503
                            ],
                            "loc": {
                              "start": {
                                "line": 123,
                                "column": 16
                              },
                              "end": {
                                "line": 123,
                                "column": 45
                              }
                            }
                          },
                          "range": [
                            3474,
                            3504
                          ],
                          "loc": {
                            "start": {
                              "line": 123,
                              "column": 16
                            },
                            "end": {
                              "line": 123,
                              "column": 46
                            }
                          }
                        },
                        "alternate": null,
                        "range": [
                          3416,
                          3504
                        ],
                        "loc": {
                          "start": {
                            "line": 122,
                            "column": 12
                          },
                          "end": {
                            "line": 123,
                            "column": 46
                          }
                        }
                      },
                      "range": [
                        3356,
                        3504
                      ],
                      "loc": {
                        "start": {
                          "line": 121,
                          "column": 8
                        },
                        "end": {
                          "line": 123,
                          "column": 46
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "UnaryExpression",
                        "operator": "!",
                        "argument": {
                          "type": "Identifier",
                          "name": "constr",
                          "range": [
                            3518,
                            3524
                          ],
                          "loc": {
                            "start": {
                              "line": 124,
                              "column": 13
                            },
                            "end": {
                              "line": 124,
                              "column": 19
                            }
                          }
                        },
                        "prefix": true,
                        "range": [
                          3517,
                          3524
                        ],
                        "loc": {
                          "start": {
                            "line": 124,
                            "column": 12
                          },
                          "end": {
                            "line": 124,
                            "column": 19
                          }
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "argument": {
                          "type": "Identifier",
                          "name": "undefined",
                          "range": [
                            3545,
                            3554
                          ],
                          "loc": {
                            "start": {
                              "line": 125,
                              "column": 19
                            },
                            "end": {
                              "line": 125,
                              "column": 28
                            }
                          }
                        },
                        "range": [
                          3538,
                          3555
                        ],
                        "loc": {
                          "start": {
                            "line": 125,
                            "column": 12
                          },
                          "end": {
                            "line": 125,
                            "column": 29
                          }
                        }
                      },
                      "alternate": null,
                      "range": [
                        3513,
                        3555
                      ],
                      "loc": {
                        "start": {
                          "line": 124,
                          "column": 8
                        },
                        "end": {
                          "line": 125,
                          "column": 29
                        }
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "dimension",
                            "range": [
                              3568,
                              3577
                            ],
                            "loc": {
                              "start": {
                                "line": 126,
                                "column": 12
                              },
                              "end": {
                                "line": 126,
                                "column": 21
                              }
                            }
                          },
                          "init": {
                            "type": "NewExpression",
                            "callee": {
                              "type": "Identifier",
                              "name": "constr",
                              "range": [
                                3584,
                                3590
                              ],
                              "loc": {
                                "start": {
                                  "line": 126,
                                  "column": 28
                                },
                                "end": {
                                  "line": 126,
                                  "column": 34
                                }
                              }
                            },
                            "arguments": [],
                            "range": [
                              3580,
                              3592
                            ],
                            "loc": {
                              "start": {
                                "line": 126,
                                "column": 24
                              },
                              "end": {
                                "line": 126,
                                "column": 36
                              }
                            }
                          },
                          "range": [
                            3568,
                            3592
                          ],
                          "loc": {
                            "start": {
                              "line": 126,
                              "column": 12
                            },
                            "end": {
                              "line": 126,
                              "column": 36
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        3564,
                        3593
                      ],
                      "loc": {
                        "start": {
                          "line": 126,
                          "column": 8
                        },
                        "end": {
                          "line": 126,
                          "column": 37
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "dimension",
                            "range": [
                              3602,
                              3611
                            ],
                            "loc": {
                              "start": {
                                "line": 127,
                                "column": 8
                              },
                              "end": {
                                "line": 127,
                                "column": 17
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "update",
                            "range": [
                              3612,
                              3618
                            ],
                            "loc": {
                              "start": {
                                "line": 127,
                                "column": 18
                              },
                              "end": {
                                "line": 127,
                                "column": 24
                              }
                            }
                          },
                          "range": [
                            3602,
                            3618
                          ],
                          "loc": {
                            "start": {
                              "line": 127,
                              "column": 8
                            },
                            "end": {
                              "line": 127,
                              "column": 24
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "ccData",
                            "range": [
                              3619,
                              3625
                            ],
                            "loc": {
                              "start": {
                                "line": 127,
                                "column": 25
                              },
                              "end": {
                                "line": 127,
                                "column": 31
                              }
                            }
                          }
                        ],
                        "range": [
                          3602,
                          3626
                        ],
                        "loc": {
                          "start": {
                            "line": 127,
                            "column": 8
                          },
                          "end": {
                            "line": 127,
                            "column": 32
                          }
                        }
                      },
                      "range": [
                        3602,
                        3627
                      ],
                      "loc": {
                        "start": {
                          "line": 127,
                          "column": 8
                        },
                        "end": {
                          "line": 127,
                          "column": 33
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "dimension",
                        "range": [
                          3643,
                          3652
                        ],
                        "loc": {
                          "start": {
                            "line": 128,
                            "column": 15
                          },
                          "end": {
                            "line": 128,
                            "column": 24
                          }
                        }
                      },
                      "range": [
                        3636,
                        3653
                      ],
                      "loc": {
                        "start": {
                          "line": 128,
                          "column": 8
                        },
                        "end": {
                          "line": 128,
                          "column": 25
                        }
                      }
                    }
                  ],
                  "range": [
                    3314,
                    3659
                  ],
                  "loc": {
                    "start": {
                      "line": 119,
                      "column": 19
                    },
                    "end": {
                      "line": 129,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  3305,
                  3659
                ],
                "loc": {
                  "start": {
                    "line": 119,
                    "column": 10
                  },
                  "end": {
                    "line": 129,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                3299,
                3659
              ],
              "loc": {
                "start": {
                  "line": 119,
                  "column": 4
                },
                "end": {
                  "line": 129,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Line",
                  "value": "create new dimension object",
                  "range": [
                    3265,
                    3294
                  ],
                  "loc": {
                    "start": {
                      "line": 118,
                      "column": 4
                    },
                    "end": {
                      "line": 118,
                      "column": 33
                    }
                  }
                }
              ],
              "static": false
            }
          ],
          "range": [
            2761,
            3661
          ],
          "loc": {
            "start": {
              "line": 104,
              "column": 34
            },
            "end": {
              "line": 130,
              "column": 1
            }
          }
        },
        "range": [
          2734,
          3661
        ],
        "loc": {
          "start": {
            "line": 104,
            "column": 7
          },
          "end": {
            "line": 130,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Line",
            "value": "... //TODO",
            "range": [
              2709,
              2721
            ],
            "loc": {
              "start": {
                "line": 100,
                "column": 4
              },
              "end": {
                "line": 100,
                "column": 16
              }
            }
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "range": [
        2727,
        3661
      ],
      "loc": {
        "start": {
          "line": 104,
          "column": 0
        },
        "end": {
          "line": 130,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Line",
          "value": "... //TODO",
          "range": [
            2709,
            2721
          ],
          "loc": {
            "start": {
              "line": 100,
              "column": 4
            },
            "end": {
              "line": 100,
              "column": 16
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    3661
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 130,
      "column": 1
    }
  },
  "comments": [
    {
      "type": "Line",
      "value": "TODO:",
      "range": [
        813,
        820
      ],
      "loc": {
        "start": {
          "line": 30,
          "column": 8
        },
        "end": {
          "line": 30,
          "column": 15
        }
      }
    },
    {
      "type": "Line",
      "value": "TODO",
      "range": [
        862,
        868
      ],
      "loc": {
        "start": {
          "line": 33,
          "column": 8
        },
        "end": {
          "line": 33,
          "column": 14
        }
      }
    },
    {
      "type": "Line",
      "value": "TODO",
      "range": [
        1416,
        1422
      ],
      "loc": {
        "start": {
          "line": 60,
          "column": 42
        },
        "end": {
          "line": 60,
          "column": 48
        }
      }
    },
    {
      "type": "Line",
      "value": "all points assumed to be on {Z = 0} plane",
      "range": [
        1432,
        1475
      ],
      "loc": {
        "start": {
          "line": 62,
          "column": 8
        },
        "end": {
          "line": 62,
          "column": 51
        }
      }
    },
    {
      "type": "Line",
      "value": "TODO: other types",
      "range": [
        2373,
        2392
      ],
      "loc": {
        "start": {
          "line": 85,
          "column": 0
        },
        "end": {
          "line": 85,
          "column": 19
        }
      }
    },
    {
      "type": "Block",
      "value": "class RadiusDimension extends Dimension {\n    constructor() {\n        super();\n    }\n}\nclass DiameterDimension extends Dimension {\n    constructor() {\n        super();\n    }\n}",
      "range": [
        2393,
        2572
      ],
      "loc": {
        "start": {
          "line": 86,
          "column": 0
        },
        "end": {
          "line": 95,
          "column": 3
        }
      }
    },
    {
      "type": "Line",
      "value": "... //TODO",
      "range": [
        2709,
        2721
      ],
      "loc": {
        "start": {
          "line": 100,
          "column": 4
        },
        "end": {
          "line": 100,
          "column": 16
        }
      }
    },
    {
      "type": "Line",
      "value": "update old dimension object or create new (if type have changed)",
      "range": [
        2768,
        2834
      ],
      "loc": {
        "start": {
          "line": 106,
          "column": 4
        },
        "end": {
          "line": 106,
          "column": 70
        }
      }
    },
    {
      "type": "Line",
      "value": "returns updated dimension object",
      "range": [
        2839,
        2873
      ],
      "loc": {
        "start": {
          "line": 107,
          "column": 4
        },
        "end": {
          "line": 107,
          "column": 38
        }
      }
    },
    {
      "type": "Line",
      "value": "create new dimension object",
      "range": [
        3265,
        3294
      ],
      "loc": {
        "start": {
          "line": 118,
          "column": 4
        },
        "end": {
          "line": 118,
          "column": 33
        }
      }
    }
  ]
}