{
  "type": "Program",
  "body": [
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "root",
            "range": [
              9,
              13
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 13
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "root",
            "range": [
              9,
              13
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 13
              }
            }
          },
          "range": [
            9,
            13
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 9
            },
            "end": {
              "line": 1,
              "column": 13
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/root",
        "raw": "'../util/root'",
        "range": [
          21,
          35
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 21
          },
          "end": {
            "line": 1,
            "column": 35
          }
        }
      },
      "range": [
        0,
        36
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 36
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "Observable",
            "range": [
              46,
              56
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 19
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "Observable",
            "range": [
              46,
              56
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 19
              }
            }
          },
          "range": [
            46,
            56
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 9
            },
            "end": {
              "line": 2,
              "column": 19
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../Observable",
        "raw": "'../Observable'",
        "range": [
          64,
          79
        ],
        "loc": {
          "start": {
            "line": 2,
            "column": 27
          },
          "end": {
            "line": 2,
            "column": 42
          }
        }
      },
      "range": [
        37,
        80
      ],
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 43
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "$$iterator",
            "range": [
              90,
              100
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 19
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "$$iterator",
            "range": [
              90,
              100
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 19
              }
            }
          },
          "range": [
            90,
            100
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 9
            },
            "end": {
              "line": 3,
              "column": 19
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../symbol/iterator",
        "raw": "'../symbol/iterator'",
        "range": [
          108,
          128
        ],
        "loc": {
          "start": {
            "line": 3,
            "column": 27
          },
          "end": {
            "line": 3,
            "column": 47
          }
        }
      },
      "range": [
        81,
        129
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 48
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
          "range": [
            130,
            224
          ],
          "loc": {
            "start": {
              "line": 4,
              "column": 0
            },
            "end": {
              "line": 8,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "VariableDeclaration",
        "declarations": [
          {
            "type": "VariableDeclarator",
            "id": {
              "type": "Identifier",
              "name": "IteratorObservable",
              "range": [
                236,
                254
              ],
              "loc": {
                "start": {
                  "line": 9,
                  "column": 11
                },
                "end": {
                  "line": 9,
                  "column": 29
                }
              }
            },
            "init": {
              "type": "CallExpression",
              "callee": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "_super",
                    "range": [
                      268,
                      274
                    ],
                    "loc": {
                      "start": {
                        "line": 9,
                        "column": 43
                      },
                      "end": {
                        "line": 9,
                        "column": 49
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "Identifier",
                          "name": "__extends",
                          "range": [
                            282,
                            291
                          ],
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 4
                            },
                            "end": {
                              "line": 10,
                              "column": 13
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "IteratorObservable",
                            "range": [
                              292,
                              310
                            ],
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 14
                              },
                              "end": {
                                "line": 10,
                                "column": 32
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "_super",
                            "range": [
                              312,
                              318
                            ],
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 34
                              },
                              "end": {
                                "line": 10,
                                "column": 40
                              }
                            }
                          }
                        ],
                        "range": [
                          282,
                          319
                        ],
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 4
                          },
                          "end": {
                            "line": 10,
                            "column": 41
                          }
                        }
                      },
                      "range": [
                        282,
                        320
                      ],
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 4
                        },
                        "end": {
                          "line": 10,
                          "column": 42
                        }
                      }
                    },
                    {
                      "type": "FunctionDeclaration",
                      "id": {
                        "type": "Identifier",
                        "name": "IteratorObservable",
                        "range": [
                          334,
                          352
                        ],
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 13
                          },
                          "end": {
                            "line": 11,
                            "column": 31
                          }
                        }
                      },
                      "params": [
                        {
                          "type": "Identifier",
                          "name": "iterator",
                          "range": [
                            353,
                            361
                          ],
                          "loc": {
                            "start": {
                              "line": 11,
                              "column": 32
                            },
                            "end": {
                              "line": 11,
                              "column": 40
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "scheduler",
                          "range": [
                            363,
                            372
                          ],
                          "loc": {
                            "start": {
                              "line": 11,
                              "column": 42
                            },
                            "end": {
                              "line": 11,
                              "column": 51
                            }
                          }
                        }
                      ],
                      "body": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "CallExpression",
                              "callee": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "Identifier",
                                  "name": "_super",
                                  "range": [
                                    384,
                                    390
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 14
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "call",
                                  "range": [
                                    391,
                                    395
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 19
                                    }
                                  }
                                },
                                "range": [
                                  384,
                                  395
                                ],
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 19
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "ThisExpression",
                                  "range": [
                                    396,
                                    400
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 24
                                    }
                                  }
                                }
                              ],
                              "range": [
                                384,
                                401
                              ],
                              "loc": {
                                "start": {
                                  "line": 12,
                                  "column": 8
                                },
                                "end": {
                                  "line": 12,
                                  "column": 25
                                }
                              }
                            },
                            "range": [
                              384,
                              402
                            ],
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 8
                              },
                              "end": {
                                "line": 12,
                                "column": 26
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    411,
                                    415
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 13,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 13,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "scheduler",
                                  "range": [
                                    416,
                                    425
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 13,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 13,
                                      "column": 22
                                    }
                                  }
                                },
                                "range": [
                                  411,
                                  425
                                ],
                                "loc": {
                                  "start": {
                                    "line": 13,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 13,
                                    "column": 22
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "scheduler",
                                "range": [
                                  428,
                                  437
                                ],
                                "loc": {
                                  "start": {
                                    "line": 13,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 13,
                                    "column": 34
                                  }
                                }
                              },
                              "range": [
                                411,
                                437
                              ],
                              "loc": {
                                "start": {
                                  "line": 13,
                                  "column": 8
                                },
                                "end": {
                                  "line": 13,
                                  "column": 34
                                }
                              }
                            },
                            "range": [
                              411,
                              438
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 8
                              },
                              "end": {
                                "line": 13,
                                "column": 35
                              }
                            }
                          },
                          {
                            "type": "IfStatement",
                            "test": {
                              "type": "BinaryExpression",
                              "operator": "==",
                              "left": {
                                "type": "Identifier",
                                "name": "iterator",
                                "range": [
                                  451,
                                  459
                                ],
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 20
                                  }
                                }
                              },
                              "right": {
                                "type": "Literal",
                                "value": null,
                                "raw": "null",
                                "range": [
                                  463,
                                  467
                                ],
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 28
                                  }
                                }
                              },
                              "range": [
                                451,
                                467
                              ],
                              "loc": {
                                "start": {
                                  "line": 14,
                                  "column": 12
                                },
                                "end": {
                                  "line": 14,
                                  "column": 28
                                }
                              }
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "ThrowStatement",
                                  "argument": {
                                    "type": "NewExpression",
                                    "callee": {
                                      "type": "Identifier",
                                      "name": "Error",
                                      "range": [
                                        493,
                                        498
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 15,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 15,
                                          "column": 27
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "Literal",
                                        "value": "iterator cannot be null.",
                                        "raw": "'iterator cannot be null.'",
                                        "range": [
                                          499,
                                          525
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 15,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 15,
                                            "column": 54
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      489,
                                      526
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 15,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 15,
                                        "column": 55
                                      }
                                    }
                                  },
                                  "range": [
                                    483,
                                    527
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 15,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 15,
                                      "column": 56
                                    }
                                  }
                                }
                              ],
                              "range": [
                                469,
                                537
                              ],
                              "loc": {
                                "start": {
                                  "line": 14,
                                  "column": 30
                                },
                                "end": {
                                  "line": 16,
                                  "column": 9
                                }
                              }
                            },
                            "alternate": null,
                            "range": [
                              447,
                              537
                            ],
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 8
                              },
                              "end": {
                                "line": 16,
                                "column": 9
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    546,
                                    550
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 17,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 17,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "iterator",
                                  "range": [
                                    551,
                                    559
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 17,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 17,
                                      "column": 21
                                    }
                                  }
                                },
                                "range": [
                                  546,
                                  559
                                ],
                                "loc": {
                                  "start": {
                                    "line": 17,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 17,
                                    "column": 21
                                  }
                                }
                              },
                              "right": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "Identifier",
                                  "name": "getIterator",
                                  "range": [
                                    562,
                                    573
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 17,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 17,
                                      "column": 35
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "name": "iterator",
                                    "range": [
                                      574,
                                      582
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 17,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 17,
                                        "column": 44
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  562,
                                  583
                                ],
                                "loc": {
                                  "start": {
                                    "line": 17,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 17,
                                    "column": 45
                                  }
                                }
                              },
                              "range": [
                                546,
                                583
                              ],
                              "loc": {
                                "start": {
                                  "line": 17,
                                  "column": 8
                                },
                                "end": {
                                  "line": 17,
                                  "column": 45
                                }
                              }
                            },
                            "range": [
                              546,
                              584
                            ],
                            "loc": {
                              "start": {
                                "line": 17,
                                "column": 8
                              },
                              "end": {
                                "line": 17,
                                "column": 46
                              }
                            }
                          }
                        ],
                        "range": [
                          374,
                          590
                        ],
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 53
                          },
                          "end": {
                            "line": 18,
                            "column": 5
                          }
                        }
                      },
                      "generator": false,
                      "expression": false,
                      "range": [
                        325,
                        590
                      ],
                      "loc": {
                        "start": {
                          "line": 11,
                          "column": 4
                        },
                        "end": {
                          "line": 18,
                          "column": 5
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "IteratorObservable",
                            "range": [
                              595,
                              613
                            ],
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 4
                              },
                              "end": {
                                "line": 19,
                                "column": 22
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "create",
                            "range": [
                              614,
                              620
                            ],
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 23
                              },
                              "end": {
                                "line": 19,
                                "column": 29
                              }
                            }
                          },
                          "range": [
                            595,
                            620
                          ],
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 4
                            },
                            "end": {
                              "line": 19,
                              "column": 29
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "iterator",
                              "range": [
                                633,
                                641
                              ],
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 42
                                },
                                "end": {
                                  "line": 19,
                                  "column": 50
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "scheduler",
                              "range": [
                                643,
                                652
                              ],
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 52
                                },
                                "end": {
                                  "line": 19,
                                  "column": 61
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "ReturnStatement",
                                "argument": {
                                  "type": "NewExpression",
                                  "callee": {
                                    "type": "Identifier",
                                    "name": "IteratorObservable",
                                    "range": [
                                      675,
                                      693
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 20,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 20,
                                        "column": 37
                                      }
                                    }
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "name": "iterator",
                                      "range": [
                                        694,
                                        702
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 38
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 46
                                        }
                                      }
                                    },
                                    {
                                      "type": "Identifier",
                                      "name": "scheduler",
                                      "range": [
                                        704,
                                        713
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 48
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 57
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    671,
                                    714
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 58
                                    }
                                  }
                                },
                                "range": [
                                  664,
                                  715
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 59
                                  }
                                }
                              }
                            ],
                            "range": [
                              654,
                              721
                            ],
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 63
                              },
                              "end": {
                                "line": 21,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            623,
                            721
                          ],
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 32
                            },
                            "end": {
                              "line": 21,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          595,
                          721
                        ],
                        "loc": {
                          "start": {
                            "line": 19,
                            "column": 4
                          },
                          "end": {
                            "line": 21,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        595,
                        722
                      ],
                      "loc": {
                        "start": {
                          "line": 19,
                          "column": 4
                        },
                        "end": {
                          "line": 21,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "IteratorObservable",
                            "range": [
                              727,
                              745
                            ],
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 4
                              },
                              "end": {
                                "line": 22,
                                "column": 22
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "dispatch",
                            "range": [
                              746,
                              754
                            ],
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 23
                              },
                              "end": {
                                "line": 22,
                                "column": 31
                              }
                            }
                          },
                          "range": [
                            727,
                            754
                          ],
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 4
                            },
                            "end": {
                              "line": 22,
                              "column": 31
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "state",
                              "range": [
                                767,
                                772
                              ],
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 44
                                },
                                "end": {
                                  "line": 22,
                                  "column": 49
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "index",
                                      "range": [
                                        788,
                                        793
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 17
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "state",
                                        "range": [
                                          796,
                                          801
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 23,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 23,
                                            "column": 25
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "index",
                                        "range": [
                                          802,
                                          807
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 23,
                                            "column": 26
                                          },
                                          "end": {
                                            "line": 23,
                                            "column": 31
                                          }
                                        }
                                      },
                                      "range": [
                                        796,
                                        807
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 31
                                        }
                                      }
                                    },
                                    "range": [
                                      788,
                                      807
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 31
                                      }
                                    }
                                  },
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "hasError",
                                      "range": [
                                        809,
                                        817
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 41
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "state",
                                        "range": [
                                          820,
                                          825
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 23,
                                            "column": 44
                                          },
                                          "end": {
                                            "line": 23,
                                            "column": 49
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "hasError",
                                        "range": [
                                          826,
                                          834
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 23,
                                            "column": 50
                                          },
                                          "end": {
                                            "line": 23,
                                            "column": 58
                                          }
                                        }
                                      },
                                      "range": [
                                        820,
                                        834
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 44
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 58
                                        }
                                      }
                                    },
                                    "range": [
                                      809,
                                      834
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 58
                                      }
                                    }
                                  },
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "iterator",
                                      "range": [
                                        836,
                                        844
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 60
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 68
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "state",
                                        "range": [
                                          847,
                                          852
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 23,
                                            "column": 71
                                          },
                                          "end": {
                                            "line": 23,
                                            "column": 76
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "iterator",
                                        "range": [
                                          853,
                                          861
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 23,
                                            "column": 77
                                          },
                                          "end": {
                                            "line": 23,
                                            "column": 85
                                          }
                                        }
                                      },
                                      "range": [
                                        847,
                                        861
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 71
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 85
                                        }
                                      }
                                    },
                                    "range": [
                                      836,
                                      861
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 60
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 85
                                      }
                                    }
                                  },
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "subscriber",
                                      "range": [
                                        863,
                                        873
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 87
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 97
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "state",
                                        "range": [
                                          876,
                                          881
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 23,
                                            "column": 100
                                          },
                                          "end": {
                                            "line": 23,
                                            "column": 105
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "subscriber",
                                        "range": [
                                          882,
                                          892
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 23,
                                            "column": 106
                                          },
                                          "end": {
                                            "line": 23,
                                            "column": 116
                                          }
                                        }
                                      },
                                      "range": [
                                        876,
                                        892
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 100
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 116
                                        }
                                      }
                                    },
                                    "range": [
                                      863,
                                      892
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 87
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 116
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  784,
                                  893
                                ],
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 117
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "Identifier",
                                  "name": "hasError",
                                  "range": [
                                    906,
                                    914
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 24,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 24,
                                      "column": 20
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "subscriber",
                                            "range": [
                                              930,
                                              940
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 25,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 25,
                                                "column": 22
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "error",
                                            "range": [
                                              941,
                                              946
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 25,
                                                "column": 23
                                              },
                                              "end": {
                                                "line": 25,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "range": [
                                            930,
                                            946
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 25,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 25,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "state",
                                              "range": [
                                                947,
                                                952
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 25,
                                                  "column": 29
                                                },
                                                "end": {
                                                  "line": 25,
                                                  "column": 34
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "error",
                                              "range": [
                                                953,
                                                958
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 25,
                                                  "column": 35
                                                },
                                                "end": {
                                                  "line": 25,
                                                  "column": 40
                                                }
                                              }
                                            },
                                            "range": [
                                              947,
                                              958
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 25,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 25,
                                                "column": 40
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          930,
                                          959
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 25,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 25,
                                            "column": 41
                                          }
                                        }
                                      },
                                      "range": [
                                        930,
                                        960
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 25,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 25,
                                          "column": 42
                                        }
                                      }
                                    },
                                    {
                                      "type": "ReturnStatement",
                                      "argument": null,
                                      "range": [
                                        973,
                                        980
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 26,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 26,
                                          "column": 19
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    916,
                                    990
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 24,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 27,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  902,
                                  990
                                ],
                                "loc": {
                                  "start": {
                                    "line": 24,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 9
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "result",
                                      "range": [
                                        1003,
                                        1009
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 28,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 28,
                                          "column": 18
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "iterator",
                                          "range": [
                                            1012,
                                            1020
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 28,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 28,
                                              "column": 29
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "next",
                                          "range": [
                                            1021,
                                            1025
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 28,
                                              "column": 30
                                            },
                                            "end": {
                                              "line": 28,
                                              "column": 34
                                            }
                                          }
                                        },
                                        "range": [
                                          1012,
                                          1025
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 28,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 28,
                                            "column": 34
                                          }
                                        }
                                      },
                                      "arguments": [],
                                      "range": [
                                        1012,
                                        1027
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 28,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 28,
                                          "column": 36
                                        }
                                      }
                                    },
                                    "range": [
                                      1003,
                                      1027
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 28,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 28,
                                        "column": 36
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  999,
                                  1028
                                ],
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 37
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "result",
                                    "range": [
                                      1041,
                                      1047
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "done",
                                    "range": [
                                      1048,
                                      1052
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "range": [
                                    1041,
                                    1052
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 23
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "subscriber",
                                            "range": [
                                              1068,
                                              1078
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 30,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 30,
                                                "column": 22
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "complete",
                                            "range": [
                                              1079,
                                              1087
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 30,
                                                "column": 23
                                              },
                                              "end": {
                                                "line": 30,
                                                "column": 31
                                              }
                                            }
                                          },
                                          "range": [
                                            1068,
                                            1087
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 30,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 30,
                                              "column": 31
                                            }
                                          }
                                        },
                                        "arguments": [],
                                        "range": [
                                          1068,
                                          1089
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 33
                                          }
                                        }
                                      },
                                      "range": [
                                        1068,
                                        1090
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 30,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 30,
                                          "column": 34
                                        }
                                      }
                                    },
                                    {
                                      "type": "ReturnStatement",
                                      "argument": null,
                                      "range": [
                                        1103,
                                        1110
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 31,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 31,
                                          "column": 19
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    1054,
                                    1120
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 32,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  1037,
                                  1120
                                ],
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 32,
                                    "column": 9
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "CallExpression",
                                  "callee": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "subscriber",
                                      "range": [
                                        1129,
                                        1139
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 33,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 33,
                                          "column": 18
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "next",
                                      "range": [
                                        1140,
                                        1144
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 33,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 33,
                                          "column": 23
                                        }
                                      }
                                    },
                                    "range": [
                                      1129,
                                      1144
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 33,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 33,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "result",
                                        "range": [
                                          1145,
                                          1151
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 33,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 33,
                                            "column": 30
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "value",
                                        "range": [
                                          1152,
                                          1157
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 33,
                                            "column": 31
                                          },
                                          "end": {
                                            "line": 33,
                                            "column": 36
                                          }
                                        }
                                      },
                                      "range": [
                                        1145,
                                        1157
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 33,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 33,
                                          "column": 36
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    1129,
                                    1158
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 33,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 33,
                                      "column": 37
                                    }
                                  }
                                },
                                "range": [
                                  1129,
                                  1159
                                ],
                                "loc": {
                                  "start": {
                                    "line": 33,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 33,
                                    "column": 38
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "state",
                                      "range": [
                                        1168,
                                        1173
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 34,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 34,
                                          "column": 13
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "index",
                                      "range": [
                                        1174,
                                        1179
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 34,
                                          "column": 14
                                        },
                                        "end": {
                                          "line": 34,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "range": [
                                      1168,
                                      1179
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 34,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 34,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "BinaryExpression",
                                    "operator": "+",
                                    "left": {
                                      "type": "Identifier",
                                      "name": "index",
                                      "range": [
                                        1182,
                                        1187
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 34,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 34,
                                          "column": 27
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "Literal",
                                      "value": 1,
                                      "raw": "1",
                                      "range": [
                                        1190,
                                        1191
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 34,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 34,
                                          "column": 31
                                        }
                                      }
                                    },
                                    "range": [
                                      1182,
                                      1191
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 34,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 34,
                                        "column": 31
                                      }
                                    }
                                  },
                                  "range": [
                                    1168,
                                    1191
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 34,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 34,
                                      "column": 31
                                    }
                                  }
                                },
                                "range": [
                                  1168,
                                  1192
                                ],
                                "loc": {
                                  "start": {
                                    "line": 34,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 34,
                                    "column": 32
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "subscriber",
                                    "range": [
                                      1205,
                                      1215
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 35,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 35,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "closed",
                                    "range": [
                                      1216,
                                      1222
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 35,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 35,
                                        "column": 29
                                      }
                                    }
                                  },
                                  "range": [
                                    1205,
                                    1222
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 35,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 35,
                                      "column": 29
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "IfStatement",
                                      "test": {
                                        "type": "BinaryExpression",
                                        "operator": "===",
                                        "left": {
                                          "type": "UnaryExpression",
                                          "operator": "typeof",
                                          "argument": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "iterator",
                                              "range": [
                                                1249,
                                                1257
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 36,
                                                  "column": 23
                                                },
                                                "end": {
                                                  "line": 36,
                                                  "column": 31
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "return",
                                              "range": [
                                                1258,
                                                1264
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 36,
                                                  "column": 32
                                                },
                                                "end": {
                                                  "line": 36,
                                                  "column": 38
                                                }
                                              }
                                            },
                                            "range": [
                                              1249,
                                              1264
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 36,
                                                "column": 23
                                              },
                                              "end": {
                                                "line": 36,
                                                "column": 38
                                              }
                                            }
                                          },
                                          "prefix": true,
                                          "range": [
                                            1242,
                                            1264
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 36,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 36,
                                              "column": 38
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Literal",
                                          "value": "function",
                                          "raw": "'function'",
                                          "range": [
                                            1269,
                                            1279
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 36,
                                              "column": 43
                                            },
                                            "end": {
                                              "line": 36,
                                              "column": 53
                                            }
                                          }
                                        },
                                        "range": [
                                          1242,
                                          1279
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 36,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 36,
                                            "column": 53
                                          }
                                        }
                                      },
                                      "consequent": {
                                        "type": "BlockStatement",
                                        "body": [
                                          {
                                            "type": "ExpressionStatement",
                                            "expression": {
                                              "type": "CallExpression",
                                              "callee": {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "iterator",
                                                  "range": [
                                                    1299,
                                                    1307
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 37,
                                                      "column": 16
                                                    },
                                                    "end": {
                                                      "line": 37,
                                                      "column": 24
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "return",
                                                  "range": [
                                                    1308,
                                                    1314
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 37,
                                                      "column": 25
                                                    },
                                                    "end": {
                                                      "line": 37,
                                                      "column": 31
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  1299,
                                                  1314
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 37,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 37,
                                                    "column": 31
                                                  }
                                                }
                                              },
                                              "arguments": [],
                                              "range": [
                                                1299,
                                                1316
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 37,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 37,
                                                  "column": 33
                                                }
                                              }
                                            },
                                            "range": [
                                              1299,
                                              1317
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 37,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 37,
                                                "column": 34
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          1281,
                                          1331
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 36,
                                            "column": 55
                                          },
                                          "end": {
                                            "line": 38,
                                            "column": 13
                                          }
                                        }
                                      },
                                      "alternate": null,
                                      "range": [
                                        1238,
                                        1331
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 36,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 38,
                                          "column": 13
                                        }
                                      }
                                    },
                                    {
                                      "type": "ReturnStatement",
                                      "argument": null,
                                      "range": [
                                        1344,
                                        1351
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 39,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 39,
                                          "column": 19
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    1224,
                                    1361
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 35,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  1201,
                                  1361
                                ],
                                "loc": {
                                  "start": {
                                    "line": 35,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 9
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "CallExpression",
                                  "callee": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        1370,
                                        1374
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 41,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 41,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "schedule",
                                      "range": [
                                        1375,
                                        1383
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 41,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 41,
                                          "column": 21
                                        }
                                      }
                                    },
                                    "range": [
                                      1370,
                                      1383
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 41,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 41,
                                        "column": 21
                                      }
                                    }
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "name": "state",
                                      "range": [
                                        1384,
                                        1389
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 41,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 41,
                                          "column": 27
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    1370,
                                    1390
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 41,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 41,
                                      "column": 28
                                    }
                                  }
                                },
                                "range": [
                                  1370,
                                  1391
                                ],
                                "loc": {
                                  "start": {
                                    "line": 41,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 41,
                                    "column": 29
                                  }
                                }
                              }
                            ],
                            "range": [
                              774,
                              1397
                            ],
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 51
                              },
                              "end": {
                                "line": 42,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            757,
                            1397
                          ],
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 34
                            },
                            "end": {
                              "line": 42,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          727,
                          1397
                        ],
                        "loc": {
                          "start": {
                            "line": 22,
                            "column": 4
                          },
                          "end": {
                            "line": 42,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        727,
                        1398
                      ],
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 4
                        },
                        "end": {
                          "line": 42,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "IteratorObservable",
                              "range": [
                                1403,
                                1421
                              ],
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 4
                                },
                                "end": {
                                  "line": 43,
                                  "column": 22
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                1422,
                                1431
                              ],
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 23
                                },
                                "end": {
                                  "line": 43,
                                  "column": 32
                                }
                              }
                            },
                            "range": [
                              1403,
                              1431
                            ],
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 4
                              },
                              "end": {
                                "line": 43,
                                "column": 32
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_subscribe",
                            "range": [
                              1432,
                              1442
                            ],
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 33
                              },
                              "end": {
                                "line": 43,
                                "column": 43
                              }
                            }
                          },
                          "range": [
                            1403,
                            1442
                          ],
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 4
                            },
                            "end": {
                              "line": 43,
                              "column": 43
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "subscriber",
                              "range": [
                                1455,
                                1465
                              ],
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 56
                                },
                                "end": {
                                  "line": 43,
                                  "column": 66
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "index",
                                      "range": [
                                        1481,
                                        1486
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 44,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 44,
                                          "column": 17
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "Literal",
                                      "value": 0,
                                      "raw": "0",
                                      "range": [
                                        1489,
                                        1490
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 44,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 44,
                                          "column": 21
                                        }
                                      }
                                    },
                                    "range": [
                                      1481,
                                      1490
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 44,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 44,
                                        "column": 21
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  1477,
                                  1491
                                ],
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 22
                                  }
                                }
                              },
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "_a",
                                      "range": [
                                        1504,
                                        1506
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 45,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 45,
                                          "column": 14
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "ThisExpression",
                                      "range": [
                                        1509,
                                        1513
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 45,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 45,
                                          "column": 21
                                        }
                                      }
                                    },
                                    "range": [
                                      1504,
                                      1513
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 45,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 45,
                                        "column": 21
                                      }
                                    }
                                  },
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "iterator",
                                      "range": [
                                        1515,
                                        1523
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 45,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 45,
                                          "column": 31
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "_a",
                                        "range": [
                                          1526,
                                          1528
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 45,
                                            "column": 34
                                          },
                                          "end": {
                                            "line": 45,
                                            "column": 36
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "iterator",
                                        "range": [
                                          1529,
                                          1537
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 45,
                                            "column": 37
                                          },
                                          "end": {
                                            "line": 45,
                                            "column": 45
                                          }
                                        }
                                      },
                                      "range": [
                                        1526,
                                        1537
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 45,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 45,
                                          "column": 45
                                        }
                                      }
                                    },
                                    "range": [
                                      1515,
                                      1537
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 45,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 45,
                                        "column": 45
                                      }
                                    }
                                  },
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "scheduler",
                                      "range": [
                                        1539,
                                        1548
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 45,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 45,
                                          "column": 56
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "_a",
                                        "range": [
                                          1551,
                                          1553
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 45,
                                            "column": 59
                                          },
                                          "end": {
                                            "line": 45,
                                            "column": 61
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "scheduler",
                                        "range": [
                                          1554,
                                          1563
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 45,
                                            "column": 62
                                          },
                                          "end": {
                                            "line": 45,
                                            "column": 71
                                          }
                                        }
                                      },
                                      "range": [
                                        1551,
                                        1563
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 45,
                                          "column": 59
                                        },
                                        "end": {
                                          "line": 45,
                                          "column": 71
                                        }
                                      }
                                    },
                                    "range": [
                                      1539,
                                      1563
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 45,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 45,
                                        "column": 71
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  1500,
                                  1564
                                ],
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 72
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "Identifier",
                                  "name": "scheduler",
                                  "range": [
                                    1577,
                                    1586
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 21
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ReturnStatement",
                                      "argument": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "scheduler",
                                            "range": [
                                              1609,
                                              1618
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 19
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "schedule",
                                            "range": [
                                              1619,
                                              1627
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 37
                                              }
                                            }
                                          },
                                          "range": [
                                            1609,
                                            1627
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 47,
                                              "column": 19
                                            },
                                            "end": {
                                              "line": 47,
                                              "column": 37
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "IteratorObservable",
                                              "range": [
                                                1628,
                                                1646
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 47,
                                                  "column": 38
                                                },
                                                "end": {
                                                  "line": 47,
                                                  "column": 56
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "dispatch",
                                              "range": [
                                                1647,
                                                1655
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 47,
                                                  "column": 57
                                                },
                                                "end": {
                                                  "line": 47,
                                                  "column": 65
                                                }
                                              }
                                            },
                                            "range": [
                                              1628,
                                              1655
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 38
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 65
                                              }
                                            }
                                          },
                                          {
                                            "type": "Literal",
                                            "value": 0,
                                            "raw": "0",
                                            "range": [
                                              1657,
                                              1658
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 67
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 68
                                              }
                                            }
                                          },
                                          {
                                            "type": "ObjectExpression",
                                            "properties": [
                                              {
                                                "type": "Property",
                                                "key": {
                                                  "type": "Identifier",
                                                  "name": "index",
                                                  "range": [
                                                    1678,
                                                    1683
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 48,
                                                      "column": 16
                                                    },
                                                    "end": {
                                                      "line": 48,
                                                      "column": 21
                                                    }
                                                  }
                                                },
                                                "value": {
                                                  "type": "Identifier",
                                                  "name": "index",
                                                  "range": [
                                                    1685,
                                                    1690
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 48,
                                                      "column": 23
                                                    },
                                                    "end": {
                                                      "line": 48,
                                                      "column": 28
                                                    }
                                                  }
                                                },
                                                "kind": "init",
                                                "method": false,
                                                "shorthand": false,
                                                "computed": false,
                                                "range": [
                                                  1678,
                                                  1690
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 48,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 48,
                                                    "column": 28
                                                  }
                                                }
                                              },
                                              {
                                                "type": "Property",
                                                "key": {
                                                  "type": "Identifier",
                                                  "name": "iterator",
                                                  "range": [
                                                    1692,
                                                    1700
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 48,
                                                      "column": 30
                                                    },
                                                    "end": {
                                                      "line": 48,
                                                      "column": 38
                                                    }
                                                  }
                                                },
                                                "value": {
                                                  "type": "Identifier",
                                                  "name": "iterator",
                                                  "range": [
                                                    1702,
                                                    1710
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 48,
                                                      "column": 40
                                                    },
                                                    "end": {
                                                      "line": 48,
                                                      "column": 48
                                                    }
                                                  }
                                                },
                                                "kind": "init",
                                                "method": false,
                                                "shorthand": false,
                                                "computed": false,
                                                "range": [
                                                  1692,
                                                  1710
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 48,
                                                    "column": 30
                                                  },
                                                  "end": {
                                                    "line": 48,
                                                    "column": 48
                                                  }
                                                }
                                              },
                                              {
                                                "type": "Property",
                                                "key": {
                                                  "type": "Identifier",
                                                  "name": "subscriber",
                                                  "range": [
                                                    1712,
                                                    1722
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 48,
                                                      "column": 50
                                                    },
                                                    "end": {
                                                      "line": 48,
                                                      "column": 60
                                                    }
                                                  }
                                                },
                                                "value": {
                                                  "type": "Identifier",
                                                  "name": "subscriber",
                                                  "range": [
                                                    1724,
                                                    1734
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 48,
                                                      "column": 62
                                                    },
                                                    "end": {
                                                      "line": 48,
                                                      "column": 72
                                                    }
                                                  }
                                                },
                                                "kind": "init",
                                                "method": false,
                                                "shorthand": false,
                                                "computed": false,
                                                "range": [
                                                  1712,
                                                  1734
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 48,
                                                    "column": 50
                                                  },
                                                  "end": {
                                                    "line": 48,
                                                    "column": 72
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              1660,
                                              1748
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 70
                                              },
                                              "end": {
                                                "line": 49,
                                                "column": 13
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          1609,
                                          1749
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 49,
                                            "column": 14
                                          }
                                        }
                                      },
                                      "range": [
                                        1602,
                                        1750
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 47,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 49,
                                          "column": 15
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    1588,
                                    1760
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 50,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "DoWhileStatement",
                                      "body": {
                                        "type": "BlockStatement",
                                        "body": [
                                          {
                                            "type": "VariableDeclaration",
                                            "declarations": [
                                              {
                                                "type": "VariableDeclarator",
                                                "id": {
                                                  "type": "Identifier",
                                                  "name": "result",
                                                  "range": [
                                                    1813,
                                                    1819
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 53,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 53,
                                                      "column": 26
                                                    }
                                                  }
                                                },
                                                "init": {
                                                  "type": "CallExpression",
                                                  "callee": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "iterator",
                                                      "range": [
                                                        1822,
                                                        1830
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 53,
                                                          "column": 29
                                                        },
                                                        "end": {
                                                          "line": 53,
                                                          "column": 37
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "next",
                                                      "range": [
                                                        1831,
                                                        1835
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 53,
                                                          "column": 38
                                                        },
                                                        "end": {
                                                          "line": 53,
                                                          "column": 42
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      1822,
                                                      1835
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 53,
                                                        "column": 29
                                                      },
                                                      "end": {
                                                        "line": 53,
                                                        "column": 42
                                                      }
                                                    }
                                                  },
                                                  "arguments": [],
                                                  "range": [
                                                    1822,
                                                    1837
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 53,
                                                      "column": 29
                                                    },
                                                    "end": {
                                                      "line": 53,
                                                      "column": 44
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  1813,
                                                  1837
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 53,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 53,
                                                    "column": 44
                                                  }
                                                }
                                              }
                                            ],
                                            "kind": "var",
                                            "range": [
                                              1809,
                                              1838
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 53,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 53,
                                                "column": 45
                                              }
                                            }
                                          },
                                          {
                                            "type": "IfStatement",
                                            "test": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "result",
                                                "range": [
                                                  1859,
                                                  1865
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 54,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 54,
                                                    "column": 26
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "done",
                                                "range": [
                                                  1866,
                                                  1870
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 54,
                                                    "column": 27
                                                  },
                                                  "end": {
                                                    "line": 54,
                                                    "column": 31
                                                  }
                                                }
                                              },
                                              "range": [
                                                1859,
                                                1870
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 54,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 54,
                                                  "column": 31
                                                }
                                              }
                                            },
                                            "consequent": {
                                              "type": "BlockStatement",
                                              "body": [
                                                {
                                                  "type": "ExpressionStatement",
                                                  "expression": {
                                                    "type": "CallExpression",
                                                    "callee": {
                                                      "type": "MemberExpression",
                                                      "computed": false,
                                                      "object": {
                                                        "type": "Identifier",
                                                        "name": "subscriber",
                                                        "range": [
                                                          1894,
                                                          1904
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 55,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 55,
                                                            "column": 30
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Identifier",
                                                        "name": "complete",
                                                        "range": [
                                                          1905,
                                                          1913
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 55,
                                                            "column": 31
                                                          },
                                                          "end": {
                                                            "line": 55,
                                                            "column": 39
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        1894,
                                                        1913
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 55,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 55,
                                                          "column": 39
                                                        }
                                                      }
                                                    },
                                                    "arguments": [],
                                                    "range": [
                                                      1894,
                                                      1915
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 55,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 55,
                                                        "column": 41
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    1894,
                                                    1916
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 55,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 55,
                                                      "column": 42
                                                    }
                                                  }
                                                },
                                                {
                                                  "type": "BreakStatement",
                                                  "label": null,
                                                  "range": [
                                                    1937,
                                                    1943
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 56,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 56,
                                                      "column": 26
                                                    }
                                                  }
                                                }
                                              ],
                                              "range": [
                                                1872,
                                                1961
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 54,
                                                  "column": 33
                                                },
                                                "end": {
                                                  "line": 57,
                                                  "column": 17
                                                }
                                              }
                                            },
                                            "alternate": {
                                              "type": "BlockStatement",
                                              "body": [
                                                {
                                                  "type": "ExpressionStatement",
                                                  "expression": {
                                                    "type": "CallExpression",
                                                    "callee": {
                                                      "type": "MemberExpression",
                                                      "computed": false,
                                                      "object": {
                                                        "type": "Identifier",
                                                        "name": "subscriber",
                                                        "range": [
                                                          2005,
                                                          2015
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 59,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 59,
                                                            "column": 30
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Identifier",
                                                        "name": "next",
                                                        "range": [
                                                          2016,
                                                          2020
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 59,
                                                            "column": 31
                                                          },
                                                          "end": {
                                                            "line": 59,
                                                            "column": 35
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        2005,
                                                        2020
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 59,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 59,
                                                          "column": 35
                                                        }
                                                      }
                                                    },
                                                    "arguments": [
                                                      {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "result",
                                                          "range": [
                                                            2021,
                                                            2027
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 59,
                                                              "column": 36
                                                            },
                                                            "end": {
                                                              "line": 59,
                                                              "column": 42
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "value",
                                                          "range": [
                                                            2028,
                                                            2033
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 59,
                                                              "column": 43
                                                            },
                                                            "end": {
                                                              "line": 59,
                                                              "column": 48
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          2021,
                                                          2033
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 59,
                                                            "column": 36
                                                          },
                                                          "end": {
                                                            "line": 59,
                                                            "column": 48
                                                          }
                                                        }
                                                      }
                                                    ],
                                                    "range": [
                                                      2005,
                                                      2034
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 59,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 59,
                                                        "column": 49
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    2005,
                                                    2035
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 59,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 59,
                                                      "column": 50
                                                    }
                                                  }
                                                }
                                              ],
                                              "range": [
                                                1983,
                                                2053
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 58,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 60,
                                                  "column": 17
                                                }
                                              }
                                            },
                                            "range": [
                                              1855,
                                              2053
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 54,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 60,
                                                "column": 17
                                              }
                                            }
                                          },
                                          {
                                            "type": "IfStatement",
                                            "test": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "subscriber",
                                                "range": [
                                                  2074,
                                                  2084
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 61,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 61,
                                                    "column": 30
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "closed",
                                                "range": [
                                                  2085,
                                                  2091
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 61,
                                                    "column": 31
                                                  },
                                                  "end": {
                                                    "line": 61,
                                                    "column": 37
                                                  }
                                                }
                                              },
                                              "range": [
                                                2074,
                                                2091
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 61,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 61,
                                                  "column": 37
                                                }
                                              }
                                            },
                                            "consequent": {
                                              "type": "BlockStatement",
                                              "body": [
                                                {
                                                  "type": "IfStatement",
                                                  "test": {
                                                    "type": "BinaryExpression",
                                                    "operator": "===",
                                                    "left": {
                                                      "type": "UnaryExpression",
                                                      "operator": "typeof",
                                                      "argument": {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "iterator",
                                                          "range": [
                                                            2126,
                                                            2134
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 62,
                                                              "column": 31
                                                            },
                                                            "end": {
                                                              "line": 62,
                                                              "column": 39
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "return",
                                                          "range": [
                                                            2135,
                                                            2141
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 62,
                                                              "column": 40
                                                            },
                                                            "end": {
                                                              "line": 62,
                                                              "column": 46
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          2126,
                                                          2141
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 62,
                                                            "column": 31
                                                          },
                                                          "end": {
                                                            "line": 62,
                                                            "column": 46
                                                          }
                                                        }
                                                      },
                                                      "prefix": true,
                                                      "range": [
                                                        2119,
                                                        2141
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 62,
                                                          "column": 24
                                                        },
                                                        "end": {
                                                          "line": 62,
                                                          "column": 46
                                                        }
                                                      }
                                                    },
                                                    "right": {
                                                      "type": "Literal",
                                                      "value": "function",
                                                      "raw": "'function'",
                                                      "range": [
                                                        2146,
                                                        2156
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 62,
                                                          "column": 51
                                                        },
                                                        "end": {
                                                          "line": 62,
                                                          "column": 61
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      2119,
                                                      2156
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 62,
                                                        "column": 24
                                                      },
                                                      "end": {
                                                        "line": 62,
                                                        "column": 61
                                                      }
                                                    }
                                                  },
                                                  "consequent": {
                                                    "type": "BlockStatement",
                                                    "body": [
                                                      {
                                                        "type": "ExpressionStatement",
                                                        "expression": {
                                                          "type": "CallExpression",
                                                          "callee": {
                                                            "type": "MemberExpression",
                                                            "computed": false,
                                                            "object": {
                                                              "type": "Identifier",
                                                              "name": "iterator",
                                                              "range": [
                                                                2184,
                                                                2192
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 63,
                                                                  "column": 24
                                                                },
                                                                "end": {
                                                                  "line": 63,
                                                                  "column": 32
                                                                }
                                                              }
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "name": "return",
                                                              "range": [
                                                                2193,
                                                                2199
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 63,
                                                                  "column": 33
                                                                },
                                                                "end": {
                                                                  "line": 63,
                                                                  "column": 39
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              2184,
                                                              2199
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 63,
                                                                "column": 24
                                                              },
                                                              "end": {
                                                                "line": 63,
                                                                "column": 39
                                                              }
                                                            }
                                                          },
                                                          "arguments": [],
                                                          "range": [
                                                            2184,
                                                            2201
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 63,
                                                              "column": 24
                                                            },
                                                            "end": {
                                                              "line": 63,
                                                              "column": 41
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          2184,
                                                          2202
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 63,
                                                            "column": 24
                                                          },
                                                          "end": {
                                                            "line": 63,
                                                            "column": 42
                                                          }
                                                        }
                                                      }
                                                    ],
                                                    "range": [
                                                      2158,
                                                      2224
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 62,
                                                        "column": 63
                                                      },
                                                      "end": {
                                                        "line": 64,
                                                        "column": 21
                                                      }
                                                    }
                                                  },
                                                  "alternate": null,
                                                  "range": [
                                                    2115,
                                                    2224
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 62,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 64,
                                                      "column": 21
                                                    }
                                                  }
                                                },
                                                {
                                                  "type": "BreakStatement",
                                                  "label": null,
                                                  "range": [
                                                    2245,
                                                    2251
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 65,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 65,
                                                      "column": 26
                                                    }
                                                  }
                                                }
                                              ],
                                              "range": [
                                                2093,
                                                2269
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 61,
                                                  "column": 39
                                                },
                                                "end": {
                                                  "line": 66,
                                                  "column": 17
                                                }
                                              }
                                            },
                                            "alternate": null,
                                            "range": [
                                              2070,
                                              2269
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 61,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 66,
                                                "column": 17
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          1791,
                                          2283
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 52,
                                            "column": 15
                                          },
                                          "end": {
                                            "line": 67,
                                            "column": 13
                                          }
                                        }
                                      },
                                      "test": {
                                        "type": "Literal",
                                        "value": true,
                                        "raw": "true",
                                        "range": [
                                          2291,
                                          2295
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 67,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 67,
                                            "column": 25
                                          }
                                        }
                                      },
                                      "range": [
                                        1788,
                                        2297
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 52,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 27
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    1774,
                                    2307
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 51,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 68,
                                      "column": 9
                                    }
                                  }
                                },
                                "range": [
                                  1573,
                                  2307
                                ],
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 9
                                  }
                                }
                              }
                            ],
                            "range": [
                              1467,
                              2313
                            ],
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 68
                              },
                              "end": {
                                "line": 69,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            1445,
                            2313
                          ],
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 46
                            },
                            "end": {
                              "line": 69,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          1403,
                          2313
                        ],
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 4
                          },
                          "end": {
                            "line": 69,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        1403,
                        2314
                      ],
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 4
                        },
                        "end": {
                          "line": 69,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "IteratorObservable",
                        "range": [
                          2326,
                          2344
                        ],
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 11
                          },
                          "end": {
                            "line": 70,
                            "column": 29
                          }
                        }
                      },
                      "range": [
                        2319,
                        2345
                      ],
                      "loc": {
                        "start": {
                          "line": 70,
                          "column": 4
                        },
                        "end": {
                          "line": 70,
                          "column": 30
                        }
                      }
                    }
                  ],
                  "range": [
                    276,
                    2347
                  ],
                  "loc": {
                    "start": {
                      "line": 9,
                      "column": 51
                    },
                    "end": {
                      "line": 71,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  258,
                  2347
                ],
                "loc": {
                  "start": {
                    "line": 9,
                    "column": 33
                  },
                  "end": {
                    "line": 71,
                    "column": 1
                  }
                }
              },
              "arguments": [
                {
                  "type": "Identifier",
                  "name": "Observable",
                  "range": [
                    2348,
                    2358
                  ],
                  "loc": {
                    "start": {
                      "line": 71,
                      "column": 2
                    },
                    "end": {
                      "line": 71,
                      "column": 12
                    }
                  }
                }
              ],
              "range": [
                258,
                2359
              ],
              "loc": {
                "start": {
                  "line": 9,
                  "column": 33
                },
                "end": {
                  "line": 71,
                  "column": 13
                }
              }
            },
            "range": [
              236,
              2360
            ],
            "loc": {
              "start": {
                "line": 9,
                "column": 11
              },
              "end": {
                "line": 71,
                "column": 14
              }
            }
          }
        ],
        "kind": "var",
        "range": [
          232,
          2361
        ],
        "loc": {
          "start": {
            "line": 9,
            "column": 7
          },
          "end": {
            "line": 71,
            "column": 15
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
            "range": [
              130,
              224
            ],
            "loc": {
              "start": {
                "line": 4,
                "column": 0
              },
              "end": {
                "line": 8,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "range": [
        225,
        2361
      ],
      "loc": {
        "start": {
          "line": 9,
          "column": 0
        },
        "end": {
          "line": 71,
          "column": 15
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
          "range": [
            130,
            224
          ],
          "loc": {
            "start": {
              "line": 4,
              "column": 0
            },
            "end": {
              "line": 8,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "StringIterator",
            "range": [
              2366,
              2380
            ],
            "loc": {
              "start": {
                "line": 72,
                "column": 4
              },
              "end": {
                "line": 72,
                "column": 18
              }
            }
          },
          "init": {
            "type": "CallExpression",
            "callee": {
              "type": "FunctionExpression",
              "id": null,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "FunctionDeclaration",
                    "id": {
                      "type": "Identifier",
                      "name": "StringIterator",
                      "range": [
                        2411,
                        2425
                      ],
                      "loc": {
                        "start": {
                          "line": 73,
                          "column": 13
                        },
                        "end": {
                          "line": 73,
                          "column": 27
                        }
                      }
                    },
                    "params": [
                      {
                        "type": "Identifier",
                        "name": "str",
                        "range": [
                          2426,
                          2429
                        ],
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 28
                          },
                          "end": {
                            "line": 73,
                            "column": 31
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "idx",
                        "range": [
                          2431,
                          2434
                        ],
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 33
                          },
                          "end": {
                            "line": 73,
                            "column": 36
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "len",
                        "range": [
                          2436,
                          2439
                        ],
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 38
                          },
                          "end": {
                            "line": 73,
                            "column": 41
                          }
                        }
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "body": [
                        {
                          "type": "IfStatement",
                          "test": {
                            "type": "BinaryExpression",
                            "operator": "===",
                            "left": {
                              "type": "Identifier",
                              "name": "idx",
                              "range": [
                                2455,
                                2458
                              ],
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 12
                                },
                                "end": {
                                  "line": 74,
                                  "column": 15
                                }
                              }
                            },
                            "right": {
                              "type": "UnaryExpression",
                              "operator": "void",
                              "argument": {
                                "type": "Literal",
                                "value": 0,
                                "raw": "0",
                                "range": [
                                  2468,
                                  2469
                                ],
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 26
                                  }
                                }
                              },
                              "prefix": true,
                              "range": [
                                2463,
                                2469
                              ],
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 20
                                },
                                "end": {
                                  "line": 74,
                                  "column": 26
                                }
                              }
                            },
                            "range": [
                              2455,
                              2469
                            ],
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 12
                              },
                              "end": {
                                "line": 74,
                                "column": 26
                              }
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "idx",
                                    "range": [
                                      2473,
                                      2476
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 33
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": 0,
                                    "raw": "0",
                                    "range": [
                                      2479,
                                      2480
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 37
                                      }
                                    }
                                  },
                                  "range": [
                                    2473,
                                    2480
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 37
                                    }
                                  }
                                },
                                "range": [
                                  2473,
                                  2481
                                ],
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 38
                                  }
                                }
                              }
                            ],
                            "range": [
                              2471,
                              2483
                            ],
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 28
                              },
                              "end": {
                                "line": 74,
                                "column": 40
                              }
                            }
                          },
                          "alternate": null,
                          "range": [
                            2451,
                            2483
                          ],
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 8
                            },
                            "end": {
                              "line": 74,
                              "column": 40
                            }
                          }
                        },
                        {
                          "type": "IfStatement",
                          "test": {
                            "type": "BinaryExpression",
                            "operator": "===",
                            "left": {
                              "type": "Identifier",
                              "name": "len",
                              "range": [
                                2496,
                                2499
                              ],
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 12
                                },
                                "end": {
                                  "line": 75,
                                  "column": 15
                                }
                              }
                            },
                            "right": {
                              "type": "UnaryExpression",
                              "operator": "void",
                              "argument": {
                                "type": "Literal",
                                "value": 0,
                                "raw": "0",
                                "range": [
                                  2509,
                                  2510
                                ],
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 26
                                  }
                                }
                              },
                              "prefix": true,
                              "range": [
                                2504,
                                2510
                              ],
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 20
                                },
                                "end": {
                                  "line": 75,
                                  "column": 26
                                }
                              }
                            },
                            "range": [
                              2496,
                              2510
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 12
                              },
                              "end": {
                                "line": 75,
                                "column": 26
                              }
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "len",
                                    "range": [
                                      2514,
                                      2517
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 33
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "str",
                                      "range": [
                                        2520,
                                        2523
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 39
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "length",
                                      "range": [
                                        2524,
                                        2530
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 46
                                        }
                                      }
                                    },
                                    "range": [
                                      2520,
                                      2530
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 46
                                      }
                                    }
                                  },
                                  "range": [
                                    2514,
                                    2530
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 46
                                    }
                                  }
                                },
                                "range": [
                                  2514,
                                  2531
                                ],
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 47
                                  }
                                }
                              }
                            ],
                            "range": [
                              2512,
                              2533
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 28
                              },
                              "end": {
                                "line": 75,
                                "column": 49
                              }
                            }
                          },
                          "alternate": null,
                          "range": [
                            2492,
                            2533
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 8
                            },
                            "end": {
                              "line": 75,
                              "column": 49
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2542,
                                  2546
                                ],
                                "loc": {
                                  "start": {
                                    "line": 76,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 76,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "str",
                                "range": [
                                  2547,
                                  2550
                                ],
                                "loc": {
                                  "start": {
                                    "line": 76,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 76,
                                    "column": 16
                                  }
                                }
                              },
                              "range": [
                                2542,
                                2550
                              ],
                              "loc": {
                                "start": {
                                  "line": 76,
                                  "column": 8
                                },
                                "end": {
                                  "line": 76,
                                  "column": 16
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "str",
                              "range": [
                                2553,
                                2556
                              ],
                              "loc": {
                                "start": {
                                  "line": 76,
                                  "column": 19
                                },
                                "end": {
                                  "line": 76,
                                  "column": 22
                                }
                              }
                            },
                            "range": [
                              2542,
                              2556
                            ],
                            "loc": {
                              "start": {
                                "line": 76,
                                "column": 8
                              },
                              "end": {
                                "line": 76,
                                "column": 22
                              }
                            }
                          },
                          "range": [
                            2542,
                            2557
                          ],
                          "loc": {
                            "start": {
                              "line": 76,
                              "column": 8
                            },
                            "end": {
                              "line": 76,
                              "column": 23
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2566,
                                  2570
                                ],
                                "loc": {
                                  "start": {
                                    "line": 77,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 77,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "idx",
                                "range": [
                                  2571,
                                  2574
                                ],
                                "loc": {
                                  "start": {
                                    "line": 77,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 77,
                                    "column": 16
                                  }
                                }
                              },
                              "range": [
                                2566,
                                2574
                              ],
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 8
                                },
                                "end": {
                                  "line": 77,
                                  "column": 16
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "idx",
                              "range": [
                                2577,
                                2580
                              ],
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 19
                                },
                                "end": {
                                  "line": 77,
                                  "column": 22
                                }
                              }
                            },
                            "range": [
                              2566,
                              2580
                            ],
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 8
                              },
                              "end": {
                                "line": 77,
                                "column": 22
                              }
                            }
                          },
                          "range": [
                            2566,
                            2581
                          ],
                          "loc": {
                            "start": {
                              "line": 77,
                              "column": 8
                            },
                            "end": {
                              "line": 77,
                              "column": 23
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2590,
                                  2594
                                ],
                                "loc": {
                                  "start": {
                                    "line": 78,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 78,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "len",
                                "range": [
                                  2595,
                                  2598
                                ],
                                "loc": {
                                  "start": {
                                    "line": 78,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 78,
                                    "column": 16
                                  }
                                }
                              },
                              "range": [
                                2590,
                                2598
                              ],
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 8
                                },
                                "end": {
                                  "line": 78,
                                  "column": 16
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "len",
                              "range": [
                                2601,
                                2604
                              ],
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 19
                                },
                                "end": {
                                  "line": 78,
                                  "column": 22
                                }
                              }
                            },
                            "range": [
                              2590,
                              2604
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 8
                              },
                              "end": {
                                "line": 78,
                                "column": 22
                              }
                            }
                          },
                          "range": [
                            2590,
                            2605
                          ],
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 8
                            },
                            "end": {
                              "line": 78,
                              "column": 23
                            }
                          }
                        }
                      ],
                      "range": [
                        2441,
                        2611
                      ],
                      "loc": {
                        "start": {
                          "line": 73,
                          "column": 43
                        },
                        "end": {
                          "line": 79,
                          "column": 5
                        }
                      }
                    },
                    "generator": false,
                    "expression": false,
                    "range": [
                      2402,
                      2611
                    ],
                    "loc": {
                      "start": {
                        "line": 73,
                        "column": 4
                      },
                      "end": {
                        "line": 79,
                        "column": 5
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": true,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "StringIterator",
                            "range": [
                              2616,
                              2630
                            ],
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 4
                              },
                              "end": {
                                "line": 80,
                                "column": 18
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              2631,
                              2640
                            ],
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 19
                              },
                              "end": {
                                "line": 80,
                                "column": 28
                              }
                            }
                          },
                          "range": [
                            2616,
                            2640
                          ],
                          "loc": {
                            "start": {
                              "line": 80,
                              "column": 4
                            },
                            "end": {
                              "line": 80,
                              "column": 28
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "$$iterator",
                          "range": [
                            2641,
                            2651
                          ],
                          "loc": {
                            "start": {
                              "line": 80,
                              "column": 29
                            },
                            "end": {
                              "line": 80,
                              "column": 39
                            }
                          }
                        },
                        "range": [
                          2616,
                          2652
                        ],
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 4
                          },
                          "end": {
                            "line": 80,
                            "column": 40
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "argument": {
                                "type": "ThisExpression",
                                "range": [
                                  2677,
                                  2681
                                ],
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 65
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 69
                                  }
                                }
                              },
                              "range": [
                                2669,
                                2683
                              ],
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 57
                                },
                                "end": {
                                  "line": 80,
                                  "column": 71
                                }
                              }
                            }
                          ],
                          "range": [
                            2667,
                            2685
                          ],
                          "loc": {
                            "start": {
                              "line": 80,
                              "column": 55
                            },
                            "end": {
                              "line": 80,
                              "column": 73
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          2655,
                          2685
                        ],
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 43
                          },
                          "end": {
                            "line": 80,
                            "column": 73
                          }
                        }
                      },
                      "range": [
                        2616,
                        2685
                      ],
                      "loc": {
                        "start": {
                          "line": 80,
                          "column": 4
                        },
                        "end": {
                          "line": 80,
                          "column": 73
                        }
                      }
                    },
                    "range": [
                      2616,
                      2686
                    ],
                    "loc": {
                      "start": {
                        "line": 80,
                        "column": 4
                      },
                      "end": {
                        "line": 80,
                        "column": 74
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "StringIterator",
                            "range": [
                              2691,
                              2705
                            ],
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 4
                              },
                              "end": {
                                "line": 81,
                                "column": 18
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              2706,
                              2715
                            ],
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 19
                              },
                              "end": {
                                "line": 81,
                                "column": 28
                              }
                            }
                          },
                          "range": [
                            2691,
                            2715
                          ],
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 4
                            },
                            "end": {
                              "line": 81,
                              "column": 28
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "next",
                          "range": [
                            2716,
                            2720
                          ],
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 29
                            },
                            "end": {
                              "line": 81,
                              "column": 33
                            }
                          }
                        },
                        "range": [
                          2691,
                          2720
                        ],
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 4
                          },
                          "end": {
                            "line": 81,
                            "column": 33
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "argument": {
                                "type": "ConditionalExpression",
                                "test": {
                                  "type": "BinaryExpression",
                                  "operator": "<",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2752,
                                        2756
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 82,
                                          "column": 15
                                        },
                                        "end": {
                                          "line": 82,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "idx",
                                      "range": [
                                        2757,
                                        2760
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 82,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 82,
                                          "column": 23
                                        }
                                      }
                                    },
                                    "range": [
                                      2752,
                                      2760
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 82,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 82,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2763,
                                        2767
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 82,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 82,
                                          "column": 30
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "len",
                                      "range": [
                                        2768,
                                        2771
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 82,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 82,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "range": [
                                      2763,
                                      2771
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 82,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 82,
                                        "column": 34
                                      }
                                    }
                                  },
                                  "range": [
                                    2752,
                                    2771
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 82,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 82,
                                      "column": 34
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "ObjectExpression",
                                  "properties": [
                                    {
                                      "type": "Property",
                                      "key": {
                                        "type": "Identifier",
                                        "name": "done",
                                        "range": [
                                          2788,
                                          2792
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 83,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 83,
                                            "column": 16
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "Literal",
                                        "value": false,
                                        "raw": "false",
                                        "range": [
                                          2794,
                                          2799
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 83,
                                            "column": 18
                                          },
                                          "end": {
                                            "line": 83,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "kind": "init",
                                      "method": false,
                                      "shorthand": false,
                                      "computed": false,
                                      "range": [
                                        2788,
                                        2799
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 83,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 83,
                                          "column": 23
                                        }
                                      }
                                    },
                                    {
                                      "type": "Property",
                                      "key": {
                                        "type": "Identifier",
                                        "name": "value",
                                        "range": [
                                          2813,
                                          2818
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 84,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 84,
                                            "column": 17
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                2820,
                                                2824
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 84,
                                                  "column": 19
                                                },
                                                "end": {
                                                  "line": 84,
                                                  "column": 23
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "str",
                                              "range": [
                                                2825,
                                                2828
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 84,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 84,
                                                  "column": 27
                                                }
                                              }
                                            },
                                            "range": [
                                              2820,
                                              2828
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 84,
                                                "column": 19
                                              },
                                              "end": {
                                                "line": 84,
                                                "column": 27
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "charAt",
                                            "range": [
                                              2829,
                                              2835
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 84,
                                                "column": 28
                                              },
                                              "end": {
                                                "line": 84,
                                                "column": 34
                                              }
                                            }
                                          },
                                          "range": [
                                            2820,
                                            2835
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 84,
                                              "column": 19
                                            },
                                            "end": {
                                              "line": 84,
                                              "column": 34
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "UpdateExpression",
                                            "operator": "++",
                                            "argument": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "ThisExpression",
                                                "range": [
                                                  2836,
                                                  2840
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 84,
                                                    "column": 35
                                                  },
                                                  "end": {
                                                    "line": 84,
                                                    "column": 39
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "idx",
                                                "range": [
                                                  2841,
                                                  2844
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 84,
                                                    "column": 40
                                                  },
                                                  "end": {
                                                    "line": 84,
                                                    "column": 43
                                                  }
                                                }
                                              },
                                              "range": [
                                                2836,
                                                2844
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 84,
                                                  "column": 35
                                                },
                                                "end": {
                                                  "line": 84,
                                                  "column": 43
                                                }
                                              }
                                            },
                                            "prefix": false,
                                            "range": [
                                              2836,
                                              2846
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 84,
                                                "column": 35
                                              },
                                              "end": {
                                                "line": 84,
                                                "column": 45
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          2820,
                                          2847
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 84,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 84,
                                            "column": 46
                                          }
                                        }
                                      },
                                      "kind": "init",
                                      "method": false,
                                      "shorthand": false,
                                      "computed": false,
                                      "range": [
                                        2813,
                                        2847
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 84,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 84,
                                          "column": 46
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2774,
                                    2857
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 82,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 85,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": {
                                  "type": "ObjectExpression",
                                  "properties": [
                                    {
                                      "type": "Property",
                                      "key": {
                                        "type": "Identifier",
                                        "name": "done",
                                        "range": [
                                          2874,
                                          2878
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 86,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 86,
                                            "column": 16
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "Literal",
                                        "value": true,
                                        "raw": "true",
                                        "range": [
                                          2880,
                                          2884
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 86,
                                            "column": 18
                                          },
                                          "end": {
                                            "line": 86,
                                            "column": 22
                                          }
                                        }
                                      },
                                      "kind": "init",
                                      "method": false,
                                      "shorthand": false,
                                      "computed": false,
                                      "range": [
                                        2874,
                                        2884
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 22
                                        }
                                      }
                                    },
                                    {
                                      "type": "Property",
                                      "key": {
                                        "type": "Identifier",
                                        "name": "value",
                                        "range": [
                                          2898,
                                          2903
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 87,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 87,
                                            "column": 17
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "Identifier",
                                        "name": "undefined",
                                        "range": [
                                          2905,
                                          2914
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 87,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 87,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "kind": "init",
                                      "method": false,
                                      "shorthand": false,
                                      "computed": false,
                                      "range": [
                                        2898,
                                        2914
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 87,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 87,
                                          "column": 28
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2860,
                                    2924
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 85,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 9
                                    }
                                  }
                                },
                                "range": [
                                  2752,
                                  2924
                                ],
                                "loc": {
                                  "start": {
                                    "line": 82,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 9
                                  }
                                }
                              },
                              "range": [
                                2745,
                                2925
                              ],
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 8
                                },
                                "end": {
                                  "line": 88,
                                  "column": 10
                                }
                              }
                            }
                          ],
                          "range": [
                            2735,
                            2931
                          ],
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 48
                            },
                            "end": {
                              "line": 89,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          2723,
                          2931
                        ],
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 36
                          },
                          "end": {
                            "line": 89,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2691,
                        2931
                      ],
                      "loc": {
                        "start": {
                          "line": 81,
                          "column": 4
                        },
                        "end": {
                          "line": 89,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      2691,
                      2932
                    ],
                    "loc": {
                      "start": {
                        "line": 81,
                        "column": 4
                      },
                      "end": {
                        "line": 89,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "Identifier",
                      "name": "StringIterator",
                      "range": [
                        2944,
                        2958
                      ],
                      "loc": {
                        "start": {
                          "line": 90,
                          "column": 11
                        },
                        "end": {
                          "line": 90,
                          "column": 25
                        }
                      }
                    },
                    "range": [
                      2937,
                      2959
                    ],
                    "loc": {
                      "start": {
                        "line": 90,
                        "column": 4
                      },
                      "end": {
                        "line": 90,
                        "column": 26
                      }
                    }
                  }
                ],
                "range": [
                  2396,
                  2961
                ],
                "loc": {
                  "start": {
                    "line": 72,
                    "column": 34
                  },
                  "end": {
                    "line": 91,
                    "column": 1
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                2384,
                2961
              ],
              "loc": {
                "start": {
                  "line": 72,
                  "column": 22
                },
                "end": {
                  "line": 91,
                  "column": 1
                }
              }
            },
            "arguments": [],
            "range": [
              2384,
              2963
            ],
            "loc": {
              "start": {
                "line": 72,
                "column": 22
              },
              "end": {
                "line": 91,
                "column": 3
              }
            }
          },
          "range": [
            2366,
            2964
          ],
          "loc": {
            "start": {
              "line": 72,
              "column": 4
            },
            "end": {
              "line": 91,
              "column": 4
            }
          }
        }
      ],
      "kind": "var",
      "range": [
        2362,
        2965
      ],
      "loc": {
        "start": {
          "line": 72,
          "column": 0
        },
        "end": {
          "line": 91,
          "column": 5
        }
      }
    },
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "ArrayIterator",
            "range": [
              2970,
              2983
            ],
            "loc": {
              "start": {
                "line": 92,
                "column": 4
              },
              "end": {
                "line": 92,
                "column": 17
              }
            }
          },
          "init": {
            "type": "CallExpression",
            "callee": {
              "type": "FunctionExpression",
              "id": null,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "FunctionDeclaration",
                    "id": {
                      "type": "Identifier",
                      "name": "ArrayIterator",
                      "range": [
                        3014,
                        3027
                      ],
                      "loc": {
                        "start": {
                          "line": 93,
                          "column": 13
                        },
                        "end": {
                          "line": 93,
                          "column": 26
                        }
                      }
                    },
                    "params": [
                      {
                        "type": "Identifier",
                        "name": "arr",
                        "range": [
                          3028,
                          3031
                        ],
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 27
                          },
                          "end": {
                            "line": 93,
                            "column": 30
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "idx",
                        "range": [
                          3033,
                          3036
                        ],
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 32
                          },
                          "end": {
                            "line": 93,
                            "column": 35
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "len",
                        "range": [
                          3038,
                          3041
                        ],
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 37
                          },
                          "end": {
                            "line": 93,
                            "column": 40
                          }
                        }
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "body": [
                        {
                          "type": "IfStatement",
                          "test": {
                            "type": "BinaryExpression",
                            "operator": "===",
                            "left": {
                              "type": "Identifier",
                              "name": "idx",
                              "range": [
                                3057,
                                3060
                              ],
                              "loc": {
                                "start": {
                                  "line": 94,
                                  "column": 12
                                },
                                "end": {
                                  "line": 94,
                                  "column": 15
                                }
                              }
                            },
                            "right": {
                              "type": "UnaryExpression",
                              "operator": "void",
                              "argument": {
                                "type": "Literal",
                                "value": 0,
                                "raw": "0",
                                "range": [
                                  3070,
                                  3071
                                ],
                                "loc": {
                                  "start": {
                                    "line": 94,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 94,
                                    "column": 26
                                  }
                                }
                              },
                              "prefix": true,
                              "range": [
                                3065,
                                3071
                              ],
                              "loc": {
                                "start": {
                                  "line": 94,
                                  "column": 20
                                },
                                "end": {
                                  "line": 94,
                                  "column": 26
                                }
                              }
                            },
                            "range": [
                              3057,
                              3071
                            ],
                            "loc": {
                              "start": {
                                "line": 94,
                                "column": 12
                              },
                              "end": {
                                "line": 94,
                                "column": 26
                              }
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "idx",
                                    "range": [
                                      3075,
                                      3078
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 94,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 94,
                                        "column": 33
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Literal",
                                    "value": 0,
                                    "raw": "0",
                                    "range": [
                                      3081,
                                      3082
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 94,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 94,
                                        "column": 37
                                      }
                                    }
                                  },
                                  "range": [
                                    3075,
                                    3082
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 94,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 94,
                                      "column": 37
                                    }
                                  }
                                },
                                "range": [
                                  3075,
                                  3083
                                ],
                                "loc": {
                                  "start": {
                                    "line": 94,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 94,
                                    "column": 38
                                  }
                                }
                              }
                            ],
                            "range": [
                              3073,
                              3085
                            ],
                            "loc": {
                              "start": {
                                "line": 94,
                                "column": 28
                              },
                              "end": {
                                "line": 94,
                                "column": 40
                              }
                            }
                          },
                          "alternate": null,
                          "range": [
                            3053,
                            3085
                          ],
                          "loc": {
                            "start": {
                              "line": 94,
                              "column": 8
                            },
                            "end": {
                              "line": 94,
                              "column": 40
                            }
                          }
                        },
                        {
                          "type": "IfStatement",
                          "test": {
                            "type": "BinaryExpression",
                            "operator": "===",
                            "left": {
                              "type": "Identifier",
                              "name": "len",
                              "range": [
                                3098,
                                3101
                              ],
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 12
                                },
                                "end": {
                                  "line": 95,
                                  "column": 15
                                }
                              }
                            },
                            "right": {
                              "type": "UnaryExpression",
                              "operator": "void",
                              "argument": {
                                "type": "Literal",
                                "value": 0,
                                "raw": "0",
                                "range": [
                                  3111,
                                  3112
                                ],
                                "loc": {
                                  "start": {
                                    "line": 95,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 95,
                                    "column": 26
                                  }
                                }
                              },
                              "prefix": true,
                              "range": [
                                3106,
                                3112
                              ],
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 20
                                },
                                "end": {
                                  "line": 95,
                                  "column": 26
                                }
                              }
                            },
                            "range": [
                              3098,
                              3112
                            ],
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 12
                              },
                              "end": {
                                "line": 95,
                                "column": 26
                              }
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "len",
                                    "range": [
                                      3116,
                                      3119
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 33
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "Identifier",
                                      "name": "toLength",
                                      "range": [
                                        3122,
                                        3130
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 95,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 95,
                                          "column": 44
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "name": "arr",
                                        "range": [
                                          3131,
                                          3134
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 95,
                                            "column": 45
                                          },
                                          "end": {
                                            "line": 95,
                                            "column": 48
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      3122,
                                      3135
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 49
                                      }
                                    }
                                  },
                                  "range": [
                                    3116,
                                    3135
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 95,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 95,
                                      "column": 49
                                    }
                                  }
                                },
                                "range": [
                                  3116,
                                  3136
                                ],
                                "loc": {
                                  "start": {
                                    "line": 95,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 95,
                                    "column": 50
                                  }
                                }
                              }
                            ],
                            "range": [
                              3114,
                              3138
                            ],
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 28
                              },
                              "end": {
                                "line": 95,
                                "column": 52
                              }
                            }
                          },
                          "alternate": null,
                          "range": [
                            3094,
                            3138
                          ],
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 8
                            },
                            "end": {
                              "line": 95,
                              "column": 52
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  3147,
                                  3151
                                ],
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "arr",
                                "range": [
                                  3152,
                                  3155
                                ],
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 16
                                  }
                                }
                              },
                              "range": [
                                3147,
                                3155
                              ],
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 8
                                },
                                "end": {
                                  "line": 96,
                                  "column": 16
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "arr",
                              "range": [
                                3158,
                                3161
                              ],
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 19
                                },
                                "end": {
                                  "line": 96,
                                  "column": 22
                                }
                              }
                            },
                            "range": [
                              3147,
                              3161
                            ],
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 8
                              },
                              "end": {
                                "line": 96,
                                "column": 22
                              }
                            }
                          },
                          "range": [
                            3147,
                            3162
                          ],
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 8
                            },
                            "end": {
                              "line": 96,
                              "column": 23
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  3171,
                                  3175
                                ],
                                "loc": {
                                  "start": {
                                    "line": 97,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 97,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "idx",
                                "range": [
                                  3176,
                                  3179
                                ],
                                "loc": {
                                  "start": {
                                    "line": 97,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 97,
                                    "column": 16
                                  }
                                }
                              },
                              "range": [
                                3171,
                                3179
                              ],
                              "loc": {
                                "start": {
                                  "line": 97,
                                  "column": 8
                                },
                                "end": {
                                  "line": 97,
                                  "column": 16
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "idx",
                              "range": [
                                3182,
                                3185
                              ],
                              "loc": {
                                "start": {
                                  "line": 97,
                                  "column": 19
                                },
                                "end": {
                                  "line": 97,
                                  "column": 22
                                }
                              }
                            },
                            "range": [
                              3171,
                              3185
                            ],
                            "loc": {
                              "start": {
                                "line": 97,
                                "column": 8
                              },
                              "end": {
                                "line": 97,
                                "column": 22
                              }
                            }
                          },
                          "range": [
                            3171,
                            3186
                          ],
                          "loc": {
                            "start": {
                              "line": 97,
                              "column": 8
                            },
                            "end": {
                              "line": 97,
                              "column": 23
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  3195,
                                  3199
                                ],
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "len",
                                "range": [
                                  3200,
                                  3203
                                ],
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 16
                                  }
                                }
                              },
                              "range": [
                                3195,
                                3203
                              ],
                              "loc": {
                                "start": {
                                  "line": 98,
                                  "column": 8
                                },
                                "end": {
                                  "line": 98,
                                  "column": 16
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "len",
                              "range": [
                                3206,
                                3209
                              ],
                              "loc": {
                                "start": {
                                  "line": 98,
                                  "column": 19
                                },
                                "end": {
                                  "line": 98,
                                  "column": 22
                                }
                              }
                            },
                            "range": [
                              3195,
                              3209
                            ],
                            "loc": {
                              "start": {
                                "line": 98,
                                "column": 8
                              },
                              "end": {
                                "line": 98,
                                "column": 22
                              }
                            }
                          },
                          "range": [
                            3195,
                            3210
                          ],
                          "loc": {
                            "start": {
                              "line": 98,
                              "column": 8
                            },
                            "end": {
                              "line": 98,
                              "column": 23
                            }
                          }
                        }
                      ],
                      "range": [
                        3043,
                        3216
                      ],
                      "loc": {
                        "start": {
                          "line": 93,
                          "column": 42
                        },
                        "end": {
                          "line": 99,
                          "column": 5
                        }
                      }
                    },
                    "generator": false,
                    "expression": false,
                    "range": [
                      3005,
                      3216
                    ],
                    "loc": {
                      "start": {
                        "line": 93,
                        "column": 4
                      },
                      "end": {
                        "line": 99,
                        "column": 5
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": true,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "ArrayIterator",
                            "range": [
                              3221,
                              3234
                            ],
                            "loc": {
                              "start": {
                                "line": 100,
                                "column": 4
                              },
                              "end": {
                                "line": 100,
                                "column": 17
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              3235,
                              3244
                            ],
                            "loc": {
                              "start": {
                                "line": 100,
                                "column": 18
                              },
                              "end": {
                                "line": 100,
                                "column": 27
                              }
                            }
                          },
                          "range": [
                            3221,
                            3244
                          ],
                          "loc": {
                            "start": {
                              "line": 100,
                              "column": 4
                            },
                            "end": {
                              "line": 100,
                              "column": 27
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "$$iterator",
                          "range": [
                            3245,
                            3255
                          ],
                          "loc": {
                            "start": {
                              "line": 100,
                              "column": 28
                            },
                            "end": {
                              "line": 100,
                              "column": 38
                            }
                          }
                        },
                        "range": [
                          3221,
                          3256
                        ],
                        "loc": {
                          "start": {
                            "line": 100,
                            "column": 4
                          },
                          "end": {
                            "line": 100,
                            "column": 39
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "argument": {
                                "type": "ThisExpression",
                                "range": [
                                  3280,
                                  3284
                                ],
                                "loc": {
                                  "start": {
                                    "line": 100,
                                    "column": 63
                                  },
                                  "end": {
                                    "line": 100,
                                    "column": 67
                                  }
                                }
                              },
                              "range": [
                                3273,
                                3285
                              ],
                              "loc": {
                                "start": {
                                  "line": 100,
                                  "column": 56
                                },
                                "end": {
                                  "line": 100,
                                  "column": 68
                                }
                              }
                            }
                          ],
                          "range": [
                            3271,
                            3287
                          ],
                          "loc": {
                            "start": {
                              "line": 100,
                              "column": 54
                            },
                            "end": {
                              "line": 100,
                              "column": 70
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3259,
                          3287
                        ],
                        "loc": {
                          "start": {
                            "line": 100,
                            "column": 42
                          },
                          "end": {
                            "line": 100,
                            "column": 70
                          }
                        }
                      },
                      "range": [
                        3221,
                        3287
                      ],
                      "loc": {
                        "start": {
                          "line": 100,
                          "column": 4
                        },
                        "end": {
                          "line": 100,
                          "column": 70
                        }
                      }
                    },
                    "range": [
                      3221,
                      3288
                    ],
                    "loc": {
                      "start": {
                        "line": 100,
                        "column": 4
                      },
                      "end": {
                        "line": 100,
                        "column": 71
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "ArrayIterator",
                            "range": [
                              3293,
                              3306
                            ],
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 4
                              },
                              "end": {
                                "line": 101,
                                "column": 17
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              3307,
                              3316
                            ],
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 18
                              },
                              "end": {
                                "line": 101,
                                "column": 27
                              }
                            }
                          },
                          "range": [
                            3293,
                            3316
                          ],
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 4
                            },
                            "end": {
                              "line": 101,
                              "column": 27
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "next",
                          "range": [
                            3317,
                            3321
                          ],
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 28
                            },
                            "end": {
                              "line": 101,
                              "column": 32
                            }
                          }
                        },
                        "range": [
                          3293,
                          3321
                        ],
                        "loc": {
                          "start": {
                            "line": 101,
                            "column": 4
                          },
                          "end": {
                            "line": 101,
                            "column": 32
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "argument": {
                                "type": "ConditionalExpression",
                                "test": {
                                  "type": "BinaryExpression",
                                  "operator": "<",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3353,
                                        3357
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 15
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "idx",
                                      "range": [
                                        3358,
                                        3361
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 23
                                        }
                                      }
                                    },
                                    "range": [
                                      3353,
                                      3361
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 102,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 102,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3364,
                                        3368
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 30
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "len",
                                      "range": [
                                        3369,
                                        3372
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "range": [
                                      3364,
                                      3372
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 102,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 102,
                                        "column": 34
                                      }
                                    }
                                  },
                                  "range": [
                                    3353,
                                    3372
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 102,
                                      "column": 34
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "ObjectExpression",
                                  "properties": [
                                    {
                                      "type": "Property",
                                      "key": {
                                        "type": "Identifier",
                                        "name": "done",
                                        "range": [
                                          3389,
                                          3393
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 103,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 103,
                                            "column": 16
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "Literal",
                                        "value": false,
                                        "raw": "false",
                                        "range": [
                                          3395,
                                          3400
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 103,
                                            "column": 18
                                          },
                                          "end": {
                                            "line": 103,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "kind": "init",
                                      "method": false,
                                      "shorthand": false,
                                      "computed": false,
                                      "range": [
                                        3389,
                                        3400
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 23
                                        }
                                      }
                                    },
                                    {
                                      "type": "Property",
                                      "key": {
                                        "type": "Identifier",
                                        "name": "value",
                                        "range": [
                                          3414,
                                          3419
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 104,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 104,
                                            "column": 17
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "MemberExpression",
                                        "computed": true,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              3421,
                                              3425
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 104,
                                                "column": 19
                                              },
                                              "end": {
                                                "line": 104,
                                                "column": 23
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "arr",
                                            "range": [
                                              3426,
                                              3429
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 104,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 104,
                                                "column": 27
                                              }
                                            }
                                          },
                                          "range": [
                                            3421,
                                            3429
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 104,
                                              "column": 19
                                            },
                                            "end": {
                                              "line": 104,
                                              "column": 27
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "UpdateExpression",
                                          "operator": "++",
                                          "argument": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                3430,
                                                3434
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 104,
                                                  "column": 28
                                                },
                                                "end": {
                                                  "line": 104,
                                                  "column": 32
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "idx",
                                              "range": [
                                                3435,
                                                3438
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 104,
                                                  "column": 33
                                                },
                                                "end": {
                                                  "line": 104,
                                                  "column": 36
                                                }
                                              }
                                            },
                                            "range": [
                                              3430,
                                              3438
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 104,
                                                "column": 28
                                              },
                                              "end": {
                                                "line": 104,
                                                "column": 36
                                              }
                                            }
                                          },
                                          "prefix": false,
                                          "range": [
                                            3430,
                                            3440
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 104,
                                              "column": 28
                                            },
                                            "end": {
                                              "line": 104,
                                              "column": 38
                                            }
                                          }
                                        },
                                        "range": [
                                          3421,
                                          3441
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 104,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 104,
                                            "column": 39
                                          }
                                        }
                                      },
                                      "kind": "init",
                                      "method": false,
                                      "shorthand": false,
                                      "computed": false,
                                      "range": [
                                        3414,
                                        3441
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 104,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 104,
                                          "column": 39
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3375,
                                    3451
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 105,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": {
                                  "type": "ObjectExpression",
                                  "properties": [
                                    {
                                      "type": "Property",
                                      "key": {
                                        "type": "Identifier",
                                        "name": "done",
                                        "range": [
                                          3468,
                                          3472
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 106,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 106,
                                            "column": 16
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "Literal",
                                        "value": true,
                                        "raw": "true",
                                        "range": [
                                          3474,
                                          3478
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 106,
                                            "column": 18
                                          },
                                          "end": {
                                            "line": 106,
                                            "column": 22
                                          }
                                        }
                                      },
                                      "kind": "init",
                                      "method": false,
                                      "shorthand": false,
                                      "computed": false,
                                      "range": [
                                        3468,
                                        3478
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 106,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 106,
                                          "column": 22
                                        }
                                      }
                                    },
                                    {
                                      "type": "Property",
                                      "key": {
                                        "type": "Identifier",
                                        "name": "value",
                                        "range": [
                                          3492,
                                          3497
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 107,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 107,
                                            "column": 17
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "Identifier",
                                        "name": "undefined",
                                        "range": [
                                          3499,
                                          3508
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 107,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 107,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "kind": "init",
                                      "method": false,
                                      "shorthand": false,
                                      "computed": false,
                                      "range": [
                                        3492,
                                        3508
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 107,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 107,
                                          "column": 28
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3454,
                                    3518
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 105,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 108,
                                      "column": 9
                                    }
                                  }
                                },
                                "range": [
                                  3353,
                                  3518
                                ],
                                "loc": {
                                  "start": {
                                    "line": 102,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 108,
                                    "column": 9
                                  }
                                }
                              },
                              "range": [
                                3346,
                                3519
                              ],
                              "loc": {
                                "start": {
                                  "line": 102,
                                  "column": 8
                                },
                                "end": {
                                  "line": 108,
                                  "column": 10
                                }
                              }
                            }
                          ],
                          "range": [
                            3336,
                            3525
                          ],
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 47
                            },
                            "end": {
                              "line": 109,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3324,
                          3525
                        ],
                        "loc": {
                          "start": {
                            "line": 101,
                            "column": 35
                          },
                          "end": {
                            "line": 109,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3293,
                        3525
                      ],
                      "loc": {
                        "start": {
                          "line": 101,
                          "column": 4
                        },
                        "end": {
                          "line": 109,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      3293,
                      3526
                    ],
                    "loc": {
                      "start": {
                        "line": 101,
                        "column": 4
                      },
                      "end": {
                        "line": 109,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "Identifier",
                      "name": "ArrayIterator",
                      "range": [
                        3538,
                        3551
                      ],
                      "loc": {
                        "start": {
                          "line": 110,
                          "column": 11
                        },
                        "end": {
                          "line": 110,
                          "column": 24
                        }
                      }
                    },
                    "range": [
                      3531,
                      3552
                    ],
                    "loc": {
                      "start": {
                        "line": 110,
                        "column": 4
                      },
                      "end": {
                        "line": 110,
                        "column": 25
                      }
                    }
                  }
                ],
                "range": [
                  2999,
                  3554
                ],
                "loc": {
                  "start": {
                    "line": 92,
                    "column": 33
                  },
                  "end": {
                    "line": 111,
                    "column": 1
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                2987,
                3554
              ],
              "loc": {
                "start": {
                  "line": 92,
                  "column": 21
                },
                "end": {
                  "line": 111,
                  "column": 1
                }
              }
            },
            "arguments": [],
            "range": [
              2987,
              3556
            ],
            "loc": {
              "start": {
                "line": 92,
                "column": 21
              },
              "end": {
                "line": 111,
                "column": 3
              }
            }
          },
          "range": [
            2970,
            3557
          ],
          "loc": {
            "start": {
              "line": 92,
              "column": 4
            },
            "end": {
              "line": 111,
              "column": 4
            }
          }
        }
      ],
      "kind": "var",
      "range": [
        2966,
        3558
      ],
      "loc": {
        "start": {
          "line": 92,
          "column": 0
        },
        "end": {
          "line": 111,
          "column": 5
        }
      }
    },
    {
      "type": "FunctionDeclaration",
      "id": {
        "type": "Identifier",
        "name": "getIterator",
        "range": [
          3568,
          3579
        ],
        "loc": {
          "start": {
            "line": 112,
            "column": 9
          },
          "end": {
            "line": 112,
            "column": 20
          }
        }
      },
      "params": [
        {
          "type": "Identifier",
          "name": "obj",
          "range": [
            3580,
            3583
          ],
          "loc": {
            "start": {
              "line": 112,
              "column": 21
            },
            "end": {
              "line": 112,
              "column": 24
            }
          }
        }
      ],
      "body": {
        "type": "BlockStatement",
        "body": [
          {
            "type": "VariableDeclaration",
            "declarations": [
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "i",
                  "range": [
                    3595,
                    3596
                  ],
                  "loc": {
                    "start": {
                      "line": 113,
                      "column": 8
                    },
                    "end": {
                      "line": 113,
                      "column": 9
                    }
                  }
                },
                "init": {
                  "type": "MemberExpression",
                  "computed": true,
                  "object": {
                    "type": "Identifier",
                    "name": "obj",
                    "range": [
                      3599,
                      3602
                    ],
                    "loc": {
                      "start": {
                        "line": 113,
                        "column": 12
                      },
                      "end": {
                        "line": 113,
                        "column": 15
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "$$iterator",
                    "range": [
                      3603,
                      3613
                    ],
                    "loc": {
                      "start": {
                        "line": 113,
                        "column": 16
                      },
                      "end": {
                        "line": 113,
                        "column": 26
                      }
                    }
                  },
                  "range": [
                    3599,
                    3614
                  ],
                  "loc": {
                    "start": {
                      "line": 113,
                      "column": 12
                    },
                    "end": {
                      "line": 113,
                      "column": 27
                    }
                  }
                },
                "range": [
                  3595,
                  3614
                ],
                "loc": {
                  "start": {
                    "line": 113,
                    "column": 8
                  },
                  "end": {
                    "line": 113,
                    "column": 27
                  }
                }
              }
            ],
            "kind": "var",
            "range": [
              3591,
              3615
            ],
            "loc": {
              "start": {
                "line": 113,
                "column": 4
              },
              "end": {
                "line": 113,
                "column": 28
              }
            }
          },
          {
            "type": "IfStatement",
            "test": {
              "type": "LogicalExpression",
              "operator": "&&",
              "left": {
                "type": "UnaryExpression",
                "operator": "!",
                "argument": {
                  "type": "Identifier",
                  "name": "i",
                  "range": [
                    3625,
                    3626
                  ],
                  "loc": {
                    "start": {
                      "line": 114,
                      "column": 9
                    },
                    "end": {
                      "line": 114,
                      "column": 10
                    }
                  }
                },
                "prefix": true,
                "range": [
                  3624,
                  3626
                ],
                "loc": {
                  "start": {
                    "line": 114,
                    "column": 8
                  },
                  "end": {
                    "line": 114,
                    "column": 10
                  }
                }
              },
              "right": {
                "type": "BinaryExpression",
                "operator": "===",
                "left": {
                  "type": "UnaryExpression",
                  "operator": "typeof",
                  "argument": {
                    "type": "Identifier",
                    "name": "obj",
                    "range": [
                      3637,
                      3640
                    ],
                    "loc": {
                      "start": {
                        "line": 114,
                        "column": 21
                      },
                      "end": {
                        "line": 114,
                        "column": 24
                      }
                    }
                  },
                  "prefix": true,
                  "range": [
                    3630,
                    3640
                  ],
                  "loc": {
                    "start": {
                      "line": 114,
                      "column": 14
                    },
                    "end": {
                      "line": 114,
                      "column": 24
                    }
                  }
                },
                "right": {
                  "type": "Literal",
                  "value": "string",
                  "raw": "'string'",
                  "range": [
                    3645,
                    3653
                  ],
                  "loc": {
                    "start": {
                      "line": 114,
                      "column": 29
                    },
                    "end": {
                      "line": 114,
                      "column": 37
                    }
                  }
                },
                "range": [
                  3630,
                  3653
                ],
                "loc": {
                  "start": {
                    "line": 114,
                    "column": 14
                  },
                  "end": {
                    "line": 114,
                    "column": 37
                  }
                }
              },
              "range": [
                3624,
                3653
              ],
              "loc": {
                "start": {
                  "line": 114,
                  "column": 8
                },
                "end": {
                  "line": 114,
                  "column": 37
                }
              }
            },
            "consequent": {
              "type": "BlockStatement",
              "body": [
                {
                  "type": "ReturnStatement",
                  "argument": {
                    "type": "NewExpression",
                    "callee": {
                      "type": "Identifier",
                      "name": "StringIterator",
                      "range": [
                        3676,
                        3690
                      ],
                      "loc": {
                        "start": {
                          "line": 115,
                          "column": 19
                        },
                        "end": {
                          "line": 115,
                          "column": 33
                        }
                      }
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "name": "obj",
                        "range": [
                          3691,
                          3694
                        ],
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 34
                          },
                          "end": {
                            "line": 115,
                            "column": 37
                          }
                        }
                      }
                    ],
                    "range": [
                      3672,
                      3695
                    ],
                    "loc": {
                      "start": {
                        "line": 115,
                        "column": 15
                      },
                      "end": {
                        "line": 115,
                        "column": 38
                      }
                    }
                  },
                  "range": [
                    3665,
                    3696
                  ],
                  "loc": {
                    "start": {
                      "line": 115,
                      "column": 8
                    },
                    "end": {
                      "line": 115,
                      "column": 39
                    }
                  }
                }
              ],
              "range": [
                3655,
                3702
              ],
              "loc": {
                "start": {
                  "line": 114,
                  "column": 39
                },
                "end": {
                  "line": 116,
                  "column": 5
                }
              }
            },
            "alternate": null,
            "range": [
              3620,
              3702
            ],
            "loc": {
              "start": {
                "line": 114,
                "column": 4
              },
              "end": {
                "line": 116,
                "column": 5
              }
            }
          },
          {
            "type": "IfStatement",
            "test": {
              "type": "LogicalExpression",
              "operator": "&&",
              "left": {
                "type": "UnaryExpression",
                "operator": "!",
                "argument": {
                  "type": "Identifier",
                  "name": "i",
                  "range": [
                    3712,
                    3713
                  ],
                  "loc": {
                    "start": {
                      "line": 117,
                      "column": 9
                    },
                    "end": {
                      "line": 117,
                      "column": 10
                    }
                  }
                },
                "prefix": true,
                "range": [
                  3711,
                  3713
                ],
                "loc": {
                  "start": {
                    "line": 117,
                    "column": 8
                  },
                  "end": {
                    "line": 117,
                    "column": 10
                  }
                }
              },
              "right": {
                "type": "BinaryExpression",
                "operator": "!==",
                "left": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "obj",
                    "range": [
                      3717,
                      3720
                    ],
                    "loc": {
                      "start": {
                        "line": 117,
                        "column": 14
                      },
                      "end": {
                        "line": 117,
                        "column": 17
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "length",
                    "range": [
                      3721,
                      3727
                    ],
                    "loc": {
                      "start": {
                        "line": 117,
                        "column": 18
                      },
                      "end": {
                        "line": 117,
                        "column": 24
                      }
                    }
                  },
                  "range": [
                    3717,
                    3727
                  ],
                  "loc": {
                    "start": {
                      "line": 117,
                      "column": 14
                    },
                    "end": {
                      "line": 117,
                      "column": 24
                    }
                  }
                },
                "right": {
                  "type": "Identifier",
                  "name": "undefined",
                  "range": [
                    3732,
                    3741
                  ],
                  "loc": {
                    "start": {
                      "line": 117,
                      "column": 29
                    },
                    "end": {
                      "line": 117,
                      "column": 38
                    }
                  }
                },
                "range": [
                  3717,
                  3741
                ],
                "loc": {
                  "start": {
                    "line": 117,
                    "column": 14
                  },
                  "end": {
                    "line": 117,
                    "column": 38
                  }
                }
              },
              "range": [
                3711,
                3741
              ],
              "loc": {
                "start": {
                  "line": 117,
                  "column": 8
                },
                "end": {
                  "line": 117,
                  "column": 38
                }
              }
            },
            "consequent": {
              "type": "BlockStatement",
              "body": [
                {
                  "type": "ReturnStatement",
                  "argument": {
                    "type": "NewExpression",
                    "callee": {
                      "type": "Identifier",
                      "name": "ArrayIterator",
                      "range": [
                        3764,
                        3777
                      ],
                      "loc": {
                        "start": {
                          "line": 118,
                          "column": 19
                        },
                        "end": {
                          "line": 118,
                          "column": 32
                        }
                      }
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "name": "obj",
                        "range": [
                          3778,
                          3781
                        ],
                        "loc": {
                          "start": {
                            "line": 118,
                            "column": 33
                          },
                          "end": {
                            "line": 118,
                            "column": 36
                          }
                        }
                      }
                    ],
                    "range": [
                      3760,
                      3782
                    ],
                    "loc": {
                      "start": {
                        "line": 118,
                        "column": 15
                      },
                      "end": {
                        "line": 118,
                        "column": 37
                      }
                    }
                  },
                  "range": [
                    3753,
                    3783
                  ],
                  "loc": {
                    "start": {
                      "line": 118,
                      "column": 8
                    },
                    "end": {
                      "line": 118,
                      "column": 38
                    }
                  }
                }
              ],
              "range": [
                3743,
                3789
              ],
              "loc": {
                "start": {
                  "line": 117,
                  "column": 40
                },
                "end": {
                  "line": 119,
                  "column": 5
                }
              }
            },
            "alternate": null,
            "range": [
              3707,
              3789
            ],
            "loc": {
              "start": {
                "line": 117,
                "column": 4
              },
              "end": {
                "line": 119,
                "column": 5
              }
            }
          },
          {
            "type": "IfStatement",
            "test": {
              "type": "UnaryExpression",
              "operator": "!",
              "argument": {
                "type": "Identifier",
                "name": "i",
                "range": [
                  3799,
                  3800
                ],
                "loc": {
                  "start": {
                    "line": 120,
                    "column": 9
                  },
                  "end": {
                    "line": 120,
                    "column": 10
                  }
                }
              },
              "prefix": true,
              "range": [
                3798,
                3800
              ],
              "loc": {
                "start": {
                  "line": 120,
                  "column": 8
                },
                "end": {
                  "line": 120,
                  "column": 10
                }
              }
            },
            "consequent": {
              "type": "BlockStatement",
              "body": [
                {
                  "type": "ThrowStatement",
                  "argument": {
                    "type": "NewExpression",
                    "callee": {
                      "type": "Identifier",
                      "name": "TypeError",
                      "range": [
                        3822,
                        3831
                      ],
                      "loc": {
                        "start": {
                          "line": 121,
                          "column": 18
                        },
                        "end": {
                          "line": 121,
                          "column": 27
                        }
                      }
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "value": "object is not iterable",
                        "raw": "'object is not iterable'",
                        "range": [
                          3832,
                          3856
                        ],
                        "loc": {
                          "start": {
                            "line": 121,
                            "column": 28
                          },
                          "end": {
                            "line": 121,
                            "column": 52
                          }
                        }
                      }
                    ],
                    "range": [
                      3818,
                      3857
                    ],
                    "loc": {
                      "start": {
                        "line": 121,
                        "column": 14
                      },
                      "end": {
                        "line": 121,
                        "column": 53
                      }
                    }
                  },
                  "range": [
                    3812,
                    3858
                  ],
                  "loc": {
                    "start": {
                      "line": 121,
                      "column": 8
                    },
                    "end": {
                      "line": 121,
                      "column": 54
                    }
                  }
                }
              ],
              "range": [
                3802,
                3864
              ],
              "loc": {
                "start": {
                  "line": 120,
                  "column": 12
                },
                "end": {
                  "line": 122,
                  "column": 5
                }
              }
            },
            "alternate": null,
            "range": [
              3794,
              3864
            ],
            "loc": {
              "start": {
                "line": 120,
                "column": 4
              },
              "end": {
                "line": 122,
                "column": 5
              }
            }
          },
          {
            "type": "ReturnStatement",
            "argument": {
              "type": "CallExpression",
              "callee": {
                "type": "MemberExpression",
                "computed": true,
                "object": {
                  "type": "Identifier",
                  "name": "obj",
                  "range": [
                    3876,
                    3879
                  ],
                  "loc": {
                    "start": {
                      "line": 123,
                      "column": 11
                    },
                    "end": {
                      "line": 123,
                      "column": 14
                    }
                  }
                },
                "property": {
                  "type": "Identifier",
                  "name": "$$iterator",
                  "range": [
                    3880,
                    3890
                  ],
                  "loc": {
                    "start": {
                      "line": 123,
                      "column": 15
                    },
                    "end": {
                      "line": 123,
                      "column": 25
                    }
                  }
                },
                "range": [
                  3876,
                  3891
                ],
                "loc": {
                  "start": {
                    "line": 123,
                    "column": 11
                  },
                  "end": {
                    "line": 123,
                    "column": 26
                  }
                }
              },
              "arguments": [],
              "range": [
                3876,
                3893
              ],
              "loc": {
                "start": {
                  "line": 123,
                  "column": 11
                },
                "end": {
                  "line": 123,
                  "column": 28
                }
              }
            },
            "range": [
              3869,
              3894
            ],
            "loc": {
              "start": {
                "line": 123,
                "column": 4
              },
              "end": {
                "line": 123,
                "column": 29
              }
            }
          }
        ],
        "range": [
          3585,
          3896
        ],
        "loc": {
          "start": {
            "line": 112,
            "column": 26
          },
          "end": {
            "line": 124,
            "column": 1
          }
        }
      },
      "generator": false,
      "expression": false,
      "range": [
        3559,
        3896
      ],
      "loc": {
        "start": {
          "line": 112,
          "column": 0
        },
        "end": {
          "line": 124,
          "column": 1
        }
      }
    },
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "maxSafeInteger",
            "range": [
              3901,
              3915
            ],
            "loc": {
              "start": {
                "line": 125,
                "column": 4
              },
              "end": {
                "line": 125,
                "column": 18
              }
            }
          },
          "init": {
            "type": "BinaryExpression",
            "operator": "-",
            "left": {
              "type": "CallExpression",
              "callee": {
                "type": "MemberExpression",
                "computed": false,
                "object": {
                  "type": "Identifier",
                  "name": "Math",
                  "range": [
                    3918,
                    3922
                  ],
                  "loc": {
                    "start": {
                      "line": 125,
                      "column": 21
                    },
                    "end": {
                      "line": 125,
                      "column": 25
                    }
                  }
                },
                "property": {
                  "type": "Identifier",
                  "name": "pow",
                  "range": [
                    3923,
                    3926
                  ],
                  "loc": {
                    "start": {
                      "line": 125,
                      "column": 26
                    },
                    "end": {
                      "line": 125,
                      "column": 29
                    }
                  }
                },
                "range": [
                  3918,
                  3926
                ],
                "loc": {
                  "start": {
                    "line": 125,
                    "column": 21
                  },
                  "end": {
                    "line": 125,
                    "column": 29
                  }
                }
              },
              "arguments": [
                {
                  "type": "Literal",
                  "value": 2,
                  "raw": "2",
                  "range": [
                    3927,
                    3928
                  ],
                  "loc": {
                    "start": {
                      "line": 125,
                      "column": 30
                    },
                    "end": {
                      "line": 125,
                      "column": 31
                    }
                  }
                },
                {
                  "type": "Literal",
                  "value": 53,
                  "raw": "53",
                  "range": [
                    3930,
                    3932
                  ],
                  "loc": {
                    "start": {
                      "line": 125,
                      "column": 33
                    },
                    "end": {
                      "line": 125,
                      "column": 35
                    }
                  }
                }
              ],
              "range": [
                3918,
                3933
              ],
              "loc": {
                "start": {
                  "line": 125,
                  "column": 21
                },
                "end": {
                  "line": 125,
                  "column": 36
                }
              }
            },
            "right": {
              "type": "Literal",
              "value": 1,
              "raw": "1",
              "range": [
                3936,
                3937
              ],
              "loc": {
                "start": {
                  "line": 125,
                  "column": 39
                },
                "end": {
                  "line": 125,
                  "column": 40
                }
              }
            },
            "range": [
              3918,
              3937
            ],
            "loc": {
              "start": {
                "line": 125,
                "column": 21
              },
              "end": {
                "line": 125,
                "column": 40
              }
            }
          },
          "range": [
            3901,
            3937
          ],
          "loc": {
            "start": {
              "line": 125,
              "column": 4
            },
            "end": {
              "line": 125,
              "column": 40
            }
          }
        }
      ],
      "kind": "var",
      "range": [
        3897,
        3938
      ],
      "loc": {
        "start": {
          "line": 125,
          "column": 0
        },
        "end": {
          "line": 125,
          "column": 41
        }
      }
    },
    {
      "type": "FunctionDeclaration",
      "id": {
        "type": "Identifier",
        "name": "toLength",
        "range": [
          3948,
          3956
        ],
        "loc": {
          "start": {
            "line": 126,
            "column": 9
          },
          "end": {
            "line": 126,
            "column": 17
          }
        }
      },
      "params": [
        {
          "type": "Identifier",
          "name": "o",
          "range": [
            3957,
            3958
          ],
          "loc": {
            "start": {
              "line": 126,
              "column": 18
            },
            "end": {
              "line": 126,
              "column": 19
            }
          }
        }
      ],
      "body": {
        "type": "BlockStatement",
        "body": [
          {
            "type": "VariableDeclaration",
            "declarations": [
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "len",
                  "range": [
                    3970,
                    3973
                  ],
                  "loc": {
                    "start": {
                      "line": 127,
                      "column": 8
                    },
                    "end": {
                      "line": 127,
                      "column": 11
                    }
                  }
                },
                "init": {
                  "type": "UnaryExpression",
                  "operator": "+",
                  "argument": {
                    "type": "MemberExpression",
                    "computed": false,
                    "object": {
                      "type": "Identifier",
                      "name": "o",
                      "range": [
                        3977,
                        3978
                      ],
                      "loc": {
                        "start": {
                          "line": 127,
                          "column": 15
                        },
                        "end": {
                          "line": 127,
                          "column": 16
                        }
                      }
                    },
                    "property": {
                      "type": "Identifier",
                      "name": "length",
                      "range": [
                        3979,
                        3985
                      ],
                      "loc": {
                        "start": {
                          "line": 127,
                          "column": 17
                        },
                        "end": {
                          "line": 127,
                          "column": 23
                        }
                      }
                    },
                    "range": [
                      3977,
                      3985
                    ],
                    "loc": {
                      "start": {
                        "line": 127,
                        "column": 15
                      },
                      "end": {
                        "line": 127,
                        "column": 23
                      }
                    }
                  },
                  "prefix": true,
                  "range": [
                    3976,
                    3985
                  ],
                  "loc": {
                    "start": {
                      "line": 127,
                      "column": 14
                    },
                    "end": {
                      "line": 127,
                      "column": 23
                    }
                  }
                },
                "range": [
                  3970,
                  3985
                ],
                "loc": {
                  "start": {
                    "line": 127,
                    "column": 8
                  },
                  "end": {
                    "line": 127,
                    "column": 23
                  }
                }
              }
            ],
            "kind": "var",
            "range": [
              3966,
              3986
            ],
            "loc": {
              "start": {
                "line": 127,
                "column": 4
              },
              "end": {
                "line": 127,
                "column": 24
              }
            }
          },
          {
            "type": "IfStatement",
            "test": {
              "type": "CallExpression",
              "callee": {
                "type": "Identifier",
                "name": "isNaN",
                "range": [
                  3995,
                  4000
                ],
                "loc": {
                  "start": {
                    "line": 128,
                    "column": 8
                  },
                  "end": {
                    "line": 128,
                    "column": 13
                  }
                }
              },
              "arguments": [
                {
                  "type": "Identifier",
                  "name": "len",
                  "range": [
                    4001,
                    4004
                  ],
                  "loc": {
                    "start": {
                      "line": 128,
                      "column": 14
                    },
                    "end": {
                      "line": 128,
                      "column": 17
                    }
                  }
                }
              ],
              "range": [
                3995,
                4005
              ],
              "loc": {
                "start": {
                  "line": 128,
                  "column": 8
                },
                "end": {
                  "line": 128,
                  "column": 18
                }
              }
            },
            "consequent": {
              "type": "BlockStatement",
              "body": [
                {
                  "type": "ReturnStatement",
                  "argument": {
                    "type": "Literal",
                    "value": 0,
                    "raw": "0",
                    "range": [
                      4024,
                      4025
                    ],
                    "loc": {
                      "start": {
                        "line": 129,
                        "column": 15
                      },
                      "end": {
                        "line": 129,
                        "column": 16
                      }
                    }
                  },
                  "range": [
                    4017,
                    4026
                  ],
                  "loc": {
                    "start": {
                      "line": 129,
                      "column": 8
                    },
                    "end": {
                      "line": 129,
                      "column": 17
                    }
                  }
                }
              ],
              "range": [
                4007,
                4032
              ],
              "loc": {
                "start": {
                  "line": 128,
                  "column": 20
                },
                "end": {
                  "line": 130,
                  "column": 5
                }
              }
            },
            "alternate": null,
            "range": [
              3991,
              4032
            ],
            "loc": {
              "start": {
                "line": 128,
                "column": 4
              },
              "end": {
                "line": 130,
                "column": 5
              }
            }
          },
          {
            "type": "IfStatement",
            "test": {
              "type": "LogicalExpression",
              "operator": "||",
              "left": {
                "type": "BinaryExpression",
                "operator": "===",
                "left": {
                  "type": "Identifier",
                  "name": "len",
                  "range": [
                    4041,
                    4044
                  ],
                  "loc": {
                    "start": {
                      "line": 131,
                      "column": 8
                    },
                    "end": {
                      "line": 131,
                      "column": 11
                    }
                  }
                },
                "right": {
                  "type": "Literal",
                  "value": 0,
                  "raw": "0",
                  "range": [
                    4049,
                    4050
                  ],
                  "loc": {
                    "start": {
                      "line": 131,
                      "column": 16
                    },
                    "end": {
                      "line": 131,
                      "column": 17
                    }
                  }
                },
                "range": [
                  4041,
                  4050
                ],
                "loc": {
                  "start": {
                    "line": 131,
                    "column": 8
                  },
                  "end": {
                    "line": 131,
                    "column": 17
                  }
                }
              },
              "right": {
                "type": "UnaryExpression",
                "operator": "!",
                "argument": {
                  "type": "CallExpression",
                  "callee": {
                    "type": "Identifier",
                    "name": "numberIsFinite",
                    "range": [
                      4055,
                      4069
                    ],
                    "loc": {
                      "start": {
                        "line": 131,
                        "column": 22
                      },
                      "end": {
                        "line": 131,
                        "column": 36
                      }
                    }
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "name": "len",
                      "range": [
                        4070,
                        4073
                      ],
                      "loc": {
                        "start": {
                          "line": 131,
                          "column": 37
                        },
                        "end": {
                          "line": 131,
                          "column": 40
                        }
                      }
                    }
                  ],
                  "range": [
                    4055,
                    4074
                  ],
                  "loc": {
                    "start": {
                      "line": 131,
                      "column": 22
                    },
                    "end": {
                      "line": 131,
                      "column": 41
                    }
                  }
                },
                "prefix": true,
                "range": [
                  4054,
                  4074
                ],
                "loc": {
                  "start": {
                    "line": 131,
                    "column": 21
                  },
                  "end": {
                    "line": 131,
                    "column": 41
                  }
                }
              },
              "range": [
                4041,
                4074
              ],
              "loc": {
                "start": {
                  "line": 131,
                  "column": 8
                },
                "end": {
                  "line": 131,
                  "column": 41
                }
              }
            },
            "consequent": {
              "type": "BlockStatement",
              "body": [
                {
                  "type": "ReturnStatement",
                  "argument": {
                    "type": "Identifier",
                    "name": "len",
                    "range": [
                      4093,
                      4096
                    ],
                    "loc": {
                      "start": {
                        "line": 132,
                        "column": 15
                      },
                      "end": {
                        "line": 132,
                        "column": 18
                      }
                    }
                  },
                  "range": [
                    4086,
                    4097
                  ],
                  "loc": {
                    "start": {
                      "line": 132,
                      "column": 8
                    },
                    "end": {
                      "line": 132,
                      "column": 19
                    }
                  }
                }
              ],
              "range": [
                4076,
                4103
              ],
              "loc": {
                "start": {
                  "line": 131,
                  "column": 43
                },
                "end": {
                  "line": 133,
                  "column": 5
                }
              }
            },
            "alternate": null,
            "range": [
              4037,
              4103
            ],
            "loc": {
              "start": {
                "line": 131,
                "column": 4
              },
              "end": {
                "line": 133,
                "column": 5
              }
            }
          },
          {
            "type": "ExpressionStatement",
            "expression": {
              "type": "AssignmentExpression",
              "operator": "=",
              "left": {
                "type": "Identifier",
                "name": "len",
                "range": [
                  4108,
                  4111
                ],
                "loc": {
                  "start": {
                    "line": 134,
                    "column": 4
                  },
                  "end": {
                    "line": 134,
                    "column": 7
                  }
                }
              },
              "right": {
                "type": "BinaryExpression",
                "operator": "*",
                "left": {
                  "type": "CallExpression",
                  "callee": {
                    "type": "Identifier",
                    "name": "sign",
                    "range": [
                      4114,
                      4118
                    ],
                    "loc": {
                      "start": {
                        "line": 134,
                        "column": 10
                      },
                      "end": {
                        "line": 134,
                        "column": 14
                      }
                    }
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "name": "len",
                      "range": [
                        4119,
                        4122
                      ],
                      "loc": {
                        "start": {
                          "line": 134,
                          "column": 15
                        },
                        "end": {
                          "line": 134,
                          "column": 18
                        }
                      }
                    }
                  ],
                  "range": [
                    4114,
                    4123
                  ],
                  "loc": {
                    "start": {
                      "line": 134,
                      "column": 10
                    },
                    "end": {
                      "line": 134,
                      "column": 19
                    }
                  }
                },
                "right": {
                  "type": "CallExpression",
                  "callee": {
                    "type": "MemberExpression",
                    "computed": false,
                    "object": {
                      "type": "Identifier",
                      "name": "Math",
                      "range": [
                        4126,
                        4130
                      ],
                      "loc": {
                        "start": {
                          "line": 134,
                          "column": 22
                        },
                        "end": {
                          "line": 134,
                          "column": 26
                        }
                      }
                    },
                    "property": {
                      "type": "Identifier",
                      "name": "floor",
                      "range": [
                        4131,
                        4136
                      ],
                      "loc": {
                        "start": {
                          "line": 134,
                          "column": 27
                        },
                        "end": {
                          "line": 134,
                          "column": 32
                        }
                      }
                    },
                    "range": [
                      4126,
                      4136
                    ],
                    "loc": {
                      "start": {
                        "line": 134,
                        "column": 22
                      },
                      "end": {
                        "line": 134,
                        "column": 32
                      }
                    }
                  },
                  "arguments": [
                    {
                      "type": "CallExpression",
                      "callee": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "Identifier",
                          "name": "Math",
                          "range": [
                            4137,
                            4141
                          ],
                          "loc": {
                            "start": {
                              "line": 134,
                              "column": 33
                            },
                            "end": {
                              "line": 134,
                              "column": 37
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "abs",
                          "range": [
                            4142,
                            4145
                          ],
                          "loc": {
                            "start": {
                              "line": 134,
                              "column": 38
                            },
                            "end": {
                              "line": 134,
                              "column": 41
                            }
                          }
                        },
                        "range": [
                          4137,
                          4145
                        ],
                        "loc": {
                          "start": {
                            "line": 134,
                            "column": 33
                          },
                          "end": {
                            "line": 134,
                            "column": 41
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "name": "len",
                          "range": [
                            4146,
                            4149
                          ],
                          "loc": {
                            "start": {
                              "line": 134,
                              "column": 42
                            },
                            "end": {
                              "line": 134,
                              "column": 45
                            }
                          }
                        }
                      ],
                      "range": [
                        4137,
                        4150
                      ],
                      "loc": {
                        "start": {
                          "line": 134,
                          "column": 33
                        },
                        "end": {
                          "line": 134,
                          "column": 46
                        }
                      }
                    }
                  ],
                  "range": [
                    4126,
                    4151
                  ],
                  "loc": {
                    "start": {
                      "line": 134,
                      "column": 22
                    },
                    "end": {
                      "line": 134,
                      "column": 47
                    }
                  }
                },
                "range": [
                  4114,
                  4151
                ],
                "loc": {
                  "start": {
                    "line": 134,
                    "column": 10
                  },
                  "end": {
                    "line": 134,
                    "column": 47
                  }
                }
              },
              "range": [
                4108,
                4151
              ],
              "loc": {
                "start": {
                  "line": 134,
                  "column": 4
                },
                "end": {
                  "line": 134,
                  "column": 47
                }
              }
            },
            "range": [
              4108,
              4152
            ],
            "loc": {
              "start": {
                "line": 134,
                "column": 4
              },
              "end": {
                "line": 134,
                "column": 48
              }
            }
          },
          {
            "type": "IfStatement",
            "test": {
              "type": "BinaryExpression",
              "operator": "<=",
              "left": {
                "type": "Identifier",
                "name": "len",
                "range": [
                  4161,
                  4164
                ],
                "loc": {
                  "start": {
                    "line": 135,
                    "column": 8
                  },
                  "end": {
                    "line": 135,
                    "column": 11
                  }
                }
              },
              "right": {
                "type": "Literal",
                "value": 0,
                "raw": "0",
                "range": [
                  4168,
                  4169
                ],
                "loc": {
                  "start": {
                    "line": 135,
                    "column": 15
                  },
                  "end": {
                    "line": 135,
                    "column": 16
                  }
                }
              },
              "range": [
                4161,
                4169
              ],
              "loc": {
                "start": {
                  "line": 135,
                  "column": 8
                },
                "end": {
                  "line": 135,
                  "column": 16
                }
              }
            },
            "consequent": {
              "type": "BlockStatement",
              "body": [
                {
                  "type": "ReturnStatement",
                  "argument": {
                    "type": "Literal",
                    "value": 0,
                    "raw": "0",
                    "range": [
                      4188,
                      4189
                    ],
                    "loc": {
                      "start": {
                        "line": 136,
                        "column": 15
                      },
                      "end": {
                        "line": 136,
                        "column": 16
                      }
                    }
                  },
                  "range": [
                    4181,
                    4190
                  ],
                  "loc": {
                    "start": {
                      "line": 136,
                      "column": 8
                    },
                    "end": {
                      "line": 136,
                      "column": 17
                    }
                  }
                }
              ],
              "range": [
                4171,
                4196
              ],
              "loc": {
                "start": {
                  "line": 135,
                  "column": 18
                },
                "end": {
                  "line": 137,
                  "column": 5
                }
              }
            },
            "alternate": null,
            "range": [
              4157,
              4196
            ],
            "loc": {
              "start": {
                "line": 135,
                "column": 4
              },
              "end": {
                "line": 137,
                "column": 5
              }
            }
          },
          {
            "type": "IfStatement",
            "test": {
              "type": "BinaryExpression",
              "operator": ">",
              "left": {
                "type": "Identifier",
                "name": "len",
                "range": [
                  4205,
                  4208
                ],
                "loc": {
                  "start": {
                    "line": 138,
                    "column": 8
                  },
                  "end": {
                    "line": 138,
                    "column": 11
                  }
                }
              },
              "right": {
                "type": "Identifier",
                "name": "maxSafeInteger",
                "range": [
                  4211,
                  4225
                ],
                "loc": {
                  "start": {
                    "line": 138,
                    "column": 14
                  },
                  "end": {
                    "line": 138,
                    "column": 28
                  }
                }
              },
              "range": [
                4205,
                4225
              ],
              "loc": {
                "start": {
                  "line": 138,
                  "column": 8
                },
                "end": {
                  "line": 138,
                  "column": 28
                }
              }
            },
            "consequent": {
              "type": "BlockStatement",
              "body": [
                {
                  "type": "ReturnStatement",
                  "argument": {
                    "type": "Identifier",
                    "name": "maxSafeInteger",
                    "range": [
                      4244,
                      4258
                    ],
                    "loc": {
                      "start": {
                        "line": 139,
                        "column": 15
                      },
                      "end": {
                        "line": 139,
                        "column": 29
                      }
                    }
                  },
                  "range": [
                    4237,
                    4259
                  ],
                  "loc": {
                    "start": {
                      "line": 139,
                      "column": 8
                    },
                    "end": {
                      "line": 139,
                      "column": 30
                    }
                  }
                }
              ],
              "range": [
                4227,
                4265
              ],
              "loc": {
                "start": {
                  "line": 138,
                  "column": 30
                },
                "end": {
                  "line": 140,
                  "column": 5
                }
              }
            },
            "alternate": null,
            "range": [
              4201,
              4265
            ],
            "loc": {
              "start": {
                "line": 138,
                "column": 4
              },
              "end": {
                "line": 140,
                "column": 5
              }
            }
          },
          {
            "type": "ReturnStatement",
            "argument": {
              "type": "Identifier",
              "name": "len",
              "range": [
                4277,
                4280
              ],
              "loc": {
                "start": {
                  "line": 141,
                  "column": 11
                },
                "end": {
                  "line": 141,
                  "column": 14
                }
              }
            },
            "range": [
              4270,
              4281
            ],
            "loc": {
              "start": {
                "line": 141,
                "column": 4
              },
              "end": {
                "line": 141,
                "column": 15
              }
            }
          }
        ],
        "range": [
          3960,
          4283
        ],
        "loc": {
          "start": {
            "line": 126,
            "column": 21
          },
          "end": {
            "line": 142,
            "column": 1
          }
        }
      },
      "generator": false,
      "expression": false,
      "range": [
        3939,
        4283
      ],
      "loc": {
        "start": {
          "line": 126,
          "column": 0
        },
        "end": {
          "line": 142,
          "column": 1
        }
      }
    },
    {
      "type": "FunctionDeclaration",
      "id": {
        "type": "Identifier",
        "name": "numberIsFinite",
        "range": [
          4293,
          4307
        ],
        "loc": {
          "start": {
            "line": 143,
            "column": 9
          },
          "end": {
            "line": 143,
            "column": 23
          }
        }
      },
      "params": [
        {
          "type": "Identifier",
          "name": "value",
          "range": [
            4308,
            4313
          ],
          "loc": {
            "start": {
              "line": 143,
              "column": 24
            },
            "end": {
              "line": 143,
              "column": 29
            }
          }
        }
      ],
      "body": {
        "type": "BlockStatement",
        "body": [
          {
            "type": "ReturnStatement",
            "argument": {
              "type": "LogicalExpression",
              "operator": "&&",
              "left": {
                "type": "BinaryExpression",
                "operator": "===",
                "left": {
                  "type": "UnaryExpression",
                  "operator": "typeof",
                  "argument": {
                    "type": "Identifier",
                    "name": "value",
                    "range": [
                      4335,
                      4340
                    ],
                    "loc": {
                      "start": {
                        "line": 144,
                        "column": 18
                      },
                      "end": {
                        "line": 144,
                        "column": 23
                      }
                    }
                  },
                  "prefix": true,
                  "range": [
                    4328,
                    4340
                  ],
                  "loc": {
                    "start": {
                      "line": 144,
                      "column": 11
                    },
                    "end": {
                      "line": 144,
                      "column": 23
                    }
                  }
                },
                "right": {
                  "type": "Literal",
                  "value": "number",
                  "raw": "'number'",
                  "range": [
                    4345,
                    4353
                  ],
                  "loc": {
                    "start": {
                      "line": 144,
                      "column": 28
                    },
                    "end": {
                      "line": 144,
                      "column": 36
                    }
                  }
                },
                "range": [
                  4328,
                  4353
                ],
                "loc": {
                  "start": {
                    "line": 144,
                    "column": 11
                  },
                  "end": {
                    "line": 144,
                    "column": 36
                  }
                }
              },
              "right": {
                "type": "CallExpression",
                "callee": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "root",
                    "range": [
                      4357,
                      4361
                    ],
                    "loc": {
                      "start": {
                        "line": 144,
                        "column": 40
                      },
                      "end": {
                        "line": 144,
                        "column": 44
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "isFinite",
                    "range": [
                      4362,
                      4370
                    ],
                    "loc": {
                      "start": {
                        "line": 144,
                        "column": 45
                      },
                      "end": {
                        "line": 144,
                        "column": 53
                      }
                    }
                  },
                  "range": [
                    4357,
                    4370
                  ],
                  "loc": {
                    "start": {
                      "line": 144,
                      "column": 40
                    },
                    "end": {
                      "line": 144,
                      "column": 53
                    }
                  }
                },
                "arguments": [
                  {
                    "type": "Identifier",
                    "name": "value",
                    "range": [
                      4371,
                      4376
                    ],
                    "loc": {
                      "start": {
                        "line": 144,
                        "column": 54
                      },
                      "end": {
                        "line": 144,
                        "column": 59
                      }
                    }
                  }
                ],
                "range": [
                  4357,
                  4377
                ],
                "loc": {
                  "start": {
                    "line": 144,
                    "column": 40
                  },
                  "end": {
                    "line": 144,
                    "column": 60
                  }
                }
              },
              "range": [
                4328,
                4377
              ],
              "loc": {
                "start": {
                  "line": 144,
                  "column": 11
                },
                "end": {
                  "line": 144,
                  "column": 60
                }
              }
            },
            "range": [
              4321,
              4378
            ],
            "loc": {
              "start": {
                "line": 144,
                "column": 4
              },
              "end": {
                "line": 144,
                "column": 61
              }
            }
          }
        ],
        "range": [
          4315,
          4380
        ],
        "loc": {
          "start": {
            "line": 143,
            "column": 31
          },
          "end": {
            "line": 145,
            "column": 1
          }
        }
      },
      "generator": false,
      "expression": false,
      "range": [
        4284,
        4380
      ],
      "loc": {
        "start": {
          "line": 143,
          "column": 0
        },
        "end": {
          "line": 145,
          "column": 1
        }
      }
    },
    {
      "type": "FunctionDeclaration",
      "id": {
        "type": "Identifier",
        "name": "sign",
        "range": [
          4390,
          4394
        ],
        "loc": {
          "start": {
            "line": 146,
            "column": 9
          },
          "end": {
            "line": 146,
            "column": 13
          }
        }
      },
      "params": [
        {
          "type": "Identifier",
          "name": "value",
          "range": [
            4395,
            4400
          ],
          "loc": {
            "start": {
              "line": 146,
              "column": 14
            },
            "end": {
              "line": 146,
              "column": 19
            }
          }
        }
      ],
      "body": {
        "type": "BlockStatement",
        "body": [
          {
            "type": "VariableDeclaration",
            "declarations": [
              {
                "type": "VariableDeclarator",
                "id": {
                  "type": "Identifier",
                  "name": "valueAsNumber",
                  "range": [
                    4412,
                    4425
                  ],
                  "loc": {
                    "start": {
                      "line": 147,
                      "column": 8
                    },
                    "end": {
                      "line": 147,
                      "column": 21
                    }
                  }
                },
                "init": {
                  "type": "UnaryExpression",
                  "operator": "+",
                  "argument": {
                    "type": "Identifier",
                    "name": "value",
                    "range": [
                      4429,
                      4434
                    ],
                    "loc": {
                      "start": {
                        "line": 147,
                        "column": 25
                      },
                      "end": {
                        "line": 147,
                        "column": 30
                      }
                    }
                  },
                  "prefix": true,
                  "range": [
                    4428,
                    4434
                  ],
                  "loc": {
                    "start": {
                      "line": 147,
                      "column": 24
                    },
                    "end": {
                      "line": 147,
                      "column": 30
                    }
                  }
                },
                "range": [
                  4412,
                  4434
                ],
                "loc": {
                  "start": {
                    "line": 147,
                    "column": 8
                  },
                  "end": {
                    "line": 147,
                    "column": 30
                  }
                }
              }
            ],
            "kind": "var",
            "range": [
              4408,
              4435
            ],
            "loc": {
              "start": {
                "line": 147,
                "column": 4
              },
              "end": {
                "line": 147,
                "column": 31
              }
            }
          },
          {
            "type": "IfStatement",
            "test": {
              "type": "BinaryExpression",
              "operator": "===",
              "left": {
                "type": "Identifier",
                "name": "valueAsNumber",
                "range": [
                  4444,
                  4457
                ],
                "loc": {
                  "start": {
                    "line": 148,
                    "column": 8
                  },
                  "end": {
                    "line": 148,
                    "column": 21
                  }
                }
              },
              "right": {
                "type": "Literal",
                "value": 0,
                "raw": "0",
                "range": [
                  4462,
                  4463
                ],
                "loc": {
                  "start": {
                    "line": 148,
                    "column": 26
                  },
                  "end": {
                    "line": 148,
                    "column": 27
                  }
                }
              },
              "range": [
                4444,
                4463
              ],
              "loc": {
                "start": {
                  "line": 148,
                  "column": 8
                },
                "end": {
                  "line": 148,
                  "column": 27
                }
              }
            },
            "consequent": {
              "type": "BlockStatement",
              "body": [
                {
                  "type": "ReturnStatement",
                  "argument": {
                    "type": "Identifier",
                    "name": "valueAsNumber",
                    "range": [
                      4482,
                      4495
                    ],
                    "loc": {
                      "start": {
                        "line": 149,
                        "column": 15
                      },
                      "end": {
                        "line": 149,
                        "column": 28
                      }
                    }
                  },
                  "range": [
                    4475,
                    4496
                  ],
                  "loc": {
                    "start": {
                      "line": 149,
                      "column": 8
                    },
                    "end": {
                      "line": 149,
                      "column": 29
                    }
                  }
                }
              ],
              "range": [
                4465,
                4502
              ],
              "loc": {
                "start": {
                  "line": 148,
                  "column": 29
                },
                "end": {
                  "line": 150,
                  "column": 5
                }
              }
            },
            "alternate": null,
            "range": [
              4440,
              4502
            ],
            "loc": {
              "start": {
                "line": 148,
                "column": 4
              },
              "end": {
                "line": 150,
                "column": 5
              }
            }
          },
          {
            "type": "IfStatement",
            "test": {
              "type": "CallExpression",
              "callee": {
                "type": "Identifier",
                "name": "isNaN",
                "range": [
                  4511,
                  4516
                ],
                "loc": {
                  "start": {
                    "line": 151,
                    "column": 8
                  },
                  "end": {
                    "line": 151,
                    "column": 13
                  }
                }
              },
              "arguments": [
                {
                  "type": "Identifier",
                  "name": "valueAsNumber",
                  "range": [
                    4517,
                    4530
                  ],
                  "loc": {
                    "start": {
                      "line": 151,
                      "column": 14
                    },
                    "end": {
                      "line": 151,
                      "column": 27
                    }
                  }
                }
              ],
              "range": [
                4511,
                4531
              ],
              "loc": {
                "start": {
                  "line": 151,
                  "column": 8
                },
                "end": {
                  "line": 151,
                  "column": 28
                }
              }
            },
            "consequent": {
              "type": "BlockStatement",
              "body": [
                {
                  "type": "ReturnStatement",
                  "argument": {
                    "type": "Identifier",
                    "name": "valueAsNumber",
                    "range": [
                      4550,
                      4563
                    ],
                    "loc": {
                      "start": {
                        "line": 152,
                        "column": 15
                      },
                      "end": {
                        "line": 152,
                        "column": 28
                      }
                    }
                  },
                  "range": [
                    4543,
                    4564
                  ],
                  "loc": {
                    "start": {
                      "line": 152,
                      "column": 8
                    },
                    "end": {
                      "line": 152,
                      "column": 29
                    }
                  }
                }
              ],
              "range": [
                4533,
                4570
              ],
              "loc": {
                "start": {
                  "line": 151,
                  "column": 30
                },
                "end": {
                  "line": 153,
                  "column": 5
                }
              }
            },
            "alternate": null,
            "range": [
              4507,
              4570
            ],
            "loc": {
              "start": {
                "line": 151,
                "column": 4
              },
              "end": {
                "line": 153,
                "column": 5
              }
            }
          },
          {
            "type": "ReturnStatement",
            "argument": {
              "type": "ConditionalExpression",
              "test": {
                "type": "BinaryExpression",
                "operator": "<",
                "left": {
                  "type": "Identifier",
                  "name": "valueAsNumber",
                  "range": [
                    4582,
                    4595
                  ],
                  "loc": {
                    "start": {
                      "line": 154,
                      "column": 11
                    },
                    "end": {
                      "line": 154,
                      "column": 24
                    }
                  }
                },
                "right": {
                  "type": "Literal",
                  "value": 0,
                  "raw": "0",
                  "range": [
                    4598,
                    4599
                  ],
                  "loc": {
                    "start": {
                      "line": 154,
                      "column": 27
                    },
                    "end": {
                      "line": 154,
                      "column": 28
                    }
                  }
                },
                "range": [
                  4582,
                  4599
                ],
                "loc": {
                  "start": {
                    "line": 154,
                    "column": 11
                  },
                  "end": {
                    "line": 154,
                    "column": 28
                  }
                }
              },
              "consequent": {
                "type": "UnaryExpression",
                "operator": "-",
                "argument": {
                  "type": "Literal",
                  "value": 1,
                  "raw": "1",
                  "range": [
                    4603,
                    4604
                  ],
                  "loc": {
                    "start": {
                      "line": 154,
                      "column": 32
                    },
                    "end": {
                      "line": 154,
                      "column": 33
                    }
                  }
                },
                "prefix": true,
                "range": [
                  4602,
                  4604
                ],
                "loc": {
                  "start": {
                    "line": 154,
                    "column": 31
                  },
                  "end": {
                    "line": 154,
                    "column": 33
                  }
                }
              },
              "alternate": {
                "type": "Literal",
                "value": 1,
                "raw": "1",
                "range": [
                  4607,
                  4608
                ],
                "loc": {
                  "start": {
                    "line": 154,
                    "column": 36
                  },
                  "end": {
                    "line": 154,
                    "column": 37
                  }
                }
              },
              "range": [
                4582,
                4608
              ],
              "loc": {
                "start": {
                  "line": 154,
                  "column": 11
                },
                "end": {
                  "line": 154,
                  "column": 37
                }
              }
            },
            "range": [
              4575,
              4609
            ],
            "loc": {
              "start": {
                "line": 154,
                "column": 4
              },
              "end": {
                "line": 154,
                "column": 38
              }
            }
          }
        ],
        "range": [
          4402,
          4611
        ],
        "loc": {
          "start": {
            "line": 146,
            "column": 21
          },
          "end": {
            "line": 155,
            "column": 1
          }
        }
      },
      "generator": false,
      "expression": false,
      "range": [
        4381,
        4611
      ],
      "loc": {
        "start": {
          "line": 146,
          "column": 0
        },
        "end": {
          "line": 155,
          "column": 1
        }
      },
      "trailingComments": [
        {
          "type": "Line",
          "value": "# sourceMappingURL=IteratorObservable.js.map",
          "range": [
            4612,
            4658
          ],
          "loc": {
            "start": {
              "line": 156,
              "column": 0
            },
            "end": {
              "line": 156,
              "column": 46
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    4611
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 155,
      "column": 1
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n ",
      "range": [
        130,
        224
      ],
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 8,
          "column": 3
        }
      }
    },
    {
      "type": "Line",
      "value": "# sourceMappingURL=IteratorObservable.js.map",
      "range": [
        4612,
        4658
      ],
      "loc": {
        "start": {
          "line": 156,
          "column": 0
        },
        "end": {
          "line": 156,
          "column": 46
        }
      }
    }
  ]
}