{
  "type": "File",
  "start": 0,
  "end": 5987,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 131,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 5987,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 131,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "VariableDeclaration",
        "start": 14,
        "end": 79,
        "loc": {
          "start": {
            "line": 2,
            "column": 0
          },
          "end": {
            "line": 2,
            "column": 65
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 20,
            "end": 78,
            "loc": {
              "start": {
                "line": 2,
                "column": 6
              },
              "end": {
                "line": 2,
                "column": 64
              }
            },
            "id": {
              "type": "Identifier",
              "start": 20,
              "end": 36,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 6
                },
                "end": {
                  "line": 2,
                  "column": 22
                },
                "identifierName": "AssociationError"
              },
              "name": "AssociationError"
            },
            "init": {
              "type": "MemberExpression",
              "start": 39,
              "end": 78,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 25
                },
                "end": {
                  "line": 2,
                  "column": 64
                }
              },
              "object": {
                "type": "CallExpression",
                "start": 39,
                "end": 61,
                "loc": {
                  "start": {
                    "line": 2,
                    "column": 25
                  },
                  "end": {
                    "line": 2,
                    "column": 47
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 39,
                  "end": 46,
                  "loc": {
                    "start": {
                      "line": 2,
                      "column": 25
                    },
                    "end": {
                      "line": 2,
                      "column": 32
                    },
                    "identifierName": "require"
                  },
                  "name": "require"
                },
                "arguments": [
                  {
                    "type": "StringLiteral",
                    "start": 47,
                    "end": 60,
                    "loc": {
                      "start": {
                        "line": 2,
                        "column": 33
                      },
                      "end": {
                        "line": 2,
                        "column": 46
                      }
                    },
                    "extra": {
                      "rawValue": "./../errors",
                      "raw": "'./../errors'"
                    },
                    "value": "./../errors"
                  }
                ]
              },
              "property": {
                "type": "Identifier",
                "start": 62,
                "end": 78,
                "loc": {
                  "start": {
                    "line": 2,
                    "column": 48
                  },
                  "end": {
                    "line": 2,
                    "column": 64
                  },
                  "identifierName": "AssociationError"
                },
                "name": "AssociationError"
              },
              "computed": false
            }
          }
        ],
        "kind": "const",
        "trailingComments": [
          {
            "type": "CommentBlock",
            "value": "*\n * Creating associations in sequelize is done by calling one of the belongsTo / hasOne / hasMany / belongsToMany functions on a model (the source), and providing another model as the first argument to the function (the target).\n *\n * * hasOne - adds a foreign key to the target and singular association mixins to the source.\n * * belongsTo - add a foreign key and singular association mixins to the source.\n * * hasMany - adds a foreign key to target and plural association mixins to the source.\n * * belongsToMany - creates an N:M association with a join table and adds plural association mixins to the source. The junction table is created with sourceId and targetId.\n *\n * Creating an association will add a foreign key constraint to the attributes. All associations use `CASCADE` on update and `SET NULL` on delete, except for n:m, which also uses `CASCADE` on delete.\n *\n * When creating associations, you can provide an alias, via the `as` option. This is useful if the same model is associated twice, or you want your association to be called something other than the name of the target model.\n *\n * As an example, consider the case where users have many pictures, one of which is their profile picture. All pictures have a `userId`, but in addition the user model also has a `profilePictureId`, to be able to easily load the user's profile picture.\n *\n * ```js\n * User.hasMany(Picture)\n * User.belongsTo(Picture, { as: 'ProfilePicture', constraints: false })\n *\n * user.getPictures() // gets you all pictures\n * user.getProfilePicture() // gets you only the profile picture\n *\n * User.findAll({\n *   where: ...,\n *   include: [\n *     { model: Picture }, // load all pictures\n *     { model: Picture, as: 'ProfilePicture' }, // load the profile picture.\n *     // Notice that the spelling must be the exact same as the one in the association\n *   ]\n * })\n * ```\n * To get full control over the foreign key column added by sequelize, you can use the `foreignKey` option. It can either be a string, that specifies the name, or and object type definition,\n * equivalent to those passed to `sequelize.define`.\n *\n * ```js\n * User.hasMany(Picture, { foreignKey: 'uid' })\n * ```\n *\n * The foreign key column in Picture will now be called `uid` instead of the default `userId`.\n *\n * ```js\n * User.hasMany(Picture, {\n *   foreignKey: {\n *     name: 'uid',\n *     allowNull: false\n *   }\n * })\n * ```\n *\n * This specifies that the `uid` column cannot be null. In most cases this will already be covered by the foreign key constraints, which sequelize creates automatically, but can be useful in case where the foreign keys are disabled, e.g. due to circular references (see `constraints: false` below).\n *\n * When fetching associated models, you can limit your query to only load some models. These queries are written in the same way as queries to `find`/`findAll`. To only get pictures in JPG, you can do:\n *\n * ```js\n * user.getPictures({\n *   where: {\n *     format: 'jpg'\n *   }\n * })\n * ```\n *\n * There are several ways to update and add new associations. Continuing with our example of users and pictures:\n * ```js\n * user.addPicture(p) // Add a single picture\n * user.setPictures([p1, p2]) // Associate user with ONLY these two picture, all other associations will be deleted\n * user.addPictures([p1, p2]) // Associate user with these two pictures, but don't touch any current associations\n * ```\n *\n * You don't have to pass in a complete object to the association functions, if your associated model has a single primary key:\n *\n * ```js\n * user.addPicture(req.query.pid) // Here pid is just an integer, representing the primary key of the picture\n * ```\n *\n * In the example above we have specified that a user belongs to his profile picture. Conceptually, this might not make sense, but since we want to add the foreign key to the user model this is the way to do it.\n *\n * Note how we also specified `constraints: false` for profile picture. This is because we add a foreign key from user to picture (profilePictureId), and from picture to user (userId). If we were to add foreign keys to both, it would create a cyclic dependency, and sequelize would not know which table to create first, since user depends on picture, and picture depends on user. These kinds of problems are detected by sequelize before the models are synced to the database, and you will get an error along the lines of `Error: Cyclic dependency found. 'users' is dependent of itself`. If you encounter this, you should either disable some constraints, or rethink your associations completely.\n ",
            "start": 82,
            "end": 4667,
            "loc": {
              "start": {
                "line": 5,
                "column": 0
              },
              "end": {
                "line": 81,
                "column": 3
              }
            }
          }
        ]
      },
      {
        "type": "ClassDeclaration",
        "start": 4668,
        "end": 5955,
        "loc": {
          "start": {
            "line": 82,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 4674,
          "end": 4685,
          "loc": {
            "start": {
              "line": 82,
              "column": 6
            },
            "end": {
              "line": 82,
              "column": 17
            },
            "identifierName": "Association"
          },
          "name": "Association",
          "leadingComments": null
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "start": 4686,
          "end": 5955,
          "loc": {
            "start": {
              "line": 82,
              "column": 18
            },
            "end": {
              "line": 128,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ClassMethod",
              "start": 4690,
              "end": 5411,
              "loc": {
                "start": {
                  "line": 83,
                  "column": 2
                },
                "end": {
                  "line": 108,
                  "column": 3
                }
              },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 4690,
                "end": 4701,
                "loc": {
                  "start": {
                    "line": 83,
                    "column": 2
                  },
                  "end": {
                    "line": 83,
                    "column": 13
                  },
                  "identifierName": "constructor"
                },
                "name": "constructor"
              },
              "static": false,
              "kind": "constructor",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 4702,
                  "end": 4708,
                  "loc": {
                    "start": {
                      "line": 83,
                      "column": 14
                    },
                    "end": {
                      "line": 83,
                      "column": 20
                    },
                    "identifierName": "source"
                  },
                  "name": "source"
                },
                {
                  "type": "Identifier",
                  "start": 4710,
                  "end": 4716,
                  "loc": {
                    "start": {
                      "line": 83,
                      "column": 22
                    },
                    "end": {
                      "line": 83,
                      "column": 28
                    },
                    "identifierName": "target"
                  },
                  "name": "target"
                },
                {
                  "type": "Identifier",
                  "start": 4718,
                  "end": 4725,
                  "loc": {
                    "start": {
                      "line": 83,
                      "column": 30
                    },
                    "end": {
                      "line": 83,
                      "column": 37
                    },
                    "identifierName": "options"
                  },
                  "name": "options"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 4727,
                "end": 5411,
                "loc": {
                  "start": {
                    "line": 83,
                    "column": 39
                  },
                  "end": {
                    "line": 108,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 4733,
                    "end": 4757,
                    "loc": {
                      "start": {
                        "line": 84,
                        "column": 4
                      },
                      "end": {
                        "line": 84,
                        "column": 28
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 4733,
                      "end": 4756,
                      "loc": {
                        "start": {
                          "line": 84,
                          "column": 4
                        },
                        "end": {
                          "line": 84,
                          "column": 27
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "Identifier",
                        "start": 4733,
                        "end": 4740,
                        "loc": {
                          "start": {
                            "line": 84,
                            "column": 4
                          },
                          "end": {
                            "line": 84,
                            "column": 11
                          },
                          "identifierName": "options"
                        },
                        "name": "options"
                      },
                      "right": {
                        "type": "LogicalExpression",
                        "start": 4743,
                        "end": 4756,
                        "loc": {
                          "start": {
                            "line": 84,
                            "column": 14
                          },
                          "end": {
                            "line": 84,
                            "column": 27
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 4743,
                          "end": 4750,
                          "loc": {
                            "start": {
                              "line": 84,
                              "column": 14
                            },
                            "end": {
                              "line": 84,
                              "column": 21
                            },
                            "identifierName": "options"
                          },
                          "name": "options"
                        },
                        "operator": "||",
                        "right": {
                          "type": "ObjectExpression",
                          "start": 4754,
                          "end": 4756,
                          "loc": {
                            "start": {
                              "line": 84,
                              "column": 25
                            },
                            "end": {
                              "line": 84,
                              "column": 27
                            }
                          },
                          "properties": []
                        }
                      }
                    },
                    "trailingComments": [
                      {
                        "type": "CommentBlock",
                        "value": "*\n     * @type {Model}\n     ",
                        "start": 4762,
                        "end": 4794,
                        "loc": {
                          "start": {
                            "line": 85,
                            "column": 4
                          },
                          "end": {
                            "line": 87,
                            "column": 7
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 4799,
                    "end": 4820,
                    "loc": {
                      "start": {
                        "line": 88,
                        "column": 4
                      },
                      "end": {
                        "line": 88,
                        "column": 25
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 4799,
                      "end": 4819,
                      "loc": {
                        "start": {
                          "line": 88,
                          "column": 4
                        },
                        "end": {
                          "line": 88,
                          "column": 24
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 4799,
                        "end": 4810,
                        "loc": {
                          "start": {
                            "line": 88,
                            "column": 4
                          },
                          "end": {
                            "line": 88,
                            "column": 15
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 4799,
                          "end": 4803,
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 4
                            },
                            "end": {
                              "line": 88,
                              "column": 8
                            }
                          },
                          "leadingComments": null
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 4804,
                          "end": 4810,
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 9
                            },
                            "end": {
                              "line": 88,
                              "column": 15
                            },
                            "identifierName": "source"
                          },
                          "name": "source"
                        },
                        "computed": false,
                        "leadingComments": null
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 4813,
                        "end": 4819,
                        "loc": {
                          "start": {
                            "line": 88,
                            "column": 18
                          },
                          "end": {
                            "line": 88,
                            "column": 24
                          },
                          "identifierName": "source"
                        },
                        "name": "source"
                      },
                      "leadingComments": null
                    },
                    "leadingComments": [
                      {
                        "type": "CommentBlock",
                        "value": "*\n     * @type {Model}\n     ",
                        "start": 4762,
                        "end": 4794,
                        "loc": {
                          "start": {
                            "line": 85,
                            "column": 4
                          },
                          "end": {
                            "line": 87,
                            "column": 7
                          }
                        }
                      }
                    ],
                    "trailingComments": [
                      {
                        "type": "CommentBlock",
                        "value": "*\n     * @type {Model}\n     ",
                        "start": 4825,
                        "end": 4857,
                        "loc": {
                          "start": {
                            "line": 89,
                            "column": 4
                          },
                          "end": {
                            "line": 91,
                            "column": 7
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 4862,
                    "end": 4883,
                    "loc": {
                      "start": {
                        "line": 92,
                        "column": 4
                      },
                      "end": {
                        "line": 92,
                        "column": 25
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 4862,
                      "end": 4882,
                      "loc": {
                        "start": {
                          "line": 92,
                          "column": 4
                        },
                        "end": {
                          "line": 92,
                          "column": 24
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 4862,
                        "end": 4873,
                        "loc": {
                          "start": {
                            "line": 92,
                            "column": 4
                          },
                          "end": {
                            "line": 92,
                            "column": 15
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 4862,
                          "end": 4866,
                          "loc": {
                            "start": {
                              "line": 92,
                              "column": 4
                            },
                            "end": {
                              "line": 92,
                              "column": 8
                            }
                          },
                          "leadingComments": null
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 4867,
                          "end": 4873,
                          "loc": {
                            "start": {
                              "line": 92,
                              "column": 9
                            },
                            "end": {
                              "line": 92,
                              "column": 15
                            },
                            "identifierName": "target"
                          },
                          "name": "target"
                        },
                        "computed": false,
                        "leadingComments": null
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 4876,
                        "end": 4882,
                        "loc": {
                          "start": {
                            "line": 92,
                            "column": 18
                          },
                          "end": {
                            "line": 92,
                            "column": 24
                          },
                          "identifierName": "target"
                        },
                        "name": "target"
                      },
                      "leadingComments": null
                    },
                    "leadingComments": [
                      {
                        "type": "CommentBlock",
                        "value": "*\n     * @type {Model}\n     ",
                        "start": 4825,
                        "end": 4857,
                        "loc": {
                          "start": {
                            "line": 89,
                            "column": 4
                          },
                          "end": {
                            "line": 91,
                            "column": 7
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 4888,
                    "end": 4911,
                    "loc": {
                      "start": {
                        "line": 93,
                        "column": 4
                      },
                      "end": {
                        "line": 93,
                        "column": 27
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 4888,
                      "end": 4910,
                      "loc": {
                        "start": {
                          "line": 93,
                          "column": 4
                        },
                        "end": {
                          "line": 93,
                          "column": 26
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 4888,
                        "end": 4900,
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 4
                          },
                          "end": {
                            "line": 93,
                            "column": 16
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 4888,
                          "end": 4892,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 4
                            },
                            "end": {
                              "line": 93,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 4893,
                          "end": 4900,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 9
                            },
                            "end": {
                              "line": 93,
                              "column": 16
                            },
                            "identifierName": "options"
                          },
                          "name": "options"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 4903,
                        "end": 4910,
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 19
                          },
                          "end": {
                            "line": 93,
                            "column": 26
                          },
                          "identifierName": "options"
                        },
                        "name": "options"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 4916,
                    "end": 4943,
                    "loc": {
                      "start": {
                        "line": 94,
                        "column": 4
                      },
                      "end": {
                        "line": 94,
                        "column": 31
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 4916,
                      "end": 4942,
                      "loc": {
                        "start": {
                          "line": 94,
                          "column": 4
                        },
                        "end": {
                          "line": 94,
                          "column": 30
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 4916,
                        "end": 4926,
                        "loc": {
                          "start": {
                            "line": 94,
                            "column": 4
                          },
                          "end": {
                            "line": 94,
                            "column": 14
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 4916,
                          "end": 4920,
                          "loc": {
                            "start": {
                              "line": 94,
                              "column": 4
                            },
                            "end": {
                              "line": 94,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 4921,
                          "end": 4926,
                          "loc": {
                            "start": {
                              "line": 94,
                              "column": 9
                            },
                            "end": {
                              "line": 94,
                              "column": 14
                            },
                            "identifierName": "scope"
                          },
                          "name": "scope"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 4929,
                        "end": 4942,
                        "loc": {
                          "start": {
                            "line": 94,
                            "column": 17
                          },
                          "end": {
                            "line": 94,
                            "column": 30
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 4929,
                          "end": 4936,
                          "loc": {
                            "start": {
                              "line": 94,
                              "column": 17
                            },
                            "end": {
                              "line": 94,
                              "column": 24
                            },
                            "identifierName": "options"
                          },
                          "name": "options"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 4937,
                          "end": 4942,
                          "loc": {
                            "start": {
                              "line": 94,
                              "column": 25
                            },
                            "end": {
                              "line": 94,
                              "column": 30
                            },
                            "identifierName": "scope"
                          },
                          "name": "scope"
                        },
                        "computed": false
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 4948,
                    "end": 5003,
                    "loc": {
                      "start": {
                        "line": 95,
                        "column": 4
                      },
                      "end": {
                        "line": 95,
                        "column": 59
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 4948,
                      "end": 5002,
                      "loc": {
                        "start": {
                          "line": 95,
                          "column": 4
                        },
                        "end": {
                          "line": 95,
                          "column": 58
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 4948,
                        "end": 4970,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 4
                          },
                          "end": {
                            "line": 95,
                            "column": 26
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 4948,
                          "end": 4952,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 4
                            },
                            "end": {
                              "line": 95,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 4953,
                          "end": 4970,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 9
                            },
                            "end": {
                              "line": 95,
                              "column": 26
                            },
                            "identifierName": "isSelfAssociation"
                          },
                          "name": "isSelfAssociation"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "BinaryExpression",
                        "start": 4974,
                        "end": 5001,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 30
                          },
                          "end": {
                            "line": 95,
                            "column": 57
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 4974,
                          "end": 4985,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 30
                            },
                            "end": {
                              "line": 95,
                              "column": 41
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 4974,
                            "end": 4978,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 30
                              },
                              "end": {
                                "line": 95,
                                "column": 34
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4979,
                            "end": 4985,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 35
                              },
                              "end": {
                                "line": 95,
                                "column": 41
                              },
                              "identifierName": "source"
                            },
                            "name": "source"
                          },
                          "computed": false
                        },
                        "operator": "===",
                        "right": {
                          "type": "MemberExpression",
                          "start": 4990,
                          "end": 5001,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 46
                            },
                            "end": {
                              "line": 95,
                              "column": 57
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 4990,
                            "end": 4994,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 46
                              },
                              "end": {
                                "line": 95,
                                "column": 50
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4995,
                            "end": 5001,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 51
                              },
                              "end": {
                                "line": 95,
                                "column": 57
                              },
                              "identifierName": "target"
                            },
                            "name": "target"
                          },
                          "computed": false
                        },
                        "extra": {
                          "parenthesized": true,
                          "parenStart": 4973
                        }
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 5008,
                    "end": 5029,
                    "loc": {
                      "start": {
                        "line": 96,
                        "column": 4
                      },
                      "end": {
                        "line": 96,
                        "column": 25
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 5008,
                      "end": 5028,
                      "loc": {
                        "start": {
                          "line": 96,
                          "column": 4
                        },
                        "end": {
                          "line": 96,
                          "column": 24
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 5008,
                        "end": 5015,
                        "loc": {
                          "start": {
                            "line": 96,
                            "column": 4
                          },
                          "end": {
                            "line": 96,
                            "column": 11
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 5008,
                          "end": 5012,
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 4
                            },
                            "end": {
                              "line": 96,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 5013,
                          "end": 5015,
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 9
                            },
                            "end": {
                              "line": 96,
                              "column": 11
                            },
                            "identifierName": "as"
                          },
                          "name": "as"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 5018,
                        "end": 5028,
                        "loc": {
                          "start": {
                            "line": 96,
                            "column": 14
                          },
                          "end": {
                            "line": 96,
                            "column": 24
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 5018,
                          "end": 5025,
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 14
                            },
                            "end": {
                              "line": 96,
                              "column": 21
                            },
                            "identifierName": "options"
                          },
                          "name": "options"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 5026,
                          "end": 5028,
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 22
                            },
                            "end": {
                              "line": 96,
                              "column": 24
                            },
                            "identifierName": "as"
                          },
                          "name": "as"
                        },
                        "computed": false
                      }
                    },
                    "trailingComments": [
                      {
                        "type": "CommentBlock",
                        "value": "*\n     * The type of the association. One of `HasMany`, `BelongsTo`, `HasOne`, `BelongsToMany`\n     * @type {string}\n     ",
                        "start": 5034,
                        "end": 5160,
                        "loc": {
                          "start": {
                            "line": 97,
                            "column": 4
                          },
                          "end": {
                            "line": 100,
                            "column": 7
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 5165,
                    "end": 5191,
                    "loc": {
                      "start": {
                        "line": 101,
                        "column": 4
                      },
                      "end": {
                        "line": 101,
                        "column": 30
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 5165,
                      "end": 5190,
                      "loc": {
                        "start": {
                          "line": 101,
                          "column": 4
                        },
                        "end": {
                          "line": 101,
                          "column": 29
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 5165,
                        "end": 5185,
                        "loc": {
                          "start": {
                            "line": 101,
                            "column": 4
                          },
                          "end": {
                            "line": 101,
                            "column": 24
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 5165,
                          "end": 5169,
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 4
                            },
                            "end": {
                              "line": 101,
                              "column": 8
                            }
                          },
                          "leadingComments": null
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 5170,
                          "end": 5185,
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 9
                            },
                            "end": {
                              "line": 101,
                              "column": 24
                            },
                            "identifierName": "associationType"
                          },
                          "name": "associationType"
                        },
                        "computed": false,
                        "leadingComments": null
                      },
                      "right": {
                        "type": "StringLiteral",
                        "start": 5188,
                        "end": 5190,
                        "loc": {
                          "start": {
                            "line": 101,
                            "column": 27
                          },
                          "end": {
                            "line": 101,
                            "column": 29
                          }
                        },
                        "extra": {
                          "rawValue": "",
                          "raw": "''"
                        },
                        "value": ""
                      },
                      "leadingComments": null
                    },
                    "leadingComments": [
                      {
                        "type": "CommentBlock",
                        "value": "*\n     * The type of the association. One of `HasMany`, `BelongsTo`, `HasOne`, `BelongsToMany`\n     * @type {string}\n     ",
                        "start": 5034,
                        "end": 5160,
                        "loc": {
                          "start": {
                            "line": 97,
                            "column": 4
                          },
                          "end": {
                            "line": 100,
                            "column": 7
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "IfStatement",
                    "start": 5197,
                    "end": 5407,
                    "loc": {
                      "start": {
                        "line": 103,
                        "column": 4
                      },
                      "end": {
                        "line": 107,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "CallExpression",
                      "start": 5201,
                      "end": 5228,
                      "loc": {
                        "start": {
                          "line": 103,
                          "column": 8
                        },
                        "end": {
                          "line": 103,
                          "column": 35
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 5201,
                        "end": 5216,
                        "loc": {
                          "start": {
                            "line": 103,
                            "column": 8
                          },
                          "end": {
                            "line": 103,
                            "column": 23
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 5201,
                          "end": 5207,
                          "loc": {
                            "start": {
                              "line": 103,
                              "column": 8
                            },
                            "end": {
                              "line": 103,
                              "column": 14
                            },
                            "identifierName": "source"
                          },
                          "name": "source"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 5208,
                          "end": 5216,
                          "loc": {
                            "start": {
                              "line": 103,
                              "column": 15
                            },
                            "end": {
                              "line": 103,
                              "column": 23
                            },
                            "identifierName": "hasAlias"
                          },
                          "name": "hasAlias"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "start": 5217,
                          "end": 5227,
                          "loc": {
                            "start": {
                              "line": 103,
                              "column": 24
                            },
                            "end": {
                              "line": 103,
                              "column": 34
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 5217,
                            "end": 5224,
                            "loc": {
                              "start": {
                                "line": 103,
                                "column": 24
                              },
                              "end": {
                                "line": 103,
                                "column": 31
                              },
                              "identifierName": "options"
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5225,
                            "end": 5227,
                            "loc": {
                              "start": {
                                "line": 103,
                                "column": 32
                              },
                              "end": {
                                "line": 103,
                                "column": 34
                              },
                              "identifierName": "as"
                            },
                            "name": "as"
                          },
                          "computed": false
                        }
                      ]
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 5230,
                      "end": 5407,
                      "loc": {
                        "start": {
                          "line": 103,
                          "column": 37
                        },
                        "end": {
                          "line": 107,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "ThrowStatement",
                          "start": 5238,
                          "end": 5401,
                          "loc": {
                            "start": {
                              "line": 104,
                              "column": 6
                            },
                            "end": {
                              "line": 106,
                              "column": 8
                            }
                          },
                          "argument": {
                            "type": "NewExpression",
                            "start": 5244,
                            "end": 5400,
                            "loc": {
                              "start": {
                                "line": 104,
                                "column": 12
                              },
                              "end": {
                                "line": 106,
                                "column": 7
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 5248,
                              "end": 5264,
                              "loc": {
                                "start": {
                                  "line": 104,
                                  "column": 16
                                },
                                "end": {
                                  "line": 104,
                                  "column": 32
                                },
                                "identifierName": "AssociationError"
                              },
                              "name": "AssociationError"
                            },
                            "arguments": [
                              {
                                "type": "BinaryExpression",
                                "start": 5265,
                                "end": 5392,
                                "loc": {
                                  "start": {
                                    "line": 104,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 105,
                                    "column": 54
                                  }
                                },
                                "left": {
                                  "type": "TemplateLiteral",
                                  "start": 5265,
                                  "end": 5335,
                                  "loc": {
                                    "start": {
                                      "line": 104,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 104,
                                      "column": 103
                                    }
                                  },
                                  "expressions": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 5292,
                                      "end": 5302,
                                      "loc": {
                                        "start": {
                                          "line": 104,
                                          "column": 60
                                        },
                                        "end": {
                                          "line": 104,
                                          "column": 70
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5292,
                                        "end": 5299,
                                        "loc": {
                                          "start": {
                                            "line": 104,
                                            "column": 60
                                          },
                                          "end": {
                                            "line": 104,
                                            "column": 67
                                          },
                                          "identifierName": "options"
                                        },
                                        "name": "options"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5300,
                                        "end": 5302,
                                        "loc": {
                                          "start": {
                                            "line": 104,
                                            "column": 68
                                          },
                                          "end": {
                                            "line": 104,
                                            "column": 70
                                          },
                                          "identifierName": "as"
                                        },
                                        "name": "as"
                                      },
                                      "computed": false
                                    }
                                  ],
                                  "quasis": [
                                    {
                                      "type": "TemplateElement",
                                      "start": 5266,
                                      "end": 5290,
                                      "loc": {
                                        "start": {
                                          "line": 104,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 104,
                                          "column": 58
                                        }
                                      },
                                      "value": {
                                        "raw": "You have used the alias ",
                                        "cooked": "You have used the alias "
                                      },
                                      "tail": false
                                    },
                                    {
                                      "type": "TemplateElement",
                                      "start": 5303,
                                      "end": 5334,
                                      "loc": {
                                        "start": {
                                          "line": 104,
                                          "column": 71
                                        },
                                        "end": {
                                          "line": 104,
                                          "column": 102
                                        }
                                      },
                                      "value": {
                                        "raw": " in two separate associations. ",
                                        "cooked": " in two separate associations. "
                                      },
                                      "tail": true
                                    }
                                  ]
                                },
                                "operator": "+",
                                "right": {
                                  "type": "StringLiteral",
                                  "start": 5344,
                                  "end": 5392,
                                  "loc": {
                                    "start": {
                                      "line": 105,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 105,
                                      "column": 54
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "Aliased associations must have unique aliases.",
                                    "raw": "'Aliased associations must have unique aliases.'"
                                  },
                                  "value": "Aliased associations must have unique aliases."
                                }
                              }
                            ]
                          }
                        }
                      ],
                      "directives": []
                    },
                    "alternate": null
                  }
                ],
                "directives": [],
                "trailingComments": null
              },
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " Normalize input - may be array or single obj, instance or primary key - convert it to an array of built objects",
                  "start": 5414,
                  "end": 5528,
                  "loc": {
                    "start": {
                      "line": 109,
                      "column": 2
                    },
                    "end": {
                      "line": 109,
                      "column": 116
                    }
                  }
                }
              ]
            },
            {
              "type": "ClassMethod",
              "start": 5531,
              "end": 5915,
              "loc": {
                "start": {
                  "line": 110,
                  "column": 2
                },
                "end": {
                  "line": 124,
                  "column": 3
                }
              },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 5531,
                "end": 5546,
                "loc": {
                  "start": {
                    "line": 110,
                    "column": 2
                  },
                  "end": {
                    "line": 110,
                    "column": 17
                  },
                  "identifierName": "toInstanceArray"
                },
                "name": "toInstanceArray",
                "leadingComments": null
              },
              "static": false,
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 5547,
                  "end": 5551,
                  "loc": {
                    "start": {
                      "line": 110,
                      "column": 18
                    },
                    "end": {
                      "line": 110,
                      "column": 22
                    },
                    "identifierName": "objs"
                  },
                  "name": "objs"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 5553,
                "end": 5915,
                "loc": {
                  "start": {
                    "line": 110,
                    "column": 24
                  },
                  "end": {
                    "line": 124,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "IfStatement",
                    "start": 5559,
                    "end": 5613,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 4
                      },
                      "end": {
                        "line": 113,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "UnaryExpression",
                      "start": 5563,
                      "end": 5583,
                      "loc": {
                        "start": {
                          "line": 111,
                          "column": 8
                        },
                        "end": {
                          "line": 111,
                          "column": 28
                        }
                      },
                      "operator": "!",
                      "prefix": true,
                      "argument": {
                        "type": "CallExpression",
                        "start": 5564,
                        "end": 5583,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 9
                          },
                          "end": {
                            "line": 111,
                            "column": 28
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5564,
                          "end": 5577,
                          "loc": {
                            "start": {
                              "line": 111,
                              "column": 9
                            },
                            "end": {
                              "line": 111,
                              "column": 22
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 5564,
                            "end": 5569,
                            "loc": {
                              "start": {
                                "line": 111,
                                "column": 9
                              },
                              "end": {
                                "line": 111,
                                "column": 14
                              },
                              "identifierName": "Array"
                            },
                            "name": "Array"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5570,
                            "end": 5577,
                            "loc": {
                              "start": {
                                "line": 111,
                                "column": 15
                              },
                              "end": {
                                "line": 111,
                                "column": 22
                              },
                              "identifierName": "isArray"
                            },
                            "name": "isArray"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 5578,
                            "end": 5582,
                            "loc": {
                              "start": {
                                "line": 111,
                                "column": 23
                              },
                              "end": {
                                "line": 111,
                                "column": 27
                              },
                              "identifierName": "objs"
                            },
                            "name": "objs"
                          }
                        ]
                      },
                      "extra": {
                        "parenthesizedArgument": false
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 5585,
                      "end": 5613,
                      "loc": {
                        "start": {
                          "line": 111,
                          "column": 30
                        },
                        "end": {
                          "line": 113,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "start": 5593,
                          "end": 5607,
                          "loc": {
                            "start": {
                              "line": 112,
                              "column": 6
                            },
                            "end": {
                              "line": 112,
                              "column": 20
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 5593,
                            "end": 5606,
                            "loc": {
                              "start": {
                                "line": 112,
                                "column": 6
                              },
                              "end": {
                                "line": 112,
                                "column": 19
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 5593,
                              "end": 5597,
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 6
                                },
                                "end": {
                                  "line": 112,
                                  "column": 10
                                },
                                "identifierName": "objs"
                              },
                              "name": "objs"
                            },
                            "right": {
                              "type": "ArrayExpression",
                              "start": 5600,
                              "end": 5606,
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 13
                                },
                                "end": {
                                  "line": 112,
                                  "column": 19
                                }
                              },
                              "elements": [
                                {
                                  "type": "Identifier",
                                  "start": 5601,
                                  "end": 5605,
                                  "loc": {
                                    "start": {
                                      "line": 112,
                                      "column": 14
                                    },
                                    "end": {
                                      "line": 112,
                                      "column": 18
                                    },
                                    "identifierName": "objs"
                                  },
                                  "name": "objs"
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "directives": []
                    },
                    "alternate": null
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 5618,
                    "end": 5911,
                    "loc": {
                      "start": {
                        "line": 114,
                        "column": 4
                      },
                      "end": {
                        "line": 123,
                        "column": 13
                      }
                    },
                    "argument": {
                      "type": "CallExpression",
                      "start": 5625,
                      "end": 5910,
                      "loc": {
                        "start": {
                          "line": 114,
                          "column": 11
                        },
                        "end": {
                          "line": 123,
                          "column": 12
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 5625,
                        "end": 5633,
                        "loc": {
                          "start": {
                            "line": 114,
                            "column": 11
                          },
                          "end": {
                            "line": 114,
                            "column": 19
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 5625,
                          "end": 5629,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 11
                            },
                            "end": {
                              "line": 114,
                              "column": 15
                            },
                            "identifierName": "objs"
                          },
                          "name": "objs"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 5630,
                          "end": 5633,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 16
                            },
                            "end": {
                              "line": 114,
                              "column": 19
                            },
                            "identifierName": "map"
                          },
                          "name": "map"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "FunctionExpression",
                          "start": 5634,
                          "end": 5903,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 20
                            },
                            "end": {
                              "line": 123,
                              "column": 5
                            }
                          },
                          "id": null,
                          "generator": false,
                          "expression": false,
                          "async": false,
                          "params": [
                            {
                              "type": "Identifier",
                              "start": 5643,
                              "end": 5646,
                              "loc": {
                                "start": {
                                  "line": 114,
                                  "column": 29
                                },
                                "end": {
                                  "line": 114,
                                  "column": 32
                                },
                                "identifierName": "obj"
                              },
                              "name": "obj"
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "start": 5648,
                            "end": 5903,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 34
                              },
                              "end": {
                                "line": 123,
                                "column": 5
                              }
                            },
                            "body": [
                              {
                                "type": "IfStatement",
                                "start": 5656,
                                "end": 5879,
                                "loc": {
                                  "start": {
                                    "line": 115,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 121,
                                    "column": 7
                                  }
                                },
                                "test": {
                                  "type": "UnaryExpression",
                                  "start": 5660,
                                  "end": 5689,
                                  "loc": {
                                    "start": {
                                      "line": 115,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 115,
                                      "column": 39
                                    }
                                  },
                                  "operator": "!",
                                  "prefix": true,
                                  "argument": {
                                    "type": "BinaryExpression",
                                    "start": 5662,
                                    "end": 5688,
                                    "loc": {
                                      "start": {
                                        "line": 115,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 115,
                                        "column": 38
                                      }
                                    },
                                    "left": {
                                      "type": "Identifier",
                                      "start": 5662,
                                      "end": 5665,
                                      "loc": {
                                        "start": {
                                          "line": 115,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 115,
                                          "column": 15
                                        },
                                        "identifierName": "obj"
                                      },
                                      "name": "obj"
                                    },
                                    "operator": "instanceof",
                                    "right": {
                                      "type": "MemberExpression",
                                      "start": 5677,
                                      "end": 5688,
                                      "loc": {
                                        "start": {
                                          "line": 115,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 115,
                                          "column": 38
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 5677,
                                        "end": 5681,
                                        "loc": {
                                          "start": {
                                            "line": 115,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 115,
                                            "column": 31
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5682,
                                        "end": 5688,
                                        "loc": {
                                          "start": {
                                            "line": 115,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 115,
                                            "column": 38
                                          },
                                          "identifierName": "target"
                                        },
                                        "name": "target"
                                      },
                                      "computed": false
                                    },
                                    "extra": {
                                      "parenthesized": true,
                                      "parenStart": 5661
                                    }
                                  },
                                  "extra": {
                                    "parenthesizedArgument": false
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "start": 5691,
                                  "end": 5879,
                                  "loc": {
                                    "start": {
                                      "line": 115,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 121,
                                      "column": 7
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "VariableDeclaration",
                                      "start": 5701,
                                      "end": 5722,
                                      "loc": {
                                        "start": {
                                          "line": 116,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 116,
                                          "column": 29
                                        }
                                      },
                                      "declarations": [
                                        {
                                          "type": "VariableDeclarator",
                                          "start": 5705,
                                          "end": 5721,
                                          "loc": {
                                            "start": {
                                              "line": 116,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 116,
                                              "column": 28
                                            }
                                          },
                                          "id": {
                                            "type": "Identifier",
                                            "start": 5705,
                                            "end": 5716,
                                            "loc": {
                                              "start": {
                                                "line": 116,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 116,
                                                "column": 23
                                              },
                                              "identifierName": "tmpInstance"
                                            },
                                            "name": "tmpInstance"
                                          },
                                          "init": {
                                            "type": "ObjectExpression",
                                            "start": 5719,
                                            "end": 5721,
                                            "loc": {
                                              "start": {
                                                "line": 116,
                                                "column": 26
                                              },
                                              "end": {
                                                "line": 116,
                                                "column": 28
                                              }
                                            },
                                            "properties": []
                                          }
                                        }
                                      ],
                                      "kind": "var"
                                    },
                                    {
                                      "type": "ExpressionStatement",
                                      "start": 5731,
                                      "end": 5782,
                                      "loc": {
                                        "start": {
                                          "line": 117,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 117,
                                          "column": 59
                                        }
                                      },
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "start": 5731,
                                        "end": 5781,
                                        "loc": {
                                          "start": {
                                            "line": 117,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 117,
                                            "column": 58
                                          }
                                        },
                                        "operator": "=",
                                        "left": {
                                          "type": "MemberExpression",
                                          "start": 5731,
                                          "end": 5775,
                                          "loc": {
                                            "start": {
                                              "line": 117,
                                              "column": 8
                                            },
                                            "end": {
                                              "line": 117,
                                              "column": 52
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 5731,
                                            "end": 5742,
                                            "loc": {
                                              "start": {
                                                "line": 117,
                                                "column": 8
                                              },
                                              "end": {
                                                "line": 117,
                                                "column": 19
                                              },
                                              "identifierName": "tmpInstance"
                                            },
                                            "name": "tmpInstance"
                                          },
                                          "property": {
                                            "type": "MemberExpression",
                                            "start": 5743,
                                            "end": 5774,
                                            "loc": {
                                              "start": {
                                                "line": 117,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 117,
                                                "column": 51
                                              }
                                            },
                                            "object": {
                                              "type": "MemberExpression",
                                              "start": 5743,
                                              "end": 5754,
                                              "loc": {
                                                "start": {
                                                  "line": 117,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 117,
                                                  "column": 31
                                                }
                                              },
                                              "object": {
                                                "type": "ThisExpression",
                                                "start": 5743,
                                                "end": 5747,
                                                "loc": {
                                                  "start": {
                                                    "line": 117,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 117,
                                                    "column": 24
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 5748,
                                                "end": 5754,
                                                "loc": {
                                                  "start": {
                                                    "line": 117,
                                                    "column": 25
                                                  },
                                                  "end": {
                                                    "line": 117,
                                                    "column": 31
                                                  },
                                                  "identifierName": "target"
                                                },
                                                "name": "target"
                                              },
                                              "computed": false
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 5755,
                                              "end": 5774,
                                              "loc": {
                                                "start": {
                                                  "line": 117,
                                                  "column": 32
                                                },
                                                "end": {
                                                  "line": 117,
                                                  "column": 51
                                                },
                                                "identifierName": "primaryKeyAttribute"
                                              },
                                              "name": "primaryKeyAttribute"
                                            },
                                            "computed": false
                                          },
                                          "computed": true
                                        },
                                        "right": {
                                          "type": "Identifier",
                                          "start": 5778,
                                          "end": 5781,
                                          "loc": {
                                            "start": {
                                              "line": 117,
                                              "column": 55
                                            },
                                            "end": {
                                              "line": 117,
                                              "column": 58
                                            },
                                            "identifierName": "obj"
                                          },
                                          "name": "obj"
                                        }
                                      }
                                    },
                                    {
                                      "type": "ReturnStatement",
                                      "start": 5791,
                                      "end": 5871,
                                      "loc": {
                                        "start": {
                                          "line": 118,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 120,
                                          "column": 11
                                        }
                                      },
                                      "argument": {
                                        "type": "CallExpression",
                                        "start": 5798,
                                        "end": 5870,
                                        "loc": {
                                          "start": {
                                            "line": 118,
                                            "column": 15
                                          },
                                          "end": {
                                            "line": 120,
                                            "column": 10
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 5798,
                                          "end": 5815,
                                          "loc": {
                                            "start": {
                                              "line": 118,
                                              "column": 15
                                            },
                                            "end": {
                                              "line": 118,
                                              "column": 32
                                            }
                                          },
                                          "object": {
                                            "type": "MemberExpression",
                                            "start": 5798,
                                            "end": 5809,
                                            "loc": {
                                              "start": {
                                                "line": 118,
                                                "column": 15
                                              },
                                              "end": {
                                                "line": 118,
                                                "column": 26
                                              }
                                            },
                                            "object": {
                                              "type": "ThisExpression",
                                              "start": 5798,
                                              "end": 5802,
                                              "loc": {
                                                "start": {
                                                  "line": 118,
                                                  "column": 15
                                                },
                                                "end": {
                                                  "line": 118,
                                                  "column": 19
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 5803,
                                              "end": 5809,
                                              "loc": {
                                                "start": {
                                                  "line": 118,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 118,
                                                  "column": 26
                                                },
                                                "identifierName": "target"
                                              },
                                              "name": "target"
                                            },
                                            "computed": false
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 5810,
                                            "end": 5815,
                                            "loc": {
                                              "start": {
                                                "line": 118,
                                                "column": 27
                                              },
                                              "end": {
                                                "line": 118,
                                                "column": 32
                                              },
                                              "identifierName": "build"
                                            },
                                            "name": "build"
                                          },
                                          "computed": false
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "start": 5816,
                                            "end": 5827,
                                            "loc": {
                                              "start": {
                                                "line": 118,
                                                "column": 33
                                              },
                                              "end": {
                                                "line": 118,
                                                "column": 44
                                              },
                                              "identifierName": "tmpInstance"
                                            },
                                            "name": "tmpInstance"
                                          },
                                          {
                                            "type": "ObjectExpression",
                                            "start": 5829,
                                            "end": 5869,
                                            "loc": {
                                              "start": {
                                                "line": 118,
                                                "column": 46
                                              },
                                              "end": {
                                                "line": 120,
                                                "column": 9
                                              }
                                            },
                                            "properties": [
                                              {
                                                "type": "ObjectProperty",
                                                "start": 5841,
                                                "end": 5859,
                                                "loc": {
                                                  "start": {
                                                    "line": 119,
                                                    "column": 10
                                                  },
                                                  "end": {
                                                    "line": 119,
                                                    "column": 28
                                                  }
                                                },
                                                "method": false,
                                                "shorthand": false,
                                                "computed": false,
                                                "key": {
                                                  "type": "Identifier",
                                                  "start": 5841,
                                                  "end": 5852,
                                                  "loc": {
                                                    "start": {
                                                      "line": 119,
                                                      "column": 10
                                                    },
                                                    "end": {
                                                      "line": 119,
                                                      "column": 21
                                                    },
                                                    "identifierName": "isNewRecord"
                                                  },
                                                  "name": "isNewRecord"
                                                },
                                                "value": {
                                                  "type": "BooleanLiteral",
                                                  "start": 5854,
                                                  "end": 5859,
                                                  "loc": {
                                                    "start": {
                                                      "line": 119,
                                                      "column": 23
                                                    },
                                                    "end": {
                                                      "line": 119,
                                                      "column": 28
                                                    }
                                                  },
                                                  "value": false
                                                }
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  "directives": []
                                },
                                "alternate": null
                              },
                              {
                                "type": "ReturnStatement",
                                "start": 5886,
                                "end": 5897,
                                "loc": {
                                  "start": {
                                    "line": 122,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 122,
                                    "column": 17
                                  }
                                },
                                "argument": {
                                  "type": "Identifier",
                                  "start": 5893,
                                  "end": 5896,
                                  "loc": {
                                    "start": {
                                      "line": 122,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 122,
                                      "column": 16
                                    },
                                    "identifierName": "obj"
                                  },
                                  "name": "obj"
                                }
                              }
                            ],
                            "directives": []
                          }
                        },
                        {
                          "type": "ThisExpression",
                          "start": 5905,
                          "end": 5909,
                          "loc": {
                            "start": {
                              "line": 123,
                              "column": 7
                            },
                            "end": {
                              "line": 123,
                              "column": 11
                            }
                          }
                        }
                      ]
                    }
                  }
                ],
                "directives": []
              },
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " Normalize input - may be array or single obj, instance or primary key - convert it to an array of built objects",
                  "start": 5414,
                  "end": 5528,
                  "loc": {
                    "start": {
                      "line": 109,
                      "column": 2
                    },
                    "end": {
                      "line": 109,
                      "column": 116
                    }
                  }
                }
              ]
            },
            {
              "type": "ClassMethod",
              "start": 5918,
              "end": 5953,
              "loc": {
                "start": {
                  "line": 125,
                  "column": 2
                },
                "end": {
                  "line": 127,
                  "column": 3
                }
              },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 5918,
                "end": 5925,
                "loc": {
                  "start": {
                    "line": 125,
                    "column": 2
                  },
                  "end": {
                    "line": 125,
                    "column": 9
                  },
                  "identifierName": "inspect"
                },
                "name": "inspect"
              },
              "static": false,
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "start": 5928,
                "end": 5953,
                "loc": {
                  "start": {
                    "line": 125,
                    "column": 12
                  },
                  "end": {
                    "line": 127,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 5934,
                    "end": 5949,
                    "loc": {
                      "start": {
                        "line": 126,
                        "column": 4
                      },
                      "end": {
                        "line": 126,
                        "column": 19
                      }
                    },
                    "argument": {
                      "type": "MemberExpression",
                      "start": 5941,
                      "end": 5948,
                      "loc": {
                        "start": {
                          "line": 126,
                          "column": 11
                        },
                        "end": {
                          "line": 126,
                          "column": 18
                        }
                      },
                      "object": {
                        "type": "ThisExpression",
                        "start": 5941,
                        "end": 5945,
                        "loc": {
                          "start": {
                            "line": 126,
                            "column": 11
                          },
                          "end": {
                            "line": 126,
                            "column": 15
                          }
                        }
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5946,
                        "end": 5948,
                        "loc": {
                          "start": {
                            "line": 126,
                            "column": 16
                          },
                          "end": {
                            "line": 126,
                            "column": 18
                          },
                          "identifierName": "as"
                        },
                        "name": "as"
                      },
                      "computed": false
                    }
                  }
                ],
                "directives": []
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentBlock",
            "value": "*\n * Creating associations in sequelize is done by calling one of the belongsTo / hasOne / hasMany / belongsToMany functions on a model (the source), and providing another model as the first argument to the function (the target).\n *\n * * hasOne - adds a foreign key to the target and singular association mixins to the source.\n * * belongsTo - add a foreign key and singular association mixins to the source.\n * * hasMany - adds a foreign key to target and plural association mixins to the source.\n * * belongsToMany - creates an N:M association with a join table and adds plural association mixins to the source. The junction table is created with sourceId and targetId.\n *\n * Creating an association will add a foreign key constraint to the attributes. All associations use `CASCADE` on update and `SET NULL` on delete, except for n:m, which also uses `CASCADE` on delete.\n *\n * When creating associations, you can provide an alias, via the `as` option. This is useful if the same model is associated twice, or you want your association to be called something other than the name of the target model.\n *\n * As an example, consider the case where users have many pictures, one of which is their profile picture. All pictures have a `userId`, but in addition the user model also has a `profilePictureId`, to be able to easily load the user's profile picture.\n *\n * ```js\n * User.hasMany(Picture)\n * User.belongsTo(Picture, { as: 'ProfilePicture', constraints: false })\n *\n * user.getPictures() // gets you all pictures\n * user.getProfilePicture() // gets you only the profile picture\n *\n * User.findAll({\n *   where: ...,\n *   include: [\n *     { model: Picture }, // load all pictures\n *     { model: Picture, as: 'ProfilePicture' }, // load the profile picture.\n *     // Notice that the spelling must be the exact same as the one in the association\n *   ]\n * })\n * ```\n * To get full control over the foreign key column added by sequelize, you can use the `foreignKey` option. It can either be a string, that specifies the name, or and object type definition,\n * equivalent to those passed to `sequelize.define`.\n *\n * ```js\n * User.hasMany(Picture, { foreignKey: 'uid' })\n * ```\n *\n * The foreign key column in Picture will now be called `uid` instead of the default `userId`.\n *\n * ```js\n * User.hasMany(Picture, {\n *   foreignKey: {\n *     name: 'uid',\n *     allowNull: false\n *   }\n * })\n * ```\n *\n * This specifies that the `uid` column cannot be null. In most cases this will already be covered by the foreign key constraints, which sequelize creates automatically, but can be useful in case where the foreign keys are disabled, e.g. due to circular references (see `constraints: false` below).\n *\n * When fetching associated models, you can limit your query to only load some models. These queries are written in the same way as queries to `find`/`findAll`. To only get pictures in JPG, you can do:\n *\n * ```js\n * user.getPictures({\n *   where: {\n *     format: 'jpg'\n *   }\n * })\n * ```\n *\n * There are several ways to update and add new associations. Continuing with our example of users and pictures:\n * ```js\n * user.addPicture(p) // Add a single picture\n * user.setPictures([p1, p2]) // Associate user with ONLY these two picture, all other associations will be deleted\n * user.addPictures([p1, p2]) // Associate user with these two pictures, but don't touch any current associations\n * ```\n *\n * You don't have to pass in a complete object to the association functions, if your associated model has a single primary key:\n *\n * ```js\n * user.addPicture(req.query.pid) // Here pid is just an integer, representing the primary key of the picture\n * ```\n *\n * In the example above we have specified that a user belongs to his profile picture. Conceptually, this might not make sense, but since we want to add the foreign key to the user model this is the way to do it.\n *\n * Note how we also specified `constraints: false` for profile picture. This is because we add a foreign key from user to picture (profilePictureId), and from picture to user (userId). If we were to add foreign keys to both, it would create a cyclic dependency, and sequelize would not know which table to create first, since user depends on picture, and picture depends on user. These kinds of problems are detected by sequelize before the models are synced to the database, and you will get an error along the lines of `Error: Cyclic dependency found. 'users' is dependent of itself`. If you encounter this, you should either disable some constraints, or rethink your associations completely.\n ",
            "start": 82,
            "end": 4667,
            "loc": {
              "start": {
                "line": 5,
                "column": 0
              },
              "end": {
                "line": 81,
                "column": 3
              }
            }
          }
        ]
      },
      {
        "type": "ExpressionStatement",
        "start": 5957,
        "end": 5986,
        "loc": {
          "start": {
            "line": 130,
            "column": 0
          },
          "end": {
            "line": 130,
            "column": 29
          }
        },
        "expression": {
          "type": "AssignmentExpression",
          "start": 5957,
          "end": 5985,
          "loc": {
            "start": {
              "line": 130,
              "column": 0
            },
            "end": {
              "line": 130,
              "column": 28
            }
          },
          "operator": "=",
          "left": {
            "type": "MemberExpression",
            "start": 5957,
            "end": 5971,
            "loc": {
              "start": {
                "line": 130,
                "column": 0
              },
              "end": {
                "line": 130,
                "column": 14
              }
            },
            "object": {
              "type": "Identifier",
              "start": 5957,
              "end": 5963,
              "loc": {
                "start": {
                  "line": 130,
                  "column": 0
                },
                "end": {
                  "line": 130,
                  "column": 6
                },
                "identifierName": "module"
              },
              "name": "module"
            },
            "property": {
              "type": "Identifier",
              "start": 5964,
              "end": 5971,
              "loc": {
                "start": {
                  "line": 130,
                  "column": 7
                },
                "end": {
                  "line": 130,
                  "column": 14
                },
                "identifierName": "exports"
              },
              "name": "exports"
            },
            "computed": false
          },
          "right": {
            "type": "Identifier",
            "start": 5974,
            "end": 5985,
            "loc": {
              "start": {
                "line": 130,
                "column": 17
              },
              "end": {
                "line": 130,
                "column": 28
              },
              "identifierName": "Association"
            },
            "name": "Association"
          }
        }
      }
    ],
    "directives": [
      {
        "type": "Directive",
        "start": 0,
        "end": 13,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 13
          }
        },
        "value": {
          "type": "DirectiveLiteral",
          "start": 0,
          "end": 12,
          "loc": {
            "start": {
              "line": 1,
              "column": 0
            },
            "end": {
              "line": 1,
              "column": 12
            }
          },
          "value": "use strict",
          "extra": {
            "raw": "'use strict'",
            "rawValue": "use strict"
          }
        }
      }
    ]
  },
  "comments": [
    {
      "type": "CommentBlock",
      "value": "*\n * Creating associations in sequelize is done by calling one of the belongsTo / hasOne / hasMany / belongsToMany functions on a model (the source), and providing another model as the first argument to the function (the target).\n *\n * * hasOne - adds a foreign key to the target and singular association mixins to the source.\n * * belongsTo - add a foreign key and singular association mixins to the source.\n * * hasMany - adds a foreign key to target and plural association mixins to the source.\n * * belongsToMany - creates an N:M association with a join table and adds plural association mixins to the source. The junction table is created with sourceId and targetId.\n *\n * Creating an association will add a foreign key constraint to the attributes. All associations use `CASCADE` on update and `SET NULL` on delete, except for n:m, which also uses `CASCADE` on delete.\n *\n * When creating associations, you can provide an alias, via the `as` option. This is useful if the same model is associated twice, or you want your association to be called something other than the name of the target model.\n *\n * As an example, consider the case where users have many pictures, one of which is their profile picture. All pictures have a `userId`, but in addition the user model also has a `profilePictureId`, to be able to easily load the user's profile picture.\n *\n * ```js\n * User.hasMany(Picture)\n * User.belongsTo(Picture, { as: 'ProfilePicture', constraints: false })\n *\n * user.getPictures() // gets you all pictures\n * user.getProfilePicture() // gets you only the profile picture\n *\n * User.findAll({\n *   where: ...,\n *   include: [\n *     { model: Picture }, // load all pictures\n *     { model: Picture, as: 'ProfilePicture' }, // load the profile picture.\n *     // Notice that the spelling must be the exact same as the one in the association\n *   ]\n * })\n * ```\n * To get full control over the foreign key column added by sequelize, you can use the `foreignKey` option. It can either be a string, that specifies the name, or and object type definition,\n * equivalent to those passed to `sequelize.define`.\n *\n * ```js\n * User.hasMany(Picture, { foreignKey: 'uid' })\n * ```\n *\n * The foreign key column in Picture will now be called `uid` instead of the default `userId`.\n *\n * ```js\n * User.hasMany(Picture, {\n *   foreignKey: {\n *     name: 'uid',\n *     allowNull: false\n *   }\n * })\n * ```\n *\n * This specifies that the `uid` column cannot be null. In most cases this will already be covered by the foreign key constraints, which sequelize creates automatically, but can be useful in case where the foreign keys are disabled, e.g. due to circular references (see `constraints: false` below).\n *\n * When fetching associated models, you can limit your query to only load some models. These queries are written in the same way as queries to `find`/`findAll`. To only get pictures in JPG, you can do:\n *\n * ```js\n * user.getPictures({\n *   where: {\n *     format: 'jpg'\n *   }\n * })\n * ```\n *\n * There are several ways to update and add new associations. Continuing with our example of users and pictures:\n * ```js\n * user.addPicture(p) // Add a single picture\n * user.setPictures([p1, p2]) // Associate user with ONLY these two picture, all other associations will be deleted\n * user.addPictures([p1, p2]) // Associate user with these two pictures, but don't touch any current associations\n * ```\n *\n * You don't have to pass in a complete object to the association functions, if your associated model has a single primary key:\n *\n * ```js\n * user.addPicture(req.query.pid) // Here pid is just an integer, representing the primary key of the picture\n * ```\n *\n * In the example above we have specified that a user belongs to his profile picture. Conceptually, this might not make sense, but since we want to add the foreign key to the user model this is the way to do it.\n *\n * Note how we also specified `constraints: false` for profile picture. This is because we add a foreign key from user to picture (profilePictureId), and from picture to user (userId). If we were to add foreign keys to both, it would create a cyclic dependency, and sequelize would not know which table to create first, since user depends on picture, and picture depends on user. These kinds of problems are detected by sequelize before the models are synced to the database, and you will get an error along the lines of `Error: Cyclic dependency found. 'users' is dependent of itself`. If you encounter this, you should either disable some constraints, or rethink your associations completely.\n ",
      "start": 82,
      "end": 4667,
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 81,
          "column": 3
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * @type {Model}\n     ",
      "start": 4762,
      "end": 4794,
      "loc": {
        "start": {
          "line": 85,
          "column": 4
        },
        "end": {
          "line": 87,
          "column": 7
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * @type {Model}\n     ",
      "start": 4825,
      "end": 4857,
      "loc": {
        "start": {
          "line": 89,
          "column": 4
        },
        "end": {
          "line": 91,
          "column": 7
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * The type of the association. One of `HasMany`, `BelongsTo`, `HasOne`, `BelongsToMany`\n     * @type {string}\n     ",
      "start": 5034,
      "end": 5160,
      "loc": {
        "start": {
          "line": 97,
          "column": 4
        },
        "end": {
          "line": 100,
          "column": 7
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Normalize input - may be array or single obj, instance or primary key - convert it to an array of built objects",
      "start": 5414,
      "end": 5528,
      "loc": {
        "start": {
          "line": 109,
          "column": 2
        },
        "end": {
          "line": 109,
          "column": 116
        }
      }
    }
  ],
  "tokens": [
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "use strict",
      "start": 0,
      "end": 12,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 12,
      "end": 13,
      "loc": {
        "start": {
          "line": 1,
          "column": 12
        },
        "end": {
          "line": 1,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 14,
      "end": 19,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "AssociationError",
      "start": 20,
      "end": 36,
      "loc": {
        "start": {
          "line": 2,
          "column": 6
        },
        "end": {
          "line": 2,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 37,
      "end": 38,
      "loc": {
        "start": {
          "line": 2,
          "column": 23
        },
        "end": {
          "line": 2,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "require",
      "start": 39,
      "end": 46,
      "loc": {
        "start": {
          "line": 2,
          "column": 25
        },
        "end": {
          "line": 2,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 46,
      "end": 47,
      "loc": {
        "start": {
          "line": 2,
          "column": 32
        },
        "end": {
          "line": 2,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./../errors",
      "start": 47,
      "end": 60,
      "loc": {
        "start": {
          "line": 2,
          "column": 33
        },
        "end": {
          "line": 2,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 60,
      "end": 61,
      "loc": {
        "start": {
          "line": 2,
          "column": 46
        },
        "end": {
          "line": 2,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 61,
      "end": 62,
      "loc": {
        "start": {
          "line": 2,
          "column": 47
        },
        "end": {
          "line": 2,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "AssociationError",
      "start": 62,
      "end": 78,
      "loc": {
        "start": {
          "line": 2,
          "column": 48
        },
        "end": {
          "line": 2,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 78,
      "end": 79,
      "loc": {
        "start": {
          "line": 2,
          "column": 64
        },
        "end": {
          "line": 2,
          "column": 65
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n * Creating associations in sequelize is done by calling one of the belongsTo / hasOne / hasMany / belongsToMany functions on a model (the source), and providing another model as the first argument to the function (the target).\n *\n * * hasOne - adds a foreign key to the target and singular association mixins to the source.\n * * belongsTo - add a foreign key and singular association mixins to the source.\n * * hasMany - adds a foreign key to target and plural association mixins to the source.\n * * belongsToMany - creates an N:M association with a join table and adds plural association mixins to the source. The junction table is created with sourceId and targetId.\n *\n * Creating an association will add a foreign key constraint to the attributes. All associations use `CASCADE` on update and `SET NULL` on delete, except for n:m, which also uses `CASCADE` on delete.\n *\n * When creating associations, you can provide an alias, via the `as` option. This is useful if the same model is associated twice, or you want your association to be called something other than the name of the target model.\n *\n * As an example, consider the case where users have many pictures, one of which is their profile picture. All pictures have a `userId`, but in addition the user model also has a `profilePictureId`, to be able to easily load the user's profile picture.\n *\n * ```js\n * User.hasMany(Picture)\n * User.belongsTo(Picture, { as: 'ProfilePicture', constraints: false })\n *\n * user.getPictures() // gets you all pictures\n * user.getProfilePicture() // gets you only the profile picture\n *\n * User.findAll({\n *   where: ...,\n *   include: [\n *     { model: Picture }, // load all pictures\n *     { model: Picture, as: 'ProfilePicture' }, // load the profile picture.\n *     // Notice that the spelling must be the exact same as the one in the association\n *   ]\n * })\n * ```\n * To get full control over the foreign key column added by sequelize, you can use the `foreignKey` option. It can either be a string, that specifies the name, or and object type definition,\n * equivalent to those passed to `sequelize.define`.\n *\n * ```js\n * User.hasMany(Picture, { foreignKey: 'uid' })\n * ```\n *\n * The foreign key column in Picture will now be called `uid` instead of the default `userId`.\n *\n * ```js\n * User.hasMany(Picture, {\n *   foreignKey: {\n *     name: 'uid',\n *     allowNull: false\n *   }\n * })\n * ```\n *\n * This specifies that the `uid` column cannot be null. In most cases this will already be covered by the foreign key constraints, which sequelize creates automatically, but can be useful in case where the foreign keys are disabled, e.g. due to circular references (see `constraints: false` below).\n *\n * When fetching associated models, you can limit your query to only load some models. These queries are written in the same way as queries to `find`/`findAll`. To only get pictures in JPG, you can do:\n *\n * ```js\n * user.getPictures({\n *   where: {\n *     format: 'jpg'\n *   }\n * })\n * ```\n *\n * There are several ways to update and add new associations. Continuing with our example of users and pictures:\n * ```js\n * user.addPicture(p) // Add a single picture\n * user.setPictures([p1, p2]) // Associate user with ONLY these two picture, all other associations will be deleted\n * user.addPictures([p1, p2]) // Associate user with these two pictures, but don't touch any current associations\n * ```\n *\n * You don't have to pass in a complete object to the association functions, if your associated model has a single primary key:\n *\n * ```js\n * user.addPicture(req.query.pid) // Here pid is just an integer, representing the primary key of the picture\n * ```\n *\n * In the example above we have specified that a user belongs to his profile picture. Conceptually, this might not make sense, but since we want to add the foreign key to the user model this is the way to do it.\n *\n * Note how we also specified `constraints: false` for profile picture. This is because we add a foreign key from user to picture (profilePictureId), and from picture to user (userId). If we were to add foreign keys to both, it would create a cyclic dependency, and sequelize would not know which table to create first, since user depends on picture, and picture depends on user. These kinds of problems are detected by sequelize before the models are synced to the database, and you will get an error along the lines of `Error: Cyclic dependency found. 'users' is dependent of itself`. If you encounter this, you should either disable some constraints, or rethink your associations completely.\n ",
      "start": 82,
      "end": 4667,
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 81,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "class",
        "keyword": "class",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "class",
      "start": 4668,
      "end": 4673,
      "loc": {
        "start": {
          "line": 82,
          "column": 0
        },
        "end": {
          "line": 82,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Association",
      "start": 4674,
      "end": 4685,
      "loc": {
        "start": {
          "line": 82,
          "column": 6
        },
        "end": {
          "line": 82,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4686,
      "end": 4687,
      "loc": {
        "start": {
          "line": 82,
          "column": 18
        },
        "end": {
          "line": 82,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 4690,
      "end": 4701,
      "loc": {
        "start": {
          "line": 83,
          "column": 2
        },
        "end": {
          "line": 83,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4701,
      "end": 4702,
      "loc": {
        "start": {
          "line": 83,
          "column": 13
        },
        "end": {
          "line": 83,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 4702,
      "end": 4708,
      "loc": {
        "start": {
          "line": 83,
          "column": 14
        },
        "end": {
          "line": 83,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4708,
      "end": 4709,
      "loc": {
        "start": {
          "line": 83,
          "column": 20
        },
        "end": {
          "line": 83,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 4710,
      "end": 4716,
      "loc": {
        "start": {
          "line": 83,
          "column": 22
        },
        "end": {
          "line": 83,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4716,
      "end": 4717,
      "loc": {
        "start": {
          "line": 83,
          "column": 28
        },
        "end": {
          "line": 83,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 4718,
      "end": 4725,
      "loc": {
        "start": {
          "line": 83,
          "column": 30
        },
        "end": {
          "line": 83,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4725,
      "end": 4726,
      "loc": {
        "start": {
          "line": 83,
          "column": 37
        },
        "end": {
          "line": 83,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4727,
      "end": 4728,
      "loc": {
        "start": {
          "line": 83,
          "column": 39
        },
        "end": {
          "line": 83,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 4733,
      "end": 4740,
      "loc": {
        "start": {
          "line": 84,
          "column": 4
        },
        "end": {
          "line": 84,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4741,
      "end": 4742,
      "loc": {
        "start": {
          "line": 84,
          "column": 12
        },
        "end": {
          "line": 84,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 4743,
      "end": 4750,
      "loc": {
        "start": {
          "line": 84,
          "column": 14
        },
        "end": {
          "line": 84,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 4751,
      "end": 4753,
      "loc": {
        "start": {
          "line": 84,
          "column": 22
        },
        "end": {
          "line": 84,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4754,
      "end": 4755,
      "loc": {
        "start": {
          "line": 84,
          "column": 25
        },
        "end": {
          "line": 84,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4755,
      "end": 4756,
      "loc": {
        "start": {
          "line": 84,
          "column": 26
        },
        "end": {
          "line": 84,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4756,
      "end": 4757,
      "loc": {
        "start": {
          "line": 84,
          "column": 27
        },
        "end": {
          "line": 84,
          "column": 28
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * @type {Model}\n     ",
      "start": 4762,
      "end": 4794,
      "loc": {
        "start": {
          "line": 85,
          "column": 4
        },
        "end": {
          "line": 87,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4799,
      "end": 4803,
      "loc": {
        "start": {
          "line": 88,
          "column": 4
        },
        "end": {
          "line": 88,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4803,
      "end": 4804,
      "loc": {
        "start": {
          "line": 88,
          "column": 8
        },
        "end": {
          "line": 88,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 4804,
      "end": 4810,
      "loc": {
        "start": {
          "line": 88,
          "column": 9
        },
        "end": {
          "line": 88,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4811,
      "end": 4812,
      "loc": {
        "start": {
          "line": 88,
          "column": 16
        },
        "end": {
          "line": 88,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 4813,
      "end": 4819,
      "loc": {
        "start": {
          "line": 88,
          "column": 18
        },
        "end": {
          "line": 88,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4819,
      "end": 4820,
      "loc": {
        "start": {
          "line": 88,
          "column": 24
        },
        "end": {
          "line": 88,
          "column": 25
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * @type {Model}\n     ",
      "start": 4825,
      "end": 4857,
      "loc": {
        "start": {
          "line": 89,
          "column": 4
        },
        "end": {
          "line": 91,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4862,
      "end": 4866,
      "loc": {
        "start": {
          "line": 92,
          "column": 4
        },
        "end": {
          "line": 92,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4866,
      "end": 4867,
      "loc": {
        "start": {
          "line": 92,
          "column": 8
        },
        "end": {
          "line": 92,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 4867,
      "end": 4873,
      "loc": {
        "start": {
          "line": 92,
          "column": 9
        },
        "end": {
          "line": 92,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4874,
      "end": 4875,
      "loc": {
        "start": {
          "line": 92,
          "column": 16
        },
        "end": {
          "line": 92,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 4876,
      "end": 4882,
      "loc": {
        "start": {
          "line": 92,
          "column": 18
        },
        "end": {
          "line": 92,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4882,
      "end": 4883,
      "loc": {
        "start": {
          "line": 92,
          "column": 24
        },
        "end": {
          "line": 92,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4888,
      "end": 4892,
      "loc": {
        "start": {
          "line": 93,
          "column": 4
        },
        "end": {
          "line": 93,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4892,
      "end": 4893,
      "loc": {
        "start": {
          "line": 93,
          "column": 8
        },
        "end": {
          "line": 93,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 4893,
      "end": 4900,
      "loc": {
        "start": {
          "line": 93,
          "column": 9
        },
        "end": {
          "line": 93,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4901,
      "end": 4902,
      "loc": {
        "start": {
          "line": 93,
          "column": 17
        },
        "end": {
          "line": 93,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 4903,
      "end": 4910,
      "loc": {
        "start": {
          "line": 93,
          "column": 19
        },
        "end": {
          "line": 93,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4910,
      "end": 4911,
      "loc": {
        "start": {
          "line": 93,
          "column": 26
        },
        "end": {
          "line": 93,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4916,
      "end": 4920,
      "loc": {
        "start": {
          "line": 94,
          "column": 4
        },
        "end": {
          "line": 94,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4920,
      "end": 4921,
      "loc": {
        "start": {
          "line": 94,
          "column": 8
        },
        "end": {
          "line": 94,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "scope",
      "start": 4921,
      "end": 4926,
      "loc": {
        "start": {
          "line": 94,
          "column": 9
        },
        "end": {
          "line": 94,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4927,
      "end": 4928,
      "loc": {
        "start": {
          "line": 94,
          "column": 15
        },
        "end": {
          "line": 94,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 4929,
      "end": 4936,
      "loc": {
        "start": {
          "line": 94,
          "column": 17
        },
        "end": {
          "line": 94,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4936,
      "end": 4937,
      "loc": {
        "start": {
          "line": 94,
          "column": 24
        },
        "end": {
          "line": 94,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "scope",
      "start": 4937,
      "end": 4942,
      "loc": {
        "start": {
          "line": 94,
          "column": 25
        },
        "end": {
          "line": 94,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4942,
      "end": 4943,
      "loc": {
        "start": {
          "line": 94,
          "column": 30
        },
        "end": {
          "line": 94,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4948,
      "end": 4952,
      "loc": {
        "start": {
          "line": 95,
          "column": 4
        },
        "end": {
          "line": 95,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4952,
      "end": 4953,
      "loc": {
        "start": {
          "line": 95,
          "column": 8
        },
        "end": {
          "line": 95,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isSelfAssociation",
      "start": 4953,
      "end": 4970,
      "loc": {
        "start": {
          "line": 95,
          "column": 9
        },
        "end": {
          "line": 95,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4971,
      "end": 4972,
      "loc": {
        "start": {
          "line": 95,
          "column": 27
        },
        "end": {
          "line": 95,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4973,
      "end": 4974,
      "loc": {
        "start": {
          "line": 95,
          "column": 29
        },
        "end": {
          "line": 95,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4974,
      "end": 4978,
      "loc": {
        "start": {
          "line": 95,
          "column": 30
        },
        "end": {
          "line": 95,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4978,
      "end": 4979,
      "loc": {
        "start": {
          "line": 95,
          "column": 34
        },
        "end": {
          "line": 95,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 4979,
      "end": 4985,
      "loc": {
        "start": {
          "line": 95,
          "column": 35
        },
        "end": {
          "line": 95,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 4986,
      "end": 4989,
      "loc": {
        "start": {
          "line": 95,
          "column": 42
        },
        "end": {
          "line": 95,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4990,
      "end": 4994,
      "loc": {
        "start": {
          "line": 95,
          "column": 46
        },
        "end": {
          "line": 95,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4994,
      "end": 4995,
      "loc": {
        "start": {
          "line": 95,
          "column": 50
        },
        "end": {
          "line": 95,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 4995,
      "end": 5001,
      "loc": {
        "start": {
          "line": 95,
          "column": 51
        },
        "end": {
          "line": 95,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5001,
      "end": 5002,
      "loc": {
        "start": {
          "line": 95,
          "column": 57
        },
        "end": {
          "line": 95,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5002,
      "end": 5003,
      "loc": {
        "start": {
          "line": 95,
          "column": 58
        },
        "end": {
          "line": 95,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5008,
      "end": 5012,
      "loc": {
        "start": {
          "line": 96,
          "column": 4
        },
        "end": {
          "line": 96,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5012,
      "end": 5013,
      "loc": {
        "start": {
          "line": 96,
          "column": 8
        },
        "end": {
          "line": 96,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 5013,
      "end": 5015,
      "loc": {
        "start": {
          "line": 96,
          "column": 9
        },
        "end": {
          "line": 96,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5016,
      "end": 5017,
      "loc": {
        "start": {
          "line": 96,
          "column": 12
        },
        "end": {
          "line": 96,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 5018,
      "end": 5025,
      "loc": {
        "start": {
          "line": 96,
          "column": 14
        },
        "end": {
          "line": 96,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5025,
      "end": 5026,
      "loc": {
        "start": {
          "line": 96,
          "column": 21
        },
        "end": {
          "line": 96,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 5026,
      "end": 5028,
      "loc": {
        "start": {
          "line": 96,
          "column": 22
        },
        "end": {
          "line": 96,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5028,
      "end": 5029,
      "loc": {
        "start": {
          "line": 96,
          "column": 24
        },
        "end": {
          "line": 96,
          "column": 25
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * The type of the association. One of `HasMany`, `BelongsTo`, `HasOne`, `BelongsToMany`\n     * @type {string}\n     ",
      "start": 5034,
      "end": 5160,
      "loc": {
        "start": {
          "line": 97,
          "column": 4
        },
        "end": {
          "line": 100,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5165,
      "end": 5169,
      "loc": {
        "start": {
          "line": 101,
          "column": 4
        },
        "end": {
          "line": 101,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5169,
      "end": 5170,
      "loc": {
        "start": {
          "line": 101,
          "column": 8
        },
        "end": {
          "line": 101,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "associationType",
      "start": 5170,
      "end": 5185,
      "loc": {
        "start": {
          "line": 101,
          "column": 9
        },
        "end": {
          "line": 101,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5186,
      "end": 5187,
      "loc": {
        "start": {
          "line": 101,
          "column": 25
        },
        "end": {
          "line": 101,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "",
      "start": 5188,
      "end": 5190,
      "loc": {
        "start": {
          "line": 101,
          "column": 27
        },
        "end": {
          "line": 101,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5190,
      "end": 5191,
      "loc": {
        "start": {
          "line": 101,
          "column": 29
        },
        "end": {
          "line": 101,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 5197,
      "end": 5199,
      "loc": {
        "start": {
          "line": 103,
          "column": 4
        },
        "end": {
          "line": 103,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5200,
      "end": 5201,
      "loc": {
        "start": {
          "line": 103,
          "column": 7
        },
        "end": {
          "line": 103,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 5201,
      "end": 5207,
      "loc": {
        "start": {
          "line": 103,
          "column": 8
        },
        "end": {
          "line": 103,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5207,
      "end": 5208,
      "loc": {
        "start": {
          "line": 103,
          "column": 14
        },
        "end": {
          "line": 103,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hasAlias",
      "start": 5208,
      "end": 5216,
      "loc": {
        "start": {
          "line": 103,
          "column": 15
        },
        "end": {
          "line": 103,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5216,
      "end": 5217,
      "loc": {
        "start": {
          "line": 103,
          "column": 23
        },
        "end": {
          "line": 103,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 5217,
      "end": 5224,
      "loc": {
        "start": {
          "line": 103,
          "column": 24
        },
        "end": {
          "line": 103,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5224,
      "end": 5225,
      "loc": {
        "start": {
          "line": 103,
          "column": 31
        },
        "end": {
          "line": 103,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 5225,
      "end": 5227,
      "loc": {
        "start": {
          "line": 103,
          "column": 32
        },
        "end": {
          "line": 103,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5227,
      "end": 5228,
      "loc": {
        "start": {
          "line": 103,
          "column": 34
        },
        "end": {
          "line": 103,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5228,
      "end": 5229,
      "loc": {
        "start": {
          "line": 103,
          "column": 35
        },
        "end": {
          "line": 103,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5230,
      "end": 5231,
      "loc": {
        "start": {
          "line": 103,
          "column": 37
        },
        "end": {
          "line": 103,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "throw",
        "keyword": "throw",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "throw",
      "start": 5238,
      "end": 5243,
      "loc": {
        "start": {
          "line": 104,
          "column": 6
        },
        "end": {
          "line": 104,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 5244,
      "end": 5247,
      "loc": {
        "start": {
          "line": 104,
          "column": 12
        },
        "end": {
          "line": 104,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "AssociationError",
      "start": 5248,
      "end": 5264,
      "loc": {
        "start": {
          "line": 104,
          "column": 16
        },
        "end": {
          "line": 104,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5264,
      "end": 5265,
      "loc": {
        "start": {
          "line": 104,
          "column": 32
        },
        "end": {
          "line": 104,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5265,
      "end": 5266,
      "loc": {
        "start": {
          "line": 104,
          "column": 33
        },
        "end": {
          "line": 104,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "You have used the alias ",
      "start": 5266,
      "end": 5290,
      "loc": {
        "start": {
          "line": 104,
          "column": 34
        },
        "end": {
          "line": 104,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "${",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5290,
      "end": 5292,
      "loc": {
        "start": {
          "line": 104,
          "column": 58
        },
        "end": {
          "line": 104,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 5292,
      "end": 5299,
      "loc": {
        "start": {
          "line": 104,
          "column": 60
        },
        "end": {
          "line": 104,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5299,
      "end": 5300,
      "loc": {
        "start": {
          "line": 104,
          "column": 67
        },
        "end": {
          "line": 104,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 5300,
      "end": 5302,
      "loc": {
        "start": {
          "line": 104,
          "column": 68
        },
        "end": {
          "line": 104,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5302,
      "end": 5303,
      "loc": {
        "start": {
          "line": 104,
          "column": 70
        },
        "end": {
          "line": 104,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": " in two separate associations. ",
      "start": 5303,
      "end": 5334,
      "loc": {
        "start": {
          "line": 104,
          "column": 71
        },
        "end": {
          "line": 104,
          "column": 102
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5334,
      "end": 5335,
      "loc": {
        "start": {
          "line": 104,
          "column": 102
        },
        "end": {
          "line": 104,
          "column": 103
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 5336,
      "end": 5337,
      "loc": {
        "start": {
          "line": 104,
          "column": 104
        },
        "end": {
          "line": 104,
          "column": 105
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Aliased associations must have unique aliases.",
      "start": 5344,
      "end": 5392,
      "loc": {
        "start": {
          "line": 105,
          "column": 6
        },
        "end": {
          "line": 105,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5399,
      "end": 5400,
      "loc": {
        "start": {
          "line": 106,
          "column": 6
        },
        "end": {
          "line": 106,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5400,
      "end": 5401,
      "loc": {
        "start": {
          "line": 106,
          "column": 7
        },
        "end": {
          "line": 106,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5406,
      "end": 5407,
      "loc": {
        "start": {
          "line": 107,
          "column": 4
        },
        "end": {
          "line": 107,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5410,
      "end": 5411,
      "loc": {
        "start": {
          "line": 108,
          "column": 2
        },
        "end": {
          "line": 108,
          "column": 3
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Normalize input - may be array or single obj, instance or primary key - convert it to an array of built objects",
      "start": 5414,
      "end": 5528,
      "loc": {
        "start": {
          "line": 109,
          "column": 2
        },
        "end": {
          "line": 109,
          "column": 116
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "toInstanceArray",
      "start": 5531,
      "end": 5546,
      "loc": {
        "start": {
          "line": 110,
          "column": 2
        },
        "end": {
          "line": 110,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5546,
      "end": 5547,
      "loc": {
        "start": {
          "line": 110,
          "column": 17
        },
        "end": {
          "line": 110,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "objs",
      "start": 5547,
      "end": 5551,
      "loc": {
        "start": {
          "line": 110,
          "column": 18
        },
        "end": {
          "line": 110,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5551,
      "end": 5552,
      "loc": {
        "start": {
          "line": 110,
          "column": 22
        },
        "end": {
          "line": 110,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5553,
      "end": 5554,
      "loc": {
        "start": {
          "line": 110,
          "column": 24
        },
        "end": {
          "line": 110,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 5559,
      "end": 5561,
      "loc": {
        "start": {
          "line": 111,
          "column": 4
        },
        "end": {
          "line": 111,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5562,
      "end": 5563,
      "loc": {
        "start": {
          "line": 111,
          "column": 7
        },
        "end": {
          "line": 111,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 5563,
      "end": 5564,
      "loc": {
        "start": {
          "line": 111,
          "column": 8
        },
        "end": {
          "line": 111,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Array",
      "start": 5564,
      "end": 5569,
      "loc": {
        "start": {
          "line": 111,
          "column": 9
        },
        "end": {
          "line": 111,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5569,
      "end": 5570,
      "loc": {
        "start": {
          "line": 111,
          "column": 14
        },
        "end": {
          "line": 111,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isArray",
      "start": 5570,
      "end": 5577,
      "loc": {
        "start": {
          "line": 111,
          "column": 15
        },
        "end": {
          "line": 111,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5577,
      "end": 5578,
      "loc": {
        "start": {
          "line": 111,
          "column": 22
        },
        "end": {
          "line": 111,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "objs",
      "start": 5578,
      "end": 5582,
      "loc": {
        "start": {
          "line": 111,
          "column": 23
        },
        "end": {
          "line": 111,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5582,
      "end": 5583,
      "loc": {
        "start": {
          "line": 111,
          "column": 27
        },
        "end": {
          "line": 111,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5583,
      "end": 5584,
      "loc": {
        "start": {
          "line": 111,
          "column": 28
        },
        "end": {
          "line": 111,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5585,
      "end": 5586,
      "loc": {
        "start": {
          "line": 111,
          "column": 30
        },
        "end": {
          "line": 111,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "objs",
      "start": 5593,
      "end": 5597,
      "loc": {
        "start": {
          "line": 112,
          "column": 6
        },
        "end": {
          "line": 112,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5598,
      "end": 5599,
      "loc": {
        "start": {
          "line": 112,
          "column": 11
        },
        "end": {
          "line": 112,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5600,
      "end": 5601,
      "loc": {
        "start": {
          "line": 112,
          "column": 13
        },
        "end": {
          "line": 112,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "objs",
      "start": 5601,
      "end": 5605,
      "loc": {
        "start": {
          "line": 112,
          "column": 14
        },
        "end": {
          "line": 112,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5605,
      "end": 5606,
      "loc": {
        "start": {
          "line": 112,
          "column": 18
        },
        "end": {
          "line": 112,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5606,
      "end": 5607,
      "loc": {
        "start": {
          "line": 112,
          "column": 19
        },
        "end": {
          "line": 112,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5612,
      "end": 5613,
      "loc": {
        "start": {
          "line": 113,
          "column": 4
        },
        "end": {
          "line": 113,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 5618,
      "end": 5624,
      "loc": {
        "start": {
          "line": 114,
          "column": 4
        },
        "end": {
          "line": 114,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "objs",
      "start": 5625,
      "end": 5629,
      "loc": {
        "start": {
          "line": 114,
          "column": 11
        },
        "end": {
          "line": 114,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5629,
      "end": 5630,
      "loc": {
        "start": {
          "line": 114,
          "column": 15
        },
        "end": {
          "line": 114,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "map",
      "start": 5630,
      "end": 5633,
      "loc": {
        "start": {
          "line": 114,
          "column": 16
        },
        "end": {
          "line": 114,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5633,
      "end": 5634,
      "loc": {
        "start": {
          "line": 114,
          "column": 19
        },
        "end": {
          "line": 114,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 5634,
      "end": 5642,
      "loc": {
        "start": {
          "line": 114,
          "column": 20
        },
        "end": {
          "line": 114,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5642,
      "end": 5643,
      "loc": {
        "start": {
          "line": 114,
          "column": 28
        },
        "end": {
          "line": 114,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obj",
      "start": 5643,
      "end": 5646,
      "loc": {
        "start": {
          "line": 114,
          "column": 29
        },
        "end": {
          "line": 114,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5646,
      "end": 5647,
      "loc": {
        "start": {
          "line": 114,
          "column": 32
        },
        "end": {
          "line": 114,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5648,
      "end": 5649,
      "loc": {
        "start": {
          "line": 114,
          "column": 34
        },
        "end": {
          "line": 114,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 5656,
      "end": 5658,
      "loc": {
        "start": {
          "line": 115,
          "column": 6
        },
        "end": {
          "line": 115,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5659,
      "end": 5660,
      "loc": {
        "start": {
          "line": 115,
          "column": 9
        },
        "end": {
          "line": 115,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 5660,
      "end": 5661,
      "loc": {
        "start": {
          "line": 115,
          "column": 10
        },
        "end": {
          "line": 115,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5661,
      "end": 5662,
      "loc": {
        "start": {
          "line": 115,
          "column": 11
        },
        "end": {
          "line": 115,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obj",
      "start": 5662,
      "end": 5665,
      "loc": {
        "start": {
          "line": 115,
          "column": 12
        },
        "end": {
          "line": 115,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "instanceof",
        "keyword": "instanceof",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "instanceof",
      "start": 5666,
      "end": 5676,
      "loc": {
        "start": {
          "line": 115,
          "column": 16
        },
        "end": {
          "line": 115,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5677,
      "end": 5681,
      "loc": {
        "start": {
          "line": 115,
          "column": 27
        },
        "end": {
          "line": 115,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5681,
      "end": 5682,
      "loc": {
        "start": {
          "line": 115,
          "column": 31
        },
        "end": {
          "line": 115,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 5682,
      "end": 5688,
      "loc": {
        "start": {
          "line": 115,
          "column": 32
        },
        "end": {
          "line": 115,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5688,
      "end": 5689,
      "loc": {
        "start": {
          "line": 115,
          "column": 38
        },
        "end": {
          "line": 115,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5689,
      "end": 5690,
      "loc": {
        "start": {
          "line": 115,
          "column": 39
        },
        "end": {
          "line": 115,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5691,
      "end": 5692,
      "loc": {
        "start": {
          "line": 115,
          "column": 41
        },
        "end": {
          "line": 115,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "var",
        "keyword": "var",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "var",
      "start": 5701,
      "end": 5704,
      "loc": {
        "start": {
          "line": 116,
          "column": 8
        },
        "end": {
          "line": 116,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tmpInstance",
      "start": 5705,
      "end": 5716,
      "loc": {
        "start": {
          "line": 116,
          "column": 12
        },
        "end": {
          "line": 116,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5717,
      "end": 5718,
      "loc": {
        "start": {
          "line": 116,
          "column": 24
        },
        "end": {
          "line": 116,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5719,
      "end": 5720,
      "loc": {
        "start": {
          "line": 116,
          "column": 26
        },
        "end": {
          "line": 116,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5720,
      "end": 5721,
      "loc": {
        "start": {
          "line": 116,
          "column": 27
        },
        "end": {
          "line": 116,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5721,
      "end": 5722,
      "loc": {
        "start": {
          "line": 116,
          "column": 28
        },
        "end": {
          "line": 116,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tmpInstance",
      "start": 5731,
      "end": 5742,
      "loc": {
        "start": {
          "line": 117,
          "column": 8
        },
        "end": {
          "line": 117,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5742,
      "end": 5743,
      "loc": {
        "start": {
          "line": 117,
          "column": 19
        },
        "end": {
          "line": 117,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5743,
      "end": 5747,
      "loc": {
        "start": {
          "line": 117,
          "column": 20
        },
        "end": {
          "line": 117,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5747,
      "end": 5748,
      "loc": {
        "start": {
          "line": 117,
          "column": 24
        },
        "end": {
          "line": 117,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 5748,
      "end": 5754,
      "loc": {
        "start": {
          "line": 117,
          "column": 25
        },
        "end": {
          "line": 117,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5754,
      "end": 5755,
      "loc": {
        "start": {
          "line": 117,
          "column": 31
        },
        "end": {
          "line": 117,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "primaryKeyAttribute",
      "start": 5755,
      "end": 5774,
      "loc": {
        "start": {
          "line": 117,
          "column": 32
        },
        "end": {
          "line": 117,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5774,
      "end": 5775,
      "loc": {
        "start": {
          "line": 117,
          "column": 51
        },
        "end": {
          "line": 117,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5776,
      "end": 5777,
      "loc": {
        "start": {
          "line": 117,
          "column": 53
        },
        "end": {
          "line": 117,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obj",
      "start": 5778,
      "end": 5781,
      "loc": {
        "start": {
          "line": 117,
          "column": 55
        },
        "end": {
          "line": 117,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5781,
      "end": 5782,
      "loc": {
        "start": {
          "line": 117,
          "column": 58
        },
        "end": {
          "line": 117,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 5791,
      "end": 5797,
      "loc": {
        "start": {
          "line": 118,
          "column": 8
        },
        "end": {
          "line": 118,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5798,
      "end": 5802,
      "loc": {
        "start": {
          "line": 118,
          "column": 15
        },
        "end": {
          "line": 118,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5802,
      "end": 5803,
      "loc": {
        "start": {
          "line": 118,
          "column": 19
        },
        "end": {
          "line": 118,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 5803,
      "end": 5809,
      "loc": {
        "start": {
          "line": 118,
          "column": 20
        },
        "end": {
          "line": 118,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5809,
      "end": 5810,
      "loc": {
        "start": {
          "line": 118,
          "column": 26
        },
        "end": {
          "line": 118,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "build",
      "start": 5810,
      "end": 5815,
      "loc": {
        "start": {
          "line": 118,
          "column": 27
        },
        "end": {
          "line": 118,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5815,
      "end": 5816,
      "loc": {
        "start": {
          "line": 118,
          "column": 32
        },
        "end": {
          "line": 118,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tmpInstance",
      "start": 5816,
      "end": 5827,
      "loc": {
        "start": {
          "line": 118,
          "column": 33
        },
        "end": {
          "line": 118,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5827,
      "end": 5828,
      "loc": {
        "start": {
          "line": 118,
          "column": 44
        },
        "end": {
          "line": 118,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5829,
      "end": 5830,
      "loc": {
        "start": {
          "line": 118,
          "column": 46
        },
        "end": {
          "line": 118,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isNewRecord",
      "start": 5841,
      "end": 5852,
      "loc": {
        "start": {
          "line": 119,
          "column": 10
        },
        "end": {
          "line": 119,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5852,
      "end": 5853,
      "loc": {
        "start": {
          "line": 119,
          "column": 21
        },
        "end": {
          "line": 119,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 5854,
      "end": 5859,
      "loc": {
        "start": {
          "line": 119,
          "column": 23
        },
        "end": {
          "line": 119,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5868,
      "end": 5869,
      "loc": {
        "start": {
          "line": 120,
          "column": 8
        },
        "end": {
          "line": 120,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5869,
      "end": 5870,
      "loc": {
        "start": {
          "line": 120,
          "column": 9
        },
        "end": {
          "line": 120,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5870,
      "end": 5871,
      "loc": {
        "start": {
          "line": 120,
          "column": 10
        },
        "end": {
          "line": 120,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5878,
      "end": 5879,
      "loc": {
        "start": {
          "line": 121,
          "column": 6
        },
        "end": {
          "line": 121,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 5886,
      "end": 5892,
      "loc": {
        "start": {
          "line": 122,
          "column": 6
        },
        "end": {
          "line": 122,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obj",
      "start": 5893,
      "end": 5896,
      "loc": {
        "start": {
          "line": 122,
          "column": 13
        },
        "end": {
          "line": 122,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5896,
      "end": 5897,
      "loc": {
        "start": {
          "line": 122,
          "column": 16
        },
        "end": {
          "line": 122,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5902,
      "end": 5903,
      "loc": {
        "start": {
          "line": 123,
          "column": 4
        },
        "end": {
          "line": 123,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5903,
      "end": 5904,
      "loc": {
        "start": {
          "line": 123,
          "column": 5
        },
        "end": {
          "line": 123,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5905,
      "end": 5909,
      "loc": {
        "start": {
          "line": 123,
          "column": 7
        },
        "end": {
          "line": 123,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5909,
      "end": 5910,
      "loc": {
        "start": {
          "line": 123,
          "column": 11
        },
        "end": {
          "line": 123,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5910,
      "end": 5911,
      "loc": {
        "start": {
          "line": 123,
          "column": 12
        },
        "end": {
          "line": 123,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5914,
      "end": 5915,
      "loc": {
        "start": {
          "line": 124,
          "column": 2
        },
        "end": {
          "line": 124,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "inspect",
      "start": 5918,
      "end": 5925,
      "loc": {
        "start": {
          "line": 125,
          "column": 2
        },
        "end": {
          "line": 125,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5925,
      "end": 5926,
      "loc": {
        "start": {
          "line": 125,
          "column": 9
        },
        "end": {
          "line": 125,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5926,
      "end": 5927,
      "loc": {
        "start": {
          "line": 125,
          "column": 10
        },
        "end": {
          "line": 125,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5928,
      "end": 5929,
      "loc": {
        "start": {
          "line": 125,
          "column": 12
        },
        "end": {
          "line": 125,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 5934,
      "end": 5940,
      "loc": {
        "start": {
          "line": 126,
          "column": 4
        },
        "end": {
          "line": 126,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5941,
      "end": 5945,
      "loc": {
        "start": {
          "line": 126,
          "column": 11
        },
        "end": {
          "line": 126,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5945,
      "end": 5946,
      "loc": {
        "start": {
          "line": 126,
          "column": 15
        },
        "end": {
          "line": 126,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 5946,
      "end": 5948,
      "loc": {
        "start": {
          "line": 126,
          "column": 16
        },
        "end": {
          "line": 126,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5948,
      "end": 5949,
      "loc": {
        "start": {
          "line": 126,
          "column": 18
        },
        "end": {
          "line": 126,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5952,
      "end": 5953,
      "loc": {
        "start": {
          "line": 127,
          "column": 2
        },
        "end": {
          "line": 127,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5954,
      "end": 5955,
      "loc": {
        "start": {
          "line": 128,
          "column": 0
        },
        "end": {
          "line": 128,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "module",
      "start": 5957,
      "end": 5963,
      "loc": {
        "start": {
          "line": 130,
          "column": 0
        },
        "end": {
          "line": 130,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5963,
      "end": 5964,
      "loc": {
        "start": {
          "line": 130,
          "column": 6
        },
        "end": {
          "line": 130,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "exports",
      "start": 5964,
      "end": 5971,
      "loc": {
        "start": {
          "line": 130,
          "column": 7
        },
        "end": {
          "line": 130,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5972,
      "end": 5973,
      "loc": {
        "start": {
          "line": 130,
          "column": 15
        },
        "end": {
          "line": 130,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Association",
      "start": 5974,
      "end": 5985,
      "loc": {
        "start": {
          "line": 130,
          "column": 17
        },
        "end": {
          "line": 130,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5985,
      "end": 5986,
      "loc": {
        "start": {
          "line": 130,
          "column": 28
        },
        "end": {
          "line": 130,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5987,
      "end": 5987,
      "loc": {
        "start": {
          "line": 131,
          "column": 0
        },
        "end": {
          "line": 131,
          "column": 0
        }
      }
    }
  ]
}