{
  "type": "Program",
  "body": [
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "Observable",
            "range": [
              9,
              19
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 19
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "Observable",
            "range": [
              9,
              19
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 19
              }
            }
          },
          "range": [
            9,
            19
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 9
            },
            "end": {
              "line": 1,
              "column": 19
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../Observable",
        "raw": "'../Observable'",
        "range": [
          27,
          42
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 27
          },
          "end": {
            "line": 1,
            "column": 42
          }
        }
      },
      "range": [
        0,
        43
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 43
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "tryCatch",
            "range": [
              53,
              61
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 17
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "tryCatch",
            "range": [
              53,
              61
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 17
              }
            }
          },
          "range": [
            53,
            61
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 9
            },
            "end": {
              "line": 2,
              "column": 17
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/tryCatch",
        "raw": "'../util/tryCatch'",
        "range": [
          69,
          87
        ],
        "loc": {
          "start": {
            "line": 2,
            "column": 25
          },
          "end": {
            "line": 2,
            "column": 43
          }
        }
      },
      "range": [
        44,
        88
      ],
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 44
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "errorObject",
            "range": [
              98,
              109
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 20
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "errorObject",
            "range": [
              98,
              109
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 20
              }
            }
          },
          "range": [
            98,
            109
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 9
            },
            "end": {
              "line": 3,
              "column": 20
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/errorObject",
        "raw": "'../util/errorObject'",
        "range": [
          117,
          138
        ],
        "loc": {
          "start": {
            "line": 3,
            "column": 28
          },
          "end": {
            "line": 3,
            "column": 49
          }
        }
      },
      "range": [
        89,
        139
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 50
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "AsyncSubject",
            "range": [
              149,
              161
            ],
            "loc": {
              "start": {
                "line": 4,
                "column": 9
              },
              "end": {
                "line": 4,
                "column": 21
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "AsyncSubject",
            "range": [
              149,
              161
            ],
            "loc": {
              "start": {
                "line": 4,
                "column": 9
              },
              "end": {
                "line": 4,
                "column": 21
              }
            }
          },
          "range": [
            149,
            161
          ],
          "loc": {
            "start": {
              "line": 4,
              "column": 9
            },
            "end": {
              "line": 4,
              "column": 21
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../AsyncSubject",
        "raw": "'../AsyncSubject'",
        "range": [
          169,
          186
        ],
        "loc": {
          "start": {
            "line": 4,
            "column": 29
          },
          "end": {
            "line": 4,
            "column": 46
          }
        }
      },
      "range": [
        140,
        187
      ],
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 47
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
          "range": [
            188,
            282
          ],
          "loc": {
            "start": {
              "line": 5,
              "column": 0
            },
            "end": {
              "line": 9,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "VariableDeclaration",
        "declarations": [
          {
            "type": "VariableDeclarator",
            "id": {
              "type": "Identifier",
              "name": "BoundNodeCallbackObservable",
              "range": [
                294,
                321
              ],
              "loc": {
                "start": {
                  "line": 10,
                  "column": 11
                },
                "end": {
                  "line": 10,
                  "column": 38
                }
              }
            },
            "init": {
              "type": "CallExpression",
              "callee": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "_super",
                    "range": [
                      335,
                      341
                    ],
                    "loc": {
                      "start": {
                        "line": 10,
                        "column": 52
                      },
                      "end": {
                        "line": 10,
                        "column": 58
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "Identifier",
                          "name": "__extends",
                          "range": [
                            349,
                            358
                          ],
                          "loc": {
                            "start": {
                              "line": 11,
                              "column": 4
                            },
                            "end": {
                              "line": 11,
                              "column": 13
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "BoundNodeCallbackObservable",
                            "range": [
                              359,
                              386
                            ],
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 14
                              },
                              "end": {
                                "line": 11,
                                "column": 41
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "_super",
                            "range": [
                              388,
                              394
                            ],
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 43
                              },
                              "end": {
                                "line": 11,
                                "column": 49
                              }
                            }
                          }
                        ],
                        "range": [
                          349,
                          395
                        ],
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 4
                          },
                          "end": {
                            "line": 11,
                            "column": 50
                          }
                        }
                      },
                      "range": [
                        349,
                        396
                      ],
                      "loc": {
                        "start": {
                          "line": 11,
                          "column": 4
                        },
                        "end": {
                          "line": 11,
                          "column": 51
                        }
                      }
                    },
                    {
                      "type": "FunctionDeclaration",
                      "id": {
                        "type": "Identifier",
                        "name": "BoundNodeCallbackObservable",
                        "range": [
                          410,
                          437
                        ],
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 13
                          },
                          "end": {
                            "line": 12,
                            "column": 40
                          }
                        }
                      },
                      "params": [
                        {
                          "type": "Identifier",
                          "name": "callbackFunc",
                          "range": [
                            438,
                            450
                          ],
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 41
                            },
                            "end": {
                              "line": 12,
                              "column": 53
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "selector",
                          "range": [
                            452,
                            460
                          ],
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 55
                            },
                            "end": {
                              "line": 12,
                              "column": 63
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "args",
                          "range": [
                            462,
                            466
                          ],
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 65
                            },
                            "end": {
                              "line": 12,
                              "column": 69
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "scheduler",
                          "range": [
                            468,
                            477
                          ],
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 71
                            },
                            "end": {
                              "line": 12,
                              "column": 80
                            }
                          }
                        }
                      ],
                      "body": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "CallExpression",
                              "callee": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "Identifier",
                                  "name": "_super",
                                  "range": [
                                    489,
                                    495
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 13,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 13,
                                      "column": 14
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "call",
                                  "range": [
                                    496,
                                    500
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 13,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 13,
                                      "column": 19
                                    }
                                  }
                                },
                                "range": [
                                  489,
                                  500
                                ],
                                "loc": {
                                  "start": {
                                    "line": 13,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 13,
                                    "column": 19
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "ThisExpression",
                                  "range": [
                                    501,
                                    505
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 13,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 13,
                                      "column": 24
                                    }
                                  }
                                }
                              ],
                              "range": [
                                489,
                                506
                              ],
                              "loc": {
                                "start": {
                                  "line": 13,
                                  "column": 8
                                },
                                "end": {
                                  "line": 13,
                                  "column": 25
                                }
                              }
                            },
                            "range": [
                              489,
                              507
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 8
                              },
                              "end": {
                                "line": 13,
                                "column": 26
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    516,
                                    520
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 14,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 14,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "callbackFunc",
                                  "range": [
                                    521,
                                    533
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 14,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 14,
                                      "column": 25
                                    }
                                  }
                                },
                                "range": [
                                  516,
                                  533
                                ],
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 25
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "callbackFunc",
                                "range": [
                                  536,
                                  548
                                ],
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 40
                                  }
                                }
                              },
                              "range": [
                                516,
                                548
                              ],
                              "loc": {
                                "start": {
                                  "line": 14,
                                  "column": 8
                                },
                                "end": {
                                  "line": 14,
                                  "column": 40
                                }
                              }
                            },
                            "range": [
                              516,
                              549
                            ],
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 8
                              },
                              "end": {
                                "line": 14,
                                "column": 41
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    558,
                                    562
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 15,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 15,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "selector",
                                  "range": [
                                    563,
                                    571
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 15,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 15,
                                      "column": 21
                                    }
                                  }
                                },
                                "range": [
                                  558,
                                  571
                                ],
                                "loc": {
                                  "start": {
                                    "line": 15,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 15,
                                    "column": 21
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "selector",
                                "range": [
                                  574,
                                  582
                                ],
                                "loc": {
                                  "start": {
                                    "line": 15,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 15,
                                    "column": 32
                                  }
                                }
                              },
                              "range": [
                                558,
                                582
                              ],
                              "loc": {
                                "start": {
                                  "line": 15,
                                  "column": 8
                                },
                                "end": {
                                  "line": 15,
                                  "column": 32
                                }
                              }
                            },
                            "range": [
                              558,
                              583
                            ],
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 8
                              },
                              "end": {
                                "line": 15,
                                "column": 33
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    592,
                                    596
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 16,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 16,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "args",
                                  "range": [
                                    597,
                                    601
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 16,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 16,
                                      "column": 17
                                    }
                                  }
                                },
                                "range": [
                                  592,
                                  601
                                ],
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 17
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "args",
                                "range": [
                                  604,
                                  608
                                ],
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 24
                                  }
                                }
                              },
                              "range": [
                                592,
                                608
                              ],
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 8
                                },
                                "end": {
                                  "line": 16,
                                  "column": 24
                                }
                              }
                            },
                            "range": [
                              592,
                              609
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 8
                              },
                              "end": {
                                "line": 16,
                                "column": 25
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    618,
                                    622
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 17,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 17,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "scheduler",
                                  "range": [
                                    623,
                                    632
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 17,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 17,
                                      "column": 22
                                    }
                                  }
                                },
                                "range": [
                                  618,
                                  632
                                ],
                                "loc": {
                                  "start": {
                                    "line": 17,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 17,
                                    "column": 22
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "scheduler",
                                "range": [
                                  635,
                                  644
                                ],
                                "loc": {
                                  "start": {
                                    "line": 17,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 17,
                                    "column": 34
                                  }
                                }
                              },
                              "range": [
                                618,
                                644
                              ],
                              "loc": {
                                "start": {
                                  "line": 17,
                                  "column": 8
                                },
                                "end": {
                                  "line": 17,
                                  "column": 34
                                }
                              }
                            },
                            "range": [
                              618,
                              645
                            ],
                            "loc": {
                              "start": {
                                "line": 17,
                                "column": 8
                              },
                              "end": {
                                "line": 17,
                                "column": 35
                              }
                            }
                          }
                        ],
                        "range": [
                          479,
                          651
                        ],
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 82
                          },
                          "end": {
                            "line": 18,
                            "column": 5
                          }
                        }
                      },
                      "generator": false,
                      "expression": false,
                      "range": [
                        401,
                        651
                      ],
                      "loc": {
                        "start": {
                          "line": 12,
                          "column": 4
                        },
                        "end": {
                          "line": 18,
                          "column": 5
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "Block",
                          "value": " tslint:enable:max-line-length ",
                          "range": [
                            656,
                            691
                          ],
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 4
                            },
                            "end": {
                              "line": 19,
                              "column": 39
                            }
                          }
                        },
                        {
                          "type": "Block",
                          "value": "*\n     * Converts a Node.js-style callback API to a function that returns an\n     * Observable.\n     *\n     * <span class=\"informal\">It's just like {@link bindCallback}, but the\n     * callback is expected to be of type `callback(error, result)`.</span>\n     *\n     * `bindNodeCallback` is not an operator because its input and output are not\n     * Observables. The input is a function `func` with some parameters, but the\n     * last parameter must be a callback function that `func` calls when it is\n     * done. The callback function is expected to follow Node.js conventions,\n     * where the first argument to the callback is an error, while remaining\n     * arguments are the callback result. The output of `bindNodeCallback` is a\n     * function that takes the same parameters as `func`, except the last one (the\n     * callback). When the output function is called with arguments, it will\n     * return an Observable where the results will be delivered to.\n     *\n     * @example <caption>Read a file from the filesystem and get the data as an Observable</caption>\n     * import * as fs from 'fs';\n     * var readFileAsObservable = Rx.Observable.bindNodeCallback(fs.readFile);\n     * var result = readFileAsObservable('./roadNames.txt', 'utf8');\n     * result.subscribe(x => console.log(x), e => console.error(e));\n     *\n     * @see {@link bindCallback}\n     * @see {@link from}\n     * @see {@link fromPromise}\n     *\n     * @param {function} func Function with a callback as the last parameter.\n     * @param {function} [selector] A function which takes the arguments from the\n     * callback and maps those a value to emit on the output Observable.\n     * @param {Scheduler} [scheduler] The scheduler on which to schedule the\n     * callbacks.\n     * @return {function(...params: *): Observable} A function which returns the\n     * Observable that delivers the same values the Node.js callback would\n     * deliver.\n     * @static true\n     * @name bindNodeCallback\n     * @owner Observable\n     ",
                          "range": [
                            696,
                            2708
                          ],
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 4
                            },
                            "end": {
                              "line": 58,
                              "column": 7
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "BoundNodeCallbackObservable",
                            "range": [
                              2713,
                              2740
                            ],
                            "loc": {
                              "start": {
                                "line": 59,
                                "column": 4
                              },
                              "end": {
                                "line": 59,
                                "column": 31
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "create",
                            "range": [
                              2741,
                              2747
                            ],
                            "loc": {
                              "start": {
                                "line": 59,
                                "column": 32
                              },
                              "end": {
                                "line": 59,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            2713,
                            2747
                          ],
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 4
                            },
                            "end": {
                              "line": 59,
                              "column": 38
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "func",
                              "range": [
                                2760,
                                2764
                              ],
                              "loc": {
                                "start": {
                                  "line": 59,
                                  "column": 51
                                },
                                "end": {
                                  "line": 59,
                                  "column": 55
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "selector",
                              "range": [
                                2766,
                                2774
                              ],
                              "loc": {
                                "start": {
                                  "line": 59,
                                  "column": 57
                                },
                                "end": {
                                  "line": 59,
                                  "column": 65
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "scheduler",
                              "range": [
                                2776,
                                2785
                              ],
                              "loc": {
                                "start": {
                                  "line": 59,
                                  "column": 67
                                },
                                "end": {
                                  "line": 59,
                                  "column": 76
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "BinaryExpression",
                                  "operator": "===",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "selector",
                                    "range": [
                                      2801,
                                      2809
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 60,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 60,
                                        "column": 20
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "UnaryExpression",
                                    "operator": "void",
                                    "argument": {
                                      "type": "Literal",
                                      "value": 0,
                                      "raw": "0",
                                      "range": [
                                        2819,
                                        2820
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 60,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 60,
                                          "column": 31
                                        }
                                      }
                                    },
                                    "prefix": true,
                                    "range": [
                                      2814,
                                      2820
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 60,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 60,
                                        "column": 31
                                      }
                                    }
                                  },
                                  "range": [
                                    2801,
                                    2820
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 60,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 60,
                                      "column": 31
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "operator": "=",
                                        "left": {
                                          "type": "Identifier",
                                          "name": "selector",
                                          "range": [
                                            2824,
                                            2832
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 60,
                                              "column": 35
                                            },
                                            "end": {
                                              "line": 60,
                                              "column": 43
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Identifier",
                                          "name": "undefined",
                                          "range": [
                                            2835,
                                            2844
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 60,
                                              "column": 46
                                            },
                                            "end": {
                                              "line": 60,
                                              "column": 55
                                            }
                                          }
                                        },
                                        "range": [
                                          2824,
                                          2844
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 60,
                                            "column": 35
                                          },
                                          "end": {
                                            "line": 60,
                                            "column": 55
                                          }
                                        }
                                      },
                                      "range": [
                                        2824,
                                        2845
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 60,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 60,
                                          "column": 56
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2822,
                                    2847
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 60,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 60,
                                      "column": 58
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  2797,
                                  2847
                                ],
                                "loc": {
                                  "start": {
                                    "line": 60,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 60,
                                    "column": 58
                                  }
                                }
                              },
                              {
                                "type": "ReturnStatement",
                                "argument": {
                                  "type": "FunctionExpression",
                                  "id": null,
                                  "params": [],
                                  "body": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "VariableDeclaration",
                                        "declarations": [
                                          {
                                            "type": "VariableDeclarator",
                                            "id": {
                                              "type": "Identifier",
                                              "name": "args",
                                              "range": [
                                                2893,
                                                2897
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 62,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 62,
                                                  "column": 20
                                                }
                                              }
                                            },
                                            "init": {
                                              "type": "ArrayExpression",
                                              "elements": [],
                                              "range": [
                                                2900,
                                                2902
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 62,
                                                  "column": 23
                                                },
                                                "end": {
                                                  "line": 62,
                                                  "column": 25
                                                }
                                              }
                                            },
                                            "range": [
                                              2893,
                                              2902
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 62,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 62,
                                                "column": 25
                                              }
                                            }
                                          }
                                        ],
                                        "kind": "var",
                                        "range": [
                                          2889,
                                          2903
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 62,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 62,
                                            "column": 26
                                          }
                                        }
                                      },
                                      {
                                        "type": "ForStatement",
                                        "init": {
                                          "type": "VariableDeclaration",
                                          "declarations": [
                                            {
                                              "type": "VariableDeclarator",
                                              "id": {
                                                "type": "Identifier",
                                                "name": "_i",
                                                "range": [
                                                  2925,
                                                  2927
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 63,
                                                    "column": 21
                                                  },
                                                  "end": {
                                                    "line": 63,
                                                    "column": 23
                                                  }
                                                }
                                              },
                                              "init": {
                                                "type": "Literal",
                                                "value": 0,
                                                "raw": "0",
                                                "range": [
                                                  2930,
                                                  2931
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 63,
                                                    "column": 26
                                                  },
                                                  "end": {
                                                    "line": 63,
                                                    "column": 27
                                                  }
                                                }
                                              },
                                              "range": [
                                                2925,
                                                2931
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 63,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 63,
                                                  "column": 27
                                                }
                                              }
                                            }
                                          ],
                                          "kind": "var",
                                          "range": [
                                            2921,
                                            2931
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 63,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 63,
                                              "column": 27
                                            }
                                          }
                                        },
                                        "test": {
                                          "type": "BinaryExpression",
                                          "operator": "<",
                                          "left": {
                                            "type": "Identifier",
                                            "name": "_i",
                                            "range": [
                                              2933,
                                              2935
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 63,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 63,
                                                "column": 31
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "arguments",
                                              "range": [
                                                2938,
                                                2947
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 63,
                                                  "column": 34
                                                },
                                                "end": {
                                                  "line": 63,
                                                  "column": 43
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "length",
                                              "range": [
                                                2948,
                                                2954
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 63,
                                                  "column": 44
                                                },
                                                "end": {
                                                  "line": 63,
                                                  "column": 50
                                                }
                                              }
                                            },
                                            "range": [
                                              2938,
                                              2954
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 63,
                                                "column": 34
                                              },
                                              "end": {
                                                "line": 63,
                                                "column": 50
                                              }
                                            }
                                          },
                                          "range": [
                                            2933,
                                            2954
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 63,
                                              "column": 29
                                            },
                                            "end": {
                                              "line": 63,
                                              "column": 50
                                            }
                                          }
                                        },
                                        "update": {
                                          "type": "UpdateExpression",
                                          "operator": "++",
                                          "argument": {
                                            "type": "Identifier",
                                            "name": "_i",
                                            "range": [
                                              2956,
                                              2958
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 63,
                                                "column": 52
                                              },
                                              "end": {
                                                "line": 63,
                                                "column": 54
                                              }
                                            }
                                          },
                                          "prefix": false,
                                          "range": [
                                            2956,
                                            2960
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 63,
                                              "column": 52
                                            },
                                            "end": {
                                              "line": 63,
                                              "column": 56
                                            }
                                          }
                                        },
                                        "body": {
                                          "type": "BlockStatement",
                                          "body": [
                                            {
                                              "type": "ExpressionStatement",
                                              "expression": {
                                                "type": "AssignmentExpression",
                                                "operator": "=",
                                                "left": {
                                                  "type": "MemberExpression",
                                                  "computed": true,
                                                  "object": {
                                                    "type": "Identifier",
                                                    "name": "args",
                                                    "range": [
                                                      2980,
                                                      2984
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 64,
                                                        "column": 16
                                                      },
                                                      "end": {
                                                        "line": 64,
                                                        "column": 20
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "BinaryExpression",
                                                    "operator": "-",
                                                    "left": {
                                                      "type": "Identifier",
                                                      "name": "_i",
                                                      "range": [
                                                        2985,
                                                        2987
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 64,
                                                          "column": 21
                                                        },
                                                        "end": {
                                                          "line": 64,
                                                          "column": 23
                                                        }
                                                      }
                                                    },
                                                    "right": {
                                                      "type": "Literal",
                                                      "value": 0,
                                                      "raw": "0",
                                                      "range": [
                                                        2990,
                                                        2991
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 64,
                                                          "column": 26
                                                        },
                                                        "end": {
                                                          "line": 64,
                                                          "column": 27
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      2985,
                                                      2991
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 64,
                                                        "column": 21
                                                      },
                                                      "end": {
                                                        "line": 64,
                                                        "column": 27
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    2980,
                                                    2992
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 64,
                                                      "column": 16
                                                    },
                                                    "end": {
                                                      "line": 64,
                                                      "column": 28
                                                    }
                                                  }
                                                },
                                                "right": {
                                                  "type": "MemberExpression",
                                                  "computed": true,
                                                  "object": {
                                                    "type": "Identifier",
                                                    "name": "arguments",
                                                    "range": [
                                                      2995,
                                                      3004
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 64,
                                                        "column": 31
                                                      },
                                                      "end": {
                                                        "line": 64,
                                                        "column": 40
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "name": "_i",
                                                    "range": [
                                                      3005,
                                                      3007
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 64,
                                                        "column": 41
                                                      },
                                                      "end": {
                                                        "line": 64,
                                                        "column": 43
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    2995,
                                                    3008
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 64,
                                                      "column": 31
                                                    },
                                                    "end": {
                                                      "line": 64,
                                                      "column": 44
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  2980,
                                                  3008
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 64,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 64,
                                                    "column": 44
                                                  }
                                                }
                                              },
                                              "range": [
                                                2980,
                                                3009
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 64,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 64,
                                                  "column": 45
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            2962,
                                            3023
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 63,
                                              "column": 58
                                            },
                                            "end": {
                                              "line": 65,
                                              "column": 13
                                            }
                                          }
                                        },
                                        "range": [
                                          2916,
                                          3023
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 63,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 65,
                                            "column": 13
                                          }
                                        }
                                      },
                                      {
                                        "type": "ReturnStatement",
                                        "argument": {
                                          "type": "NewExpression",
                                          "callee": {
                                            "type": "Identifier",
                                            "name": "BoundNodeCallbackObservable",
                                            "range": [
                                              3047,
                                              3074
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 66,
                                                "column": 23
                                              },
                                              "end": {
                                                "line": 66,
                                                "column": 50
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "Identifier",
                                              "name": "func",
                                              "range": [
                                                3075,
                                                3079
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 66,
                                                  "column": 51
                                                },
                                                "end": {
                                                  "line": 66,
                                                  "column": 55
                                                }
                                              }
                                            },
                                            {
                                              "type": "Identifier",
                                              "name": "selector",
                                              "range": [
                                                3081,
                                                3089
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 66,
                                                  "column": 57
                                                },
                                                "end": {
                                                  "line": 66,
                                                  "column": 65
                                                }
                                              }
                                            },
                                            {
                                              "type": "Identifier",
                                              "name": "args",
                                              "range": [
                                                3091,
                                                3095
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 66,
                                                  "column": 67
                                                },
                                                "end": {
                                                  "line": 66,
                                                  "column": 71
                                                }
                                              }
                                            },
                                            {
                                              "type": "Identifier",
                                              "name": "scheduler",
                                              "range": [
                                                3097,
                                                3106
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 66,
                                                  "column": 73
                                                },
                                                "end": {
                                                  "line": 66,
                                                  "column": 82
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            3043,
                                            3107
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 66,
                                              "column": 19
                                            },
                                            "end": {
                                              "line": 66,
                                              "column": 83
                                            }
                                          }
                                        },
                                        "range": [
                                          3036,
                                          3108
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 66,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 66,
                                            "column": 84
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      2875,
                                      3118
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 61,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 9
                                      }
                                    }
                                  },
                                  "generator": false,
                                  "expression": false,
                                  "range": [
                                    2863,
                                    3118
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 61,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 9
                                    }
                                  }
                                },
                                "range": [
                                  2856,
                                  3119
                                ],
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 10
                                  }
                                }
                              }
                            ],
                            "range": [
                              2787,
                              3125
                            ],
                            "loc": {
                              "start": {
                                "line": 59,
                                "column": 78
                              },
                              "end": {
                                "line": 68,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            2750,
                            3125
                          ],
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 41
                            },
                            "end": {
                              "line": 68,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          2713,
                          3125
                        ],
                        "loc": {
                          "start": {
                            "line": 59,
                            "column": 4
                          },
                          "end": {
                            "line": 68,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2713,
                        3126
                      ],
                      "loc": {
                        "start": {
                          "line": 59,
                          "column": 4
                        },
                        "end": {
                          "line": 68,
                          "column": 6
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Block",
                          "value": " tslint:enable:max-line-length ",
                          "range": [
                            656,
                            691
                          ],
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 4
                            },
                            "end": {
                              "line": 19,
                              "column": 39
                            }
                          }
                        },
                        {
                          "type": "Block",
                          "value": "*\n     * Converts a Node.js-style callback API to a function that returns an\n     * Observable.\n     *\n     * <span class=\"informal\">It's just like {@link bindCallback}, but the\n     * callback is expected to be of type `callback(error, result)`.</span>\n     *\n     * `bindNodeCallback` is not an operator because its input and output are not\n     * Observables. The input is a function `func` with some parameters, but the\n     * last parameter must be a callback function that `func` calls when it is\n     * done. The callback function is expected to follow Node.js conventions,\n     * where the first argument to the callback is an error, while remaining\n     * arguments are the callback result. The output of `bindNodeCallback` is a\n     * function that takes the same parameters as `func`, except the last one (the\n     * callback). When the output function is called with arguments, it will\n     * return an Observable where the results will be delivered to.\n     *\n     * @example <caption>Read a file from the filesystem and get the data as an Observable</caption>\n     * import * as fs from 'fs';\n     * var readFileAsObservable = Rx.Observable.bindNodeCallback(fs.readFile);\n     * var result = readFileAsObservable('./roadNames.txt', 'utf8');\n     * result.subscribe(x => console.log(x), e => console.error(e));\n     *\n     * @see {@link bindCallback}\n     * @see {@link from}\n     * @see {@link fromPromise}\n     *\n     * @param {function} func Function with a callback as the last parameter.\n     * @param {function} [selector] A function which takes the arguments from the\n     * callback and maps those a value to emit on the output Observable.\n     * @param {Scheduler} [scheduler] The scheduler on which to schedule the\n     * callbacks.\n     * @return {function(...params: *): Observable} A function which returns the\n     * Observable that delivers the same values the Node.js callback would\n     * deliver.\n     * @static true\n     * @name bindNodeCallback\n     * @owner Observable\n     ",
                          "range": [
                            696,
                            2708
                          ],
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 4
                            },
                            "end": {
                              "line": 58,
                              "column": 7
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "BoundNodeCallbackObservable",
                              "range": [
                                3131,
                                3158
                              ],
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 4
                                },
                                "end": {
                                  "line": 69,
                                  "column": 31
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                3159,
                                3168
                              ],
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 32
                                },
                                "end": {
                                  "line": 69,
                                  "column": 41
                                }
                              }
                            },
                            "range": [
                              3131,
                              3168
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 4
                              },
                              "end": {
                                "line": 69,
                                "column": 41
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_subscribe",
                            "range": [
                              3169,
                              3179
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 42
                              },
                              "end": {
                                "line": 69,
                                "column": 52
                              }
                            }
                          },
                          "range": [
                            3131,
                            3179
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 4
                            },
                            "end": {
                              "line": 69,
                              "column": 52
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "subscriber",
                              "range": [
                                3192,
                                3202
                              ],
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 65
                                },
                                "end": {
                                  "line": 69,
                                  "column": 75
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "callbackFunc",
                                      "range": [
                                        3218,
                                        3230
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          3233,
                                          3237
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 70,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 70,
                                            "column": 31
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "callbackFunc",
                                        "range": [
                                          3238,
                                          3250
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 70,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 70,
                                            "column": 44
                                          }
                                        }
                                      },
                                      "range": [
                                        3233,
                                        3250
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 44
                                        }
                                      }
                                    },
                                    "range": [
                                      3218,
                                      3250
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 44
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  3214,
                                  3251
                                ],
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 45
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "args",
                                      "range": [
                                        3264,
                                        3268
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 71,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 71,
                                          "column": 16
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          3271,
                                          3275
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 71,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 71,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "args",
                                        "range": [
                                          3276,
                                          3280
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 71,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 71,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "range": [
                                        3271,
                                        3280
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 71,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 71,
                                          "column": 28
                                        }
                                      }
                                    },
                                    "range": [
                                      3264,
                                      3280
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 71,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 71,
                                        "column": 28
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  3260,
                                  3281
                                ],
                                "loc": {
                                  "start": {
                                    "line": 71,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 71,
                                    "column": 29
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "scheduler",
                                      "range": [
                                        3294,
                                        3303
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 72,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 72,
                                          "column": 21
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          3306,
                                          3310
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 72,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 72,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "scheduler",
                                        "range": [
                                          3311,
                                          3320
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 72,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 72,
                                            "column": 38
                                          }
                                        }
                                      },
                                      "range": [
                                        3306,
                                        3320
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 72,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 72,
                                          "column": 38
                                        }
                                      }
                                    },
                                    "range": [
                                      3294,
                                      3320
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 72,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 72,
                                        "column": 38
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  3290,
                                  3321
                                ],
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 39
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "subject",
                                      "range": [
                                        3334,
                                        3341
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          3344,
                                          3348
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 26
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "subject",
                                        "range": [
                                          3349,
                                          3356
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 34
                                          }
                                        }
                                      },
                                      "range": [
                                        3344,
                                        3356
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "range": [
                                      3334,
                                      3356
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 34
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  3330,
                                  3357
                                ],
                                "loc": {
                                  "start": {
                                    "line": 73,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 73,
                                    "column": 35
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "UnaryExpression",
                                  "operator": "!",
                                  "argument": {
                                    "type": "Identifier",
                                    "name": "scheduler",
                                    "range": [
                                      3371,
                                      3380
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "prefix": true,
                                  "range": [
                                    3370,
                                    3380
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 22
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "IfStatement",
                                      "test": {
                                        "type": "UnaryExpression",
                                        "operator": "!",
                                        "argument": {
                                          "type": "Identifier",
                                          "name": "subject",
                                          "range": [
                                            3401,
                                            3408
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 75,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 75,
                                              "column": 24
                                            }
                                          }
                                        },
                                        "prefix": true,
                                        "range": [
                                          3400,
                                          3408
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 75,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 75,
                                            "column": 24
                                          }
                                        }
                                      },
                                      "consequent": {
                                        "type": "BlockStatement",
                                        "body": [
                                          {
                                            "type": "ExpressionStatement",
                                            "expression": {
                                              "type": "AssignmentExpression",
                                              "operator": "=",
                                              "left": {
                                                "type": "Identifier",
                                                "name": "subject",
                                                "range": [
                                                  3428,
                                                  3435
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 76,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 76,
                                                    "column": 23
                                                  }
                                                }
                                              },
                                              "right": {
                                                "type": "AssignmentExpression",
                                                "operator": "=",
                                                "left": {
                                                  "type": "MemberExpression",
                                                  "computed": false,
                                                  "object": {
                                                    "type": "ThisExpression",
                                                    "range": [
                                                      3438,
                                                      3442
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 76,
                                                        "column": 26
                                                      },
                                                      "end": {
                                                        "line": 76,
                                                        "column": 30
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "name": "subject",
                                                    "range": [
                                                      3443,
                                                      3450
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 76,
                                                        "column": 31
                                                      },
                                                      "end": {
                                                        "line": 76,
                                                        "column": 38
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    3438,
                                                    3450
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 76,
                                                      "column": 26
                                                    },
                                                    "end": {
                                                      "line": 76,
                                                      "column": 38
                                                    }
                                                  }
                                                },
                                                "right": {
                                                  "type": "NewExpression",
                                                  "callee": {
                                                    "type": "Identifier",
                                                    "name": "AsyncSubject",
                                                    "range": [
                                                      3457,
                                                      3469
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 76,
                                                        "column": 45
                                                      },
                                                      "end": {
                                                        "line": 76,
                                                        "column": 57
                                                      }
                                                    }
                                                  },
                                                  "arguments": [],
                                                  "range": [
                                                    3453,
                                                    3471
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 76,
                                                      "column": 41
                                                    },
                                                    "end": {
                                                      "line": 76,
                                                      "column": 59
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  3438,
                                                  3471
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 76,
                                                    "column": 26
                                                  },
                                                  "end": {
                                                    "line": 76,
                                                    "column": 59
                                                  }
                                                }
                                              },
                                              "range": [
                                                3428,
                                                3471
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 76,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 76,
                                                  "column": 59
                                                }
                                              }
                                            },
                                            "range": [
                                              3428,
                                              3472
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 76,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 76,
                                                "column": 60
                                              }
                                            }
                                          },
                                          {
                                            "type": "VariableDeclaration",
                                            "declarations": [
                                              {
                                                "type": "VariableDeclarator",
                                                "id": {
                                                  "type": "Identifier",
                                                  "name": "handler",
                                                  "range": [
                                                    3493,
                                                    3500
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 77,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 77,
                                                      "column": 27
                                                    }
                                                  }
                                                },
                                                "init": {
                                                  "type": "FunctionExpression",
                                                  "id": {
                                                    "type": "Identifier",
                                                    "name": "handlerFn",
                                                    "range": [
                                                      3512,
                                                      3521
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 77,
                                                        "column": 39
                                                      },
                                                      "end": {
                                                        "line": 77,
                                                        "column": 48
                                                      }
                                                    }
                                                  },
                                                  "params": [],
                                                  "body": {
                                                    "type": "BlockStatement",
                                                    "body": [
                                                      {
                                                        "type": "VariableDeclaration",
                                                        "declarations": [
                                                          {
                                                            "type": "VariableDeclarator",
                                                            "id": {
                                                              "type": "Identifier",
                                                              "name": "innerArgs",
                                                              "range": [
                                                                3550,
                                                                3559
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 78,
                                                                  "column": 24
                                                                },
                                                                "end": {
                                                                  "line": 78,
                                                                  "column": 33
                                                                }
                                                              }
                                                            },
                                                            "init": {
                                                              "type": "ArrayExpression",
                                                              "elements": [],
                                                              "range": [
                                                                3562,
                                                                3564
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 78,
                                                                  "column": 36
                                                                },
                                                                "end": {
                                                                  "line": 78,
                                                                  "column": 38
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              3550,
                                                              3564
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 78,
                                                                "column": 24
                                                              },
                                                              "end": {
                                                                "line": 78,
                                                                "column": 38
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "kind": "var",
                                                        "range": [
                                                          3546,
                                                          3565
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 78,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 78,
                                                            "column": 39
                                                          }
                                                        }
                                                      },
                                                      {
                                                        "type": "ForStatement",
                                                        "init": {
                                                          "type": "VariableDeclaration",
                                                          "declarations": [
                                                            {
                                                              "type": "VariableDeclarator",
                                                              "id": {
                                                                "type": "Identifier",
                                                                "name": "_i",
                                                                "range": [
                                                                  3595,
                                                                  3597
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 79,
                                                                    "column": 29
                                                                  },
                                                                  "end": {
                                                                    "line": 79,
                                                                    "column": 31
                                                                  }
                                                                }
                                                              },
                                                              "init": {
                                                                "type": "Literal",
                                                                "value": 0,
                                                                "raw": "0",
                                                                "range": [
                                                                  3600,
                                                                  3601
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 79,
                                                                    "column": 34
                                                                  },
                                                                  "end": {
                                                                    "line": 79,
                                                                    "column": 35
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                3595,
                                                                3601
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 79,
                                                                  "column": 29
                                                                },
                                                                "end": {
                                                                  "line": 79,
                                                                  "column": 35
                                                                }
                                                              }
                                                            }
                                                          ],
                                                          "kind": "var",
                                                          "range": [
                                                            3591,
                                                            3601
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 79,
                                                              "column": 25
                                                            },
                                                            "end": {
                                                              "line": 79,
                                                              "column": 35
                                                            }
                                                          }
                                                        },
                                                        "test": {
                                                          "type": "BinaryExpression",
                                                          "operator": "<",
                                                          "left": {
                                                            "type": "Identifier",
                                                            "name": "_i",
                                                            "range": [
                                                              3603,
                                                              3605
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 79,
                                                                "column": 37
                                                              },
                                                              "end": {
                                                                "line": 79,
                                                                "column": 39
                                                              }
                                                            }
                                                          },
                                                          "right": {
                                                            "type": "MemberExpression",
                                                            "computed": false,
                                                            "object": {
                                                              "type": "Identifier",
                                                              "name": "arguments",
                                                              "range": [
                                                                3608,
                                                                3617
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 79,
                                                                  "column": 42
                                                                },
                                                                "end": {
                                                                  "line": 79,
                                                                  "column": 51
                                                                }
                                                              }
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "name": "length",
                                                              "range": [
                                                                3618,
                                                                3624
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 79,
                                                                  "column": 52
                                                                },
                                                                "end": {
                                                                  "line": 79,
                                                                  "column": 58
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              3608,
                                                              3624
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 79,
                                                                "column": 42
                                                              },
                                                              "end": {
                                                                "line": 79,
                                                                "column": 58
                                                              }
                                                            }
                                                          },
                                                          "range": [
                                                            3603,
                                                            3624
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 79,
                                                              "column": 37
                                                            },
                                                            "end": {
                                                              "line": 79,
                                                              "column": 58
                                                            }
                                                          }
                                                        },
                                                        "update": {
                                                          "type": "UpdateExpression",
                                                          "operator": "++",
                                                          "argument": {
                                                            "type": "Identifier",
                                                            "name": "_i",
                                                            "range": [
                                                              3626,
                                                              3628
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 79,
                                                                "column": 60
                                                              },
                                                              "end": {
                                                                "line": 79,
                                                                "column": 62
                                                              }
                                                            }
                                                          },
                                                          "prefix": false,
                                                          "range": [
                                                            3626,
                                                            3630
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 79,
                                                              "column": 60
                                                            },
                                                            "end": {
                                                              "line": 79,
                                                              "column": 64
                                                            }
                                                          }
                                                        },
                                                        "body": {
                                                          "type": "BlockStatement",
                                                          "body": [
                                                            {
                                                              "type": "ExpressionStatement",
                                                              "expression": {
                                                                "type": "AssignmentExpression",
                                                                "operator": "=",
                                                                "left": {
                                                                  "type": "MemberExpression",
                                                                  "computed": true,
                                                                  "object": {
                                                                    "type": "Identifier",
                                                                    "name": "innerArgs",
                                                                    "range": [
                                                                      3658,
                                                                      3667
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 80,
                                                                        "column": 24
                                                                      },
                                                                      "end": {
                                                                        "line": 80,
                                                                        "column": 33
                                                                      }
                                                                    }
                                                                  },
                                                                  "property": {
                                                                    "type": "BinaryExpression",
                                                                    "operator": "-",
                                                                    "left": {
                                                                      "type": "Identifier",
                                                                      "name": "_i",
                                                                      "range": [
                                                                        3668,
                                                                        3670
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 80,
                                                                          "column": 34
                                                                        },
                                                                        "end": {
                                                                          "line": 80,
                                                                          "column": 36
                                                                        }
                                                                      }
                                                                    },
                                                                    "right": {
                                                                      "type": "Literal",
                                                                      "value": 0,
                                                                      "raw": "0",
                                                                      "range": [
                                                                        3673,
                                                                        3674
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 80,
                                                                          "column": 39
                                                                        },
                                                                        "end": {
                                                                          "line": 80,
                                                                          "column": 40
                                                                        }
                                                                      }
                                                                    },
                                                                    "range": [
                                                                      3668,
                                                                      3674
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 80,
                                                                        "column": 34
                                                                      },
                                                                      "end": {
                                                                        "line": 80,
                                                                        "column": 40
                                                                      }
                                                                    }
                                                                  },
                                                                  "range": [
                                                                    3658,
                                                                    3675
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 80,
                                                                      "column": 24
                                                                    },
                                                                    "end": {
                                                                      "line": 80,
                                                                      "column": 41
                                                                    }
                                                                  }
                                                                },
                                                                "right": {
                                                                  "type": "MemberExpression",
                                                                  "computed": true,
                                                                  "object": {
                                                                    "type": "Identifier",
                                                                    "name": "arguments",
                                                                    "range": [
                                                                      3678,
                                                                      3687
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 80,
                                                                        "column": 44
                                                                      },
                                                                      "end": {
                                                                        "line": 80,
                                                                        "column": 53
                                                                      }
                                                                    }
                                                                  },
                                                                  "property": {
                                                                    "type": "Identifier",
                                                                    "name": "_i",
                                                                    "range": [
                                                                      3688,
                                                                      3690
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 80,
                                                                        "column": 54
                                                                      },
                                                                      "end": {
                                                                        "line": 80,
                                                                        "column": 56
                                                                      }
                                                                    }
                                                                  },
                                                                  "range": [
                                                                    3678,
                                                                    3691
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 80,
                                                                      "column": 44
                                                                    },
                                                                    "end": {
                                                                      "line": 80,
                                                                      "column": 57
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  3658,
                                                                  3691
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 80,
                                                                    "column": 24
                                                                  },
                                                                  "end": {
                                                                    "line": 80,
                                                                    "column": 57
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                3658,
                                                                3692
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 80,
                                                                  "column": 24
                                                                },
                                                                "end": {
                                                                  "line": 80,
                                                                  "column": 58
                                                                }
                                                              }
                                                            }
                                                          ],
                                                          "range": [
                                                            3632,
                                                            3714
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 79,
                                                              "column": 66
                                                            },
                                                            "end": {
                                                              "line": 81,
                                                              "column": 21
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          3586,
                                                          3714
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 79,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 81,
                                                            "column": 21
                                                          }
                                                        }
                                                      },
                                                      {
                                                        "type": "VariableDeclaration",
                                                        "declarations": [
                                                          {
                                                            "type": "VariableDeclarator",
                                                            "id": {
                                                              "type": "Identifier",
                                                              "name": "source",
                                                              "range": [
                                                                3739,
                                                                3745
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 82,
                                                                  "column": 24
                                                                },
                                                                "end": {
                                                                  "line": 82,
                                                                  "column": 30
                                                                }
                                                              }
                                                            },
                                                            "init": {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "Identifier",
                                                                "name": "handlerFn",
                                                                "range": [
                                                                  3748,
                                                                  3757
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 82,
                                                                    "column": 33
                                                                  },
                                                                  "end": {
                                                                    "line": 82,
                                                                    "column": 42
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "source",
                                                                "range": [
                                                                  3758,
                                                                  3764
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 82,
                                                                    "column": 43
                                                                  },
                                                                  "end": {
                                                                    "line": 82,
                                                                    "column": 49
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                3748,
                                                                3764
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 82,
                                                                  "column": 33
                                                                },
                                                                "end": {
                                                                  "line": 82,
                                                                  "column": 49
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              3739,
                                                              3764
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 82,
                                                                "column": 24
                                                              },
                                                              "end": {
                                                                "line": 82,
                                                                "column": 49
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "kind": "var",
                                                        "range": [
                                                          3735,
                                                          3765
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 82,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 82,
                                                            "column": 50
                                                          }
                                                        }
                                                      },
                                                      {
                                                        "type": "VariableDeclaration",
                                                        "declarations": [
                                                          {
                                                            "type": "VariableDeclarator",
                                                            "id": {
                                                              "type": "Identifier",
                                                              "name": "selector",
                                                              "range": [
                                                                3790,
                                                                3798
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 83,
                                                                  "column": 24
                                                                },
                                                                "end": {
                                                                  "line": 83,
                                                                  "column": 32
                                                                }
                                                              }
                                                            },
                                                            "init": {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "Identifier",
                                                                "name": "source",
                                                                "range": [
                                                                  3801,
                                                                  3807
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 83,
                                                                    "column": 35
                                                                  },
                                                                  "end": {
                                                                    "line": 83,
                                                                    "column": 41
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "selector",
                                                                "range": [
                                                                  3808,
                                                                  3816
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 83,
                                                                    "column": 42
                                                                  },
                                                                  "end": {
                                                                    "line": 83,
                                                                    "column": 50
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                3801,
                                                                3816
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 83,
                                                                  "column": 35
                                                                },
                                                                "end": {
                                                                  "line": 83,
                                                                  "column": 50
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              3790,
                                                              3816
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 83,
                                                                "column": 24
                                                              },
                                                              "end": {
                                                                "line": 83,
                                                                "column": 50
                                                              }
                                                            }
                                                          },
                                                          {
                                                            "type": "VariableDeclarator",
                                                            "id": {
                                                              "type": "Identifier",
                                                              "name": "subject",
                                                              "range": [
                                                                3818,
                                                                3825
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 83,
                                                                  "column": 52
                                                                },
                                                                "end": {
                                                                  "line": 83,
                                                                  "column": 59
                                                                }
                                                              }
                                                            },
                                                            "init": {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "Identifier",
                                                                "name": "source",
                                                                "range": [
                                                                  3828,
                                                                  3834
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 83,
                                                                    "column": 62
                                                                  },
                                                                  "end": {
                                                                    "line": 83,
                                                                    "column": 68
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "subject",
                                                                "range": [
                                                                  3835,
                                                                  3842
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 83,
                                                                    "column": 69
                                                                  },
                                                                  "end": {
                                                                    "line": 83,
                                                                    "column": 76
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                3828,
                                                                3842
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 83,
                                                                  "column": 62
                                                                },
                                                                "end": {
                                                                  "line": 83,
                                                                  "column": 76
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              3818,
                                                              3842
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 83,
                                                                "column": 52
                                                              },
                                                              "end": {
                                                                "line": 83,
                                                                "column": 76
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "kind": "var",
                                                        "range": [
                                                          3786,
                                                          3843
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 83,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 83,
                                                            "column": 77
                                                          }
                                                        }
                                                      },
                                                      {
                                                        "type": "VariableDeclaration",
                                                        "declarations": [
                                                          {
                                                            "type": "VariableDeclarator",
                                                            "id": {
                                                              "type": "Identifier",
                                                              "name": "err",
                                                              "range": [
                                                                3868,
                                                                3871
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 84,
                                                                  "column": 24
                                                                },
                                                                "end": {
                                                                  "line": 84,
                                                                  "column": 27
                                                                }
                                                              }
                                                            },
                                                            "init": {
                                                              "type": "CallExpression",
                                                              "callee": {
                                                                "type": "MemberExpression",
                                                                "computed": false,
                                                                "object": {
                                                                  "type": "Identifier",
                                                                  "name": "innerArgs",
                                                                  "range": [
                                                                    3874,
                                                                    3883
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 84,
                                                                      "column": 30
                                                                    },
                                                                    "end": {
                                                                      "line": 84,
                                                                      "column": 39
                                                                    }
                                                                  }
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "name": "shift",
                                                                  "range": [
                                                                    3884,
                                                                    3889
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 84,
                                                                      "column": 40
                                                                    },
                                                                    "end": {
                                                                      "line": 84,
                                                                      "column": 45
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  3874,
                                                                  3889
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 84,
                                                                    "column": 30
                                                                  },
                                                                  "end": {
                                                                    "line": 84,
                                                                    "column": 45
                                                                  }
                                                                }
                                                              },
                                                              "arguments": [],
                                                              "range": [
                                                                3874,
                                                                3891
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 84,
                                                                  "column": 30
                                                                },
                                                                "end": {
                                                                  "line": 84,
                                                                  "column": 47
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              3868,
                                                              3891
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 84,
                                                                "column": 24
                                                              },
                                                              "end": {
                                                                "line": 84,
                                                                "column": 47
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "kind": "var",
                                                        "range": [
                                                          3864,
                                                          3892
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 84,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 84,
                                                            "column": 48
                                                          }
                                                        }
                                                      },
                                                      {
                                                        "type": "IfStatement",
                                                        "test": {
                                                          "type": "Identifier",
                                                          "name": "err",
                                                          "range": [
                                                            3917,
                                                            3920
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 85,
                                                              "column": 24
                                                            },
                                                            "end": {
                                                              "line": 85,
                                                              "column": 27
                                                            }
                                                          }
                                                        },
                                                        "consequent": {
                                                          "type": "BlockStatement",
                                                          "body": [
                                                            {
                                                              "type": "ExpressionStatement",
                                                              "expression": {
                                                                "type": "CallExpression",
                                                                "callee": {
                                                                  "type": "MemberExpression",
                                                                  "computed": false,
                                                                  "object": {
                                                                    "type": "Identifier",
                                                                    "name": "subject",
                                                                    "range": [
                                                                      3948,
                                                                      3955
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 86,
                                                                        "column": 24
                                                                      },
                                                                      "end": {
                                                                        "line": 86,
                                                                        "column": 31
                                                                      }
                                                                    }
                                                                  },
                                                                  "property": {
                                                                    "type": "Identifier",
                                                                    "name": "error",
                                                                    "range": [
                                                                      3956,
                                                                      3961
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 86,
                                                                        "column": 32
                                                                      },
                                                                      "end": {
                                                                        "line": 86,
                                                                        "column": 37
                                                                      }
                                                                    }
                                                                  },
                                                                  "range": [
                                                                    3948,
                                                                    3961
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 86,
                                                                      "column": 24
                                                                    },
                                                                    "end": {
                                                                      "line": 86,
                                                                      "column": 37
                                                                    }
                                                                  }
                                                                },
                                                                "arguments": [
                                                                  {
                                                                    "type": "Identifier",
                                                                    "name": "err",
                                                                    "range": [
                                                                      3962,
                                                                      3965
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 86,
                                                                        "column": 38
                                                                      },
                                                                      "end": {
                                                                        "line": 86,
                                                                        "column": 41
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "range": [
                                                                  3948,
                                                                  3966
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 86,
                                                                    "column": 24
                                                                  },
                                                                  "end": {
                                                                    "line": 86,
                                                                    "column": 42
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                3948,
                                                                3967
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 86,
                                                                  "column": 24
                                                                },
                                                                "end": {
                                                                  "line": 86,
                                                                  "column": 43
                                                                }
                                                              }
                                                            }
                                                          ],
                                                          "range": [
                                                            3922,
                                                            3989
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 85,
                                                              "column": 29
                                                            },
                                                            "end": {
                                                              "line": 87,
                                                              "column": 21
                                                            }
                                                          }
                                                        },
                                                        "alternate": {
                                                          "type": "IfStatement",
                                                          "test": {
                                                            "type": "Identifier",
                                                            "name": "selector",
                                                            "range": [
                                                              4019,
                                                              4027
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 88,
                                                                "column": 29
                                                              },
                                                              "end": {
                                                                "line": 88,
                                                                "column": 37
                                                              }
                                                            }
                                                          },
                                                          "consequent": {
                                                            "type": "BlockStatement",
                                                            "body": [
                                                              {
                                                                "type": "VariableDeclaration",
                                                                "declarations": [
                                                                  {
                                                                    "type": "VariableDeclarator",
                                                                    "id": {
                                                                      "type": "Identifier",
                                                                      "name": "result_1",
                                                                      "range": [
                                                                        4059,
                                                                        4067
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 89,
                                                                          "column": 28
                                                                        },
                                                                        "end": {
                                                                          "line": 89,
                                                                          "column": 36
                                                                        }
                                                                      }
                                                                    },
                                                                    "init": {
                                                                      "type": "CallExpression",
                                                                      "callee": {
                                                                        "type": "MemberExpression",
                                                                        "computed": false,
                                                                        "object": {
                                                                          "type": "CallExpression",
                                                                          "callee": {
                                                                            "type": "Identifier",
                                                                            "name": "tryCatch",
                                                                            "range": [
                                                                              4070,
                                                                              4078
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 89,
                                                                                "column": 39
                                                                              },
                                                                              "end": {
                                                                                "line": 89,
                                                                                "column": 47
                                                                              }
                                                                            }
                                                                          },
                                                                          "arguments": [
                                                                            {
                                                                              "type": "Identifier",
                                                                              "name": "selector",
                                                                              "range": [
                                                                                4079,
                                                                                4087
                                                                              ],
                                                                              "loc": {
                                                                                "start": {
                                                                                  "line": 89,
                                                                                  "column": 48
                                                                                },
                                                                                "end": {
                                                                                  "line": 89,
                                                                                  "column": 56
                                                                                }
                                                                              }
                                                                            }
                                                                          ],
                                                                          "range": [
                                                                            4070,
                                                                            4088
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 89,
                                                                              "column": 39
                                                                            },
                                                                            "end": {
                                                                              "line": 89,
                                                                              "column": 57
                                                                            }
                                                                          }
                                                                        },
                                                                        "property": {
                                                                          "type": "Identifier",
                                                                          "name": "apply",
                                                                          "range": [
                                                                            4089,
                                                                            4094
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 89,
                                                                              "column": 58
                                                                            },
                                                                            "end": {
                                                                              "line": 89,
                                                                              "column": 63
                                                                            }
                                                                          }
                                                                        },
                                                                        "range": [
                                                                          4070,
                                                                          4094
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 89,
                                                                            "column": 39
                                                                          },
                                                                          "end": {
                                                                            "line": 89,
                                                                            "column": 63
                                                                          }
                                                                        }
                                                                      },
                                                                      "arguments": [
                                                                        {
                                                                          "type": "ThisExpression",
                                                                          "range": [
                                                                            4095,
                                                                            4099
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 89,
                                                                              "column": 64
                                                                            },
                                                                            "end": {
                                                                              "line": 89,
                                                                              "column": 68
                                                                            }
                                                                          }
                                                                        },
                                                                        {
                                                                          "type": "Identifier",
                                                                          "name": "innerArgs",
                                                                          "range": [
                                                                            4101,
                                                                            4110
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 89,
                                                                              "column": 70
                                                                            },
                                                                            "end": {
                                                                              "line": 89,
                                                                              "column": 79
                                                                            }
                                                                          }
                                                                        }
                                                                      ],
                                                                      "range": [
                                                                        4070,
                                                                        4111
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 89,
                                                                          "column": 39
                                                                        },
                                                                        "end": {
                                                                          "line": 89,
                                                                          "column": 80
                                                                        }
                                                                      }
                                                                    },
                                                                    "range": [
                                                                      4059,
                                                                      4111
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 89,
                                                                        "column": 28
                                                                      },
                                                                      "end": {
                                                                        "line": 89,
                                                                        "column": 80
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "kind": "var",
                                                                "range": [
                                                                  4055,
                                                                  4112
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 89,
                                                                    "column": 24
                                                                  },
                                                                  "end": {
                                                                    "line": 89,
                                                                    "column": 81
                                                                  }
                                                                }
                                                              },
                                                              {
                                                                "type": "IfStatement",
                                                                "test": {
                                                                  "type": "BinaryExpression",
                                                                  "operator": "===",
                                                                  "left": {
                                                                    "type": "Identifier",
                                                                    "name": "result_1",
                                                                    "range": [
                                                                      4141,
                                                                      4149
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 90,
                                                                        "column": 28
                                                                      },
                                                                      "end": {
                                                                        "line": 90,
                                                                        "column": 36
                                                                      }
                                                                    }
                                                                  },
                                                                  "right": {
                                                                    "type": "Identifier",
                                                                    "name": "errorObject",
                                                                    "range": [
                                                                      4154,
                                                                      4165
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 90,
                                                                        "column": 41
                                                                      },
                                                                      "end": {
                                                                        "line": 90,
                                                                        "column": 52
                                                                      }
                                                                    }
                                                                  },
                                                                  "range": [
                                                                    4141,
                                                                    4165
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 90,
                                                                      "column": 28
                                                                    },
                                                                    "end": {
                                                                      "line": 90,
                                                                      "column": 52
                                                                    }
                                                                  }
                                                                },
                                                                "consequent": {
                                                                  "type": "BlockStatement",
                                                                  "body": [
                                                                    {
                                                                      "type": "ExpressionStatement",
                                                                      "expression": {
                                                                        "type": "CallExpression",
                                                                        "callee": {
                                                                          "type": "MemberExpression",
                                                                          "computed": false,
                                                                          "object": {
                                                                            "type": "Identifier",
                                                                            "name": "subject",
                                                                            "range": [
                                                                              4197,
                                                                              4204
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 91,
                                                                                "column": 28
                                                                              },
                                                                              "end": {
                                                                                "line": 91,
                                                                                "column": 35
                                                                              }
                                                                            }
                                                                          },
                                                                          "property": {
                                                                            "type": "Identifier",
                                                                            "name": "error",
                                                                            "range": [
                                                                              4205,
                                                                              4210
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 91,
                                                                                "column": 36
                                                                              },
                                                                              "end": {
                                                                                "line": 91,
                                                                                "column": 41
                                                                              }
                                                                            }
                                                                          },
                                                                          "range": [
                                                                            4197,
                                                                            4210
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 91,
                                                                              "column": 28
                                                                            },
                                                                            "end": {
                                                                              "line": 91,
                                                                              "column": 41
                                                                            }
                                                                          }
                                                                        },
                                                                        "arguments": [
                                                                          {
                                                                            "type": "MemberExpression",
                                                                            "computed": false,
                                                                            "object": {
                                                                              "type": "Identifier",
                                                                              "name": "errorObject",
                                                                              "range": [
                                                                                4211,
                                                                                4222
                                                                              ],
                                                                              "loc": {
                                                                                "start": {
                                                                                  "line": 91,
                                                                                  "column": 42
                                                                                },
                                                                                "end": {
                                                                                  "line": 91,
                                                                                  "column": 53
                                                                                }
                                                                              }
                                                                            },
                                                                            "property": {
                                                                              "type": "Identifier",
                                                                              "name": "e",
                                                                              "range": [
                                                                                4223,
                                                                                4224
                                                                              ],
                                                                              "loc": {
                                                                                "start": {
                                                                                  "line": 91,
                                                                                  "column": 54
                                                                                },
                                                                                "end": {
                                                                                  "line": 91,
                                                                                  "column": 55
                                                                                }
                                                                              }
                                                                            },
                                                                            "range": [
                                                                              4211,
                                                                              4224
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 91,
                                                                                "column": 42
                                                                              },
                                                                              "end": {
                                                                                "line": 91,
                                                                                "column": 55
                                                                              }
                                                                            }
                                                                          }
                                                                        ],
                                                                        "range": [
                                                                          4197,
                                                                          4225
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 91,
                                                                            "column": 28
                                                                          },
                                                                          "end": {
                                                                            "line": 91,
                                                                            "column": 56
                                                                          }
                                                                        }
                                                                      },
                                                                      "range": [
                                                                        4197,
                                                                        4226
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 91,
                                                                          "column": 28
                                                                        },
                                                                        "end": {
                                                                          "line": 91,
                                                                          "column": 57
                                                                        }
                                                                      }
                                                                    }
                                                                  ],
                                                                  "range": [
                                                                    4167,
                                                                    4252
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 90,
                                                                      "column": 54
                                                                    },
                                                                    "end": {
                                                                      "line": 92,
                                                                      "column": 25
                                                                    }
                                                                  }
                                                                },
                                                                "alternate": {
                                                                  "type": "BlockStatement",
                                                                  "body": [
                                                                    {
                                                                      "type": "ExpressionStatement",
                                                                      "expression": {
                                                                        "type": "CallExpression",
                                                                        "callee": {
                                                                          "type": "MemberExpression",
                                                                          "computed": false,
                                                                          "object": {
                                                                            "type": "Identifier",
                                                                            "name": "subject",
                                                                            "range": [
                                                                              4312,
                                                                              4319
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 94,
                                                                                "column": 28
                                                                              },
                                                                              "end": {
                                                                                "line": 94,
                                                                                "column": 35
                                                                              }
                                                                            }
                                                                          },
                                                                          "property": {
                                                                            "type": "Identifier",
                                                                            "name": "next",
                                                                            "range": [
                                                                              4320,
                                                                              4324
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 94,
                                                                                "column": 36
                                                                              },
                                                                              "end": {
                                                                                "line": 94,
                                                                                "column": 40
                                                                              }
                                                                            }
                                                                          },
                                                                          "range": [
                                                                            4312,
                                                                            4324
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 94,
                                                                              "column": 28
                                                                            },
                                                                            "end": {
                                                                              "line": 94,
                                                                              "column": 40
                                                                            }
                                                                          }
                                                                        },
                                                                        "arguments": [
                                                                          {
                                                                            "type": "Identifier",
                                                                            "name": "result_1",
                                                                            "range": [
                                                                              4325,
                                                                              4333
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 94,
                                                                                "column": 41
                                                                              },
                                                                              "end": {
                                                                                "line": 94,
                                                                                "column": 49
                                                                              }
                                                                            }
                                                                          }
                                                                        ],
                                                                        "range": [
                                                                          4312,
                                                                          4334
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 94,
                                                                            "column": 28
                                                                          },
                                                                          "end": {
                                                                            "line": 94,
                                                                            "column": 50
                                                                          }
                                                                        }
                                                                      },
                                                                      "range": [
                                                                        4312,
                                                                        4335
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 94,
                                                                          "column": 28
                                                                        },
                                                                        "end": {
                                                                          "line": 94,
                                                                          "column": 51
                                                                        }
                                                                      }
                                                                    },
                                                                    {
                                                                      "type": "ExpressionStatement",
                                                                      "expression": {
                                                                        "type": "CallExpression",
                                                                        "callee": {
                                                                          "type": "MemberExpression",
                                                                          "computed": false,
                                                                          "object": {
                                                                            "type": "Identifier",
                                                                            "name": "subject",
                                                                            "range": [
                                                                              4364,
                                                                              4371
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 95,
                                                                                "column": 28
                                                                              },
                                                                              "end": {
                                                                                "line": 95,
                                                                                "column": 35
                                                                              }
                                                                            }
                                                                          },
                                                                          "property": {
                                                                            "type": "Identifier",
                                                                            "name": "complete",
                                                                            "range": [
                                                                              4372,
                                                                              4380
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 95,
                                                                                "column": 36
                                                                              },
                                                                              "end": {
                                                                                "line": 95,
                                                                                "column": 44
                                                                              }
                                                                            }
                                                                          },
                                                                          "range": [
                                                                            4364,
                                                                            4380
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 95,
                                                                              "column": 28
                                                                            },
                                                                            "end": {
                                                                              "line": 95,
                                                                              "column": 44
                                                                            }
                                                                          }
                                                                        },
                                                                        "arguments": [],
                                                                        "range": [
                                                                          4364,
                                                                          4382
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 95,
                                                                            "column": 28
                                                                          },
                                                                          "end": {
                                                                            "line": 95,
                                                                            "column": 46
                                                                          }
                                                                        }
                                                                      },
                                                                      "range": [
                                                                        4364,
                                                                        4383
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 95,
                                                                          "column": 28
                                                                        },
                                                                        "end": {
                                                                          "line": 95,
                                                                          "column": 47
                                                                        }
                                                                      }
                                                                    }
                                                                  ],
                                                                  "range": [
                                                                    4282,
                                                                    4409
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 93,
                                                                      "column": 29
                                                                    },
                                                                    "end": {
                                                                      "line": 96,
                                                                      "column": 25
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4137,
                                                                  4409
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 90,
                                                                    "column": 24
                                                                  },
                                                                  "end": {
                                                                    "line": 96,
                                                                    "column": 25
                                                                  }
                                                                }
                                                              }
                                                            ],
                                                            "range": [
                                                              4029,
                                                              4431
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 88,
                                                                "column": 39
                                                              },
                                                              "end": {
                                                                "line": 97,
                                                                "column": 21
                                                              }
                                                            }
                                                          },
                                                          "alternate": {
                                                            "type": "BlockStatement",
                                                            "body": [
                                                              {
                                                                "type": "ExpressionStatement",
                                                                "expression": {
                                                                  "type": "CallExpression",
                                                                  "callee": {
                                                                    "type": "MemberExpression",
                                                                    "computed": false,
                                                                    "object": {
                                                                      "type": "Identifier",
                                                                      "name": "subject",
                                                                      "range": [
                                                                        4483,
                                                                        4490
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 99,
                                                                          "column": 24
                                                                        },
                                                                        "end": {
                                                                          "line": 99,
                                                                          "column": 31
                                                                        }
                                                                      }
                                                                    },
                                                                    "property": {
                                                                      "type": "Identifier",
                                                                      "name": "next",
                                                                      "range": [
                                                                        4491,
                                                                        4495
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 99,
                                                                          "column": 32
                                                                        },
                                                                        "end": {
                                                                          "line": 99,
                                                                          "column": 36
                                                                        }
                                                                      }
                                                                    },
                                                                    "range": [
                                                                      4483,
                                                                      4495
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 99,
                                                                        "column": 24
                                                                      },
                                                                      "end": {
                                                                        "line": 99,
                                                                        "column": 36
                                                                      }
                                                                    }
                                                                  },
                                                                  "arguments": [
                                                                    {
                                                                      "type": "ConditionalExpression",
                                                                      "test": {
                                                                        "type": "BinaryExpression",
                                                                        "operator": "===",
                                                                        "left": {
                                                                          "type": "MemberExpression",
                                                                          "computed": false,
                                                                          "object": {
                                                                            "type": "Identifier",
                                                                            "name": "innerArgs",
                                                                            "range": [
                                                                              4496,
                                                                              4505
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 99,
                                                                                "column": 37
                                                                              },
                                                                              "end": {
                                                                                "line": 99,
                                                                                "column": 46
                                                                              }
                                                                            }
                                                                          },
                                                                          "property": {
                                                                            "type": "Identifier",
                                                                            "name": "length",
                                                                            "range": [
                                                                              4506,
                                                                              4512
                                                                            ],
                                                                            "loc": {
                                                                              "start": {
                                                                                "line": 99,
                                                                                "column": 47
                                                                              },
                                                                              "end": {
                                                                                "line": 99,
                                                                                "column": 53
                                                                              }
                                                                            }
                                                                          },
                                                                          "range": [
                                                                            4496,
                                                                            4512
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 99,
                                                                              "column": 37
                                                                            },
                                                                            "end": {
                                                                              "line": 99,
                                                                              "column": 53
                                                                            }
                                                                          }
                                                                        },
                                                                        "right": {
                                                                          "type": "Literal",
                                                                          "value": 1,
                                                                          "raw": "1",
                                                                          "range": [
                                                                            4517,
                                                                            4518
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 99,
                                                                              "column": 58
                                                                            },
                                                                            "end": {
                                                                              "line": 99,
                                                                              "column": 59
                                                                            }
                                                                          }
                                                                        },
                                                                        "range": [
                                                                          4496,
                                                                          4518
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 99,
                                                                            "column": 37
                                                                          },
                                                                          "end": {
                                                                            "line": 99,
                                                                            "column": 59
                                                                          }
                                                                        }
                                                                      },
                                                                      "consequent": {
                                                                        "type": "MemberExpression",
                                                                        "computed": true,
                                                                        "object": {
                                                                          "type": "Identifier",
                                                                          "name": "innerArgs",
                                                                          "range": [
                                                                            4521,
                                                                            4530
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 99,
                                                                              "column": 62
                                                                            },
                                                                            "end": {
                                                                              "line": 99,
                                                                              "column": 71
                                                                            }
                                                                          }
                                                                        },
                                                                        "property": {
                                                                          "type": "Literal",
                                                                          "value": 0,
                                                                          "raw": "0",
                                                                          "range": [
                                                                            4531,
                                                                            4532
                                                                          ],
                                                                          "loc": {
                                                                            "start": {
                                                                              "line": 99,
                                                                              "column": 72
                                                                            },
                                                                            "end": {
                                                                              "line": 99,
                                                                              "column": 73
                                                                            }
                                                                          }
                                                                        },
                                                                        "range": [
                                                                          4521,
                                                                          4533
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 99,
                                                                            "column": 62
                                                                          },
                                                                          "end": {
                                                                            "line": 99,
                                                                            "column": 74
                                                                          }
                                                                        }
                                                                      },
                                                                      "alternate": {
                                                                        "type": "Identifier",
                                                                        "name": "innerArgs",
                                                                        "range": [
                                                                          4536,
                                                                          4545
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 99,
                                                                            "column": 77
                                                                          },
                                                                          "end": {
                                                                            "line": 99,
                                                                            "column": 86
                                                                          }
                                                                        }
                                                                      },
                                                                      "range": [
                                                                        4496,
                                                                        4545
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 99,
                                                                          "column": 37
                                                                        },
                                                                        "end": {
                                                                          "line": 99,
                                                                          "column": 86
                                                                        }
                                                                      }
                                                                    }
                                                                  ],
                                                                  "range": [
                                                                    4483,
                                                                    4546
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 99,
                                                                      "column": 24
                                                                    },
                                                                    "end": {
                                                                      "line": 99,
                                                                      "column": 87
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4483,
                                                                  4547
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 99,
                                                                    "column": 24
                                                                  },
                                                                  "end": {
                                                                    "line": 99,
                                                                    "column": 88
                                                                  }
                                                                }
                                                              },
                                                              {
                                                                "type": "ExpressionStatement",
                                                                "expression": {
                                                                  "type": "CallExpression",
                                                                  "callee": {
                                                                    "type": "MemberExpression",
                                                                    "computed": false,
                                                                    "object": {
                                                                      "type": "Identifier",
                                                                      "name": "subject",
                                                                      "range": [
                                                                        4572,
                                                                        4579
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 100,
                                                                          "column": 24
                                                                        },
                                                                        "end": {
                                                                          "line": 100,
                                                                          "column": 31
                                                                        }
                                                                      }
                                                                    },
                                                                    "property": {
                                                                      "type": "Identifier",
                                                                      "name": "complete",
                                                                      "range": [
                                                                        4580,
                                                                        4588
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 100,
                                                                          "column": 32
                                                                        },
                                                                        "end": {
                                                                          "line": 100,
                                                                          "column": 40
                                                                        }
                                                                      }
                                                                    },
                                                                    "range": [
                                                                      4572,
                                                                      4588
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 100,
                                                                        "column": 24
                                                                      },
                                                                      "end": {
                                                                        "line": 100,
                                                                        "column": 40
                                                                      }
                                                                    }
                                                                  },
                                                                  "arguments": [],
                                                                  "range": [
                                                                    4572,
                                                                    4590
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 100,
                                                                      "column": 24
                                                                    },
                                                                    "end": {
                                                                      "line": 100,
                                                                      "column": 42
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4572,
                                                                  4591
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 100,
                                                                    "column": 24
                                                                  },
                                                                  "end": {
                                                                    "line": 100,
                                                                    "column": 43
                                                                  }
                                                                }
                                                              }
                                                            ],
                                                            "range": [
                                                              4457,
                                                              4613
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 98,
                                                                "column": 25
                                                              },
                                                              "end": {
                                                                "line": 101,
                                                                "column": 21
                                                              }
                                                            }
                                                          },
                                                          "range": [
                                                            4015,
                                                            4613
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 88,
                                                              "column": 25
                                                            },
                                                            "end": {
                                                              "line": 101,
                                                              "column": 21
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          3913,
                                                          4613
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 85,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 101,
                                                            "column": 21
                                                          }
                                                        }
                                                      }
                                                    ],
                                                    "range": [
                                                      3524,
                                                      4631
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 77,
                                                        "column": 51
                                                      },
                                                      "end": {
                                                        "line": 102,
                                                        "column": 17
                                                      }
                                                    }
                                                  },
                                                  "generator": false,
                                                  "expression": false,
                                                  "range": [
                                                    3503,
                                                    4631
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 77,
                                                      "column": 30
                                                    },
                                                    "end": {
                                                      "line": 102,
                                                      "column": 17
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  3493,
                                                  4631
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 77,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 102,
                                                    "column": 17
                                                  }
                                                }
                                              }
                                            ],
                                            "kind": "var",
                                            "range": [
                                              3489,
                                              4632
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 77,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 102,
                                                "column": 18
                                              }
                                            },
                                            "trailingComments": [
                                              {
                                                "type": "Line",
                                                "value": " use named function instance to avoid closure.",
                                                "range": [
                                                  4649,
                                                  4697
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 103,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 103,
                                                    "column": 64
                                                  }
                                                }
                                              }
                                            ]
                                          },
                                          {
                                            "type": "ExpressionStatement",
                                            "expression": {
                                              "type": "AssignmentExpression",
                                              "operator": "=",
                                              "left": {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "handler",
                                                  "range": [
                                                    4714,
                                                    4721
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 104,
                                                      "column": 16
                                                    },
                                                    "end": {
                                                      "line": 104,
                                                      "column": 23
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "source",
                                                  "range": [
                                                    4722,
                                                    4728
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 104,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 104,
                                                      "column": 30
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  4714,
                                                  4728
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 104,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 104,
                                                    "column": 30
                                                  }
                                                }
                                              },
                                              "right": {
                                                "type": "ThisExpression",
                                                "range": [
                                                  4731,
                                                  4735
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 104,
                                                    "column": 33
                                                  },
                                                  "end": {
                                                    "line": 104,
                                                    "column": 37
                                                  }
                                                }
                                              },
                                              "range": [
                                                4714,
                                                4735
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 104,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 104,
                                                  "column": 37
                                                }
                                              }
                                            },
                                            "range": [
                                              4714,
                                              4736
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 104,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 104,
                                                "column": 38
                                              }
                                            },
                                            "leadingComments": [
                                              {
                                                "type": "Line",
                                                "value": " use named function instance to avoid closure.",
                                                "range": [
                                                  4649,
                                                  4697
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 103,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 103,
                                                    "column": 64
                                                  }
                                                }
                                              }
                                            ]
                                          },
                                          {
                                            "type": "VariableDeclaration",
                                            "declarations": [
                                              {
                                                "type": "VariableDeclarator",
                                                "id": {
                                                  "type": "Identifier",
                                                  "name": "result",
                                                  "range": [
                                                    4757,
                                                    4763
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 105,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 105,
                                                      "column": 26
                                                    }
                                                  }
                                                },
                                                "init": {
                                                  "type": "CallExpression",
                                                  "callee": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "CallExpression",
                                                      "callee": {
                                                        "type": "Identifier",
                                                        "name": "tryCatch",
                                                        "range": [
                                                          4766,
                                                          4774
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 105,
                                                            "column": 29
                                                          },
                                                          "end": {
                                                            "line": 105,
                                                            "column": 37
                                                          }
                                                        }
                                                      },
                                                      "arguments": [
                                                        {
                                                          "type": "Identifier",
                                                          "name": "callbackFunc",
                                                          "range": [
                                                            4775,
                                                            4787
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 105,
                                                              "column": 38
                                                            },
                                                            "end": {
                                                              "line": 105,
                                                              "column": 50
                                                            }
                                                          }
                                                        }
                                                      ],
                                                      "range": [
                                                        4766,
                                                        4788
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 105,
                                                          "column": 29
                                                        },
                                                        "end": {
                                                          "line": 105,
                                                          "column": 51
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "apply",
                                                      "range": [
                                                        4789,
                                                        4794
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 105,
                                                          "column": 52
                                                        },
                                                        "end": {
                                                          "line": 105,
                                                          "column": 57
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      4766,
                                                      4794
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 105,
                                                        "column": 29
                                                      },
                                                      "end": {
                                                        "line": 105,
                                                        "column": 57
                                                      }
                                                    }
                                                  },
                                                  "arguments": [
                                                    {
                                                      "type": "ThisExpression",
                                                      "range": [
                                                        4795,
                                                        4799
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 105,
                                                          "column": 58
                                                        },
                                                        "end": {
                                                          "line": 105,
                                                          "column": 62
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "type": "CallExpression",
                                                      "callee": {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "args",
                                                          "range": [
                                                            4801,
                                                            4805
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 105,
                                                              "column": 64
                                                            },
                                                            "end": {
                                                              "line": 105,
                                                              "column": 68
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "concat",
                                                          "range": [
                                                            4806,
                                                            4812
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 105,
                                                              "column": 69
                                                            },
                                                            "end": {
                                                              "line": 105,
                                                              "column": 75
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          4801,
                                                          4812
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 105,
                                                            "column": 64
                                                          },
                                                          "end": {
                                                            "line": 105,
                                                            "column": 75
                                                          }
                                                        }
                                                      },
                                                      "arguments": [
                                                        {
                                                          "type": "Identifier",
                                                          "name": "handler",
                                                          "range": [
                                                            4813,
                                                            4820
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 105,
                                                              "column": 76
                                                            },
                                                            "end": {
                                                              "line": 105,
                                                              "column": 83
                                                            }
                                                          }
                                                        }
                                                      ],
                                                      "range": [
                                                        4801,
                                                        4821
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 105,
                                                          "column": 64
                                                        },
                                                        "end": {
                                                          "line": 105,
                                                          "column": 84
                                                        }
                                                      }
                                                    }
                                                  ],
                                                  "range": [
                                                    4766,
                                                    4822
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 105,
                                                      "column": 29
                                                    },
                                                    "end": {
                                                      "line": 105,
                                                      "column": 85
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  4757,
                                                  4822
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 105,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 105,
                                                    "column": 85
                                                  }
                                                }
                                              }
                                            ],
                                            "kind": "var",
                                            "range": [
                                              4753,
                                              4823
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 105,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 105,
                                                "column": 86
                                              }
                                            }
                                          },
                                          {
                                            "type": "IfStatement",
                                            "test": {
                                              "type": "BinaryExpression",
                                              "operator": "===",
                                              "left": {
                                                "type": "Identifier",
                                                "name": "result",
                                                "range": [
                                                  4844,
                                                  4850
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 106,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 106,
                                                    "column": 26
                                                  }
                                                }
                                              },
                                              "right": {
                                                "type": "Identifier",
                                                "name": "errorObject",
                                                "range": [
                                                  4855,
                                                  4866
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 106,
                                                    "column": 31
                                                  },
                                                  "end": {
                                                    "line": 106,
                                                    "column": 42
                                                  }
                                                }
                                              },
                                              "range": [
                                                4844,
                                                4866
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 106,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 106,
                                                  "column": 42
                                                }
                                              }
                                            },
                                            "consequent": {
                                              "type": "BlockStatement",
                                              "body": [
                                                {
                                                  "type": "ExpressionStatement",
                                                  "expression": {
                                                    "type": "CallExpression",
                                                    "callee": {
                                                      "type": "MemberExpression",
                                                      "computed": false,
                                                      "object": {
                                                        "type": "Identifier",
                                                        "name": "subject",
                                                        "range": [
                                                          4890,
                                                          4897
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 107,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 107,
                                                            "column": 27
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Identifier",
                                                        "name": "error",
                                                        "range": [
                                                          4898,
                                                          4903
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 107,
                                                            "column": 28
                                                          },
                                                          "end": {
                                                            "line": 107,
                                                            "column": 33
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        4890,
                                                        4903
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 107,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 107,
                                                          "column": 33
                                                        }
                                                      }
                                                    },
                                                    "arguments": [
                                                      {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "errorObject",
                                                          "range": [
                                                            4904,
                                                            4915
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 107,
                                                              "column": 34
                                                            },
                                                            "end": {
                                                              "line": 107,
                                                              "column": 45
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "e",
                                                          "range": [
                                                            4916,
                                                            4917
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 107,
                                                              "column": 46
                                                            },
                                                            "end": {
                                                              "line": 107,
                                                              "column": 47
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          4904,
                                                          4917
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 107,
                                                            "column": 34
                                                          },
                                                          "end": {
                                                            "line": 107,
                                                            "column": 47
                                                          }
                                                        }
                                                      }
                                                    ],
                                                    "range": [
                                                      4890,
                                                      4918
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 107,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 107,
                                                        "column": 48
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    4890,
                                                    4919
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 107,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 107,
                                                      "column": 49
                                                    }
                                                  }
                                                }
                                              ],
                                              "range": [
                                                4868,
                                                4937
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 106,
                                                  "column": 44
                                                },
                                                "end": {
                                                  "line": 108,
                                                  "column": 17
                                                }
                                              }
                                            },
                                            "alternate": null,
                                            "range": [
                                              4840,
                                              4937
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 106,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 108,
                                                "column": 17
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          3410,
                                          4951
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 75,
                                            "column": 26
                                          },
                                          "end": {
                                            "line": 109,
                                            "column": 13
                                          }
                                        }
                                      },
                                      "alternate": null,
                                      "range": [
                                        3396,
                                        4951
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 109,
                                          "column": 13
                                        }
                                      }
                                    },
                                    {
                                      "type": "ReturnStatement",
                                      "argument": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "subject",
                                            "range": [
                                              4971,
                                              4978
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 110,
                                                "column": 19
                                              },
                                              "end": {
                                                "line": 110,
                                                "column": 26
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "subscribe",
                                            "range": [
                                              4979,
                                              4988
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 110,
                                                "column": 27
                                              },
                                              "end": {
                                                "line": 110,
                                                "column": 36
                                              }
                                            }
                                          },
                                          "range": [
                                            4971,
                                            4988
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 110,
                                              "column": 19
                                            },
                                            "end": {
                                              "line": 110,
                                              "column": 36
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "name": "subscriber",
                                            "range": [
                                              4989,
                                              4999
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 110,
                                                "column": 37
                                              },
                                              "end": {
                                                "line": 110,
                                                "column": 47
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          4971,
                                          5000
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 110,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 110,
                                            "column": 48
                                          }
                                        }
                                      },
                                      "range": [
                                        4964,
                                        5001
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 49
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3382,
                                    5011
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 111,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ReturnStatement",
                                      "argument": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "scheduler",
                                            "range": [
                                              5046,
                                              5055
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 113,
                                                "column": 19
                                              },
                                              "end": {
                                                "line": 113,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "schedule",
                                            "range": [
                                              5056,
                                              5064
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 113,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 113,
                                                "column": 37
                                              }
                                            }
                                          },
                                          "range": [
                                            5046,
                                            5064
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 113,
                                              "column": 19
                                            },
                                            "end": {
                                              "line": 113,
                                              "column": 37
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "name": "dispatch",
                                            "range": [
                                              5065,
                                              5073
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 113,
                                                "column": 38
                                              },
                                              "end": {
                                                "line": 113,
                                                "column": 46
                                              }
                                            }
                                          },
                                          {
                                            "type": "Literal",
                                            "value": 0,
                                            "raw": "0",
                                            "range": [
                                              5075,
                                              5076
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 113,
                                                "column": 48
                                              },
                                              "end": {
                                                "line": 113,
                                                "column": 49
                                              }
                                            }
                                          },
                                          {
                                            "type": "ObjectExpression",
                                            "properties": [
                                              {
                                                "type": "Property",
                                                "key": {
                                                  "type": "Identifier",
                                                  "name": "source",
                                                  "range": [
                                                    5080,
                                                    5086
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 113,
                                                      "column": 53
                                                    },
                                                    "end": {
                                                      "line": 113,
                                                      "column": 59
                                                    }
                                                  }
                                                },
                                                "value": {
                                                  "type": "ThisExpression",
                                                  "range": [
                                                    5088,
                                                    5092
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 113,
                                                      "column": 61
                                                    },
                                                    "end": {
                                                      "line": 113,
                                                      "column": 65
                                                    }
                                                  }
                                                },
                                                "kind": "init",
                                                "method": false,
                                                "shorthand": false,
                                                "computed": false,
                                                "range": [
                                                  5080,
                                                  5092
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 113,
                                                    "column": 53
                                                  },
                                                  "end": {
                                                    "line": 113,
                                                    "column": 65
                                                  }
                                                }
                                              },
                                              {
                                                "type": "Property",
                                                "key": {
                                                  "type": "Identifier",
                                                  "name": "subscriber",
                                                  "range": [
                                                    5094,
                                                    5104
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 113,
                                                      "column": 67
                                                    },
                                                    "end": {
                                                      "line": 113,
                                                      "column": 77
                                                    }
                                                  }
                                                },
                                                "value": {
                                                  "type": "Identifier",
                                                  "name": "subscriber",
                                                  "range": [
                                                    5106,
                                                    5116
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 113,
                                                      "column": 79
                                                    },
                                                    "end": {
                                                      "line": 113,
                                                      "column": 89
                                                    }
                                                  }
                                                },
                                                "kind": "init",
                                                "method": false,
                                                "shorthand": false,
                                                "computed": false,
                                                "range": [
                                                  5094,
                                                  5116
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 113,
                                                    "column": 67
                                                  },
                                                  "end": {
                                                    "line": 113,
                                                    "column": 89
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              5078,
                                              5118
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 113,
                                                "column": 51
                                              },
                                              "end": {
                                                "line": 113,
                                                "column": 91
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          5046,
                                          5119
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 113,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 113,
                                            "column": 92
                                          }
                                        }
                                      },
                                      "range": [
                                        5039,
                                        5120
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 113,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 113,
                                          "column": 93
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    5025,
                                    5130
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 112,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 114,
                                      "column": 9
                                    }
                                  }
                                },
                                "range": [
                                  3366,
                                  5130
                                ],
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 114,
                                    "column": 9
                                  }
                                }
                              }
                            ],
                            "range": [
                              3204,
                              5136
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 77
                              },
                              "end": {
                                "line": 115,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            3182,
                            5136
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 55
                            },
                            "end": {
                              "line": 115,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          3131,
                          5136
                        ],
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 4
                          },
                          "end": {
                            "line": 115,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3131,
                        5137
                      ],
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 4
                        },
                        "end": {
                          "line": 115,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "BoundNodeCallbackObservable",
                        "range": [
                          5149,
                          5176
                        ],
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 11
                          },
                          "end": {
                            "line": 116,
                            "column": 38
                          }
                        }
                      },
                      "range": [
                        5142,
                        5177
                      ],
                      "loc": {
                        "start": {
                          "line": 116,
                          "column": 4
                        },
                        "end": {
                          "line": 116,
                          "column": 39
                        }
                      }
                    }
                  ],
                  "range": [
                    343,
                    5179
                  ],
                  "loc": {
                    "start": {
                      "line": 10,
                      "column": 60
                    },
                    "end": {
                      "line": 117,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  325,
                  5179
                ],
                "loc": {
                  "start": {
                    "line": 10,
                    "column": 42
                  },
                  "end": {
                    "line": 117,
                    "column": 1
                  }
                }
              },
              "arguments": [
                {
                  "type": "Identifier",
                  "name": "Observable",
                  "range": [
                    5180,
                    5190
                  ],
                  "loc": {
                    "start": {
                      "line": 117,
                      "column": 2
                    },
                    "end": {
                      "line": 117,
                      "column": 12
                    }
                  }
                }
              ],
              "range": [
                325,
                5191
              ],
              "loc": {
                "start": {
                  "line": 10,
                  "column": 42
                },
                "end": {
                  "line": 117,
                  "column": 13
                }
              }
            },
            "range": [
              294,
              5192
            ],
            "loc": {
              "start": {
                "line": 10,
                "column": 11
              },
              "end": {
                "line": 117,
                "column": 14
              }
            }
          }
        ],
        "kind": "var",
        "range": [
          290,
          5193
        ],
        "loc": {
          "start": {
            "line": 10,
            "column": 7
          },
          "end": {
            "line": 117,
            "column": 15
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
            "range": [
              188,
              282
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 0
              },
              "end": {
                "line": 9,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "range": [
        283,
        5193
      ],
      "loc": {
        "start": {
          "line": 10,
          "column": 0
        },
        "end": {
          "line": 117,
          "column": 15
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
          "range": [
            188,
            282
          ],
          "loc": {
            "start": {
              "line": 5,
              "column": 0
            },
            "end": {
              "line": 9,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "FunctionDeclaration",
      "id": {
        "type": "Identifier",
        "name": "dispatch",
        "range": [
          5203,
          5211
        ],
        "loc": {
          "start": {
            "line": 118,
            "column": 9
          },
          "end": {
            "line": 118,
            "column": 17
          }
        }
      },
      "params": [
        {
          "type": "Identifier",
          "name": "state",
          "range": [
            5212,
            5217
          ],
          "loc": {
            "start": {
              "line": 118,
              "column": 18
            },
            "end": {
              "line": 118,
              "column": 23
            }
          }
        }
      ],
      "body": {
        "type": "BlockStatement",
        "body": [
          {
            "type": "VariableDeclaration",
            "declarations": [
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "self",
                  "range": [
                    5229,
                    5233
                  ],
                  "loc": {
                    "start": {
                      "line": 119,
                      "column": 8
                    },
                    "end": {
                      "line": 119,
                      "column": 12
                    }
                  }
                },
                "init": {
                  "type": "ThisExpression",
                  "range": [
                    5236,
                    5240
                  ],
                  "loc": {
                    "start": {
                      "line": 119,
                      "column": 15
                    },
                    "end": {
                      "line": 119,
                      "column": 19
                    }
                  }
                },
                "range": [
                  5229,
                  5240
                ],
                "loc": {
                  "start": {
                    "line": 119,
                    "column": 8
                  },
                  "end": {
                    "line": 119,
                    "column": 19
                  }
                }
              }
            ],
            "kind": "var",
            "range": [
              5225,
              5241
            ],
            "loc": {
              "start": {
                "line": 119,
                "column": 4
              },
              "end": {
                "line": 119,
                "column": 20
              }
            }
          },
          {
            "type": "VariableDeclaration",
            "declarations": [
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "source",
                  "range": [
                    5250,
                    5256
                  ],
                  "loc": {
                    "start": {
                      "line": 120,
                      "column": 8
                    },
                    "end": {
                      "line": 120,
                      "column": 14
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "state",
                    "range": [
                      5259,
                      5264
                    ],
                    "loc": {
                      "start": {
                        "line": 120,
                        "column": 17
                      },
                      "end": {
                        "line": 120,
                        "column": 22
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "source",
                    "range": [
                      5265,
                      5271
                    ],
                    "loc": {
                      "start": {
                        "line": 120,
                        "column": 23
                      },
                      "end": {
                        "line": 120,
                        "column": 29
                      }
                    }
                  },
                  "range": [
                    5259,
                    5271
                  ],
                  "loc": {
                    "start": {
                      "line": 120,
                      "column": 17
                    },
                    "end": {
                      "line": 120,
                      "column": 29
                    }
                  }
                },
                "range": [
                  5250,
                  5271
                ],
                "loc": {
                  "start": {
                    "line": 120,
                    "column": 8
                  },
                  "end": {
                    "line": 120,
                    "column": 29
                  }
                }
              },
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "subscriber",
                  "range": [
                    5273,
                    5283
                  ],
                  "loc": {
                    "start": {
                      "line": 120,
                      "column": 31
                    },
                    "end": {
                      "line": 120,
                      "column": 41
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "state",
                    "range": [
                      5286,
                      5291
                    ],
                    "loc": {
                      "start": {
                        "line": 120,
                        "column": 44
                      },
                      "end": {
                        "line": 120,
                        "column": 49
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "subscriber",
                    "range": [
                      5292,
                      5302
                    ],
                    "loc": {
                      "start": {
                        "line": 120,
                        "column": 50
                      },
                      "end": {
                        "line": 120,
                        "column": 60
                      }
                    }
                  },
                  "range": [
                    5286,
                    5302
                  ],
                  "loc": {
                    "start": {
                      "line": 120,
                      "column": 44
                    },
                    "end": {
                      "line": 120,
                      "column": 60
                    }
                  }
                },
                "range": [
                  5273,
                  5302
                ],
                "loc": {
                  "start": {
                    "line": 120,
                    "column": 31
                  },
                  "end": {
                    "line": 120,
                    "column": 60
                  }
                }
              }
            ],
            "kind": "var",
            "range": [
              5246,
              5303
            ],
            "loc": {
              "start": {
                "line": 120,
                "column": 4
              },
              "end": {
                "line": 120,
                "column": 61
              }
            },
            "trailingComments": [
              {
                "type": "Line",
                "value": " XXX: cast to `any` to access to the private field in `source`.",
                "range": [
                  5308,
                  5373
                ],
                "loc": {
                  "start": {
                    "line": 121,
                    "column": 4
                  },
                  "end": {
                    "line": 121,
                    "column": 69
                  }
                }
              }
            ]
          },
          {
            "type": "VariableDeclaration",
            "declarations": [
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "_a",
                  "range": [
                    5382,
                    5384
                  ],
                  "loc": {
                    "start": {
                      "line": 122,
                      "column": 8
                    },
                    "end": {
                      "line": 122,
                      "column": 10
                    }
                  }
                },
                "init": {
                  "type": "Identifier",
                  "name": "source",
                  "range": [
                    5387,
                    5393
                  ],
                  "loc": {
                    "start": {
                      "line": 122,
                      "column": 13
                    },
                    "end": {
                      "line": 122,
                      "column": 19
                    }
                  }
                },
                "range": [
                  5382,
                  5393
                ],
                "loc": {
                  "start": {
                    "line": 122,
                    "column": 8
                  },
                  "end": {
                    "line": 122,
                    "column": 19
                  }
                }
              },
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "callbackFunc",
                  "range": [
                    5395,
                    5407
                  ],
                  "loc": {
                    "start": {
                      "line": 122,
                      "column": 21
                    },
                    "end": {
                      "line": 122,
                      "column": 33
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "_a",
                    "range": [
                      5410,
                      5412
                    ],
                    "loc": {
                      "start": {
                        "line": 122,
                        "column": 36
                      },
                      "end": {
                        "line": 122,
                        "column": 38
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "callbackFunc",
                    "range": [
                      5413,
                      5425
                    ],
                    "loc": {
                      "start": {
                        "line": 122,
                        "column": 39
                      },
                      "end": {
                        "line": 122,
                        "column": 51
                      }
                    }
                  },
                  "range": [
                    5410,
                    5425
                  ],
                  "loc": {
                    "start": {
                      "line": 122,
                      "column": 36
                    },
                    "end": {
                      "line": 122,
                      "column": 51
                    }
                  }
                },
                "range": [
                  5395,
                  5425
                ],
                "loc": {
                  "start": {
                    "line": 122,
                    "column": 21
                  },
                  "end": {
                    "line": 122,
                    "column": 51
                  }
                }
              },
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "args",
                  "range": [
                    5427,
                    5431
                  ],
                  "loc": {
                    "start": {
                      "line": 122,
                      "column": 53
                    },
                    "end": {
                      "line": 122,
                      "column": 57
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "_a",
                    "range": [
                      5434,
                      5436
                    ],
                    "loc": {
                      "start": {
                        "line": 122,
                        "column": 60
                      },
                      "end": {
                        "line": 122,
                        "column": 62
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "args",
                    "range": [
                      5437,
                      5441
                    ],
                    "loc": {
                      "start": {
                        "line": 122,
                        "column": 63
                      },
                      "end": {
                        "line": 122,
                        "column": 67
                      }
                    }
                  },
                  "range": [
                    5434,
                    5441
                  ],
                  "loc": {
                    "start": {
                      "line": 122,
                      "column": 60
                    },
                    "end": {
                      "line": 122,
                      "column": 67
                    }
                  }
                },
                "range": [
                  5427,
                  5441
                ],
                "loc": {
                  "start": {
                    "line": 122,
                    "column": 53
                  },
                  "end": {
                    "line": 122,
                    "column": 67
                  }
                }
              },
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "scheduler",
                  "range": [
                    5443,
                    5452
                  ],
                  "loc": {
                    "start": {
                      "line": 122,
                      "column": 69
                    },
                    "end": {
                      "line": 122,
                      "column": 78
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "_a",
                    "range": [
                      5455,
                      5457
                    ],
                    "loc": {
                      "start": {
                        "line": 122,
                        "column": 81
                      },
                      "end": {
                        "line": 122,
                        "column": 83
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "scheduler",
                    "range": [
                      5458,
                      5467
                    ],
                    "loc": {
                      "start": {
                        "line": 122,
                        "column": 84
                      },
                      "end": {
                        "line": 122,
                        "column": 93
                      }
                    }
                  },
                  "range": [
                    5455,
                    5467
                  ],
                  "loc": {
                    "start": {
                      "line": 122,
                      "column": 81
                    },
                    "end": {
                      "line": 122,
                      "column": 93
                    }
                  }
                },
                "range": [
                  5443,
                  5467
                ],
                "loc": {
                  "start": {
                    "line": 122,
                    "column": 69
                  },
                  "end": {
                    "line": 122,
                    "column": 93
                  }
                }
              }
            ],
            "kind": "var",
            "range": [
              5378,
              5468
            ],
            "loc": {
              "start": {
                "line": 122,
                "column": 4
              },
              "end": {
                "line": 122,
                "column": 94
              }
            },
            "leadingComments": [
              {
                "type": "Line",
                "value": " XXX: cast to `any` to access to the private field in `source`.",
                "range": [
                  5308,
                  5373
                ],
                "loc": {
                  "start": {
                    "line": 121,
                    "column": 4
                  },
                  "end": {
                    "line": 121,
                    "column": 69
                  }
                }
              }
            ]
          },
          {
            "type": "VariableDeclaration",
            "declarations": [
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "subject",
                  "range": [
                    5477,
                    5484
                  ],
                  "loc": {
                    "start": {
                      "line": 123,
                      "column": 8
                    },
                    "end": {
                      "line": 123,
                      "column": 15
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "source",
                    "range": [
                      5487,
                      5493
                    ],
                    "loc": {
                      "start": {
                        "line": 123,
                        "column": 18
                      },
                      "end": {
                        "line": 123,
                        "column": 24
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "subject",
                    "range": [
                      5494,
                      5501
                    ],
                    "loc": {
                      "start": {
                        "line": 123,
                        "column": 25
                      },
                      "end": {
                        "line": 123,
                        "column": 32
                      }
                    }
                  },
                  "range": [
                    5487,
                    5501
                  ],
                  "loc": {
                    "start": {
                      "line": 123,
                      "column": 18
                    },
                    "end": {
                      "line": 123,
                      "column": 32
                    }
                  }
                },
                "range": [
                  5477,
                  5501
                ],
                "loc": {
                  "start": {
                    "line": 123,
                    "column": 8
                  },
                  "end": {
                    "line": 123,
                    "column": 32
                  }
                }
              }
            ],
            "kind": "var",
            "range": [
              5473,
              5502
            ],
            "loc": {
              "start": {
                "line": 123,
                "column": 4
              },
              "end": {
                "line": 123,
                "column": 33
              }
            }
          },
          {
            "type": "IfStatement",
            "test": {
              "type": "UnaryExpression",
              "operator": "!",
              "argument": {
                "type": "Identifier",
                "name": "subject",
                "range": [
                  5512,
                  5519
                ],
                "loc": {
                  "start": {
                    "line": 124,
                    "column": 9
                  },
                  "end": {
                    "line": 124,
                    "column": 16
                  }
                }
              },
              "prefix": true,
              "range": [
                5511,
                5519
              ],
              "loc": {
                "start": {
                  "line": 124,
                  "column": 8
                },
                "end": {
                  "line": 124,
                  "column": 16
                }
              }
            },
            "consequent": {
              "type": "BlockStatement",
              "body": [
                {
                  "type": "ExpressionStatement",
                  "expression": {
                    "type": "AssignmentExpression",
                    "operator": "=",
                    "left": {
                      "type": "Identifier",
                      "name": "subject",
                      "range": [
                        5531,
                        5538
                      ],
                      "loc": {
                        "start": {
                          "line": 125,
                          "column": 8
                        },
                        "end": {
                          "line": 125,
                          "column": 15
                        }
                      }
                    },
                    "right": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "Identifier",
                          "name": "source",
                          "range": [
                            5541,
                            5547
                          ],
                          "loc": {
                            "start": {
                              "line": 125,
                              "column": 18
                            },
                            "end": {
                              "line": 125,
                              "column": 24
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "subject",
                          "range": [
                            5548,
                            5555
                          ],
                          "loc": {
                            "start": {
                              "line": 125,
                              "column": 25
                            },
                            "end": {
                              "line": 125,
                              "column": 32
                            }
                          }
                        },
                        "range": [
                          5541,
                          5555
                        ],
                        "loc": {
                          "start": {
                            "line": 125,
                            "column": 18
                          },
                          "end": {
                            "line": 125,
                            "column": 32
                          }
                        }
                      },
                      "right": {
                        "type": "NewExpression",
                        "callee": {
                          "type": "Identifier",
                          "name": "AsyncSubject",
                          "range": [
                            5562,
                            5574
                          ],
                          "loc": {
                            "start": {
                              "line": 125,
                              "column": 39
                            },
                            "end": {
                              "line": 125,
                              "column": 51
                            }
                          }
                        },
                        "arguments": [],
                        "range": [
                          5558,
                          5576
                        ],
                        "loc": {
                          "start": {
                            "line": 125,
                            "column": 35
                          },
                          "end": {
                            "line": 125,
                            "column": 53
                          }
                        }
                      },
                      "range": [
                        5541,
                        5576
                      ],
                      "loc": {
                        "start": {
                          "line": 125,
                          "column": 18
                        },
                        "end": {
                          "line": 125,
                          "column": 53
                        }
                      }
                    },
                    "range": [
                      5531,
                      5576
                    ],
                    "loc": {
                      "start": {
                        "line": 125,
                        "column": 8
                      },
                      "end": {
                        "line": 125,
                        "column": 53
                      }
                    }
                  },
                  "range": [
                    5531,
                    5577
                  ],
                  "loc": {
                    "start": {
                      "line": 125,
                      "column": 8
                    },
                    "end": {
                      "line": 125,
                      "column": 54
                    }
                  }
                },
                {
                  "type": "VariableDeclaration",
                  "declarations": [
                    {
                      "type": "VariableDeclarator",
                      "id": {
                        "type": "Identifier",
                        "name": "handler",
                        "range": [
                          5590,
                          5597
                        ],
                        "loc": {
                          "start": {
                            "line": 126,
                            "column": 12
                          },
                          "end": {
                            "line": 126,
                            "column": 19
                          }
                        }
                      },
                      "init": {
                        "type": "FunctionExpression",
                        "id": {
                          "type": "Identifier",
                          "name": "handlerFn",
                          "range": [
                            5609,
                            5618
                          ],
                          "loc": {
                            "start": {
                              "line": 126,
                              "column": 31
                            },
                            "end": {
                              "line": 126,
                              "column": 40
                            }
                          }
                        },
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "innerArgs",
                                    "range": [
                                      5639,
                                      5648
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 127,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 127,
                                        "column": 25
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "ArrayExpression",
                                    "elements": [],
                                    "range": [
                                      5651,
                                      5653
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 127,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 127,
                                        "column": 30
                                      }
                                    }
                                  },
                                  "range": [
                                    5639,
                                    5653
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 127,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 127,
                                      "column": 30
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                5635,
                                5654
                              ],
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 12
                                },
                                "end": {
                                  "line": 127,
                                  "column": 31
                                }
                              }
                            },
                            {
                              "type": "ForStatement",
                              "init": {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "_i",
                                      "range": [
                                        5676,
                                        5678
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 128,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 128,
                                          "column": 23
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "Literal",
                                      "value": 0,
                                      "raw": "0",
                                      "range": [
                                        5681,
                                        5682
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 128,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 128,
                                          "column": 27
                                        }
                                      }
                                    },
                                    "range": [
                                      5676,
                                      5682
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 128,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 128,
                                        "column": 27
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  5672,
                                  5682
                                ],
                                "loc": {
                                  "start": {
                                    "line": 128,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 128,
                                    "column": 27
                                  }
                                }
                              },
                              "test": {
                                "type": "BinaryExpression",
                                "operator": "<",
                                "left": {
                                  "type": "Identifier",
                                  "name": "_i",
                                  "range": [
                                    5684,
                                    5686
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 128,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 128,
                                      "column": 31
                                    }
                                  }
                                },
                                "right": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "arguments",
                                    "range": [
                                      5689,
                                      5698
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 128,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 128,
                                        "column": 43
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "length",
                                    "range": [
                                      5699,
                                      5705
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 128,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 128,
                                        "column": 50
                                      }
                                    }
                                  },
                                  "range": [
                                    5689,
                                    5705
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 128,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 128,
                                      "column": 50
                                    }
                                  }
                                },
                                "range": [
                                  5684,
                                  5705
                                ],
                                "loc": {
                                  "start": {
                                    "line": 128,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 128,
                                    "column": 50
                                  }
                                }
                              },
                              "update": {
                                "type": "UpdateExpression",
                                "operator": "++",
                                "argument": {
                                  "type": "Identifier",
                                  "name": "_i",
                                  "range": [
                                    5707,
                                    5709
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 128,
                                      "column": 52
                                    },
                                    "end": {
                                      "line": 128,
                                      "column": 54
                                    }
                                  }
                                },
                                "prefix": false,
                                "range": [
                                  5707,
                                  5711
                                ],
                                "loc": {
                                  "start": {
                                    "line": 128,
                                    "column": 52
                                  },
                                  "end": {
                                    "line": 128,
                                    "column": 56
                                  }
                                }
                              },
                              "body": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "MemberExpression",
                                        "computed": true,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "innerArgs",
                                          "range": [
                                            5731,
                                            5740
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 129,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 129,
                                              "column": 25
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "BinaryExpression",
                                          "operator": "-",
                                          "left": {
                                            "type": "Identifier",
                                            "name": "_i",
                                            "range": [
                                              5741,
                                              5743
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 129,
                                                "column": 26
                                              },
                                              "end": {
                                                "line": 129,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "Literal",
                                            "value": 0,
                                            "raw": "0",
                                            "range": [
                                              5746,
                                              5747
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 129,
                                                "column": 31
                                              },
                                              "end": {
                                                "line": 129,
                                                "column": 32
                                              }
                                            }
                                          },
                                          "range": [
                                            5741,
                                            5747
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 129,
                                              "column": 26
                                            },
                                            "end": {
                                              "line": 129,
                                              "column": 32
                                            }
                                          }
                                        },
                                        "range": [
                                          5731,
                                          5748
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 129,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 129,
                                            "column": 33
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "MemberExpression",
                                        "computed": true,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "arguments",
                                          "range": [
                                            5751,
                                            5760
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 129,
                                              "column": 36
                                            },
                                            "end": {
                                              "line": 129,
                                              "column": 45
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "_i",
                                          "range": [
                                            5761,
                                            5763
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 129,
                                              "column": 46
                                            },
                                            "end": {
                                              "line": 129,
                                              "column": 48
                                            }
                                          }
                                        },
                                        "range": [
                                          5751,
                                          5764
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 129,
                                            "column": 36
                                          },
                                          "end": {
                                            "line": 129,
                                            "column": 49
                                          }
                                        }
                                      },
                                      "range": [
                                        5731,
                                        5764
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 129,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 129,
                                          "column": 49
                                        }
                                      }
                                    },
                                    "range": [
                                      5731,
                                      5765
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 129,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 129,
                                        "column": 50
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  5713,
                                  5779
                                ],
                                "loc": {
                                  "start": {
                                    "line": 128,
                                    "column": 58
                                  },
                                  "end": {
                                    "line": 130,
                                    "column": 13
                                  }
                                }
                              },
                              "range": [
                                5667,
                                5779
                              ],
                              "loc": {
                                "start": {
                                  "line": 128,
                                  "column": 12
                                },
                                "end": {
                                  "line": 130,
                                  "column": 13
                                }
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "source",
                                    "range": [
                                      5796,
                                      5802
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "handlerFn",
                                      "range": [
                                        5805,
                                        5814
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 131,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 131,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "source",
                                      "range": [
                                        5815,
                                        5821
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 131,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 131,
                                          "column": 41
                                        }
                                      }
                                    },
                                    "range": [
                                      5805,
                                      5821
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 41
                                      }
                                    }
                                  },
                                  "range": [
                                    5796,
                                    5821
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 131,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 41
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                5792,
                                5822
                              ],
                              "loc": {
                                "start": {
                                  "line": 131,
                                  "column": 12
                                },
                                "end": {
                                  "line": 131,
                                  "column": 42
                                }
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "selector",
                                    "range": [
                                      5839,
                                      5847
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 132,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 132,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "source",
                                      "range": [
                                        5850,
                                        5856
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 132,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 132,
                                          "column": 33
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "selector",
                                      "range": [
                                        5857,
                                        5865
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 132,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 132,
                                          "column": 42
                                        }
                                      }
                                    },
                                    "range": [
                                      5850,
                                      5865
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 132,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 132,
                                        "column": 42
                                      }
                                    }
                                  },
                                  "range": [
                                    5839,
                                    5865
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 132,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 132,
                                      "column": 42
                                    }
                                  }
                                },
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "subject",
                                    "range": [
                                      5867,
                                      5874
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 132,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 132,
                                        "column": 51
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "source",
                                      "range": [
                                        5877,
                                        5883
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 132,
                                          "column": 54
                                        },
                                        "end": {
                                          "line": 132,
                                          "column": 60
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "subject",
                                      "range": [
                                        5884,
                                        5891
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 132,
                                          "column": 61
                                        },
                                        "end": {
                                          "line": 132,
                                          "column": 68
                                        }
                                      }
                                    },
                                    "range": [
                                      5877,
                                      5891
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 132,
                                        "column": 54
                                      },
                                      "end": {
                                        "line": 132,
                                        "column": 68
                                      }
                                    }
                                  },
                                  "range": [
                                    5867,
                                    5891
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 132,
                                      "column": 44
                                    },
                                    "end": {
                                      "line": 132,
                                      "column": 68
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                5835,
                                5892
                              ],
                              "loc": {
                                "start": {
                                  "line": 132,
                                  "column": 12
                                },
                                "end": {
                                  "line": 132,
                                  "column": 69
                                }
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "err",
                                    "range": [
                                      5909,
                                      5912
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "innerArgs",
                                        "range": [
                                          5915,
                                          5924
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 31
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "shift",
                                        "range": [
                                          5925,
                                          5930
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 37
                                          }
                                        }
                                      },
                                      "range": [
                                        5915,
                                        5930
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 133,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 133,
                                          "column": 37
                                        }
                                      }
                                    },
                                    "arguments": [],
                                    "range": [
                                      5915,
                                      5932
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 39
                                      }
                                    }
                                  },
                                  "range": [
                                    5909,
                                    5932
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 133,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 133,
                                      "column": 39
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                5905,
                                5933
                              ],
                              "loc": {
                                "start": {
                                  "line": 133,
                                  "column": 12
                                },
                                "end": {
                                  "line": 133,
                                  "column": 40
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "Identifier",
                                "name": "err",
                                "range": [
                                  5950,
                                  5953
                                ],
                                "loc": {
                                  "start": {
                                    "line": 134,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 134,
                                    "column": 19
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "subject",
                                          "range": [
                                            5973,
                                            5980
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 135,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 135,
                                              "column": 23
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "error",
                                          "range": [
                                            5981,
                                            5986
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 135,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 135,
                                              "column": 29
                                            }
                                          }
                                        },
                                        "range": [
                                          5973,
                                          5986
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 135,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 135,
                                            "column": 29
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "err",
                                          "range": [
                                            5987,
                                            5990
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 135,
                                              "column": 30
                                            },
                                            "end": {
                                              "line": 135,
                                              "column": 33
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        5973,
                                        5991
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 135,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 135,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "range": [
                                      5973,
                                      5992
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 135,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 135,
                                        "column": 35
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  5955,
                                  6006
                                ],
                                "loc": {
                                  "start": {
                                    "line": 134,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 136,
                                    "column": 13
                                  }
                                }
                              },
                              "alternate": {
                                "type": "IfStatement",
                                "test": {
                                  "type": "Identifier",
                                  "name": "selector",
                                  "range": [
                                    6028,
                                    6036
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 137,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 137,
                                      "column": 29
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "VariableDeclaration",
                                      "declarations": [
                                        {
                                          "type": "VariableDeclarator",
                                          "id": {
                                            "type": "Identifier",
                                            "name": "result_2",
                                            "range": [
                                              6060,
                                              6068
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 138,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 138,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "init": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "CallExpression",
                                                "callee": {
                                                  "type": "Identifier",
                                                  "name": "tryCatch",
                                                  "range": [
                                                    6071,
                                                    6079
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 138,
                                                      "column": 31
                                                    },
                                                    "end": {
                                                      "line": 138,
                                                      "column": 39
                                                    }
                                                  }
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Identifier",
                                                    "name": "selector",
                                                    "range": [
                                                      6080,
                                                      6088
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 138,
                                                        "column": 40
                                                      },
                                                      "end": {
                                                        "line": 138,
                                                        "column": 48
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  6071,
                                                  6089
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 138,
                                                    "column": 31
                                                  },
                                                  "end": {
                                                    "line": 138,
                                                    "column": 49
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "apply",
                                                "range": [
                                                  6090,
                                                  6095
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 138,
                                                    "column": 50
                                                  },
                                                  "end": {
                                                    "line": 138,
                                                    "column": 55
                                                  }
                                                }
                                              },
                                              "range": [
                                                6071,
                                                6095
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 138,
                                                  "column": 31
                                                },
                                                "end": {
                                                  "line": 138,
                                                  "column": 55
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "ThisExpression",
                                                "range": [
                                                  6096,
                                                  6100
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 138,
                                                    "column": 56
                                                  },
                                                  "end": {
                                                    "line": 138,
                                                    "column": 60
                                                  }
                                                }
                                              },
                                              {
                                                "type": "Identifier",
                                                "name": "innerArgs",
                                                "range": [
                                                  6102,
                                                  6111
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 138,
                                                    "column": 62
                                                  },
                                                  "end": {
                                                    "line": 138,
                                                    "column": 71
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              6071,
                                              6112
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 138,
                                                "column": 31
                                              },
                                              "end": {
                                                "line": 138,
                                                "column": 72
                                              }
                                            }
                                          },
                                          "range": [
                                            6060,
                                            6112
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 138,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 138,
                                              "column": 72
                                            }
                                          }
                                        }
                                      ],
                                      "kind": "var",
                                      "range": [
                                        6056,
                                        6113
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 138,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 138,
                                          "column": 73
                                        }
                                      }
                                    },
                                    {
                                      "type": "IfStatement",
                                      "test": {
                                        "type": "BinaryExpression",
                                        "operator": "===",
                                        "left": {
                                          "type": "Identifier",
                                          "name": "result_2",
                                          "range": [
                                            6134,
                                            6142
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 139,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 139,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Identifier",
                                          "name": "errorObject",
                                          "range": [
                                            6147,
                                            6158
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 139,
                                              "column": 33
                                            },
                                            "end": {
                                              "line": 139,
                                              "column": 44
                                            }
                                          }
                                        },
                                        "range": [
                                          6134,
                                          6158
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 139,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 139,
                                            "column": 44
                                          }
                                        }
                                      },
                                      "consequent": {
                                        "type": "BlockStatement",
                                        "body": [
                                          {
                                            "type": "ExpressionStatement",
                                            "expression": {
                                              "type": "CallExpression",
                                              "callee": {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "self",
                                                  "range": [
                                                    6182,
                                                    6186
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 140,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 140,
                                                      "column": 24
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "add",
                                                  "range": [
                                                    6187,
                                                    6190
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 140,
                                                      "column": 25
                                                    },
                                                    "end": {
                                                      "line": 140,
                                                      "column": 28
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  6182,
                                                  6190
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 140,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 140,
                                                    "column": 28
                                                  }
                                                }
                                              },
                                              "arguments": [
                                                {
                                                  "type": "CallExpression",
                                                  "callee": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "scheduler",
                                                      "range": [
                                                        6191,
                                                        6200
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 140,
                                                          "column": 29
                                                        },
                                                        "end": {
                                                          "line": 140,
                                                          "column": 38
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "schedule",
                                                      "range": [
                                                        6201,
                                                        6209
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 140,
                                                          "column": 39
                                                        },
                                                        "end": {
                                                          "line": 140,
                                                          "column": 47
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      6191,
                                                      6209
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 140,
                                                        "column": 29
                                                      },
                                                      "end": {
                                                        "line": 140,
                                                        "column": 47
                                                      }
                                                    }
                                                  },
                                                  "arguments": [
                                                    {
                                                      "type": "Identifier",
                                                      "name": "dispatchError",
                                                      "range": [
                                                        6210,
                                                        6223
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 140,
                                                          "column": 48
                                                        },
                                                        "end": {
                                                          "line": 140,
                                                          "column": 61
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "type": "Literal",
                                                      "value": 0,
                                                      "raw": "0",
                                                      "range": [
                                                        6225,
                                                        6226
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 140,
                                                          "column": 63
                                                        },
                                                        "end": {
                                                          "line": 140,
                                                          "column": 64
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "type": "ObjectExpression",
                                                      "properties": [
                                                        {
                                                          "type": "Property",
                                                          "key": {
                                                            "type": "Identifier",
                                                            "name": "err",
                                                            "range": [
                                                              6230,
                                                              6233
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 140,
                                                                "column": 68
                                                              },
                                                              "end": {
                                                                "line": 140,
                                                                "column": 71
                                                              }
                                                            }
                                                          },
                                                          "value": {
                                                            "type": "MemberExpression",
                                                            "computed": false,
                                                            "object": {
                                                              "type": "Identifier",
                                                              "name": "errorObject",
                                                              "range": [
                                                                6235,
                                                                6246
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 140,
                                                                  "column": 73
                                                                },
                                                                "end": {
                                                                  "line": 140,
                                                                  "column": 84
                                                                }
                                                              }
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "name": "e",
                                                              "range": [
                                                                6247,
                                                                6248
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 140,
                                                                  "column": 85
                                                                },
                                                                "end": {
                                                                  "line": 140,
                                                                  "column": 86
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              6235,
                                                              6248
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 140,
                                                                "column": 73
                                                              },
                                                              "end": {
                                                                "line": 140,
                                                                "column": 86
                                                              }
                                                            }
                                                          },
                                                          "kind": "init",
                                                          "method": false,
                                                          "shorthand": false,
                                                          "computed": false,
                                                          "range": [
                                                            6230,
                                                            6248
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 140,
                                                              "column": 68
                                                            },
                                                            "end": {
                                                              "line": 140,
                                                              "column": 86
                                                            }
                                                          }
                                                        },
                                                        {
                                                          "type": "Property",
                                                          "key": {
                                                            "type": "Identifier",
                                                            "name": "subject",
                                                            "range": [
                                                              6250,
                                                              6257
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 140,
                                                                "column": 88
                                                              },
                                                              "end": {
                                                                "line": 140,
                                                                "column": 95
                                                              }
                                                            }
                                                          },
                                                          "value": {
                                                            "type": "Identifier",
                                                            "name": "subject",
                                                            "range": [
                                                              6259,
                                                              6266
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 140,
                                                                "column": 97
                                                              },
                                                              "end": {
                                                                "line": 140,
                                                                "column": 104
                                                              }
                                                            }
                                                          },
                                                          "kind": "init",
                                                          "method": false,
                                                          "shorthand": false,
                                                          "computed": false,
                                                          "range": [
                                                            6250,
                                                            6266
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 140,
                                                              "column": 88
                                                            },
                                                            "end": {
                                                              "line": 140,
                                                              "column": 104
                                                            }
                                                          }
                                                        }
                                                      ],
                                                      "range": [
                                                        6228,
                                                        6268
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 140,
                                                          "column": 66
                                                        },
                                                        "end": {
                                                          "line": 140,
                                                          "column": 106
                                                        }
                                                      }
                                                    }
                                                  ],
                                                  "range": [
                                                    6191,
                                                    6269
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 140,
                                                      "column": 29
                                                    },
                                                    "end": {
                                                      "line": 140,
                                                      "column": 107
                                                    }
                                                  }
                                                }
                                              ],
                                              "range": [
                                                6182,
                                                6270
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 140,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 140,
                                                  "column": 108
                                                }
                                              }
                                            },
                                            "range": [
                                              6182,
                                              6271
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 140,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 140,
                                                "column": 109
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          6160,
                                          6289
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 139,
                                            "column": 46
                                          },
                                          "end": {
                                            "line": 141,
                                            "column": 17
                                          }
                                        }
                                      },
                                      "alternate": {
                                        "type": "BlockStatement",
                                        "body": [
                                          {
                                            "type": "ExpressionStatement",
                                            "expression": {
                                              "type": "CallExpression",
                                              "callee": {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "self",
                                                  "range": [
                                                    6333,
                                                    6337
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 143,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 143,
                                                      "column": 24
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "add",
                                                  "range": [
                                                    6338,
                                                    6341
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 143,
                                                      "column": 25
                                                    },
                                                    "end": {
                                                      "line": 143,
                                                      "column": 28
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  6333,
                                                  6341
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 143,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 143,
                                                    "column": 28
                                                  }
                                                }
                                              },
                                              "arguments": [
                                                {
                                                  "type": "CallExpression",
                                                  "callee": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "scheduler",
                                                      "range": [
                                                        6342,
                                                        6351
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 143,
                                                          "column": 29
                                                        },
                                                        "end": {
                                                          "line": 143,
                                                          "column": 38
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "schedule",
                                                      "range": [
                                                        6352,
                                                        6360
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 143,
                                                          "column": 39
                                                        },
                                                        "end": {
                                                          "line": 143,
                                                          "column": 47
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      6342,
                                                      6360
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 143,
                                                        "column": 29
                                                      },
                                                      "end": {
                                                        "line": 143,
                                                        "column": 47
                                                      }
                                                    }
                                                  },
                                                  "arguments": [
                                                    {
                                                      "type": "Identifier",
                                                      "name": "dispatchNext",
                                                      "range": [
                                                        6361,
                                                        6373
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 143,
                                                          "column": 48
                                                        },
                                                        "end": {
                                                          "line": 143,
                                                          "column": 60
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "type": "Literal",
                                                      "value": 0,
                                                      "raw": "0",
                                                      "range": [
                                                        6375,
                                                        6376
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 143,
                                                          "column": 62
                                                        },
                                                        "end": {
                                                          "line": 143,
                                                          "column": 63
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "type": "ObjectExpression",
                                                      "properties": [
                                                        {
                                                          "type": "Property",
                                                          "key": {
                                                            "type": "Identifier",
                                                            "name": "value",
                                                            "range": [
                                                              6380,
                                                              6385
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 143,
                                                                "column": 67
                                                              },
                                                              "end": {
                                                                "line": 143,
                                                                "column": 72
                                                              }
                                                            }
                                                          },
                                                          "value": {
                                                            "type": "Identifier",
                                                            "name": "result_2",
                                                            "range": [
                                                              6387,
                                                              6395
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 143,
                                                                "column": 74
                                                              },
                                                              "end": {
                                                                "line": 143,
                                                                "column": 82
                                                              }
                                                            }
                                                          },
                                                          "kind": "init",
                                                          "method": false,
                                                          "shorthand": false,
                                                          "computed": false,
                                                          "range": [
                                                            6380,
                                                            6395
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 143,
                                                              "column": 67
                                                            },
                                                            "end": {
                                                              "line": 143,
                                                              "column": 82
                                                            }
                                                          }
                                                        },
                                                        {
                                                          "type": "Property",
                                                          "key": {
                                                            "type": "Identifier",
                                                            "name": "subject",
                                                            "range": [
                                                              6397,
                                                              6404
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 143,
                                                                "column": 84
                                                              },
                                                              "end": {
                                                                "line": 143,
                                                                "column": 91
                                                              }
                                                            }
                                                          },
                                                          "value": {
                                                            "type": "Identifier",
                                                            "name": "subject",
                                                            "range": [
                                                              6406,
                                                              6413
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 143,
                                                                "column": 93
                                                              },
                                                              "end": {
                                                                "line": 143,
                                                                "column": 100
                                                              }
                                                            }
                                                          },
                                                          "kind": "init",
                                                          "method": false,
                                                          "shorthand": false,
                                                          "computed": false,
                                                          "range": [
                                                            6397,
                                                            6413
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 143,
                                                              "column": 84
                                                            },
                                                            "end": {
                                                              "line": 143,
                                                              "column": 100
                                                            }
                                                          }
                                                        }
                                                      ],
                                                      "range": [
                                                        6378,
                                                        6415
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 143,
                                                          "column": 65
                                                        },
                                                        "end": {
                                                          "line": 143,
                                                          "column": 102
                                                        }
                                                      }
                                                    }
                                                  ],
                                                  "range": [
                                                    6342,
                                                    6416
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 143,
                                                      "column": 29
                                                    },
                                                    "end": {
                                                      "line": 143,
                                                      "column": 103
                                                    }
                                                  }
                                                }
                                              ],
                                              "range": [
                                                6333,
                                                6417
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 143,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 143,
                                                  "column": 104
                                                }
                                              }
                                            },
                                            "range": [
                                              6333,
                                              6418
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 143,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 143,
                                                "column": 105
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          6311,
                                          6436
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 142,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 144,
                                            "column": 17
                                          }
                                        }
                                      },
                                      "range": [
                                        6130,
                                        6436
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 139,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 144,
                                          "column": 17
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    6038,
                                    6450
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 137,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 145,
                                      "column": 13
                                    }
                                  }
                                },
                                "alternate": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "VariableDeclaration",
                                      "declarations": [
                                        {
                                          "type": "VariableDeclarator",
                                          "id": {
                                            "type": "Identifier",
                                            "name": "value",
                                            "range": [
                                              6490,
                                              6495
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 147,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 147,
                                                "column": 25
                                              }
                                            }
                                          },
                                          "init": {
                                            "type": "ConditionalExpression",
                                            "test": {
                                              "type": "BinaryExpression",
                                              "operator": "===",
                                              "left": {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "innerArgs",
                                                  "range": [
                                                    6498,
                                                    6507
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 147,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 147,
                                                      "column": 37
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "length",
                                                  "range": [
                                                    6508,
                                                    6514
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 147,
                                                      "column": 38
                                                    },
                                                    "end": {
                                                      "line": 147,
                                                      "column": 44
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  6498,
                                                  6514
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 147,
                                                    "column": 28
                                                  },
                                                  "end": {
                                                    "line": 147,
                                                    "column": 44
                                                  }
                                                }
                                              },
                                              "right": {
                                                "type": "Literal",
                                                "value": 1,
                                                "raw": "1",
                                                "range": [
                                                  6519,
                                                  6520
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 147,
                                                    "column": 49
                                                  },
                                                  "end": {
                                                    "line": 147,
                                                    "column": 50
                                                  }
                                                }
                                              },
                                              "range": [
                                                6498,
                                                6520
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 147,
                                                  "column": 28
                                                },
                                                "end": {
                                                  "line": 147,
                                                  "column": 50
                                                }
                                              }
                                            },
                                            "consequent": {
                                              "type": "MemberExpression",
                                              "computed": true,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "innerArgs",
                                                "range": [
                                                  6523,
                                                  6532
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 147,
                                                    "column": 53
                                                  },
                                                  "end": {
                                                    "line": 147,
                                                    "column": 62
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Literal",
                                                "value": 0,
                                                "raw": "0",
                                                "range": [
                                                  6533,
                                                  6534
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 147,
                                                    "column": 63
                                                  },
                                                  "end": {
                                                    "line": 147,
                                                    "column": 64
                                                  }
                                                }
                                              },
                                              "range": [
                                                6523,
                                                6535
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 147,
                                                  "column": 53
                                                },
                                                "end": {
                                                  "line": 147,
                                                  "column": 65
                                                }
                                              }
                                            },
                                            "alternate": {
                                              "type": "Identifier",
                                              "name": "innerArgs",
                                              "range": [
                                                6538,
                                                6547
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 147,
                                                  "column": 68
                                                },
                                                "end": {
                                                  "line": 147,
                                                  "column": 77
                                                }
                                              }
                                            },
                                            "range": [
                                              6498,
                                              6547
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 147,
                                                "column": 28
                                              },
                                              "end": {
                                                "line": 147,
                                                "column": 77
                                              }
                                            }
                                          },
                                          "range": [
                                            6490,
                                            6547
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 147,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 147,
                                              "column": 77
                                            }
                                          }
                                        }
                                      ],
                                      "kind": "var",
                                      "range": [
                                        6486,
                                        6548
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 147,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 147,
                                          "column": 78
                                        }
                                      }
                                    },
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "self",
                                            "range": [
                                              6565,
                                              6569
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 148,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 148,
                                                "column": 20
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "add",
                                            "range": [
                                              6570,
                                              6573
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 148,
                                                "column": 21
                                              },
                                              "end": {
                                                "line": 148,
                                                "column": 24
                                              }
                                            }
                                          },
                                          "range": [
                                            6565,
                                            6573
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 148,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 148,
                                              "column": 24
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "scheduler",
                                                "range": [
                                                  6574,
                                                  6583
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 148,
                                                    "column": 25
                                                  },
                                                  "end": {
                                                    "line": 148,
                                                    "column": 34
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "schedule",
                                                "range": [
                                                  6584,
                                                  6592
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 148,
                                                    "column": 35
                                                  },
                                                  "end": {
                                                    "line": 148,
                                                    "column": 43
                                                  }
                                                }
                                              },
                                              "range": [
                                                6574,
                                                6592
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 148,
                                                  "column": 25
                                                },
                                                "end": {
                                                  "line": 148,
                                                  "column": 43
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "Identifier",
                                                "name": "dispatchNext",
                                                "range": [
                                                  6593,
                                                  6605
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 148,
                                                    "column": 44
                                                  },
                                                  "end": {
                                                    "line": 148,
                                                    "column": 56
                                                  }
                                                }
                                              },
                                              {
                                                "type": "Literal",
                                                "value": 0,
                                                "raw": "0",
                                                "range": [
                                                  6607,
                                                  6608
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 148,
                                                    "column": 58
                                                  },
                                                  "end": {
                                                    "line": 148,
                                                    "column": 59
                                                  }
                                                }
                                              },
                                              {
                                                "type": "ObjectExpression",
                                                "properties": [
                                                  {
                                                    "type": "Property",
                                                    "key": {
                                                      "type": "Identifier",
                                                      "name": "value",
                                                      "range": [
                                                        6612,
                                                        6617
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 148,
                                                          "column": 63
                                                        },
                                                        "end": {
                                                          "line": 148,
                                                          "column": 68
                                                        }
                                                      }
                                                    },
                                                    "value": {
                                                      "type": "Identifier",
                                                      "name": "value",
                                                      "range": [
                                                        6619,
                                                        6624
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 148,
                                                          "column": 70
                                                        },
                                                        "end": {
                                                          "line": 148,
                                                          "column": 75
                                                        }
                                                      }
                                                    },
                                                    "kind": "init",
                                                    "method": false,
                                                    "shorthand": false,
                                                    "computed": false,
                                                    "range": [
                                                      6612,
                                                      6624
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 148,
                                                        "column": 63
                                                      },
                                                      "end": {
                                                        "line": 148,
                                                        "column": 75
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "Property",
                                                    "key": {
                                                      "type": "Identifier",
                                                      "name": "subject",
                                                      "range": [
                                                        6626,
                                                        6633
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 148,
                                                          "column": 77
                                                        },
                                                        "end": {
                                                          "line": 148,
                                                          "column": 84
                                                        }
                                                      }
                                                    },
                                                    "value": {
                                                      "type": "Identifier",
                                                      "name": "subject",
                                                      "range": [
                                                        6635,
                                                        6642
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 148,
                                                          "column": 86
                                                        },
                                                        "end": {
                                                          "line": 148,
                                                          "column": 93
                                                        }
                                                      }
                                                    },
                                                    "kind": "init",
                                                    "method": false,
                                                    "shorthand": false,
                                                    "computed": false,
                                                    "range": [
                                                      6626,
                                                      6642
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 148,
                                                        "column": 77
                                                      },
                                                      "end": {
                                                        "line": 148,
                                                        "column": 93
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  6610,
                                                  6644
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 148,
                                                    "column": 61
                                                  },
                                                  "end": {
                                                    "line": 148,
                                                    "column": 95
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              6574,
                                              6645
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 148,
                                                "column": 25
                                              },
                                              "end": {
                                                "line": 148,
                                                "column": 96
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          6565,
                                          6646
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 148,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 148,
                                            "column": 97
                                          }
                                        }
                                      },
                                      "range": [
                                        6565,
                                        6647
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 148,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 148,
                                          "column": 98
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    6468,
                                    6661
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 146,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 149,
                                      "column": 13
                                    }
                                  }
                                },
                                "range": [
                                  6024,
                                  6661
                                ],
                                "loc": {
                                  "start": {
                                    "line": 137,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 149,
                                    "column": 13
                                  }
                                }
                              },
                              "range": [
                                5946,
                                6661
                              ],
                              "loc": {
                                "start": {
                                  "line": 134,
                                  "column": 12
                                },
                                "end": {
                                  "line": 149,
                                  "column": 13
                                }
                              }
                            }
                          ],
                          "range": [
                            5621,
                            6671
                          ],
                          "loc": {
                            "start": {
                              "line": 126,
                              "column": 43
                            },
                            "end": {
                              "line": 150,
                              "column": 9
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          5600,
                          6671
                        ],
                        "loc": {
                          "start": {
                            "line": 126,
                            "column": 22
                          },
                          "end": {
                            "line": 150,
                            "column": 9
                          }
                        }
                      },
                      "range": [
                        5590,
                        6671
                      ],
                      "loc": {
                        "start": {
                          "line": 126,
                          "column": 12
                        },
                        "end": {
                          "line": 150,
                          "column": 9
                        }
                      }
                    }
                  ],
                  "kind": "var",
                  "range": [
                    5586,
                    6672
                  ],
                  "loc": {
                    "start": {
                      "line": 126,
                      "column": 8
                    },
                    "end": {
                      "line": 150,
                      "column": 10
                    }
                  },
                  "trailingComments": [
                    {
                      "type": "Line",
                      "value": " use named function to pass values in without closure",
                      "range": [
                        6681,
                        6736
                      ],
                      "loc": {
                        "start": {
                          "line": 151,
                          "column": 8
                        },
                        "end": {
                          "line": 151,
                          "column": 63
                        }
                      }
                    }
                  ]
                },
                {
                  "type": "ExpressionStatement",
                  "expression": {
                    "type": "AssignmentExpression",
                    "operator": "=",
                    "left": {
                      "type": "MemberExpression",
                      "computed": false,
                      "object": {
                        "type": "Identifier",
                        "name": "handler",
                        "range": [
                          6745,
                          6752
                        ],
                        "loc": {
                          "start": {
                            "line": 152,
                            "column": 8
                          },
                          "end": {
                            "line": 152,
                            "column": 15
                          }
                        }
                      },
                      "property": {
                        "type": "Identifier",
                        "name": "source",
                        "range": [
                          6753,
                          6759
                        ],
                        "loc": {
                          "start": {
                            "line": 152,
                            "column": 16
                          },
                          "end": {
                            "line": 152,
                            "column": 22
                          }
                        }
                      },
                      "range": [
                        6745,
                        6759
                      ],
                      "loc": {
                        "start": {
                          "line": 152,
                          "column": 8
                        },
                        "end": {
                          "line": 152,
                          "column": 22
                        }
                      }
                    },
                    "right": {
                      "type": "Identifier",
                      "name": "source",
                      "range": [
                        6762,
                        6768
                      ],
                      "loc": {
                        "start": {
                          "line": 152,
                          "column": 25
                        },
                        "end": {
                          "line": 152,
                          "column": 31
                        }
                      }
                    },
                    "range": [
                      6745,
                      6768
                    ],
                    "loc": {
                      "start": {
                        "line": 152,
                        "column": 8
                      },
                      "end": {
                        "line": 152,
                        "column": 31
                      }
                    }
                  },
                  "range": [
                    6745,
                    6769
                  ],
                  "loc": {
                    "start": {
                      "line": 152,
                      "column": 8
                    },
                    "end": {
                      "line": 152,
                      "column": 32
                    }
                  },
                  "leadingComments": [
                    {
                      "type": "Line",
                      "value": " use named function to pass values in without closure",
                      "range": [
                        6681,
                        6736
                      ],
                      "loc": {
                        "start": {
                          "line": 151,
                          "column": 8
                        },
                        "end": {
                          "line": 151,
                          "column": 63
                        }
                      }
                    }
                  ]
                },
                {
                  "type": "VariableDeclaration",
                  "declarations": [
                    {
                      "type": "VariableDeclarator",
                      "id": {
                        "type": "Identifier",
                        "name": "result",
                        "range": [
                          6782,
                          6788
                        ],
                        "loc": {
                          "start": {
                            "line": 153,
                            "column": 12
                          },
                          "end": {
                            "line": 153,
                            "column": 18
                          }
                        }
                      },
                      "init": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "Identifier",
                              "name": "tryCatch",
                              "range": [
                                6791,
                                6799
                              ],
                              "loc": {
                                "start": {
                                  "line": 153,
                                  "column": 21
                                },
                                "end": {
                                  "line": 153,
                                  "column": 29
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "name": "callbackFunc",
                                "range": [
                                  6800,
                                  6812
                                ],
                                "loc": {
                                  "start": {
                                    "line": 153,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 153,
                                    "column": 42
                                  }
                                }
                              }
                            ],
                            "range": [
                              6791,
                              6813
                            ],
                            "loc": {
                              "start": {
                                "line": 153,
                                "column": 21
                              },
                              "end": {
                                "line": 153,
                                "column": 43
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "apply",
                            "range": [
                              6814,
                              6819
                            ],
                            "loc": {
                              "start": {
                                "line": 153,
                                "column": 44
                              },
                              "end": {
                                "line": 153,
                                "column": 49
                              }
                            }
                          },
                          "range": [
                            6791,
                            6819
                          ],
                          "loc": {
                            "start": {
                              "line": 153,
                              "column": 21
                            },
                            "end": {
                              "line": 153,
                              "column": 49
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "ThisExpression",
                            "range": [
                              6820,
                              6824
                            ],
                            "loc": {
                              "start": {
                                "line": 153,
                                "column": 50
                              },
                              "end": {
                                "line": 153,
                                "column": 54
                              }
                            }
                          },
                          {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "args",
                                "range": [
                                  6826,
                                  6830
                                ],
                                "loc": {
                                  "start": {
                                    "line": 153,
                                    "column": 56
                                  },
                                  "end": {
                                    "line": 153,
                                    "column": 60
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "concat",
                                "range": [
                                  6831,
                                  6837
                                ],
                                "loc": {
                                  "start": {
                                    "line": 153,
                                    "column": 61
                                  },
                                  "end": {
                                    "line": 153,
                                    "column": 67
                                  }
                                }
                              },
                              "range": [
                                6826,
                                6837
                              ],
                              "loc": {
                                "start": {
                                  "line": 153,
                                  "column": 56
                                },
                                "end": {
                                  "line": 153,
                                  "column": 67
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "name": "handler",
                                "range": [
                                  6838,
                                  6845
                                ],
                                "loc": {
                                  "start": {
                                    "line": 153,
                                    "column": 68
                                  },
                                  "end": {
                                    "line": 153,
                                    "column": 75
                                  }
                                }
                              }
                            ],
                            "range": [
                              6826,
                              6846
                            ],
                            "loc": {
                              "start": {
                                "line": 153,
                                "column": 56
                              },
                              "end": {
                                "line": 153,
                                "column": 76
                              }
                            }
                          }
                        ],
                        "range": [
                          6791,
                          6847
                        ],
                        "loc": {
                          "start": {
                            "line": 153,
                            "column": 21
                          },
                          "end": {
                            "line": 153,
                            "column": 77
                          }
                        }
                      },
                      "range": [
                        6782,
                        6847
                      ],
                      "loc": {
                        "start": {
                          "line": 153,
                          "column": 12
                        },
                        "end": {
                          "line": 153,
                          "column": 77
                        }
                      }
                    }
                  ],
                  "kind": "var",
                  "range": [
                    6778,
                    6848
                  ],
                  "loc": {
                    "start": {
                      "line": 153,
                      "column": 8
                    },
                    "end": {
                      "line": 153,
                      "column": 78
                    }
                  }
                },
                {
                  "type": "IfStatement",
                  "test": {
                    "type": "BinaryExpression",
                    "operator": "===",
                    "left": {
                      "type": "Identifier",
                      "name": "result",
                      "range": [
                        6861,
                        6867
                      ],
                      "loc": {
                        "start": {
                          "line": 154,
                          "column": 12
                        },
                        "end": {
                          "line": 154,
                          "column": 18
                        }
                      }
                    },
                    "right": {
                      "type": "Identifier",
                      "name": "errorObject",
                      "range": [
                        6872,
                        6883
                      ],
                      "loc": {
                        "start": {
                          "line": 154,
                          "column": 23
                        },
                        "end": {
                          "line": 154,
                          "column": 34
                        }
                      }
                    },
                    "range": [
                      6861,
                      6883
                    ],
                    "loc": {
                      "start": {
                        "line": 154,
                        "column": 12
                      },
                      "end": {
                        "line": 154,
                        "column": 34
                      }
                    }
                  },
                  "consequent": {
                    "type": "BlockStatement",
                    "body": [
                      {
                        "type": "ExpressionStatement",
                        "expression": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "subject",
                              "range": [
                                6899,
                                6906
                              ],
                              "loc": {
                                "start": {
                                  "line": 155,
                                  "column": 12
                                },
                                "end": {
                                  "line": 155,
                                  "column": 19
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "error",
                              "range": [
                                6907,
                                6912
                              ],
                              "loc": {
                                "start": {
                                  "line": 155,
                                  "column": 20
                                },
                                "end": {
                                  "line": 155,
                                  "column": 25
                                }
                              }
                            },
                            "range": [
                              6899,
                              6912
                            ],
                            "loc": {
                              "start": {
                                "line": 155,
                                "column": 12
                              },
                              "end": {
                                "line": 155,
                                "column": 25
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "errorObject",
                                "range": [
                                  6913,
                                  6924
                                ],
                                "loc": {
                                  "start": {
                                    "line": 155,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 155,
                                    "column": 37
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "e",
                                "range": [
                                  6925,
                                  6926
                                ],
                                "loc": {
                                  "start": {
                                    "line": 155,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 155,
                                    "column": 39
                                  }
                                }
                              },
                              "range": [
                                6913,
                                6926
                              ],
                              "loc": {
                                "start": {
                                  "line": 155,
                                  "column": 26
                                },
                                "end": {
                                  "line": 155,
                                  "column": 39
                                }
                              }
                            }
                          ],
                          "range": [
                            6899,
                            6927
                          ],
                          "loc": {
                            "start": {
                              "line": 155,
                              "column": 12
                            },
                            "end": {
                              "line": 155,
                              "column": 40
                            }
                          }
                        },
                        "range": [
                          6899,
                          6928
                        ],
                        "loc": {
                          "start": {
                            "line": 155,
                            "column": 12
                          },
                          "end": {
                            "line": 155,
                            "column": 41
                          }
                        }
                      }
                    ],
                    "range": [
                      6885,
                      6938
                    ],
                    "loc": {
                      "start": {
                        "line": 154,
                        "column": 36
                      },
                      "end": {
                        "line": 156,
                        "column": 9
                      }
                    }
                  },
                  "alternate": null,
                  "range": [
                    6857,
                    6938
                  ],
                  "loc": {
                    "start": {
                      "line": 154,
                      "column": 8
                    },
                    "end": {
                      "line": 156,
                      "column": 9
                    }
                  }
                }
              ],
              "range": [
                5521,
                6944
              ],
              "loc": {
                "start": {
                  "line": 124,
                  "column": 18
                },
                "end": {
                  "line": 157,
                  "column": 5
                }
              }
            },
            "alternate": null,
            "range": [
              5507,
              6944
            ],
            "loc": {
              "start": {
                "line": 124,
                "column": 4
              },
              "end": {
                "line": 157,
                "column": 5
              }
            }
          },
          {
            "type": "ExpressionStatement",
            "expression": {
              "type": "CallExpression",
              "callee": {
                "type": "MemberExpression",
                "computed": false,
                "object": {
                  "type": "Identifier",
                  "name": "self",
                  "range": [
                    6949,
                    6953
                  ],
                  "loc": {
                    "start": {
                      "line": 158,
                      "column": 4
                    },
                    "end": {
                      "line": 158,
                      "column": 8
                    }
                  }
                },
                "property": {
                  "type": "Identifier",
                  "name": "add",
                  "range": [
                    6954,
                    6957
                  ],
                  "loc": {
                    "start": {
                      "line": 158,
                      "column": 9
                    },
                    "end": {
                      "line": 158,
                      "column": 12
                    }
                  }
                },
                "range": [
                  6949,
                  6957
                ],
                "loc": {
                  "start": {
                    "line": 158,
                    "column": 4
                  },
                  "end": {
                    "line": 158,
                    "column": 12
                  }
                }
              },
              "arguments": [
                {
                  "type": "CallExpression",
                  "callee": {
                    "type": "MemberExpression",
                    "computed": false,
                    "object": {
                      "type": "Identifier",
                      "name": "subject",
                      "range": [
                        6958,
                        6965
                      ],
                      "loc": {
                        "start": {
                          "line": 158,
                          "column": 13
                        },
                        "end": {
                          "line": 158,
                          "column": 20
                        }
                      }
                    },
                    "property": {
                      "type": "Identifier",
                      "name": "subscribe",
                      "range": [
                        6966,
                        6975
                      ],
                      "loc": {
                        "start": {
                          "line": 158,
                          "column": 21
                        },
                        "end": {
                          "line": 158,
                          "column": 30
                        }
                      }
                    },
                    "range": [
                      6958,
                      6975
                    ],
                    "loc": {
                      "start": {
                        "line": 158,
                        "column": 13
                      },
                      "end": {
                        "line": 158,
                        "column": 30
                      }
                    }
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "name": "subscriber",
                      "range": [
                        6976,
                        6986
                      ],
                      "loc": {
                        "start": {
                          "line": 158,
                          "column": 31
                        },
                        "end": {
                          "line": 158,
                          "column": 41
                        }
                      }
                    }
                  ],
                  "range": [
                    6958,
                    6987
                  ],
                  "loc": {
                    "start": {
                      "line": 158,
                      "column": 13
                    },
                    "end": {
                      "line": 158,
                      "column": 42
                    }
                  }
                }
              ],
              "range": [
                6949,
                6988
              ],
              "loc": {
                "start": {
                  "line": 158,
                  "column": 4
                },
                "end": {
                  "line": 158,
                  "column": 43
                }
              }
            },
            "range": [
              6949,
              6989
            ],
            "loc": {
              "start": {
                "line": 158,
                "column": 4
              },
              "end": {
                "line": 158,
                "column": 44
              }
            }
          }
        ],
        "range": [
          5219,
          6991
        ],
        "loc": {
          "start": {
            "line": 118,
            "column": 25
          },
          "end": {
            "line": 159,
            "column": 1
          }
        }
      },
      "generator": false,
      "expression": false,
      "range": [
        5194,
        6991
      ],
      "loc": {
        "start": {
          "line": 118,
          "column": 0
        },
        "end": {
          "line": 159,
          "column": 1
        }
      }
    },
    {
      "type": "FunctionDeclaration",
      "id": {
        "type": "Identifier",
        "name": "dispatchNext",
        "range": [
          7001,
          7013
        ],
        "loc": {
          "start": {
            "line": 160,
            "column": 9
          },
          "end": {
            "line": 160,
            "column": 21
          }
        }
      },
      "params": [
        {
          "type": "Identifier",
          "name": "arg",
          "range": [
            7014,
            7017
          ],
          "loc": {
            "start": {
              "line": 160,
              "column": 22
            },
            "end": {
              "line": 160,
              "column": 25
            }
          }
        }
      ],
      "body": {
        "type": "BlockStatement",
        "body": [
          {
            "type": "VariableDeclaration",
            "declarations": [
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "value",
                  "range": [
                    7029,
                    7034
                  ],
                  "loc": {
                    "start": {
                      "line": 161,
                      "column": 8
                    },
                    "end": {
                      "line": 161,
                      "column": 13
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "arg",
                    "range": [
                      7037,
                      7040
                    ],
                    "loc": {
                      "start": {
                        "line": 161,
                        "column": 16
                      },
                      "end": {
                        "line": 161,
                        "column": 19
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "value",
                    "range": [
                      7041,
                      7046
                    ],
                    "loc": {
                      "start": {
                        "line": 161,
                        "column": 20
                      },
                      "end": {
                        "line": 161,
                        "column": 25
                      }
                    }
                  },
                  "range": [
                    7037,
                    7046
                  ],
                  "loc": {
                    "start": {
                      "line": 161,
                      "column": 16
                    },
                    "end": {
                      "line": 161,
                      "column": 25
                    }
                  }
                },
                "range": [
                  7029,
                  7046
                ],
                "loc": {
                  "start": {
                    "line": 161,
                    "column": 8
                  },
                  "end": {
                    "line": 161,
                    "column": 25
                  }
                }
              },
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "subject",
                  "range": [
                    7048,
                    7055
                  ],
                  "loc": {
                    "start": {
                      "line": 161,
                      "column": 27
                    },
                    "end": {
                      "line": 161,
                      "column": 34
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "arg",
                    "range": [
                      7058,
                      7061
                    ],
                    "loc": {
                      "start": {
                        "line": 161,
                        "column": 37
                      },
                      "end": {
                        "line": 161,
                        "column": 40
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "subject",
                    "range": [
                      7062,
                      7069
                    ],
                    "loc": {
                      "start": {
                        "line": 161,
                        "column": 41
                      },
                      "end": {
                        "line": 161,
                        "column": 48
                      }
                    }
                  },
                  "range": [
                    7058,
                    7069
                  ],
                  "loc": {
                    "start": {
                      "line": 161,
                      "column": 37
                    },
                    "end": {
                      "line": 161,
                      "column": 48
                    }
                  }
                },
                "range": [
                  7048,
                  7069
                ],
                "loc": {
                  "start": {
                    "line": 161,
                    "column": 27
                  },
                  "end": {
                    "line": 161,
                    "column": 48
                  }
                }
              }
            ],
            "kind": "var",
            "range": [
              7025,
              7070
            ],
            "loc": {
              "start": {
                "line": 161,
                "column": 4
              },
              "end": {
                "line": 161,
                "column": 49
              }
            }
          },
          {
            "type": "ExpressionStatement",
            "expression": {
              "type": "CallExpression",
              "callee": {
                "type": "MemberExpression",
                "computed": false,
                "object": {
                  "type": "Identifier",
                  "name": "subject",
                  "range": [
                    7075,
                    7082
                  ],
                  "loc": {
                    "start": {
                      "line": 162,
                      "column": 4
                    },
                    "end": {
                      "line": 162,
                      "column": 11
                    }
                  }
                },
                "property": {
                  "type": "Identifier",
                  "name": "next",
                  "range": [
                    7083,
                    7087
                  ],
                  "loc": {
                    "start": {
                      "line": 162,
                      "column": 12
                    },
                    "end": {
                      "line": 162,
                      "column": 16
                    }
                  }
                },
                "range": [
                  7075,
                  7087
                ],
                "loc": {
                  "start": {
                    "line": 162,
                    "column": 4
                  },
                  "end": {
                    "line": 162,
                    "column": 16
                  }
                }
              },
              "arguments": [
                {
                  "type": "Identifier",
                  "name": "value",
                  "range": [
                    7088,
                    7093
                  ],
                  "loc": {
                    "start": {
                      "line": 162,
                      "column": 17
                    },
                    "end": {
                      "line": 162,
                      "column": 22
                    }
                  }
                }
              ],
              "range": [
                7075,
                7094
              ],
              "loc": {
                "start": {
                  "line": 162,
                  "column": 4
                },
                "end": {
                  "line": 162,
                  "column": 23
                }
              }
            },
            "range": [
              7075,
              7095
            ],
            "loc": {
              "start": {
                "line": 162,
                "column": 4
              },
              "end": {
                "line": 162,
                "column": 24
              }
            }
          },
          {
            "type": "ExpressionStatement",
            "expression": {
              "type": "CallExpression",
              "callee": {
                "type": "MemberExpression",
                "computed": false,
                "object": {
                  "type": "Identifier",
                  "name": "subject",
                  "range": [
                    7100,
                    7107
                  ],
                  "loc": {
                    "start": {
                      "line": 163,
                      "column": 4
                    },
                    "end": {
                      "line": 163,
                      "column": 11
                    }
                  }
                },
                "property": {
                  "type": "Identifier",
                  "name": "complete",
                  "range": [
                    7108,
                    7116
                  ],
                  "loc": {
                    "start": {
                      "line": 163,
                      "column": 12
                    },
                    "end": {
                      "line": 163,
                      "column": 20
                    }
                  }
                },
                "range": [
                  7100,
                  7116
                ],
                "loc": {
                  "start": {
                    "line": 163,
                    "column": 4
                  },
                  "end": {
                    "line": 163,
                    "column": 20
                  }
                }
              },
              "arguments": [],
              "range": [
                7100,
                7118
              ],
              "loc": {
                "start": {
                  "line": 163,
                  "column": 4
                },
                "end": {
                  "line": 163,
                  "column": 22
                }
              }
            },
            "range": [
              7100,
              7119
            ],
            "loc": {
              "start": {
                "line": 163,
                "column": 4
              },
              "end": {
                "line": 163,
                "column": 23
              }
            }
          }
        ],
        "range": [
          7019,
          7121
        ],
        "loc": {
          "start": {
            "line": 160,
            "column": 27
          },
          "end": {
            "line": 164,
            "column": 1
          }
        }
      },
      "generator": false,
      "expression": false,
      "range": [
        6992,
        7121
      ],
      "loc": {
        "start": {
          "line": 160,
          "column": 0
        },
        "end": {
          "line": 164,
          "column": 1
        }
      }
    },
    {
      "type": "FunctionDeclaration",
      "id": {
        "type": "Identifier",
        "name": "dispatchError",
        "range": [
          7131,
          7144
        ],
        "loc": {
          "start": {
            "line": 165,
            "column": 9
          },
          "end": {
            "line": 165,
            "column": 22
          }
        }
      },
      "params": [
        {
          "type": "Identifier",
          "name": "arg",
          "range": [
            7145,
            7148
          ],
          "loc": {
            "start": {
              "line": 165,
              "column": 23
            },
            "end": {
              "line": 165,
              "column": 26
            }
          }
        }
      ],
      "body": {
        "type": "BlockStatement",
        "body": [
          {
            "type": "VariableDeclaration",
            "declarations": [
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "err",
                  "range": [
                    7160,
                    7163
                  ],
                  "loc": {
                    "start": {
                      "line": 166,
                      "column": 8
                    },
                    "end": {
                      "line": 166,
                      "column": 11
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "arg",
                    "range": [
                      7166,
                      7169
                    ],
                    "loc": {
                      "start": {
                        "line": 166,
                        "column": 14
                      },
                      "end": {
                        "line": 166,
                        "column": 17
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "err",
                    "range": [
                      7170,
                      7173
                    ],
                    "loc": {
                      "start": {
                        "line": 166,
                        "column": 18
                      },
                      "end": {
                        "line": 166,
                        "column": 21
                      }
                    }
                  },
                  "range": [
                    7166,
                    7173
                  ],
                  "loc": {
                    "start": {
                      "line": 166,
                      "column": 14
                    },
                    "end": {
                      "line": 166,
                      "column": 21
                    }
                  }
                },
                "range": [
                  7160,
                  7173
                ],
                "loc": {
                  "start": {
                    "line": 166,
                    "column": 8
                  },
                  "end": {
                    "line": 166,
                    "column": 21
                  }
                }
              },
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "subject",
                  "range": [
                    7175,
                    7182
                  ],
                  "loc": {
                    "start": {
                      "line": 166,
                      "column": 23
                    },
                    "end": {
                      "line": 166,
                      "column": 30
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "arg",
                    "range": [
                      7185,
                      7188
                    ],
                    "loc": {
                      "start": {
                        "line": 166,
                        "column": 33
                      },
                      "end": {
                        "line": 166,
                        "column": 36
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "subject",
                    "range": [
                      7189,
                      7196
                    ],
                    "loc": {
                      "start": {
                        "line": 166,
                        "column": 37
                      },
                      "end": {
                        "line": 166,
                        "column": 44
                      }
                    }
                  },
                  "range": [
                    7185,
                    7196
                  ],
                  "loc": {
                    "start": {
                      "line": 166,
                      "column": 33
                    },
                    "end": {
                      "line": 166,
                      "column": 44
                    }
                  }
                },
                "range": [
                  7175,
                  7196
                ],
                "loc": {
                  "start": {
                    "line": 166,
                    "column": 23
                  },
                  "end": {
                    "line": 166,
                    "column": 44
                  }
                }
              }
            ],
            "kind": "var",
            "range": [
              7156,
              7197
            ],
            "loc": {
              "start": {
                "line": 166,
                "column": 4
              },
              "end": {
                "line": 166,
                "column": 45
              }
            }
          },
          {
            "type": "ExpressionStatement",
            "expression": {
              "type": "CallExpression",
              "callee": {
                "type": "MemberExpression",
                "computed": false,
                "object": {
                  "type": "Identifier",
                  "name": "subject",
                  "range": [
                    7202,
                    7209
                  ],
                  "loc": {
                    "start": {
                      "line": 167,
                      "column": 4
                    },
                    "end": {
                      "line": 167,
                      "column": 11
                    }
                  }
                },
                "property": {
                  "type": "Identifier",
                  "name": "error",
                  "range": [
                    7210,
                    7215
                  ],
                  "loc": {
                    "start": {
                      "line": 167,
                      "column": 12
                    },
                    "end": {
                      "line": 167,
                      "column": 17
                    }
                  }
                },
                "range": [
                  7202,
                  7215
                ],
                "loc": {
                  "start": {
                    "line": 167,
                    "column": 4
                  },
                  "end": {
                    "line": 167,
                    "column": 17
                  }
                }
              },
              "arguments": [
                {
                  "type": "Identifier",
                  "name": "err",
                  "range": [
                    7216,
                    7219
                  ],
                  "loc": {
                    "start": {
                      "line": 167,
                      "column": 18
                    },
                    "end": {
                      "line": 167,
                      "column": 21
                    }
                  }
                }
              ],
              "range": [
                7202,
                7220
              ],
              "loc": {
                "start": {
                  "line": 167,
                  "column": 4
                },
                "end": {
                  "line": 167,
                  "column": 22
                }
              }
            },
            "range": [
              7202,
              7221
            ],
            "loc": {
              "start": {
                "line": 167,
                "column": 4
              },
              "end": {
                "line": 167,
                "column": 23
              }
            }
          }
        ],
        "range": [
          7150,
          7223
        ],
        "loc": {
          "start": {
            "line": 165,
            "column": 28
          },
          "end": {
            "line": 168,
            "column": 1
          }
        }
      },
      "generator": false,
      "expression": false,
      "range": [
        7122,
        7223
      ],
      "loc": {
        "start": {
          "line": 165,
          "column": 0
        },
        "end": {
          "line": 168,
          "column": 1
        }
      },
      "trailingComments": [
        {
          "type": "Line",
          "value": "# sourceMappingURL=BoundNodeCallbackObservable.js.map",
          "range": [
            7224,
            7279
          ],
          "loc": {
            "start": {
              "line": 169,
              "column": 0
            },
            "end": {
              "line": 169,
              "column": 55
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    7223
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 168,
      "column": 1
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
      "range": [
        188,
        282
      ],
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 9,
          "column": 3
        }
      }
    },
    {
      "type": "Block",
      "value": " tslint:enable:max-line-length ",
      "range": [
        656,
        691
      ],
      "loc": {
        "start": {
          "line": 19,
          "column": 4
        },
        "end": {
          "line": 19,
          "column": 39
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n     * Converts a Node.js-style callback API to a function that returns an\n     * Observable.\n     *\n     * <span class=\"informal\">It's just like {@link bindCallback}, but the\n     * callback is expected to be of type `callback(error, result)`.</span>\n     *\n     * `bindNodeCallback` is not an operator because its input and output are not\n     * Observables. The input is a function `func` with some parameters, but the\n     * last parameter must be a callback function that `func` calls when it is\n     * done. The callback function is expected to follow Node.js conventions,\n     * where the first argument to the callback is an error, while remaining\n     * arguments are the callback result. The output of `bindNodeCallback` is a\n     * function that takes the same parameters as `func`, except the last one (the\n     * callback). When the output function is called with arguments, it will\n     * return an Observable where the results will be delivered to.\n     *\n     * @example <caption>Read a file from the filesystem and get the data as an Observable</caption>\n     * import * as fs from 'fs';\n     * var readFileAsObservable = Rx.Observable.bindNodeCallback(fs.readFile);\n     * var result = readFileAsObservable('./roadNames.txt', 'utf8');\n     * result.subscribe(x => console.log(x), e => console.error(e));\n     *\n     * @see {@link bindCallback}\n     * @see {@link from}\n     * @see {@link fromPromise}\n     *\n     * @param {function} func Function with a callback as the last parameter.\n     * @param {function} [selector] A function which takes the arguments from the\n     * callback and maps those a value to emit on the output Observable.\n     * @param {Scheduler} [scheduler] The scheduler on which to schedule the\n     * callbacks.\n     * @return {function(...params: *): Observable} A function which returns the\n     * Observable that delivers the same values the Node.js callback would\n     * deliver.\n     * @static true\n     * @name bindNodeCallback\n     * @owner Observable\n     ",
      "range": [
        696,
        2708
      ],
      "loc": {
        "start": {
          "line": 20,
          "column": 4
        },
        "end": {
          "line": 58,
          "column": 7
        }
      }
    },
    {
      "type": "Line",
      "value": " use named function instance to avoid closure.",
      "range": [
        4649,
        4697
      ],
      "loc": {
        "start": {
          "line": 103,
          "column": 16
        },
        "end": {
          "line": 103,
          "column": 64
        }
      }
    },
    {
      "type": "Line",
      "value": " XXX: cast to `any` to access to the private field in `source`.",
      "range": [
        5308,
        5373
      ],
      "loc": {
        "start": {
          "line": 121,
          "column": 4
        },
        "end": {
          "line": 121,
          "column": 69
        }
      }
    },
    {
      "type": "Line",
      "value": " use named function to pass values in without closure",
      "range": [
        6681,
        6736
      ],
      "loc": {
        "start": {
          "line": 151,
          "column": 8
        },
        "end": {
          "line": 151,
          "column": 63
        }
      }
    },
    {
      "type": "Line",
      "value": "# sourceMappingURL=BoundNodeCallbackObservable.js.map",
      "range": [
        7224,
        7279
      ],
      "loc": {
        "start": {
          "line": 169,
          "column": 0
        },
        "end": {
          "line": 169,
          "column": 55
        }
      }
    }
  ]
}