{
  "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": "Subscription",
            "range": [
              53,
              65
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 21
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "Subscription",
            "range": [
              53,
              65
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 21
              }
            }
          },
          "range": [
            53,
            65
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 9
            },
            "end": {
              "line": 2,
              "column": 21
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../Subscription",
        "raw": "'../Subscription'",
        "range": [
          73,
          90
        ],
        "loc": {
          "start": {
            "line": 2,
            "column": 29
          },
          "end": {
            "line": 2,
            "column": 46
          }
        }
      },
      "range": [
        44,
        91
      ],
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 47
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
          "range": [
            92,
            186
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 0
            },
            "end": {
              "line": 7,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "VariableDeclaration",
        "declarations": [
          {
            "type": "VariableDeclarator",
            "id": {
              "type": "Identifier",
              "name": "FromEventPatternObservable",
              "range": [
                198,
                224
              ],
              "loc": {
                "start": {
                  "line": 8,
                  "column": 11
                },
                "end": {
                  "line": 8,
                  "column": 37
                }
              }
            },
            "init": {
              "type": "CallExpression",
              "callee": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "_super",
                    "range": [
                      238,
                      244
                    ],
                    "loc": {
                      "start": {
                        "line": 8,
                        "column": 51
                      },
                      "end": {
                        "line": 8,
                        "column": 57
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "Identifier",
                          "name": "__extends",
                          "range": [
                            252,
                            261
                          ],
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 4
                            },
                            "end": {
                              "line": 9,
                              "column": 13
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "FromEventPatternObservable",
                            "range": [
                              262,
                              288
                            ],
                            "loc": {
                              "start": {
                                "line": 9,
                                "column": 14
                              },
                              "end": {
                                "line": 9,
                                "column": 40
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "_super",
                            "range": [
                              290,
                              296
                            ],
                            "loc": {
                              "start": {
                                "line": 9,
                                "column": 42
                              },
                              "end": {
                                "line": 9,
                                "column": 48
                              }
                            }
                          }
                        ],
                        "range": [
                          252,
                          297
                        ],
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 4
                          },
                          "end": {
                            "line": 9,
                            "column": 49
                          }
                        }
                      },
                      "range": [
                        252,
                        298
                      ],
                      "loc": {
                        "start": {
                          "line": 9,
                          "column": 4
                        },
                        "end": {
                          "line": 9,
                          "column": 50
                        }
                      }
                    },
                    {
                      "type": "FunctionDeclaration",
                      "id": {
                        "type": "Identifier",
                        "name": "FromEventPatternObservable",
                        "range": [
                          312,
                          338
                        ],
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 13
                          },
                          "end": {
                            "line": 10,
                            "column": 39
                          }
                        }
                      },
                      "params": [
                        {
                          "type": "Identifier",
                          "name": "addHandler",
                          "range": [
                            339,
                            349
                          ],
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 40
                            },
                            "end": {
                              "line": 10,
                              "column": 50
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "removeHandler",
                          "range": [
                            351,
                            364
                          ],
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 52
                            },
                            "end": {
                              "line": 10,
                              "column": 65
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "selector",
                          "range": [
                            366,
                            374
                          ],
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 67
                            },
                            "end": {
                              "line": 10,
                              "column": 75
                            }
                          }
                        }
                      ],
                      "body": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "CallExpression",
                              "callee": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "Identifier",
                                  "name": "_super",
                                  "range": [
                                    386,
                                    392
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 14
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "call",
                                  "range": [
                                    393,
                                    397
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 19
                                    }
                                  }
                                },
                                "range": [
                                  386,
                                  397
                                ],
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 19
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "ThisExpression",
                                  "range": [
                                    398,
                                    402
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 24
                                    }
                                  }
                                }
                              ],
                              "range": [
                                386,
                                403
                              ],
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 8
                                },
                                "end": {
                                  "line": 11,
                                  "column": 25
                                }
                              }
                            },
                            "range": [
                              386,
                              404
                            ],
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 8
                              },
                              "end": {
                                "line": 11,
                                "column": 26
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    413,
                                    417
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "addHandler",
                                  "range": [
                                    418,
                                    428
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 23
                                    }
                                  }
                                },
                                "range": [
                                  413,
                                  428
                                ],
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 23
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "addHandler",
                                "range": [
                                  431,
                                  441
                                ],
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 36
                                  }
                                }
                              },
                              "range": [
                                413,
                                441
                              ],
                              "loc": {
                                "start": {
                                  "line": 12,
                                  "column": 8
                                },
                                "end": {
                                  "line": 12,
                                  "column": 36
                                }
                              }
                            },
                            "range": [
                              413,
                              442
                            ],
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 8
                              },
                              "end": {
                                "line": 12,
                                "column": 37
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    451,
                                    455
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 13,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 13,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "removeHandler",
                                  "range": [
                                    456,
                                    469
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 13,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 13,
                                      "column": 26
                                    }
                                  }
                                },
                                "range": [
                                  451,
                                  469
                                ],
                                "loc": {
                                  "start": {
                                    "line": 13,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 13,
                                    "column": 26
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "removeHandler",
                                "range": [
                                  472,
                                  485
                                ],
                                "loc": {
                                  "start": {
                                    "line": 13,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 13,
                                    "column": 42
                                  }
                                }
                              },
                              "range": [
                                451,
                                485
                              ],
                              "loc": {
                                "start": {
                                  "line": 13,
                                  "column": 8
                                },
                                "end": {
                                  "line": 13,
                                  "column": 42
                                }
                              }
                            },
                            "range": [
                              451,
                              486
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 8
                              },
                              "end": {
                                "line": 13,
                                "column": 43
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    495,
                                    499
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 14,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 14,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "selector",
                                  "range": [
                                    500,
                                    508
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 14,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 14,
                                      "column": 21
                                    }
                                  }
                                },
                                "range": [
                                  495,
                                  508
                                ],
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 21
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "selector",
                                "range": [
                                  511,
                                  519
                                ],
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 32
                                  }
                                }
                              },
                              "range": [
                                495,
                                519
                              ],
                              "loc": {
                                "start": {
                                  "line": 14,
                                  "column": 8
                                },
                                "end": {
                                  "line": 14,
                                  "column": 32
                                }
                              }
                            },
                            "range": [
                              495,
                              520
                            ],
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 8
                              },
                              "end": {
                                "line": 14,
                                "column": 33
                              }
                            }
                          }
                        ],
                        "range": [
                          376,
                          526
                        ],
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 77
                          },
                          "end": {
                            "line": 15,
                            "column": 5
                          }
                        }
                      },
                      "generator": false,
                      "expression": false,
                      "range": [
                        303,
                        526
                      ],
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 4
                        },
                        "end": {
                          "line": 15,
                          "column": 5
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "Block",
                          "value": "*\n     * Creates an Observable from an API based on addHandler/removeHandler\n     * functions.\n     *\n     * <span class=\"informal\">Converts any addHandler/removeHandler API to an\n     * Observable.</span>\n     *\n     * <img src=\"./img/fromEventPattern.png\" width=\"100%\">\n     *\n     * Creates an Observable by using the `addHandler` and `removeHandler`\n     * functions to add and remove the handlers, with an optional selector\n     * function to project the event arguments to a result. The `addHandler` is\n     * called when the output Observable is subscribed, and `removeHandler` is\n     * called when the Subscription is unsubscribed.\n     *\n     * @example <caption>Emits clicks happening on the DOM document</caption>\n     * function addClickHandler(handler) {\n     *   document.addEventListener('click', handler);\n     * }\n     *\n     * function removeClickHandler(handler) {\n     *   document.removeEventListener('click', handler);\n     * }\n     *\n     * var clicks = Rx.Observable.fromEventPattern(\n     *   addClickHandler,\n     *   removeClickHandler\n     * );\n     * clicks.subscribe(x => console.log(x));\n     *\n     * @see {@link from}\n     * @see {@link fromEvent}\n     *\n     * @param {function(handler: Function): any} addHandler A function that takes\n     * a `handler` function as argument and attaches it somehow to the actual\n     * source of events.\n     * @param {function(handler: Function): void} removeHandler A function that\n     * takes a `handler` function as argument and removes it in case it was\n     * previously attached using `addHandler`.\n     * @param {function(...args: any): T} [selector] An optional function to\n     * post-process results. It takes the arguments from the event handler and\n     * should return a single value.\n     * @return {Observable<T>}\n     * @static true\n     * @name fromEventPattern\n     * @owner Observable\n     ",
                          "range": [
                            531,
                            2416
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 4
                            },
                            "end": {
                              "line": 62,
                              "column": 7
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "FromEventPatternObservable",
                            "range": [
                              2421,
                              2447
                            ],
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 4
                              },
                              "end": {
                                "line": 63,
                                "column": 30
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "create",
                            "range": [
                              2448,
                              2454
                            ],
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 31
                              },
                              "end": {
                                "line": 63,
                                "column": 37
                              }
                            }
                          },
                          "range": [
                            2421,
                            2454
                          ],
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 4
                            },
                            "end": {
                              "line": 63,
                              "column": 37
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "addHandler",
                              "range": [
                                2467,
                                2477
                              ],
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 50
                                },
                                "end": {
                                  "line": 63,
                                  "column": 60
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "removeHandler",
                              "range": [
                                2479,
                                2492
                              ],
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 62
                                },
                                "end": {
                                  "line": 63,
                                  "column": 75
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "selector",
                              "range": [
                                2494,
                                2502
                              ],
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 77
                                },
                                "end": {
                                  "line": 63,
                                  "column": 85
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "ReturnStatement",
                                "argument": {
                                  "type": "NewExpression",
                                  "callee": {
                                    "type": "Identifier",
                                    "name": "FromEventPatternObservable",
                                    "range": [
                                      2525,
                                      2551
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 64,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 64,
                                        "column": 45
                                      }
                                    }
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "name": "addHandler",
                                      "range": [
                                        2552,
                                        2562
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 56
                                        }
                                      }
                                    },
                                    {
                                      "type": "Identifier",
                                      "name": "removeHandler",
                                      "range": [
                                        2564,
                                        2577
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 58
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 71
                                        }
                                      }
                                    },
                                    {
                                      "type": "Identifier",
                                      "name": "selector",
                                      "range": [
                                        2579,
                                        2587
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 64,
                                          "column": 73
                                        },
                                        "end": {
                                          "line": 64,
                                          "column": 81
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2521,
                                    2588
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 64,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 64,
                                      "column": 82
                                    }
                                  }
                                },
                                "range": [
                                  2514,
                                  2589
                                ],
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 83
                                  }
                                }
                              }
                            ],
                            "range": [
                              2504,
                              2595
                            ],
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 87
                              },
                              "end": {
                                "line": 65,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            2457,
                            2595
                          ],
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 40
                            },
                            "end": {
                              "line": 65,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          2421,
                          2595
                        ],
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 4
                          },
                          "end": {
                            "line": 65,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2421,
                        2596
                      ],
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 4
                        },
                        "end": {
                          "line": 65,
                          "column": 6
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Block",
                          "value": "*\n     * Creates an Observable from an API based on addHandler/removeHandler\n     * functions.\n     *\n     * <span class=\"informal\">Converts any addHandler/removeHandler API to an\n     * Observable.</span>\n     *\n     * <img src=\"./img/fromEventPattern.png\" width=\"100%\">\n     *\n     * Creates an Observable by using the `addHandler` and `removeHandler`\n     * functions to add and remove the handlers, with an optional selector\n     * function to project the event arguments to a result. The `addHandler` is\n     * called when the output Observable is subscribed, and `removeHandler` is\n     * called when the Subscription is unsubscribed.\n     *\n     * @example <caption>Emits clicks happening on the DOM document</caption>\n     * function addClickHandler(handler) {\n     *   document.addEventListener('click', handler);\n     * }\n     *\n     * function removeClickHandler(handler) {\n     *   document.removeEventListener('click', handler);\n     * }\n     *\n     * var clicks = Rx.Observable.fromEventPattern(\n     *   addClickHandler,\n     *   removeClickHandler\n     * );\n     * clicks.subscribe(x => console.log(x));\n     *\n     * @see {@link from}\n     * @see {@link fromEvent}\n     *\n     * @param {function(handler: Function): any} addHandler A function that takes\n     * a `handler` function as argument and attaches it somehow to the actual\n     * source of events.\n     * @param {function(handler: Function): void} removeHandler A function that\n     * takes a `handler` function as argument and removes it in case it was\n     * previously attached using `addHandler`.\n     * @param {function(...args: any): T} [selector] An optional function to\n     * post-process results. It takes the arguments from the event handler and\n     * should return a single value.\n     * @return {Observable<T>}\n     * @static true\n     * @name fromEventPattern\n     * @owner Observable\n     ",
                          "range": [
                            531,
                            2416
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 4
                            },
                            "end": {
                              "line": 62,
                              "column": 7
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "FromEventPatternObservable",
                              "range": [
                                2601,
                                2627
                              ],
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 4
                                },
                                "end": {
                                  "line": 66,
                                  "column": 30
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                2628,
                                2637
                              ],
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 31
                                },
                                "end": {
                                  "line": 66,
                                  "column": 40
                                }
                              }
                            },
                            "range": [
                              2601,
                              2637
                            ],
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 4
                              },
                              "end": {
                                "line": 66,
                                "column": 40
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_subscribe",
                            "range": [
                              2638,
                              2648
                            ],
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 41
                              },
                              "end": {
                                "line": 66,
                                "column": 51
                              }
                            }
                          },
                          "range": [
                            2601,
                            2648
                          ],
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 4
                            },
                            "end": {
                              "line": 66,
                              "column": 51
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "subscriber",
                              "range": [
                                2661,
                                2671
                              ],
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 64
                                },
                                "end": {
                                  "line": 66,
                                  "column": 74
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "_this",
                                      "range": [
                                        2687,
                                        2692
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 17
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2695,
                                        2699
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "range": [
                                      2687,
                                      2699
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 24
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  2683,
                                  2700
                                ],
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 25
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "removeHandler",
                                      "range": [
                                        2713,
                                        2726
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 25
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          2729,
                                          2733
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 68,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 68,
                                            "column": 32
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "removeHandler",
                                        "range": [
                                          2734,
                                          2747
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 68,
                                            "column": 33
                                          },
                                          "end": {
                                            "line": 68,
                                            "column": 46
                                          }
                                        }
                                      },
                                      "range": [
                                        2729,
                                        2747
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 28
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 46
                                        }
                                      }
                                    },
                                    "range": [
                                      2713,
                                      2747
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 46
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  2709,
                                  2748
                                ],
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 47
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "handler",
                                      "range": [
                                        2761,
                                        2768
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "ConditionalExpression",
                                      "test": {
                                        "type": "UnaryExpression",
                                        "operator": "!",
                                        "argument": {
                                          "type": "UnaryExpression",
                                          "operator": "!",
                                          "argument": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                2773,
                                                2777
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 69,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 69,
                                                  "column": 28
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "selector",
                                              "range": [
                                                2778,
                                                2786
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 69,
                                                  "column": 29
                                                },
                                                "end": {
                                                  "line": 69,
                                                  "column": 37
                                                }
                                              }
                                            },
                                            "range": [
                                              2773,
                                              2786
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 69,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 69,
                                                "column": 37
                                              }
                                            }
                                          },
                                          "prefix": true,
                                          "range": [
                                            2772,
                                            2786
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 69,
                                              "column": 23
                                            },
                                            "end": {
                                              "line": 69,
                                              "column": 37
                                            }
                                          }
                                        },
                                        "prefix": true,
                                        "range": [
                                          2771,
                                          2786
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 37
                                          }
                                        }
                                      },
                                      "consequent": {
                                        "type": "FunctionExpression",
                                        "id": null,
                                        "params": [],
                                        "body": {
                                          "type": "BlockStatement",
                                          "body": [
                                            {
                                              "type": "VariableDeclaration",
                                              "declarations": [
                                                {
                                                  "type": "VariableDeclarator",
                                                  "id": {
                                                    "type": "Identifier",
                                                    "name": "args",
                                                    "range": [
                                                      2819,
                                                      2823
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 70,
                                                        "column": 16
                                                      },
                                                      "end": {
                                                        "line": 70,
                                                        "column": 20
                                                      }
                                                    }
                                                  },
                                                  "init": {
                                                    "type": "ArrayExpression",
                                                    "elements": [],
                                                    "range": [
                                                      2826,
                                                      2828
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 70,
                                                        "column": 23
                                                      },
                                                      "end": {
                                                        "line": 70,
                                                        "column": 25
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    2819,
                                                    2828
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 70,
                                                      "column": 16
                                                    },
                                                    "end": {
                                                      "line": 70,
                                                      "column": 25
                                                    }
                                                  }
                                                }
                                              ],
                                              "kind": "var",
                                              "range": [
                                                2815,
                                                2829
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 70,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 70,
                                                  "column": 26
                                                }
                                              }
                                            },
                                            {
                                              "type": "ForStatement",
                                              "init": {
                                                "type": "VariableDeclaration",
                                                "declarations": [
                                                  {
                                                    "type": "VariableDeclarator",
                                                    "id": {
                                                      "type": "Identifier",
                                                      "name": "_i",
                                                      "range": [
                                                        2851,
                                                        2853
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 71,
                                                          "column": 21
                                                        },
                                                        "end": {
                                                          "line": 71,
                                                          "column": 23
                                                        }
                                                      }
                                                    },
                                                    "init": {
                                                      "type": "Literal",
                                                      "value": 0,
                                                      "raw": "0",
                                                      "range": [
                                                        2856,
                                                        2857
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 71,
                                                          "column": 26
                                                        },
                                                        "end": {
                                                          "line": 71,
                                                          "column": 27
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      2851,
                                                      2857
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 71,
                                                        "column": 21
                                                      },
                                                      "end": {
                                                        "line": 71,
                                                        "column": 27
                                                      }
                                                    }
                                                  }
                                                ],
                                                "kind": "var",
                                                "range": [
                                                  2847,
                                                  2857
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 71,
                                                    "column": 17
                                                  },
                                                  "end": {
                                                    "line": 71,
                                                    "column": 27
                                                  }
                                                }
                                              },
                                              "test": {
                                                "type": "BinaryExpression",
                                                "operator": "<",
                                                "left": {
                                                  "type": "Identifier",
                                                  "name": "_i",
                                                  "range": [
                                                    2859,
                                                    2861
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 71,
                                                      "column": 29
                                                    },
                                                    "end": {
                                                      "line": 71,
                                                      "column": 31
                                                    }
                                                  }
                                                },
                                                "right": {
                                                  "type": "MemberExpression",
                                                  "computed": false,
                                                  "object": {
                                                    "type": "Identifier",
                                                    "name": "arguments",
                                                    "range": [
                                                      2864,
                                                      2873
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 71,
                                                        "column": 34
                                                      },
                                                      "end": {
                                                        "line": 71,
                                                        "column": 43
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "name": "length",
                                                    "range": [
                                                      2874,
                                                      2880
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 71,
                                                        "column": 44
                                                      },
                                                      "end": {
                                                        "line": 71,
                                                        "column": 50
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    2864,
                                                    2880
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 71,
                                                      "column": 34
                                                    },
                                                    "end": {
                                                      "line": 71,
                                                      "column": 50
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  2859,
                                                  2880
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 71,
                                                    "column": 29
                                                  },
                                                  "end": {
                                                    "line": 71,
                                                    "column": 50
                                                  }
                                                }
                                              },
                                              "update": {
                                                "type": "UpdateExpression",
                                                "operator": "++",
                                                "argument": {
                                                  "type": "Identifier",
                                                  "name": "_i",
                                                  "range": [
                                                    2882,
                                                    2884
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 71,
                                                      "column": 52
                                                    },
                                                    "end": {
                                                      "line": 71,
                                                      "column": 54
                                                    }
                                                  }
                                                },
                                                "prefix": false,
                                                "range": [
                                                  2882,
                                                  2886
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 71,
                                                    "column": 52
                                                  },
                                                  "end": {
                                                    "line": 71,
                                                    "column": 56
                                                  }
                                                }
                                              },
                                              "body": {
                                                "type": "BlockStatement",
                                                "body": [
                                                  {
                                                    "type": "ExpressionStatement",
                                                    "expression": {
                                                      "type": "AssignmentExpression",
                                                      "operator": "=",
                                                      "left": {
                                                        "type": "MemberExpression",
                                                        "computed": true,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "args",
                                                          "range": [
                                                            2906,
                                                            2910
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 72,
                                                              "column": 16
                                                            },
                                                            "end": {
                                                              "line": 72,
                                                              "column": 20
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "BinaryExpression",
                                                          "operator": "-",
                                                          "left": {
                                                            "type": "Identifier",
                                                            "name": "_i",
                                                            "range": [
                                                              2911,
                                                              2913
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 72,
                                                                "column": 21
                                                              },
                                                              "end": {
                                                                "line": 72,
                                                                "column": 23
                                                              }
                                                            }
                                                          },
                                                          "right": {
                                                            "type": "Literal",
                                                            "value": 0,
                                                            "raw": "0",
                                                            "range": [
                                                              2916,
                                                              2917
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 72,
                                                                "column": 26
                                                              },
                                                              "end": {
                                                                "line": 72,
                                                                "column": 27
                                                              }
                                                            }
                                                          },
                                                          "range": [
                                                            2911,
                                                            2917
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 72,
                                                              "column": 21
                                                            },
                                                            "end": {
                                                              "line": 72,
                                                              "column": 27
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          2906,
                                                          2918
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 72,
                                                            "column": 16
                                                          },
                                                          "end": {
                                                            "line": 72,
                                                            "column": 28
                                                          }
                                                        }
                                                      },
                                                      "right": {
                                                        "type": "MemberExpression",
                                                        "computed": true,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "arguments",
                                                          "range": [
                                                            2921,
                                                            2930
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 72,
                                                              "column": 31
                                                            },
                                                            "end": {
                                                              "line": 72,
                                                              "column": 40
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "_i",
                                                          "range": [
                                                            2931,
                                                            2933
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 72,
                                                              "column": 41
                                                            },
                                                            "end": {
                                                              "line": 72,
                                                              "column": 43
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          2921,
                                                          2934
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 72,
                                                            "column": 31
                                                          },
                                                          "end": {
                                                            "line": 72,
                                                            "column": 44
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        2906,
                                                        2934
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 72,
                                                          "column": 16
                                                        },
                                                        "end": {
                                                          "line": 72,
                                                          "column": 44
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      2906,
                                                      2935
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 72,
                                                        "column": 16
                                                      },
                                                      "end": {
                                                        "line": 72,
                                                        "column": 45
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  2888,
                                                  2949
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 71,
                                                    "column": 58
                                                  },
                                                  "end": {
                                                    "line": 73,
                                                    "column": 13
                                                  }
                                                }
                                              },
                                              "range": [
                                                2842,
                                                2949
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 71,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 73,
                                                  "column": 13
                                                }
                                              }
                                            },
                                            {
                                              "type": "ExpressionStatement",
                                              "expression": {
                                                "type": "CallExpression",
                                                "callee": {
                                                  "type": "MemberExpression",
                                                  "computed": false,
                                                  "object": {
                                                    "type": "Identifier",
                                                    "name": "_this",
                                                    "range": [
                                                      2962,
                                                      2967
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 74,
                                                        "column": 12
                                                      },
                                                      "end": {
                                                        "line": 74,
                                                        "column": 17
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "name": "_callSelector",
                                                    "range": [
                                                      2968,
                                                      2981
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 74,
                                                        "column": 18
                                                      },
                                                      "end": {
                                                        "line": 74,
                                                        "column": 31
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    2962,
                                                    2981
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 74,
                                                      "column": 12
                                                    },
                                                    "end": {
                                                      "line": 74,
                                                      "column": 31
                                                    }
                                                  }
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Identifier",
                                                    "name": "subscriber",
                                                    "range": [
                                                      2982,
                                                      2992
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 74,
                                                        "column": 32
                                                      },
                                                      "end": {
                                                        "line": 74,
                                                        "column": 42
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "Identifier",
                                                    "name": "args",
                                                    "range": [
                                                      2994,
                                                      2998
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 74,
                                                        "column": 44
                                                      },
                                                      "end": {
                                                        "line": 74,
                                                        "column": 48
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  2962,
                                                  2999
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 74,
                                                    "column": 12
                                                  },
                                                  "end": {
                                                    "line": 74,
                                                    "column": 49
                                                  }
                                                }
                                              },
                                              "range": [
                                                2962,
                                                3000
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 74,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 74,
                                                  "column": 50
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            2801,
                                            3010
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 69,
                                              "column": 52
                                            },
                                            "end": {
                                              "line": 75,
                                              "column": 9
                                            }
                                          }
                                        },
                                        "generator": false,
                                        "expression": false,
                                        "range": [
                                          2789,
                                          3010
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 75,
                                            "column": 9
                                          }
                                        }
                                      },
                                      "alternate": {
                                        "type": "FunctionExpression",
                                        "id": null,
                                        "params": [
                                          {
                                            "type": "Identifier",
                                            "name": "e",
                                            "range": [
                                              3023,
                                              3024
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 75,
                                                "column": 22
                                              },
                                              "end": {
                                                "line": 75,
                                                "column": 23
                                              }
                                            }
                                          }
                                        ],
                                        "body": {
                                          "type": "BlockStatement",
                                          "body": [
                                            {
                                              "type": "ExpressionStatement",
                                              "expression": {
                                                "type": "CallExpression",
                                                "callee": {
                                                  "type": "MemberExpression",
                                                  "computed": false,
                                                  "object": {
                                                    "type": "Identifier",
                                                    "name": "subscriber",
                                                    "range": [
                                                      3028,
                                                      3038
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 75,
                                                        "column": 27
                                                      },
                                                      "end": {
                                                        "line": 75,
                                                        "column": 37
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "name": "next",
                                                    "range": [
                                                      3039,
                                                      3043
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 75,
                                                        "column": 38
                                                      },
                                                      "end": {
                                                        "line": 75,
                                                        "column": 42
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    3028,
                                                    3043
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 75,
                                                      "column": 27
                                                    },
                                                    "end": {
                                                      "line": 75,
                                                      "column": 42
                                                    }
                                                  }
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Identifier",
                                                    "name": "e",
                                                    "range": [
                                                      3044,
                                                      3045
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 75,
                                                        "column": 43
                                                      },
                                                      "end": {
                                                        "line": 75,
                                                        "column": 44
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  3028,
                                                  3046
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 75,
                                                    "column": 27
                                                  },
                                                  "end": {
                                                    "line": 75,
                                                    "column": 45
                                                  }
                                                }
                                              },
                                              "range": [
                                                3028,
                                                3047
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 75,
                                                  "column": 27
                                                },
                                                "end": {
                                                  "line": 75,
                                                  "column": 46
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            3026,
                                            3049
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 75,
                                              "column": 25
                                            },
                                            "end": {
                                              "line": 75,
                                              "column": 48
                                            }
                                          }
                                        },
                                        "generator": false,
                                        "expression": false,
                                        "range": [
                                          3013,
                                          3049
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 75,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 75,
                                            "column": 48
                                          }
                                        }
                                      },
                                      "range": [
                                        2771,
                                        3049
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 48
                                        }
                                      }
                                    },
                                    "range": [
                                      2761,
                                      3049
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 48
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  2757,
                                  3050
                                ],
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 49
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "CallExpression",
                                  "callee": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3059,
                                        3063
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "_callAddHandler",
                                      "range": [
                                        3064,
                                        3079
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 28
                                        }
                                      }
                                    },
                                    "range": [
                                      3059,
                                      3079
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 28
                                      }
                                    }
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "name": "handler",
                                      "range": [
                                        3080,
                                        3087
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 36
                                        }
                                      }
                                    },
                                    {
                                      "type": "Identifier",
                                      "name": "subscriber",
                                      "range": [
                                        3089,
                                        3099
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 38
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 48
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3059,
                                    3100
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 49
                                    }
                                  }
                                },
                                "range": [
                                  3059,
                                  3101
                                ],
                                "loc": {
                                  "start": {
                                    "line": 76,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 76,
                                    "column": 50
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "CallExpression",
                                  "callee": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "subscriber",
                                      "range": [
                                        3110,
                                        3120
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 77,
                                          "column": 18
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "add",
                                      "range": [
                                        3121,
                                        3124
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 77,
                                          "column": 22
                                        }
                                      }
                                    },
                                    "range": [
                                      3110,
                                      3124
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 77,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 77,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "arguments": [
                                    {
                                      "type": "NewExpression",
                                      "callee": {
                                        "type": "Identifier",
                                        "name": "Subscription",
                                        "range": [
                                          3129,
                                          3141
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 77,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 77,
                                            "column": 39
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "FunctionExpression",
                                          "id": null,
                                          "params": [],
                                          "body": {
                                            "type": "BlockStatement",
                                            "body": [
                                              {
                                                "type": "ExpressionStatement",
                                                "expression": {
                                                  "type": "CallExpression",
                                                  "callee": {
                                                    "type": "Identifier",
                                                    "name": "removeHandler",
                                                    "range": [
                                                      3241,
                                                      3254
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 79,
                                                        "column": 12
                                                      },
                                                      "end": {
                                                        "line": 79,
                                                        "column": 25
                                                      }
                                                    }
                                                  },
                                                  "arguments": [
                                                    {
                                                      "type": "Identifier",
                                                      "name": "handler",
                                                      "range": [
                                                        3255,
                                                        3262
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 79,
                                                          "column": 26
                                                        },
                                                        "end": {
                                                          "line": 79,
                                                          "column": 33
                                                        }
                                                      }
                                                    }
                                                  ],
                                                  "range": [
                                                    3241,
                                                    3263
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 79,
                                                      "column": 12
                                                    },
                                                    "end": {
                                                      "line": 79,
                                                      "column": 34
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  3241,
                                                  3264
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 79,
                                                    "column": 12
                                                  },
                                                  "end": {
                                                    "line": 79,
                                                    "column": 35
                                                  }
                                                },
                                                "leadingComments": [
                                                  {
                                                    "type": "Line",
                                                    "value": "TODO: determine whether or not to forward to error handler",
                                                    "range": [
                                                      3168,
                                                      3228
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 78,
                                                        "column": 12
                                                      },
                                                      "end": {
                                                        "line": 78,
                                                        "column": 72
                                                      }
                                                    }
                                                  }
                                                ]
                                              }
                                            ],
                                            "range": [
                                              3154,
                                              3274
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 77,
                                                "column": 52
                                              },
                                              "end": {
                                                "line": 80,
                                                "column": 9
                                              }
                                            }
                                          },
                                          "generator": false,
                                          "expression": false,
                                          "range": [
                                            3142,
                                            3274
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 77,
                                              "column": 40
                                            },
                                            "end": {
                                              "line": 80,
                                              "column": 9
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        3125,
                                        3275
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 80,
                                          "column": 10
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3110,
                                    3276
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 77,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 80,
                                      "column": 11
                                    }
                                  }
                                },
                                "range": [
                                  3110,
                                  3277
                                ],
                                "loc": {
                                  "start": {
                                    "line": 77,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 12
                                  }
                                }
                              }
                            ],
                            "range": [
                              2673,
                              3283
                            ],
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 76
                              },
                              "end": {
                                "line": 81,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            2651,
                            3283
                          ],
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 54
                            },
                            "end": {
                              "line": 81,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          2601,
                          3283
                        ],
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 4
                          },
                          "end": {
                            "line": 81,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2601,
                        3284
                      ],
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 4
                        },
                        "end": {
                          "line": 81,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "FromEventPatternObservable",
                              "range": [
                                3289,
                                3315
                              ],
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 4
                                },
                                "end": {
                                  "line": 82,
                                  "column": 30
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                3316,
                                3325
                              ],
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 31
                                },
                                "end": {
                                  "line": 82,
                                  "column": 40
                                }
                              }
                            },
                            "range": [
                              3289,
                              3325
                            ],
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 4
                              },
                              "end": {
                                "line": 82,
                                "column": 40
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_callSelector",
                            "range": [
                              3326,
                              3339
                            ],
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 41
                              },
                              "end": {
                                "line": 82,
                                "column": 54
                              }
                            }
                          },
                          "range": [
                            3289,
                            3339
                          ],
                          "loc": {
                            "start": {
                              "line": 82,
                              "column": 4
                            },
                            "end": {
                              "line": 82,
                              "column": 54
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "subscriber",
                              "range": [
                                3352,
                                3362
                              ],
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 67
                                },
                                "end": {
                                  "line": 82,
                                  "column": 77
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "args",
                              "range": [
                                3364,
                                3368
                              ],
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 79
                                },
                                "end": {
                                  "line": 82,
                                  "column": 83
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "TryStatement",
                                "block": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "VariableDeclaration",
                                      "declarations": [
                                        {
                                          "type": "VariableDeclarator",
                                          "id": {
                                            "type": "Identifier",
                                            "name": "result",
                                            "range": [
                                              3402,
                                              3408
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 84,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 84,
                                                "column": 22
                                              }
                                            }
                                          },
                                          "init": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "ThisExpression",
                                                  "range": [
                                                    3411,
                                                    3415
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 84,
                                                      "column": 25
                                                    },
                                                    "end": {
                                                      "line": 84,
                                                      "column": 29
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "selector",
                                                  "range": [
                                                    3416,
                                                    3424
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 84,
                                                      "column": 30
                                                    },
                                                    "end": {
                                                      "line": 84,
                                                      "column": 38
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  3411,
                                                  3424
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 84,
                                                    "column": 25
                                                  },
                                                  "end": {
                                                    "line": 84,
                                                    "column": 38
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "apply",
                                                "range": [
                                                  3425,
                                                  3430
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 84,
                                                    "column": 39
                                                  },
                                                  "end": {
                                                    "line": 84,
                                                    "column": 44
                                                  }
                                                }
                                              },
                                              "range": [
                                                3411,
                                                3430
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 84,
                                                  "column": 25
                                                },
                                                "end": {
                                                  "line": 84,
                                                  "column": 44
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "ThisExpression",
                                                "range": [
                                                  3431,
                                                  3435
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 84,
                                                    "column": 45
                                                  },
                                                  "end": {
                                                    "line": 84,
                                                    "column": 49
                                                  }
                                                }
                                              },
                                              {
                                                "type": "Identifier",
                                                "name": "args",
                                                "range": [
                                                  3437,
                                                  3441
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 84,
                                                    "column": 51
                                                  },
                                                  "end": {
                                                    "line": 84,
                                                    "column": 55
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              3411,
                                              3442
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 84,
                                                "column": 25
                                              },
                                              "end": {
                                                "line": 84,
                                                "column": 56
                                              }
                                            }
                                          },
                                          "range": [
                                            3402,
                                            3442
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 84,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 84,
                                              "column": 56
                                            }
                                          }
                                        }
                                      ],
                                      "kind": "var",
                                      "range": [
                                        3398,
                                        3443
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 84,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 84,
                                          "column": 57
                                        }
                                      }
                                    },
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "subscriber",
                                            "range": [
                                              3456,
                                              3466
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 85,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 85,
                                                "column": 22
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "next",
                                            "range": [
                                              3467,
                                              3471
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 85,
                                                "column": 23
                                              },
                                              "end": {
                                                "line": 85,
                                                "column": 27
                                              }
                                            }
                                          },
                                          "range": [
                                            3456,
                                            3471
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 85,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 85,
                                              "column": 27
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "name": "result",
                                            "range": [
                                              3472,
                                              3478
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 85,
                                                "column": 28
                                              },
                                              "end": {
                                                "line": 85,
                                                "column": 34
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          3456,
                                          3479
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 85,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 85,
                                            "column": 35
                                          }
                                        }
                                      },
                                      "range": [
                                        3456,
                                        3480
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 85,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 85,
                                          "column": 36
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3384,
                                    3490
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 83,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 86,
                                      "column": 9
                                    }
                                  }
                                },
                                "handler": {
                                  "type": "CatchClause",
                                  "param": {
                                    "type": "Identifier",
                                    "name": "e",
                                    "range": [
                                      3506,
                                      3507
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 16
                                      }
                                    }
                                  },
                                  "body": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "subscriber",
                                              "range": [
                                                3523,
                                                3533
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 88,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 88,
                                                  "column": 22
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "error",
                                              "range": [
                                                3534,
                                                3539
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 88,
                                                  "column": 23
                                                },
                                                "end": {
                                                  "line": 88,
                                                  "column": 28
                                                }
                                              }
                                            },
                                            "range": [
                                              3523,
                                              3539
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 88,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 88,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "Identifier",
                                              "name": "e",
                                              "range": [
                                                3540,
                                                3541
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 88,
                                                  "column": 29
                                                },
                                                "end": {
                                                  "line": 88,
                                                  "column": 30
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            3523,
                                            3542
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 88,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 88,
                                              "column": 31
                                            }
                                          }
                                        },
                                        "range": [
                                          3523,
                                          3543
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 88,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 88,
                                            "column": 32
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      3509,
                                      3553
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 9
                                      }
                                    }
                                  },
                                  "range": [
                                    3499,
                                    3553
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 87,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 89,
                                      "column": 9
                                    }
                                  }
                                },
                                "finalizer": null,
                                "range": [
                                  3380,
                                  3553
                                ],
                                "loc": {
                                  "start": {
                                    "line": 83,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 89,
                                    "column": 9
                                  }
                                }
                              }
                            ],
                            "range": [
                              3370,
                              3559
                            ],
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 85
                              },
                              "end": {
                                "line": 90,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            3342,
                            3559
                          ],
                          "loc": {
                            "start": {
                              "line": 82,
                              "column": 57
                            },
                            "end": {
                              "line": 90,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          3289,
                          3559
                        ],
                        "loc": {
                          "start": {
                            "line": 82,
                            "column": 4
                          },
                          "end": {
                            "line": 90,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3289,
                        3560
                      ],
                      "loc": {
                        "start": {
                          "line": 82,
                          "column": 4
                        },
                        "end": {
                          "line": 90,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "FromEventPatternObservable",
                              "range": [
                                3565,
                                3591
                              ],
                              "loc": {
                                "start": {
                                  "line": 91,
                                  "column": 4
                                },
                                "end": {
                                  "line": 91,
                                  "column": 30
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                3592,
                                3601
                              ],
                              "loc": {
                                "start": {
                                  "line": 91,
                                  "column": 31
                                },
                                "end": {
                                  "line": 91,
                                  "column": 40
                                }
                              }
                            },
                            "range": [
                              3565,
                              3601
                            ],
                            "loc": {
                              "start": {
                                "line": 91,
                                "column": 4
                              },
                              "end": {
                                "line": 91,
                                "column": 40
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_callAddHandler",
                            "range": [
                              3602,
                              3617
                            ],
                            "loc": {
                              "start": {
                                "line": 91,
                                "column": 41
                              },
                              "end": {
                                "line": 91,
                                "column": 56
                              }
                            }
                          },
                          "range": [
                            3565,
                            3617
                          ],
                          "loc": {
                            "start": {
                              "line": 91,
                              "column": 4
                            },
                            "end": {
                              "line": 91,
                              "column": 56
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "handler",
                              "range": [
                                3630,
                                3637
                              ],
                              "loc": {
                                "start": {
                                  "line": 91,
                                  "column": 69
                                },
                                "end": {
                                  "line": 91,
                                  "column": 76
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "errorSubscriber",
                              "range": [
                                3639,
                                3654
                              ],
                              "loc": {
                                "start": {
                                  "line": 91,
                                  "column": 78
                                },
                                "end": {
                                  "line": 91,
                                  "column": 93
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "TryStatement",
                                "block": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              3684,
                                              3688
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 93,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 93,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "addHandler",
                                            "range": [
                                              3689,
                                              3699
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 93,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 93,
                                                "column": 27
                                              }
                                            }
                                          },
                                          "range": [
                                            3684,
                                            3699
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 93,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 93,
                                              "column": 27
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "name": "handler",
                                            "range": [
                                              3700,
                                              3707
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 93,
                                                "column": 28
                                              },
                                              "end": {
                                                "line": 93,
                                                "column": 35
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          3684,
                                          3708
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 93,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 93,
                                            "column": 36
                                          }
                                        }
                                      },
                                      "range": [
                                        3684,
                                        3709
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 93,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 93,
                                          "column": 37
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3670,
                                    3719
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 92,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 94,
                                      "column": 9
                                    }
                                  }
                                },
                                "handler": {
                                  "type": "CatchClause",
                                  "param": {
                                    "type": "Identifier",
                                    "name": "e",
                                    "range": [
                                      3735,
                                      3736
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 16
                                      }
                                    }
                                  },
                                  "body": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "errorSubscriber",
                                              "range": [
                                                3752,
                                                3767
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 96,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 96,
                                                  "column": 27
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "error",
                                              "range": [
                                                3768,
                                                3773
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 96,
                                                  "column": 28
                                                },
                                                "end": {
                                                  "line": 96,
                                                  "column": 33
                                                }
                                              }
                                            },
                                            "range": [
                                              3752,
                                              3773
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 96,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 96,
                                                "column": 33
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "Identifier",
                                              "name": "e",
                                              "range": [
                                                3774,
                                                3775
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 96,
                                                  "column": 34
                                                },
                                                "end": {
                                                  "line": 96,
                                                  "column": 35
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            3752,
                                            3776
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 96,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 96,
                                              "column": 36
                                            }
                                          }
                                        },
                                        "range": [
                                          3752,
                                          3777
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 96,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 96,
                                            "column": 37
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      3738,
                                      3787
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 97,
                                        "column": 9
                                      }
                                    }
                                  },
                                  "range": [
                                    3728,
                                    3787
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 95,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 97,
                                      "column": 9
                                    }
                                  }
                                },
                                "finalizer": null,
                                "range": [
                                  3666,
                                  3787
                                ],
                                "loc": {
                                  "start": {
                                    "line": 92,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 97,
                                    "column": 9
                                  }
                                }
                              }
                            ],
                            "range": [
                              3656,
                              3793
                            ],
                            "loc": {
                              "start": {
                                "line": 91,
                                "column": 95
                              },
                              "end": {
                                "line": 98,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            3620,
                            3793
                          ],
                          "loc": {
                            "start": {
                              "line": 91,
                              "column": 59
                            },
                            "end": {
                              "line": 98,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          3565,
                          3793
                        ],
                        "loc": {
                          "start": {
                            "line": 91,
                            "column": 4
                          },
                          "end": {
                            "line": 98,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3565,
                        3794
                      ],
                      "loc": {
                        "start": {
                          "line": 91,
                          "column": 4
                        },
                        "end": {
                          "line": 98,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "FromEventPatternObservable",
                        "range": [
                          3806,
                          3832
                        ],
                        "loc": {
                          "start": {
                            "line": 99,
                            "column": 11
                          },
                          "end": {
                            "line": 99,
                            "column": 37
                          }
                        }
                      },
                      "range": [
                        3799,
                        3833
                      ],
                      "loc": {
                        "start": {
                          "line": 99,
                          "column": 4
                        },
                        "end": {
                          "line": 99,
                          "column": 38
                        }
                      }
                    }
                  ],
                  "range": [
                    246,
                    3835
                  ],
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 59
                    },
                    "end": {
                      "line": 100,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  228,
                  3835
                ],
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 41
                  },
                  "end": {
                    "line": 100,
                    "column": 1
                  }
                }
              },
              "arguments": [
                {
                  "type": "Identifier",
                  "name": "Observable",
                  "range": [
                    3836,
                    3846
                  ],
                  "loc": {
                    "start": {
                      "line": 100,
                      "column": 2
                    },
                    "end": {
                      "line": 100,
                      "column": 12
                    }
                  }
                }
              ],
              "range": [
                228,
                3847
              ],
              "loc": {
                "start": {
                  "line": 8,
                  "column": 41
                },
                "end": {
                  "line": 100,
                  "column": 13
                }
              }
            },
            "range": [
              198,
              3848
            ],
            "loc": {
              "start": {
                "line": 8,
                "column": 11
              },
              "end": {
                "line": 100,
                "column": 14
              }
            }
          }
        ],
        "kind": "var",
        "range": [
          194,
          3849
        ],
        "loc": {
          "start": {
            "line": 8,
            "column": 7
          },
          "end": {
            "line": 100,
            "column": 15
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
            "range": [
              92,
              186
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 0
              },
              "end": {
                "line": 7,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "Line",
            "value": "# sourceMappingURL=FromEventPatternObservable.js.map",
            "range": [
              3850,
              3904
            ],
            "loc": {
              "start": {
                "line": 101,
                "column": 0
              },
              "end": {
                "line": 101,
                "column": 54
              }
            }
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "range": [
        187,
        3849
      ],
      "loc": {
        "start": {
          "line": 8,
          "column": 0
        },
        "end": {
          "line": 100,
          "column": 15
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
          "range": [
            92,
            186
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 0
            },
            "end": {
              "line": 7,
              "column": 3
            }
          }
        }
      ],
      "trailingComments": [
        {
          "type": "Line",
          "value": "# sourceMappingURL=FromEventPatternObservable.js.map",
          "range": [
            3850,
            3904
          ],
          "loc": {
            "start": {
              "line": 101,
              "column": 0
            },
            "end": {
              "line": 101,
              "column": 54
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    3849
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 100,
      "column": 15
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
      "range": [
        92,
        186
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 3
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n     * Creates an Observable from an API based on addHandler/removeHandler\n     * functions.\n     *\n     * <span class=\"informal\">Converts any addHandler/removeHandler API to an\n     * Observable.</span>\n     *\n     * <img src=\"./img/fromEventPattern.png\" width=\"100%\">\n     *\n     * Creates an Observable by using the `addHandler` and `removeHandler`\n     * functions to add and remove the handlers, with an optional selector\n     * function to project the event arguments to a result. The `addHandler` is\n     * called when the output Observable is subscribed, and `removeHandler` is\n     * called when the Subscription is unsubscribed.\n     *\n     * @example <caption>Emits clicks happening on the DOM document</caption>\n     * function addClickHandler(handler) {\n     *   document.addEventListener('click', handler);\n     * }\n     *\n     * function removeClickHandler(handler) {\n     *   document.removeEventListener('click', handler);\n     * }\n     *\n     * var clicks = Rx.Observable.fromEventPattern(\n     *   addClickHandler,\n     *   removeClickHandler\n     * );\n     * clicks.subscribe(x => console.log(x));\n     *\n     * @see {@link from}\n     * @see {@link fromEvent}\n     *\n     * @param {function(handler: Function): any} addHandler A function that takes\n     * a `handler` function as argument and attaches it somehow to the actual\n     * source of events.\n     * @param {function(handler: Function): void} removeHandler A function that\n     * takes a `handler` function as argument and removes it in case it was\n     * previously attached using `addHandler`.\n     * @param {function(...args: any): T} [selector] An optional function to\n     * post-process results. It takes the arguments from the event handler and\n     * should return a single value.\n     * @return {Observable<T>}\n     * @static true\n     * @name fromEventPattern\n     * @owner Observable\n     ",
      "range": [
        531,
        2416
      ],
      "loc": {
        "start": {
          "line": 16,
          "column": 4
        },
        "end": {
          "line": 62,
          "column": 7
        }
      }
    },
    {
      "type": "Line",
      "value": "TODO: determine whether or not to forward to error handler",
      "range": [
        3168,
        3228
      ],
      "loc": {
        "start": {
          "line": 78,
          "column": 12
        },
        "end": {
          "line": 78,
          "column": 72
        }
      }
    },
    {
      "type": "Line",
      "value": "# sourceMappingURL=FromEventPatternObservable.js.map",
      "range": [
        3850,
        3904
      ],
      "loc": {
        "start": {
          "line": 101,
          "column": 0
        },
        "end": {
          "line": 101,
          "column": 54
        }
      }
    }
  ]
}