occam-languages 2.1.27 → 2.1.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -69,8 +69,7 @@ class FileContext extends _context.default {
69
69
  if (breakPoint === null) {
70
70
  breakPoint = _breakPoint.default.fromFilePathNodeAndTokens(filePath, node, this.tokens);
71
71
  }
72
- releaseContext.break(breakPoint, continuation);
73
- return breakPoint;
72
+ return releaseContext.break(breakPoint, continuation);
74
73
  }
75
74
  verify(continuation) {
76
75
  let verifies = false;
@@ -109,4 +108,4 @@ class FileContext extends _context.default {
109
108
  }
110
109
  }
111
110
 
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2ZpbGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDb250ZXh0IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuaW1wb3J0IHsgbm9kZUFzU3RyaW5nLCBub2Rlc0FzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ub2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVDb250ZXh0IGV4dGVuZHMgQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7XG4gICAgdGhpcy5maWxlUGF0aCA9IGZpbGVQYXRoO1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy5qc29uID0ganNvbjtcbiAgfVxuXG4gIGdldEZpbGVDb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZW50O1xuICB9XG5cbiAgZ2V0RmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVBhdGg7XG4gIH1cblxuICBnZXRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0SlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy5qc29uO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgY29uc3QgbGV4ZXIgPSBudWxsO1xuXG4gICAgcmV0dXJuIGxleGVyO1xuICB9XG5cbiAgZ2V0UGFyc2VyKCkge1xuICAgIGNvbnN0IHBhcnNlciA9IG51bGw7XG5cbiAgICByZXR1cm4gcGFyc2VyO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeCgpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVByZWZpeCA9IGNvbnRleHQuZ2V0VHlwZVByZWZpeCgpO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXg7XG4gIH1cblxuICBtYXRjaEZpbGVQYXRoKGZpbGVQYXRoKSB7XG4gICAgY29uc3QgZmlsZVBhdGhNYXRjaGVzID0gKHRoaXMuZmlsZVBhdGggPT09IGZpbGVQYXRoKTtcblxuICAgIHJldHVybiBmaWxlUGF0aE1hdGNoZXM7XG4gIH1cblxuICBub2RlQXNTdHJpbmcobm9kZSkge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVBc1N0cmluZyhub2RlLCB0aGlzLnRva2Vucyk7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgbm9kZXNBc1N0cmluZyhub2Rlcykge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVzQXNTdHJpbmcobm9kZXMsIHRoaXMudG9rZW5zKTtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBicmVhayhub2RlLCBicmVha1BvaW50LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZmlsZVBhdGgsXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSB0aGlzLmdldFJlbGVhc2VDb250ZXh0KCk7XG5cbiAgICBpZiAoYnJlYWtQb2ludCA9PT0gbnVsbCkge1xuICAgICAgYnJlYWtQb2ludCA9IEJyZWFrUG9pbnQuZnJvbUZpbGVQYXRoTm9kZUFuZFRva2VucyhmaWxlUGF0aCwgbm9kZSwgdGhpcy50b2tlbnMpO1xuICAgIH1cblxuICAgIHJlbGVhc2VDb250ZXh0LmJyZWFrKGJyZWFrUG9pbnQsIGNvbnRpbnVhdGlvbik7XG5cbiAgICByZXR1cm4gYnJlYWtQb2ludDtcbiAgfVxuXG4gIHZlcmlmeShjb250aW51YXRpb24pIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLm5vZGUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMud2FybmluZyhgVW5hYmxlIHRvIHZlcmlmeSB0aGUgJyR7dGhpcy5maWxlUGF0aH0nIGZpbGUgYmVjYXVzZSBpdCBjYW5ub3QgYmUgcGFyc2VkLmApO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke3RoaXMuZmlsZVBhdGh9JyBmaWxlLi4uYCk7XG5cbiAgICB0aGlzLnZlcmlmeUZpbGUoKGZpbGVWZXJpZmllcykgPT4ge1xuICAgICAgaWYgKGZpbGVWZXJpZmllcykge1xuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHZlcmlmaWVzID9cbiAgICAgICAgdGhpcy5jb21wbGV0ZSgpIDpcbiAgICAgICAgICB0aGlzLmNsZWFyKCk7XG5cbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICB0aGlzLmluZm8oYC4uLnZlcmlmaWVkIHRoZSAnJHt0aGlzLmZpbGVQYXRofScgZmlsZS5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2ZXJpZmllcyk7XG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIGNvbnN0IGxleGVyID0gdGhpcy5nZXRMZXhlcigpLFxuICAgICAgICAgIHBhcnNlciA9IHRoaXMuZ2V0UGFyc2VyKCksXG4gICAgICAgICAgY29udGVudCA9IHRoaXMuZmlsZUNvbnRlbnQ7IC8vL1xuXG4gICAgdGhpcy50b2tlbnMgPSBsZXhlci50b2tlbmlzZShjb250ZW50KTtcblxuICAgIHRoaXMubm9kZSA9IHBhcnNlci5wYXJzZSh0aGlzLnRva2Vucyk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZpbGUoQ2xhc3MsIGZpbGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGZpbGVDb250ZW50ID0gZmlsZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcbiAgICAgICAgICB0b2tlbnMgPSBudWxsLFxuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGpzb24gPSBudWxsLFxuICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksIC8vL1xuICAgICAgICAgIGZpbGVDb250ZXh0ID0gbmV3IENsYXNzKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIGZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKENsYXNzLCBqc29uLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCB7IGZpbGVDb250ZW50LCBmaWxlUGF0aCB9ID0ganNvbixcbiAgICAgICAgICB0b2tlbnMgPSBudWxsLFxuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksIC8vL1xuICAgICAgICAgIGZpbGVDb250ZXh0ID0gbmV3IENsYXNzKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIGZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlQW5kVG9rZW5zKENsYXNzLCBub2RlLCB0b2tlbnMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGZpbGVDb250ZW50ID0gbnVsbCxcbiAgICAgICAgICBmaWxlUGF0aCA9IG51bGwsXG4gICAgICAgICAganNvbiA9IG51bGwsXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSwgLy8vXG4gICAgICAgICAgZmlsZUNvbnRleHQgPSBuZXcgQ2xhc3MoY29udGV4dCwgZmlsZUNvbnRlbnQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIGpzb24sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gZmlsZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGaWxlQ29udGV4dCIsIkNvbnRleHQiLCJjb250ZXh0IiwiZmlsZUNvbnRlbnQiLCJmaWxlUGF0aCIsInRva2VucyIsIm5vZGUiLCJqc29uIiwiZ2V0RmlsZUNvbnRlbnQiLCJnZXRGaWxlUGF0aCIsImdldFRva2VucyIsImdldE5vZGUiLCJnZXRKU09OIiwiZ2V0TGV4ZXIiLCJsZXhlciIsImdldFBhcnNlciIsInBhcnNlciIsImdldFR5cGVQcmVmaXgiLCJnZXRDb250ZXh0IiwidHlwZVByZWZpeCIsIm1hdGNoRmlsZVBhdGgiLCJmaWxlUGF0aE1hdGNoZXMiLCJub2RlQXNTdHJpbmciLCJzdHJpbmciLCJub2Rlc0FzU3RyaW5nIiwibm9kZXMiLCJicmVhayIsImJyZWFrUG9pbnQiLCJjb250aW51YXRpb24iLCJyZWxlYXNlQ29udGV4dCIsImdldFJlbGVhc2VDb250ZXh0IiwiQnJlYWtQb2ludCIsImZyb21GaWxlUGF0aE5vZGVBbmRUb2tlbnMiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsIndhcm5pbmciLCJkZWJ1ZyIsInZlcmlmeUZpbGUiLCJmaWxlVmVyaWZpZXMiLCJjb21wbGV0ZSIsImNsZWFyIiwiaW5mbyIsImluaXRpYWxpc2UiLCJjb250ZW50IiwidG9rZW5pc2UiLCJwYXJzZSIsImZyb21GaWxlIiwiQ2xhc3MiLCJmaWxlIiwicmVtYWluaW5nQXJndW1lbnRzIiwiZ2V0Q29udGVudCIsImdldFBhdGgiLCJwb3AiLCJmaWxlQ29udGV4dCIsImZyb21KU09OIiwiZnJvbU5vZGVBbmRUb2tlbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBcUJBOzs7Z0VBTEQ7bUVBQ0c7c0JBRXFCOzs7Ozs7QUFFN0IsTUFBTUEsb0JBQW9C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
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2ZpbGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDb250ZXh0IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuaW1wb3J0IHsgbm9kZUFzU3RyaW5nLCBub2Rlc0FzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ub2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVDb250ZXh0IGV4dGVuZHMgQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7XG4gICAgdGhpcy5maWxlUGF0aCA9IGZpbGVQYXRoO1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy5qc29uID0ganNvbjtcbiAgfVxuXG4gIGdldEZpbGVDb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZW50O1xuICB9XG5cbiAgZ2V0RmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVBhdGg7XG4gIH1cblxuICBnZXRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0SlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy5qc29uO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgY29uc3QgbGV4ZXIgPSBudWxsO1xuXG4gICAgcmV0dXJuIGxleGVyO1xuICB9XG5cbiAgZ2V0UGFyc2VyKCkge1xuICAgIGNvbnN0IHBhcnNlciA9IG51bGw7XG5cbiAgICByZXR1cm4gcGFyc2VyO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeCgpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVByZWZpeCA9IGNvbnRleHQuZ2V0VHlwZVByZWZpeCgpO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXg7XG4gIH1cblxuICBtYXRjaEZpbGVQYXRoKGZpbGVQYXRoKSB7XG4gICAgY29uc3QgZmlsZVBhdGhNYXRjaGVzID0gKHRoaXMuZmlsZVBhdGggPT09IGZpbGVQYXRoKTtcblxuICAgIHJldHVybiBmaWxlUGF0aE1hdGNoZXM7XG4gIH1cblxuICBub2RlQXNTdHJpbmcobm9kZSkge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVBc1N0cmluZyhub2RlLCB0aGlzLnRva2Vucyk7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgbm9kZXNBc1N0cmluZyhub2Rlcykge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVzQXNTdHJpbmcobm9kZXMsIHRoaXMudG9rZW5zKTtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBicmVhayhub2RlLCBicmVha1BvaW50LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZmlsZVBhdGgsXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSB0aGlzLmdldFJlbGVhc2VDb250ZXh0KCk7XG5cbiAgICBpZiAoYnJlYWtQb2ludCA9PT0gbnVsbCkge1xuICAgICAgYnJlYWtQb2ludCA9IEJyZWFrUG9pbnQuZnJvbUZpbGVQYXRoTm9kZUFuZFRva2VucyhmaWxlUGF0aCwgbm9kZSwgdGhpcy50b2tlbnMpO1xuICAgIH1cblxuICAgIHJldHVybiByZWxlYXNlQ29udGV4dC5icmVhayhicmVha1BvaW50LCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRpbnVhdGlvbikge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMubm9kZSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy53YXJuaW5nKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHt0aGlzLmZpbGVQYXRofScgZmlsZSBiZWNhdXNlIGl0IGNhbm5vdCBiZSBwYXJzZWQuYCk7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odmVyaWZpZXMpO1xuICAgIH1cblxuICAgIHRoaXMuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7dGhpcy5maWxlUGF0aH0nIGZpbGUuLi5gKTtcblxuICAgIHRoaXMudmVyaWZ5RmlsZSgoZmlsZVZlcmlmaWVzKSA9PiB7XG4gICAgICBpZiAoZmlsZVZlcmlmaWVzKSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdmVyaWZpZXMgP1xuICAgICAgICB0aGlzLmNvbXBsZXRlKCkgOlxuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcblxuICAgICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICAgIHRoaXMuaW5mbyhgLi4udmVyaWZpZWQgdGhlICcke3RoaXMuZmlsZVBhdGh9JyBmaWxlLmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgY29uc3QgbGV4ZXIgPSB0aGlzLmdldExleGVyKCksXG4gICAgICAgICAgcGFyc2VyID0gdGhpcy5nZXRQYXJzZXIoKSxcbiAgICAgICAgICBjb250ZW50ID0gdGhpcy5maWxlQ29udGVudDsgLy8vXG5cbiAgICB0aGlzLnRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gICAgdGhpcy5ub2RlID0gcGFyc2VyLnBhcnNlKHRoaXMudG9rZW5zKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRmlsZShDbGFzcywgZmlsZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICBmaWxlUGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxuICAgICAgICAgIHRva2VucyA9IG51bGwsXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAganNvbiA9IG51bGwsXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSwgLy8vXG4gICAgICAgICAgZmlsZUNvbnRleHQgPSBuZXcgQ2xhc3MoY29udGV4dCwgZmlsZUNvbnRlbnQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIGpzb24sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gZmlsZUNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oQ2xhc3MsIGpzb24sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IHsgZmlsZUNvbnRlbnQsIGZpbGVQYXRoIH0gPSBqc29uLFxuICAgICAgICAgIHRva2VucyA9IG51bGwsXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSwgLy8vXG4gICAgICAgICAgZmlsZUNvbnRleHQgPSBuZXcgQ2xhc3MoY29udGV4dCwgZmlsZUNvbnRlbnQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIGpzb24sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gZmlsZUNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVBbmRUb2tlbnMoQ2xhc3MsIG5vZGUsIHRva2VucywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPSBudWxsLFxuICAgICAgICAgIGZpbGVQYXRoID0gbnVsbCxcbiAgICAgICAgICBqc29uID0gbnVsbCxcbiAgICAgICAgICBjb250ZXh0ID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBmaWxlQ29udGV4dCA9IG5ldyBDbGFzcyhjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiBmaWxlQ29udGV4dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZpbGVDb250ZXh0IiwiQ29udGV4dCIsImNvbnRleHQiLCJmaWxlQ29udGVudCIsImZpbGVQYXRoIiwidG9rZW5zIiwibm9kZSIsImpzb24iLCJnZXRGaWxlQ29udGVudCIsImdldEZpbGVQYXRoIiwiZ2V0VG9rZW5zIiwiZ2V0Tm9kZSIsImdldEpTT04iLCJnZXRMZXhlciIsImxleGVyIiwiZ2V0UGFyc2VyIiwicGFyc2VyIiwiZ2V0VHlwZVByZWZpeCIsImdldENvbnRleHQiLCJ0eXBlUHJlZml4IiwibWF0Y2hGaWxlUGF0aCIsImZpbGVQYXRoTWF0Y2hlcyIsIm5vZGVBc1N0cmluZyIsInN0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJub2RlcyIsImJyZWFrIiwiYnJlYWtQb2ludCIsImNvbnRpbnVhdGlvbiIsInJlbGVhc2VDb250ZXh0IiwiZ2V0UmVsZWFzZUNvbnRleHQiLCJCcmVha1BvaW50IiwiZnJvbUZpbGVQYXRoTm9kZUFuZFRva2VucyIsInZlcmlmeSIsInZlcmlmaWVzIiwid2FybmluZyIsImRlYnVnIiwidmVyaWZ5RmlsZSIsImZpbGVWZXJpZmllcyIsImNvbXBsZXRlIiwiY2xlYXIiLCJpbmZvIiwiaW5pdGlhbGlzZSIsImNvbnRlbnQiLCJ0b2tlbmlzZSIsInBhcnNlIiwiZnJvbUZpbGUiLCJDbGFzcyIsImZpbGUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJnZXRDb250ZW50IiwiZ2V0UGF0aCIsInBvcCIsImZpbGVDb250ZXh0IiwiZnJvbUpTT04iLCJmcm9tTm9kZUFuZFRva2VucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUFxQkE7OztnRUFMRDttRUFDRztzQkFFcUI7Ozs7OztBQUU3QixNQUFNQSxvQkFBb0JDLGdCQUFPO0lBQzlDLFlBQVlD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
@@ -320,8 +320,7 @@ class ReleaseContext {
320
320
  const level = _constants.TRACE_LEVEL, message = _constants.BREAK_MESSAGE, filePath = breakPoint.getFilePath(), lineIndex = breakPoint.getLineIndex();
321
321
  this.writeToLog(level, message, filePath, lineIndex);
322
322
  const context = this; ///
323
- this.callback(breakPoint, context, continuation);
324
- return breakPoint;
323
+ return this.callback(breakPoint, context, continuation);
325
324
  }
326
325
  verify(contiunation) {
327
326
  let verifies = false;
@@ -362,4 +361,4 @@ class ReleaseContext {
362
361
  }
363
362
  }
364
363
 
365
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyB2ZXJpZnlUeXBlUHJlZml4ZXMsIHZlcmlmeUZpbGVDb250ZXh0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmVyaWZ5XCI7XG5pbXBvcnQgeyBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jdXN0b21HcmFtbWFyXCI7XG5pbXBvcnQgeyBmaWxlQ29udGV4dHNGcm9tSlNPTiwgZmlsZUNvbnRleHRzRnJvbUVudHJpZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2ZpbGVDb250ZXh0XCI7XG5pbXBvcnQgeyBUUkFDRV9MRVZFTCwgREVCVUdfTEVWRUwsIElORk9fTEVWRUwsIFdBUk5JTkdfTEVWRUwsIEVSUk9SX0xFVkVMLCBCUkVBS19NRVNTQUdFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IHB1c2gsIHRhaWwsIGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVsZWFzZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihsb2csIG5hbWUsIGpzb24sIGVudHJpZXMsIGNhbGxiYWNrLCBjdXN0b21HcmFtbWFyLCB2ZXJpZmllcywgaW5pdGlhbGlzZWQsIGZpbGVDb250ZXh0cywgY29tYmluZWRDdXN0b21HcmFtbWFyLCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKSB7XG4gICAgdGhpcy5sb2cgPSBsb2c7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmpzb24gPSBqc29uO1xuICAgIHRoaXMuZW50cmllcyA9IGVudHJpZXM7XG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIHRoaXMuY3VzdG9tR3JhbW1hciA9IGN1c3RvbUdyYW1tYXI7XG4gICAgdGhpcy52ZXJpZmllcyA9IHZlcmlmaWVzO1xuICAgIHRoaXMuaW5pdGlhbGlzZWQgPSBpbml0aWFsaXNlZDtcbiAgICB0aGlzLmZpbGVDb250ZXh0cyA9IGZpbGVDb250ZXh0cztcbiAgICB0aGlzLmNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hcjtcbiAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzO1xuICB9XG5cbiAgZ2V0TG9nKCkge1xuICAgIHJldHVybiB0aGlzLmxvZztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEpTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuanNvbjtcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIGdldENhbGxiYWNrKCkge1xuICAgIHJldHVybiB0aGlzLmNhbGxiYWNrO1xuICB9XG5cbiAgZ2V0Q3VzdG9tR3JhbW1hcigpIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21HcmFtbWFyO1xuICB9XG5cbiAgZ2V0VmVyaWZpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyaWZpZXM7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpc2VkO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0cztcbiAgfVxuXG4gIGdldENvbWJpbmVkQ3VzdG9tR3JhbW1hcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb21iaW5lZEN1c3RvbUdyYW1tYXI7XG4gIH1cblxuICBnZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHM7XG4gIH1cblxuICBnZXRWZXJzaW9uKCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzLmdldFZlcnNpb24oKTsgfVxuXG4gIG1hdGNoRGVwZW5kZW5jeU5hbWUoZGVwZW5kZW5jeU5hbWUpIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5TmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSBkZXBlbmRlbmN5TmFtZSk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW5jeU5hbWVNYXRjaGVzO1xuICB9XG5cbiAgZ2V0UmVsZWFzZUNvbnRleHQoKSB7XG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSB0aGlzOyAgLy8vXG5cbiAgICByZXR1cm4gcmVsZWFzZUNvbnRleHQ7XG4gIH1cblxuICBnZXRDb250ZXh0KCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBudWxsO1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cblxuICBnZXREZXB0aCgpIHtcbiAgICBjb25zdCBkZXB0aCA9IDA7XG5cbiAgICByZXR1cm4gZGVwdGg7XG4gIH1cblxuICBoYXNWZXJpZmllZCgpIHtcbiAgICBjb25zdCB2ZXJpZmllZCA9IHRoaXMudmVyaWZpZXM7IC8vL1xuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgaXNSZWxlYXNlZCgpIHtcbiAgICBjb25zdCByZWxlYXNlZCA9ICh0aGlzLmpzb24gIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHJlbGVhc2VkO1xuICB9XG5cbiAgaXNVbnJlbGVhc2VkKCkge1xuICAgIGNvbnN0IHJlbGVhc2VkID0gdGhpcy5pc1JlbGVhc2VkKCksXG4gICAgICAgICAgdW5yZWxlYXNlZCA9ICFyZWxlYXNlZDtcblxuICAgIHJldHVybiB1bnJlbGVhc2VkO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeCgpIHtcbiAgICBsZXQgdHlwZVByZWZpeCA9IG51bGw7XG5cbiAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgdHlwZVByZWZpeGVzID0gdGhpcy5nZXRUeXBlUHJlZml4ZXMoaW5jbHVkZURlcGVuZGVuY2llcyksXG4gICAgICAgICAgdHlwZVByZWZpeGVzTGVuZ3RoID0gdHlwZVByZWZpeGVzLmxlbmd0aDtcblxuICAgIGlmICh0eXBlUHJlZml4ZXNMZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0VHlwZVByZWZpeCA9IGZpcnN0KHR5cGVQcmVmaXhlcyk7XG5cbiAgICAgIHR5cGVQcmVmaXggPSBmaXJzdFR5cGVQcmVmaXg7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUHJlZml4O1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgbGFiZWxzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TGFiZWxzID0gZmlsZUNvbnRleHQuZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChsYWJlbHMsIGZpbGVDb250ZXh0TGFiZWxzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dExhYmVscyA9IHJlbGVhc2VDb250ZXh0LmdldExhYmVscyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGxhYmVscywgcmVsZWFzZUNvbnRleHRMYWJlbHMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgdHlwZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRUeXBlcyA9IGZpbGVDb250ZXh0LmdldFR5cGVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaCh0eXBlcywgZmlsZUNvbnRleHRUeXBlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRUeXBlcyA9IHJlbGVhc2VDb250ZXh0LmdldFR5cGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2godHlwZXMsIHJlbGVhc2VDb250ZXh0VHlwZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVzO1xuICB9XG5cbiAgZ2V0UnVsZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dFJ1bGVzID0gZmlsZUNvbnRleHQuZ2V0UnVsZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHJ1bGVzLCBmaWxlQ29udGV4dFJ1bGVzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dFJ1bGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UnVsZXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChydWxlcywgcmVsZWFzZUNvbnRleHRSdWxlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBheGlvbXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRBeGlvbXMgPSBmaWxlQ29udGV4dC5nZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGF4aW9tcywgZmlsZUNvbnRleHRBeGlvbXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0QXhpb21zID0gcmVsZWFzZUNvbnRleHQuZ2V0QXhpb21zKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goYXhpb21zLCByZWxlYXNlQ29udGV4dEF4aW9tcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgbGVtbWFzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TGVtbWFzID0gZmlsZUNvbnRleHQuZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChsZW1tYXMsIGZpbGVDb250ZXh0TGVtbWFzKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBsZW1tYXM7XG4gIH1cblxuICBnZXRTY2hlbWFzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3Qgc2NoZW1hcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dFNjaGVtYXMgPSBmaWxlQ29udGV4dC5nZXRTY2hlbWFzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChzY2hlbWFzLCBmaWxlQ29udGV4dFNjaGVtYXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0U2NoZW1hcyA9IHJlbGVhc2VDb250ZXh0LmdldFNjaGVtYXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChzY2hlbWFzLCByZWxlYXNlQ29udGV4dFNjaGVtYXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjaGVtYXM7XG4gIH1cblxuICBnZXRUaGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0VGhlb3JlbXMgPSBmaWxlQ29udGV4dC5nZXRUaGVvcmVtcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2godGhlb3JlbXMsIGZpbGVDb250ZXh0VGhlb3JlbXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0VGhlb3JlbXMgPSByZWxlYXNlQ29udGV4dC5nZXRUaGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHRoZW9yZW1zLCByZWxlYXNlQ29udGV4dFRoZW9yZW1zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGVvcmVtcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0UHJvY2VkdXJlcyA9IGZpbGVDb250ZXh0LmdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHByb2NlZHVyZXMsIGZpbGVDb250ZXh0UHJvY2VkdXJlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRQcm9jZWR1cmVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UHJvY2VkdXJlcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHByb2NlZHVyZXMsIHJlbGVhc2VDb250ZXh0UHJvY2VkdXJlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlcztcbiAgfVxuXG4gIGdldEdlbmVyYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0R2VuZXJhdG9ycyA9IGZpbGVDb250ZXh0LmdldEdlbmVyYXRvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGdlbmVyYXRvcnMsIGZpbGVDb250ZXh0R2VuZXJhdG9ycyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRHZW5lcmF0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0R2VuZXJhdG9ycyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGdlbmVyYXRvcnMsIHJlbGVhc2VDb250ZXh0R2VuZXJhdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uamVjdHVyZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRDb25qZWN0dXJlcyA9IGZpbGVDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25qZWN0dXJlcywgZmlsZUNvbnRleHRDb25qZWN0dXJlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRDb25qZWN0dXJlcyA9IHJlbGVhc2VDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goY29uamVjdHVyZXMsIHJlbGVhc2VDb250ZXh0Q29uamVjdHVyZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmplY3R1cmVzO1xuICB9XG5cbiAgZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dENvbWJpbmF0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGNvbWJpbmF0b3JzLCBmaWxlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChjb21iaW5hdG9ycywgcmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRUeXBlUHJlZml4ZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCB0eXBlUHJlZml4ZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRUeXBlUHJlZml4ZXMgPSBmaWxlQ29udGV4dC5nZXRUeXBlUHJlZml4ZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHR5cGVQcmVmaXhlcywgZmlsZUNvbnRleHRUeXBlUHJlZml4ZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0VHlwZVByZWZpeGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2godHlwZVByZWZpeGVzLCByZWxlYXNlQ29udGV4dFR5cGVQcmVmaXhlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVByZWZpeGVzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3JzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyA9IHJlbGVhc2VDb250ZXh0LmdldENvbnN0cnVjdG9ycyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGNvbnN0cnVjdG9ycywgcmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9ycztcbiAgfVxuXG4gIGdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIHRoaXMuZW50cmllcy5nZXREZXBlbmRlbmNpZXMoKTsgfVxuXG4gIG1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKSB7IHJldHVybiB0aGlzLmVudHJpZXMubWF0Y2hTaG9ydGVuZWRWZXJzaW9uKHNob3J0ZW5lZFZlcnNpb24pOyB9XG5cbiAgdHJhY2UobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gVFJBQ0VfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgZGVidWcobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gREVCVUdfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBJTkZPX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKTtcbiAgfVxuXG4gIHdhcm5pbmcobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gV0FSTklOR19MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICBlcnJvcihtZXNzYWdlKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBFUlJPUl9MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICB3cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCA9IG51bGwsIGxpbmVJbmRleCA9IG51bGwpIHtcbiAgICB0aGlzLmxvZy53cml0ZShsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCk7XG4gIH1cblxuICBpbml0aWFsaXNlKHJlbGVhc2VDb250ZXh0cywgRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgpIHtcbiAgICBjb25zdCByZWxlYXNlZCA9IHRoaXMuaXNSZWxlYXNlZCgpLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gdGhpcywgIC8vL1xuICAgICAgICAgIHJlbGVhc2VDb250ZXh0c1RhaWwgPSB0YWlsKHJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSByZWxlYXNlQ29udGV4dHNUYWlsOyAvLy9cblxuICAgIHRoaXMuY29tYmluZWRDdXN0b21HcmFtbWFyID0gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgcmVsZWFzZWQgP1xuICAgICAgZmlsZUNvbnRleHRzRnJvbUpTT04odGhpcy5qc29uLCB0aGlzLmZpbGVDb250ZXh0cywgcmVsZWFzZUNvbnRleHQsIEZpbGVDb250ZXh0RnJvbUZpbGVQYXRoKSA6XG4gICAgICAgIGZpbGVDb250ZXh0c0Zyb21FbnRyaWVzKHRoaXMuZW50cmllcywgdGhpcy5maWxlQ29udGV4dHMsIHJlbGVhc2VDb250ZXh0LCBGaWxlQ29udGV4dEZyb21GaWxlUGF0aCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgZmlsZUNvbnRleHQuaW5pdGlhbGlzZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pbml0aWFsaXNlZCA9IHRydWU7XG4gIH1cblxuICBicmVhayhicmVha1BvaW50LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBsZXZlbCA9IFRSQUNFX0xFVkVMLFxuICAgICAgICAgIG1lc3NhZ2UgPSBCUkVBS19NRVNTQUdFLFxuICAgICAgICAgIGZpbGVQYXRoID0gYnJlYWtQb2ludC5nZXRGaWxlUGF0aCgpLFxuICAgICAgICAgIGxpbmVJbmRleCA9IGJyZWFrUG9pbnQuZ2V0TGluZUluZGV4KCk7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXgpO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7IC8vL1xuXG4gICAgdGhpcy5jYWxsYmFjayhicmVha1BvaW50LCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gICAgcmV0dXJuIGJyZWFrUG9pbnQ7XG4gIH1cblxuICB2ZXJpZnkoY29udGl1bmF0aW9uKSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlUHJlZml4ZXMgPSB0aGlzLmdldFR5cGVQcmVmaXhlcygpLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgdHlwZVByZWZpeGVzVmVyaWZ5ID0gdmVyaWZ5VHlwZVByZWZpeGVzKHR5cGVQcmVmaXhlcywgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgaWYgKCF0eXBlUHJlZml4ZXNWZXJpZnkpIHtcbiAgICAgIGNvbnRpdW5hdGlvbih2ZXJpZmllcyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJpZmllZEZpbGVDb250ZXh0cyA9IFtdO1xuXG4gICAgdmVyaWZ5RmlsZUNvbnRleHRzKHRoaXMuZmlsZUNvbnRleHRzLCB2ZXJpZmllZEZpbGVDb250ZXh0cywgKGZpbGVDb250ZXh0c1ZlcmlmeSkgPT4ge1xuICAgICAgaWYgKGZpbGVDb250ZXh0c1ZlcmlmeSkge1xuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy52ZXJpZmllcyA9IHZlcmlmaWVzO1xuXG4gICAgICAgIHRoaXMuZmlsZUNvbnRleHRzID0gdmVyaWZpZWRGaWxlQ29udGV4dHM7IC8vL1xuICAgICAgfVxuXG4gICAgICBjb250aXVuYXRpb24odmVyaWZpZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGZpbGVDb250ZXh0c0pTT04gPSB0aGlzLmZpbGVDb250ZXh0cy5tYXAoKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlQ29udGV4dEpTT04gPSBmaWxlQ29udGV4dC50b0pTT04oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZpbGVDb250ZXh0SlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBqc29uID0gZmlsZUNvbnRleHRzSlNPTjsgIC8vL1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUxvZ05hbWVKU09ORW50cmllc0NhbGxiYWNrQW5kQ3VzdG9tR3JhbW1hcihDbGFzcywgbG9nLCBuYW1lLCBqc29uLCBlbnRyaWVzLCBjYWxsYmFjaywgY3VzdG9tR3JhbW1hcikge1xuICAgIGlmIChjdXN0b21HcmFtbWFyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGN1c3RvbUdyYW1tYXIgPSBjYWxsYmFjazsgLy8vXG5cbiAgICAgIGNhbGxiYWNrID0gZW50cmllczsgLy8vXG5cbiAgICAgIGVudHJpZXMgPSBqc29uOyAvLy9cblxuICAgICAganNvbiA9IG5hbWU7ICAvLy9cblxuICAgICAgbmFtZSA9IGxvZzsgLy8vXG5cbiAgICAgIGxvZyA9IENsYXNzOyAgLy8vXG5cbiAgICAgIENsYXNzID0gUmVsZWFzZUNvbnRleHQ7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHZlcmlmaWVzID0gZmFsc2UsXG4gICAgICAgICAgaW5pdGlhbGlzZWQgPSBmYWxzZSxcbiAgICAgICAgICBmaWxlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgICBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBudWxsLFxuICAgICAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBudWxsLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gbmV3IENsYXNzKGxvZywgbmFtZSwganNvbiwgZW50cmllcywgY2FsbGJhY2ssIGN1c3RvbUdyYW1tYXIsIHZlcmlmaWVzLCBpbml0aWFsaXNlZCwgZmlsZUNvbnRleHRzLCBjb21iaW5lZEN1c3RvbUdyYW1tYXIsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiUmVsZWFzZUNvbnRleHQiLCJwdXNoIiwidGFpbCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJsb2ciLCJuYW1lIiwianNvbiIsImVudHJpZXMiLCJjYWxsYmFjayIsImN1c3RvbUdyYW1tYXIiLCJ2ZXJpZmllcyIsImluaXRpYWxpc2VkIiwiZmlsZUNvbnRleHRzIiwiY29tYmluZWRDdXN0b21HcmFtbWFyIiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImdldExvZyIsImdldE5hbWUiLCJnZXRKU09OIiwiZ2V0RW50cmllcyIsImdldENhbGxiYWNrIiwiZ2V0Q3VzdG9tR3JhbW1hciIsImdldFZlcmlmaWVzIiwiaXNJbml0aWFsaXNlZCIsImdldEZpbGVDb250ZXh0cyIsImdldENvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJnZXRWZXJzaW9uIiwibWF0Y2hEZXBlbmRlbmN5TmFtZSIsImRlcGVuZGVuY3lOYW1lIiwiZGVwZW5kZW5jeU5hbWVNYXRjaGVzIiwiZ2V0UmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dCIsImdldENvbnRleHQiLCJjb250ZXh0IiwiZ2V0RGVwdGgiLCJkZXB0aCIsImhhc1ZlcmlmaWVkIiwidmVyaWZpZWQiLCJpc1JlbGVhc2VkIiwicmVsZWFzZWQiLCJpc1VucmVsZWFzZWQiLCJ1bnJlbGVhc2VkIiwiZ2V0VHlwZVByZWZpeCIsInR5cGVQcmVmaXgiLCJpbmNsdWRlRGVwZW5kZW5jaWVzIiwidHlwZVByZWZpeGVzIiwiZ2V0VHlwZVByZWZpeGVzIiwidHlwZVByZWZpeGVzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RUeXBlUHJlZml4IiwiZ2V0TGFiZWxzIiwibGFiZWxzIiwiZm9yRWFjaCIsImZpbGVDb250ZXh0IiwiaW5jbHVkZVJlbGVhc2UiLCJmaWxlQ29udGV4dExhYmVscyIsInJlbGVhc2VDb250ZXh0TGFiZWxzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImZpbGVDb250ZXh0VHlwZXMiLCJyZWxlYXNlQ29udGV4dFR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImZpbGVDb250ZXh0UnVsZXMiLCJyZWxlYXNlQ29udGV4dFJ1bGVzIiwiZ2V0QXhpb21zIiwiYXhpb21zIiwiZmlsZUNvbnRleHRBeGlvbXMiLCJyZWxlYXNlQ29udGV4dEF4aW9tcyIsImdldExlbW1hcyIsImxlbW1hcyIsImZpbGVDb250ZXh0TGVtbWFzIiwiZ2V0U2NoZW1hcyIsInNjaGVtYXMiLCJmaWxlQ29udGV4dFNjaGVtYXMiLCJyZWxlYXNlQ29udGV4dFNjaGVtYXMiLCJnZXRUaGVvcmVtcyIsInRoZW9yZW1zIiwiZmlsZUNvbnRleHRUaGVvcmVtcyIsInJlbGVhc2VDb250ZXh0VGhlb3JlbXMiLCJnZXRQcm9jZWR1cmVzIiwicHJvY2VkdXJlcyIsImZpbGVDb250ZXh0UHJvY2VkdXJlcyIsInJlbGVhc2VDb250ZXh0UHJvY2VkdXJlcyIsImdldEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzIiwiZmlsZUNvbnRleHRHZW5lcmF0b3JzIiwicmVsZWFzZUNvbnRleHRHZW5lcmF0b3JzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImZpbGVDb250ZXh0Q29uamVjdHVyZXMiLCJyZWxlYXNlQ29udGV4dENvbmplY3R1cmVzIiwiZ2V0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9ycyIsImZpbGVDb250ZXh0Q29tYmluYXRvcnMiLCJyZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzIiwiZmlsZUNvbnRleHRUeXBlUHJlZml4ZXMiLCJyZWxlYXNlQ29udGV4dFR5cGVQcmVmaXhlcyIsImdldENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9ycyIsImZpbGVDb250ZXh0Q29uc3RydWN0b3JzIiwicmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMiLCJnZXREZXBlbmRlbmNpZXMiLCJtYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJzaG9ydGVuZWRWZXJzaW9uIiwidHJhY2UiLCJtZXNzYWdlIiwibGV2ZWwiLCJUUkFDRV9MRVZFTCIsIndyaXRlVG9Mb2ciLCJkZWJ1ZyIsIkRFQlVHX0xFVkVMIiwiaW5mbyIsIklORk9fTEVWRUwiLCJ3YXJuaW5nIiwiV0FSTklOR19MRVZFTCIsImVycm9yIiwiRVJST1JfTEVWRUwiLCJmaWxlUGF0aCIsImxpbmVJbmRleCIsIndyaXRlIiwiaW5pdGlhbGlzZSIsInJlbGVhc2VDb250ZXh0cyIsIkZpbGVDb250ZXh0RnJvbUZpbGVQYXRoIiwicmVsZWFzZUNvbnRleHRzVGFpbCIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHMiLCJmaWxlQ29udGV4dHNGcm9tSlNPTiIsImZpbGVDb250ZXh0c0Zyb21FbnRyaWVzIiwiYnJlYWsiLCJicmVha1BvaW50IiwiY29udGludWF0aW9uIiwiQlJFQUtfTUVTU0FHRSIsImdldEZpbGVQYXRoIiwiZ2V0TGluZUluZGV4IiwidmVyaWZ5IiwiY29udGl1bmF0aW9uIiwidHlwZVByZWZpeGVzVmVyaWZ5IiwidmVyaWZ5VHlwZVByZWZpeGVzIiwidmVyaWZpZWRGaWxlQ29udGV4dHMiLCJ2ZXJpZnlGaWxlQ29udGV4dHMiLCJmaWxlQ29udGV4dHNWZXJpZnkiLCJ0b0pTT04iLCJmaWxlQ29udGV4dHNKU09OIiwibWFwIiwiZmlsZUNvbnRleHRKU09OIiwiZnJvbUxvZ05hbWVKU09ORW50cmllc0NhbGxiYWNrQW5kQ3VzdG9tR3JhbW1hciIsIkNsYXNzIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXFCQTs7OzJCQVRVO3dCQUV3QjsrQkFDRTs2QkFDSzsyQkFDa0M7QUFFaEcsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFLEdBQUdDLHlCQUFjO0FBRTdCLE1BQU1KO0lBQ25CLFlBQVlLLEdBQUcsRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMs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
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyB2ZXJpZnlUeXBlUHJlZml4ZXMsIHZlcmlmeUZpbGVDb250ZXh0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmVyaWZ5XCI7XG5pbXBvcnQgeyBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jdXN0b21HcmFtbWFyXCI7XG5pbXBvcnQgeyBmaWxlQ29udGV4dHNGcm9tSlNPTiwgZmlsZUNvbnRleHRzRnJvbUVudHJpZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2ZpbGVDb250ZXh0XCI7XG5pbXBvcnQgeyBUUkFDRV9MRVZFTCwgREVCVUdfTEVWRUwsIElORk9fTEVWRUwsIFdBUk5JTkdfTEVWRUwsIEVSUk9SX0xFVkVMLCBCUkVBS19NRVNTQUdFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IHB1c2gsIHRhaWwsIGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVsZWFzZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihsb2csIG5hbWUsIGpzb24sIGVudHJpZXMsIGNhbGxiYWNrLCBjdXN0b21HcmFtbWFyLCB2ZXJpZmllcywgaW5pdGlhbGlzZWQsIGZpbGVDb250ZXh0cywgY29tYmluZWRDdXN0b21HcmFtbWFyLCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKSB7XG4gICAgdGhpcy5sb2cgPSBsb2c7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmpzb24gPSBqc29uO1xuICAgIHRoaXMuZW50cmllcyA9IGVudHJpZXM7XG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIHRoaXMuY3VzdG9tR3JhbW1hciA9IGN1c3RvbUdyYW1tYXI7XG4gICAgdGhpcy52ZXJpZmllcyA9IHZlcmlmaWVzO1xuICAgIHRoaXMuaW5pdGlhbGlzZWQgPSBpbml0aWFsaXNlZDtcbiAgICB0aGlzLmZpbGVDb250ZXh0cyA9IGZpbGVDb250ZXh0cztcbiAgICB0aGlzLmNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hcjtcbiAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzO1xuICB9XG5cbiAgZ2V0TG9nKCkge1xuICAgIHJldHVybiB0aGlzLmxvZztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEpTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuanNvbjtcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIGdldENhbGxiYWNrKCkge1xuICAgIHJldHVybiB0aGlzLmNhbGxiYWNrO1xuICB9XG5cbiAgZ2V0Q3VzdG9tR3JhbW1hcigpIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21HcmFtbWFyO1xuICB9XG5cbiAgZ2V0VmVyaWZpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyaWZpZXM7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpc2VkO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0cztcbiAgfVxuXG4gIGdldENvbWJpbmVkQ3VzdG9tR3JhbW1hcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb21iaW5lZEN1c3RvbUdyYW1tYXI7XG4gIH1cblxuICBnZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHM7XG4gIH1cblxuICBnZXRWZXJzaW9uKCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzLmdldFZlcnNpb24oKTsgfVxuXG4gIG1hdGNoRGVwZW5kZW5jeU5hbWUoZGVwZW5kZW5jeU5hbWUpIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5TmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSBkZXBlbmRlbmN5TmFtZSk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW5jeU5hbWVNYXRjaGVzO1xuICB9XG5cbiAgZ2V0UmVsZWFzZUNvbnRleHQoKSB7XG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSB0aGlzOyAgLy8vXG5cbiAgICByZXR1cm4gcmVsZWFzZUNvbnRleHQ7XG4gIH1cblxuICBnZXRDb250ZXh0KCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBudWxsO1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cblxuICBnZXREZXB0aCgpIHtcbiAgICBjb25zdCBkZXB0aCA9IDA7XG5cbiAgICByZXR1cm4gZGVwdGg7XG4gIH1cblxuICBoYXNWZXJpZmllZCgpIHtcbiAgICBjb25zdCB2ZXJpZmllZCA9IHRoaXMudmVyaWZpZXM7IC8vL1xuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgaXNSZWxlYXNlZCgpIHtcbiAgICBjb25zdCByZWxlYXNlZCA9ICh0aGlzLmpzb24gIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHJlbGVhc2VkO1xuICB9XG5cbiAgaXNVbnJlbGVhc2VkKCkge1xuICAgIGNvbnN0IHJlbGVhc2VkID0gdGhpcy5pc1JlbGVhc2VkKCksXG4gICAgICAgICAgdW5yZWxlYXNlZCA9ICFyZWxlYXNlZDtcblxuICAgIHJldHVybiB1bnJlbGVhc2VkO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeCgpIHtcbiAgICBsZXQgdHlwZVByZWZpeCA9IG51bGw7XG5cbiAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgdHlwZVByZWZpeGVzID0gdGhpcy5nZXRUeXBlUHJlZml4ZXMoaW5jbHVkZURlcGVuZGVuY2llcyksXG4gICAgICAgICAgdHlwZVByZWZpeGVzTGVuZ3RoID0gdHlwZVByZWZpeGVzLmxlbmd0aDtcblxuICAgIGlmICh0eXBlUHJlZml4ZXNMZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0VHlwZVByZWZpeCA9IGZpcnN0KHR5cGVQcmVmaXhlcyk7XG5cbiAgICAgIHR5cGVQcmVmaXggPSBmaXJzdFR5cGVQcmVmaXg7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUHJlZml4O1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgbGFiZWxzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TGFiZWxzID0gZmlsZUNvbnRleHQuZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChsYWJlbHMsIGZpbGVDb250ZXh0TGFiZWxzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dExhYmVscyA9IHJlbGVhc2VDb250ZXh0LmdldExhYmVscyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGxhYmVscywgcmVsZWFzZUNvbnRleHRMYWJlbHMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgdHlwZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRUeXBlcyA9IGZpbGVDb250ZXh0LmdldFR5cGVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaCh0eXBlcywgZmlsZUNvbnRleHRUeXBlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRUeXBlcyA9IHJlbGVhc2VDb250ZXh0LmdldFR5cGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2godHlwZXMsIHJlbGVhc2VDb250ZXh0VHlwZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVzO1xuICB9XG5cbiAgZ2V0UnVsZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dFJ1bGVzID0gZmlsZUNvbnRleHQuZ2V0UnVsZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHJ1bGVzLCBmaWxlQ29udGV4dFJ1bGVzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dFJ1bGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UnVsZXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChydWxlcywgcmVsZWFzZUNvbnRleHRSdWxlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBheGlvbXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRBeGlvbXMgPSBmaWxlQ29udGV4dC5nZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGF4aW9tcywgZmlsZUNvbnRleHRBeGlvbXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0QXhpb21zID0gcmVsZWFzZUNvbnRleHQuZ2V0QXhpb21zKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goYXhpb21zLCByZWxlYXNlQ29udGV4dEF4aW9tcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgbGVtbWFzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TGVtbWFzID0gZmlsZUNvbnRleHQuZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChsZW1tYXMsIGZpbGVDb250ZXh0TGVtbWFzKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBsZW1tYXM7XG4gIH1cblxuICBnZXRTY2hlbWFzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3Qgc2NoZW1hcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dFNjaGVtYXMgPSBmaWxlQ29udGV4dC5nZXRTY2hlbWFzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChzY2hlbWFzLCBmaWxlQ29udGV4dFNjaGVtYXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0U2NoZW1hcyA9IHJlbGVhc2VDb250ZXh0LmdldFNjaGVtYXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChzY2hlbWFzLCByZWxlYXNlQ29udGV4dFNjaGVtYXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjaGVtYXM7XG4gIH1cblxuICBnZXRUaGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0VGhlb3JlbXMgPSBmaWxlQ29udGV4dC5nZXRUaGVvcmVtcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2godGhlb3JlbXMsIGZpbGVDb250ZXh0VGhlb3JlbXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0VGhlb3JlbXMgPSByZWxlYXNlQ29udGV4dC5nZXRUaGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHRoZW9yZW1zLCByZWxlYXNlQ29udGV4dFRoZW9yZW1zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGVvcmVtcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0UHJvY2VkdXJlcyA9IGZpbGVDb250ZXh0LmdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHByb2NlZHVyZXMsIGZpbGVDb250ZXh0UHJvY2VkdXJlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRQcm9jZWR1cmVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UHJvY2VkdXJlcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHByb2NlZHVyZXMsIHJlbGVhc2VDb250ZXh0UHJvY2VkdXJlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlcztcbiAgfVxuXG4gIGdldEdlbmVyYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0R2VuZXJhdG9ycyA9IGZpbGVDb250ZXh0LmdldEdlbmVyYXRvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGdlbmVyYXRvcnMsIGZpbGVDb250ZXh0R2VuZXJhdG9ycyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRHZW5lcmF0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0R2VuZXJhdG9ycyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGdlbmVyYXRvcnMsIHJlbGVhc2VDb250ZXh0R2VuZXJhdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uamVjdHVyZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRDb25qZWN0dXJlcyA9IGZpbGVDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25qZWN0dXJlcywgZmlsZUNvbnRleHRDb25qZWN0dXJlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRDb25qZWN0dXJlcyA9IHJlbGVhc2VDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goY29uamVjdHVyZXMsIHJlbGVhc2VDb250ZXh0Q29uamVjdHVyZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmplY3R1cmVzO1xuICB9XG5cbiAgZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dENvbWJpbmF0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGNvbWJpbmF0b3JzLCBmaWxlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChjb21iaW5hdG9ycywgcmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRUeXBlUHJlZml4ZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCB0eXBlUHJlZml4ZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRUeXBlUHJlZml4ZXMgPSBmaWxlQ29udGV4dC5nZXRUeXBlUHJlZml4ZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHR5cGVQcmVmaXhlcywgZmlsZUNvbnRleHRUeXBlUHJlZml4ZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0VHlwZVByZWZpeGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2godHlwZVByZWZpeGVzLCByZWxlYXNlQ29udGV4dFR5cGVQcmVmaXhlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVByZWZpeGVzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3JzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyA9IHJlbGVhc2VDb250ZXh0LmdldENvbnN0cnVjdG9ycyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGNvbnN0cnVjdG9ycywgcmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9ycztcbiAgfVxuXG4gIGdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIHRoaXMuZW50cmllcy5nZXREZXBlbmRlbmNpZXMoKTsgfVxuXG4gIG1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKSB7IHJldHVybiB0aGlzLmVudHJpZXMubWF0Y2hTaG9ydGVuZWRWZXJzaW9uKHNob3J0ZW5lZFZlcnNpb24pOyB9XG5cbiAgdHJhY2UobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gVFJBQ0VfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgZGVidWcobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gREVCVUdfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBJTkZPX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKTtcbiAgfVxuXG4gIHdhcm5pbmcobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gV0FSTklOR19MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICBlcnJvcihtZXNzYWdlKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBFUlJPUl9MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICB3cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCA9IG51bGwsIGxpbmVJbmRleCA9IG51bGwpIHtcbiAgICB0aGlzLmxvZy53cml0ZShsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCk7XG4gIH1cblxuICBpbml0aWFsaXNlKHJlbGVhc2VDb250ZXh0cywgRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgpIHtcbiAgICBjb25zdCByZWxlYXNlZCA9IHRoaXMuaXNSZWxlYXNlZCgpLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gdGhpcywgIC8vL1xuICAgICAgICAgIHJlbGVhc2VDb250ZXh0c1RhaWwgPSB0YWlsKHJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSByZWxlYXNlQ29udGV4dHNUYWlsOyAvLy9cblxuICAgIHRoaXMuY29tYmluZWRDdXN0b21HcmFtbWFyID0gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgcmVsZWFzZWQgP1xuICAgICAgZmlsZUNvbnRleHRzRnJvbUpTT04odGhpcy5qc29uLCB0aGlzLmZpbGVDb250ZXh0cywgcmVsZWFzZUNvbnRleHQsIEZpbGVDb250ZXh0RnJvbUZpbGVQYXRoKSA6XG4gICAgICAgIGZpbGVDb250ZXh0c0Zyb21FbnRyaWVzKHRoaXMuZW50cmllcywgdGhpcy5maWxlQ29udGV4dHMsIHJlbGVhc2VDb250ZXh0LCBGaWxlQ29udGV4dEZyb21GaWxlUGF0aCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgZmlsZUNvbnRleHQuaW5pdGlhbGlzZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pbml0aWFsaXNlZCA9IHRydWU7XG4gIH1cblxuICBicmVhayhicmVha1BvaW50LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBsZXZlbCA9IFRSQUNFX0xFVkVMLFxuICAgICAgICAgIG1lc3NhZ2UgPSBCUkVBS19NRVNTQUdFLFxuICAgICAgICAgIGZpbGVQYXRoID0gYnJlYWtQb2ludC5nZXRGaWxlUGF0aCgpLFxuICAgICAgICAgIGxpbmVJbmRleCA9IGJyZWFrUG9pbnQuZ2V0TGluZUluZGV4KCk7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXgpO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7IC8vL1xuXG4gICAgcmV0dXJuIHRoaXMuY2FsbGJhY2soYnJlYWtQb2ludCwgY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgfVxuXG4gIHZlcmlmeShjb250aXVuYXRpb24pIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IHRoaXMuZ2V0VHlwZVByZWZpeGVzKCksXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSB0aGlzLCAvLy9cbiAgICAgICAgICB0eXBlUHJlZml4ZXNWZXJpZnkgPSB2ZXJpZnlUeXBlUHJlZml4ZXModHlwZVByZWZpeGVzLCByZWxlYXNlQ29udGV4dCk7XG5cbiAgICBpZiAoIXR5cGVQcmVmaXhlc1ZlcmlmeSkge1xuICAgICAgY29udGl1bmF0aW9uKHZlcmlmaWVzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZlcmlmaWVkRmlsZUNvbnRleHRzID0gW107XG5cbiAgICB2ZXJpZnlGaWxlQ29udGV4dHModGhpcy5maWxlQ29udGV4dHMsIHZlcmlmaWVkRmlsZUNvbnRleHRzLCAoZmlsZUNvbnRleHRzVmVyaWZ5KSA9PiB7XG4gICAgICBpZiAoZmlsZUNvbnRleHRzVmVyaWZ5KSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnZlcmlmaWVzID0gdmVyaWZpZXM7XG5cbiAgICAgICAgdGhpcy5maWxlQ29udGV4dHMgPSB2ZXJpZmllZEZpbGVDb250ZXh0czsgLy8vXG4gICAgICB9XG5cbiAgICAgIGNvbnRpdW5hdGlvbih2ZXJpZmllcyk7XG4gICAgfSk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgZmlsZUNvbnRleHRzSlNPTiA9IHRoaXMuZmlsZUNvbnRleHRzLm1hcCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVDb250ZXh0SlNPTiA9IGZpbGVDb250ZXh0LnRvSlNPTigpO1xuXG4gICAgICAgICAgICByZXR1cm4gZmlsZUNvbnRleHRKU09OO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGpzb24gPSBmaWxlQ29udGV4dHNKU09OOyAgLy8vXG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTG9nTmFtZUpTT05FbnRyaWVzQ2FsbGJhY2tBbmRDdXN0b21HcmFtbWFyKENsYXNzLCBsb2csIG5hbWUsIGpzb24sIGVudHJpZXMsIGNhbGxiYWNrLCBjdXN0b21HcmFtbWFyKSB7XG4gICAgaWYgKGN1c3RvbUdyYW1tYXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY3VzdG9tR3JhbW1hciA9IGNhbGxiYWNrOyAvLy9cblxuICAgICAgY2FsbGJhY2sgPSBlbnRyaWVzOyAvLy9cblxuICAgICAgZW50cmllcyA9IGpzb247IC8vL1xuXG4gICAgICBqc29uID0gbmFtZTsgIC8vL1xuXG4gICAgICBuYW1lID0gbG9nOyAvLy9cblxuICAgICAgbG9nID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBSZWxlYXNlQ29udGV4dDsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgdmVyaWZpZXMgPSBmYWxzZSxcbiAgICAgICAgICBpbml0aWFsaXNlZCA9IGZhbHNlLFxuICAgICAgICAgIGZpbGVDb250ZXh0cyA9IFtdLFxuICAgICAgICAgIGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IG51bGwsXG4gICAgICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IG51bGwsXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSBuZXcgQ2xhc3MobG9nLCBuYW1lLCBqc29uLCBlbnRyaWVzLCBjYWxsYmFjaywgY3VzdG9tR3JhbW1hciwgdmVyaWZpZXMsIGluaXRpYWxpc2VkLCBmaWxlQ29udGV4dHMsIGNvbWJpbmVkQ3VzdG9tR3JhbW1hciwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICByZXR1cm4gcmVsZWFzZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJSZWxlYXNlQ29udGV4dCIsInB1c2giLCJ0YWlsIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImxvZyIsIm5hbWUiLCJqc29uIiwiZW50cmllcyIsImNhbGxiYWNrIiwiY3VzdG9tR3JhbW1hciIsInZlcmlmaWVzIiwiaW5pdGlhbGlzZWQiLCJmaWxlQ29udGV4dHMiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiZ2V0TG9nIiwiZ2V0TmFtZSIsImdldEpTT04iLCJnZXRFbnRyaWVzIiwiZ2V0Q2FsbGJhY2siLCJnZXRDdXN0b21HcmFtbWFyIiwiZ2V0VmVyaWZpZXMiLCJpc0luaXRpYWxpc2VkIiwiZ2V0RmlsZUNvbnRleHRzIiwiZ2V0Q29tYmluZWRDdXN0b21HcmFtbWFyIiwiZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImdldFZlcnNpb24iLCJtYXRjaERlcGVuZGVuY3lOYW1lIiwiZGVwZW5kZW5jeU5hbWUiLCJkZXBlbmRlbmN5TmFtZU1hdGNoZXMiLCJnZXRSZWxlYXNlQ29udGV4dCIsInJlbGVhc2VDb250ZXh0IiwiZ2V0Q29udGV4dCIsImNvbnRleHQiLCJnZXREZXB0aCIsImRlcHRoIiwiaGFzVmVyaWZpZWQiLCJ2ZXJpZmllZCIsImlzUmVsZWFzZWQiLCJyZWxlYXNlZCIsImlzVW5yZWxlYXNlZCIsInVucmVsZWFzZWQiLCJnZXRUeXBlUHJlZml4IiwidHlwZVByZWZpeCIsImluY2x1ZGVEZXBlbmRlbmNpZXMiLCJ0eXBlUHJlZml4ZXMiLCJnZXRUeXBlUHJlZml4ZXMiLCJ0eXBlUHJlZml4ZXNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFR5cGVQcmVmaXgiLCJnZXRMYWJlbHMiLCJsYWJlbHMiLCJmb3JFYWNoIiwiZmlsZUNvbnRleHQiLCJpbmNsdWRlUmVsZWFzZSIsImZpbGVDb250ZXh0TGFiZWxzIiwicmVsZWFzZUNvbnRleHRMYWJlbHMiLCJnZXRUeXBlcyIsInR5cGVzIiwiZmlsZUNvbnRleHRUeXBlcyIsInJlbGVhc2VDb250ZXh0VHlwZXMiLCJnZXRSdWxlcyIsInJ1bGVzIiwiZmlsZUNvbnRleHRSdWxlcyIsInJlbGVhc2VDb250ZXh0UnVsZXMiLCJnZXRBeGlvbXMiLCJheGlvbXMiLCJmaWxlQ29udGV4dEF4aW9tcyIsInJlbGVhc2VDb250ZXh0QXhpb21zIiwiZ2V0TGVtbWFzIiwibGVtbWFzIiwiZmlsZUNvbnRleHRMZW1tYXMiLCJnZXRTY2hlbWFzIiwic2NoZW1hcyIsImZpbGVDb250ZXh0U2NoZW1hcyIsInJlbGVhc2VDb250ZXh0U2NoZW1hcyIsImdldFRoZW9yZW1zIiwidGhlb3JlbXMiLCJmaWxlQ29udGV4dFRoZW9yZW1zIiwicmVsZWFzZUNvbnRleHRUaGVvcmVtcyIsImdldFByb2NlZHVyZXMiLCJwcm9jZWR1cmVzIiwiZmlsZUNvbnRleHRQcm9jZWR1cmVzIiwicmVsZWFzZUNvbnRleHRQcm9jZWR1cmVzIiwiZ2V0R2VuZXJhdG9ycyIsImdlbmVyYXRvcnMiLCJmaWxlQ29udGV4dEdlbmVyYXRvcnMiLCJyZWxlYXNlQ29udGV4dEdlbmVyYXRvcnMiLCJnZXRDb25qZWN0dXJlcyIsImNvbmplY3R1cmVzIiwiZmlsZUNvbnRleHRDb25qZWN0dXJlcyIsInJlbGVhc2VDb250ZXh0Q29uamVjdHVyZXMiLCJnZXRDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZmlsZUNvbnRleHRDb21iaW5hdG9ycyIsInJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMiLCJmaWxlQ29udGV4dFR5cGVQcmVmaXhlcyIsInJlbGVhc2VDb250ZXh0VHlwZVByZWZpeGVzIiwiZ2V0Q29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzIiwiZmlsZUNvbnRleHRDb25zdHJ1Y3RvcnMiLCJyZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyIsImdldERlcGVuZGVuY2llcyIsIm1hdGNoU2hvcnRlbmVkVmVyc2lvbiIsInNob3J0ZW5lZFZlcnNpb24iLCJ0cmFjZSIsIm1lc3NhZ2UiLCJsZXZlbCIsIlRSQUNFX0xFVkVMIiwid3JpdGVUb0xvZyIsImRlYnVnIiwiREVCVUdfTEVWRUwiLCJpbmZvIiwiSU5GT19MRVZFTCIsIndhcm5pbmciLCJXQVJOSU5HX0xFVkVMIiwiZXJyb3IiLCJFUlJPUl9MRVZFTCIsImZpbGVQYXRoIiwibGluZUluZGV4Iiwid3JpdGUiLCJpbml0aWFsaXNlIiwicmVsZWFzZUNvbnRleHRzIiwiRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgiLCJyZWxlYXNlQ29udGV4dHNUYWlsIiwiY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cyIsImZpbGVDb250ZXh0c0Zyb21KU09OIiwiZmlsZUNvbnRleHRzRnJvbUVudHJpZXMiLCJicmVhayIsImJyZWFrUG9pbnQiLCJjb250aW51YXRpb24iLCJCUkVBS19NRVNTQUdFIiwiZ2V0RmlsZVBhdGgiLCJnZXRMaW5lSW5kZXgiLCJ2ZXJpZnkiLCJjb250aXVuYXRpb24iLCJ0eXBlUHJlZml4ZXNWZXJpZnkiLCJ2ZXJpZnlUeXBlUHJlZml4ZXMiLCJ2ZXJpZmllZEZpbGVDb250ZXh0cyIsInZlcmlmeUZpbGVDb250ZXh0cyIsImZpbGVDb250ZXh0c1ZlcmlmeSIsInRvSlNPTiIsImZpbGVDb250ZXh0c0pTT04iLCJtYXAiLCJmaWxlQ29udGV4dEpTT04iLCJmcm9tTG9nTmFtZUpTT05FbnRyaWVzQ2FsbGJhY2tBbmRDdXN0b21HcmFtbWFyIiwiQ2xhc3MiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBcUJBOzs7MkJBVFU7d0JBRXdCOytCQUNFOzZCQUNLOzJCQUNrQztBQUVoRyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MseUJBQWM7QUFFN0IsTUFBTUo7SUFDbkIsWUFBWUssR0FBRyxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLGFBQWEsRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLFlBQVksRUFBRUMscUJBQXFCLEVBQUVDLHlCQUF5QixDQUFFO1FBQ3BKLElBQUksQ0FBQ1YsR0FBRyxHQUFHQTtRQUNYLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7UUFDckIsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLFlBQVksR0FBR0E7UUFDcEIsSUFBSSxDQUFDQyxxQkFBcUIsR0FBR0E7UUFDN0IsSUFBSSxDQUFDQyx5QkFBeUIsR0FBR0E7SUFDbkM7SUFFQUMsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDWCxHQUFHO0lBQ2pCO0lBRUFZLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ1gsSUFBSTtJQUNsQjtJQUVBWSxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNYLElBQUk7SUFDbEI7SUFFQVksYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDWCxPQUFPO0lBQ3JCO0lBRUFZLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ1gsUUFBUTtJQUN0QjtJQUVBWSxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUNYLGFBQWE7SUFDM0I7SUFFQVksY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDWCxRQUFRO0lBQ3RCO0lBRUFZLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDWCxXQUFXO0lBQ3pCO0lBRUFZLGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQ1gsWUFBWTtJQUMxQjtJQUVBWSwyQkFBMkI7UUFDekIsT0FBTyxJQUFJLENBQUNYLHFCQUFxQjtJQUNuQztJQUVBWSwrQkFBK0I7UUFDN0IsT0FBTyxJQUFJLENBQUNYLHlCQUF5QjtJQUN2QztJQUVBWSxhQUFhO1FBQUUsT0FBTyxJQUFJLENBQUNuQixPQUFPLENBQUNtQixVQUFVO0lBQUk7SUFFakRDLG9CQUFvQkMsY0FBYyxFQUFFO1FBQ2xDLE1BQU1DLHdCQUF5QixJQUFJLENBQUN4QixJQUFJLEtBQUt1QjtRQUU3QyxPQUFPQztJQUNUO0lBRUFDLG9CQUFvQjtRQUNsQixNQUFNQyxpQkFBaUIsSUFBSSxFQUFHLEdBQUc7UUFFakMsT0FBT0E7SUFDVDtJQUVBQyxhQUFhO1FBQ1gsTUFBTUMsVUFBVTtRQUVoQixPQUFPQTtJQUNUO0lBRUFDLFdBQVc7UUFDVCxNQUFNQyxRQUFRO1FBRWQsT0FBT0E7SUFDVDtJQUVBQyxjQUFjO1FBQ1osTUFBTUMsV0FBVyxJQUFJLENBQUMzQixRQUFRLEVBQUUsR0FBRztRQUVuQyxPQUFPMkI7SUFDVDtJQUVBQyxhQUFhO1FBQ1gsTUFBTUMsV0FBWSxJQUFJLENBQUNqQyxJQUFJLEtBQUs7UUFFaEMsT0FBT2lDO0lBQ1Q7SUFFQUMsZUFBZTtRQUNiLE1BQU1ELFdBQVcsSUFBSSxDQUFDRCxVQUFVLElBQzFCRyxhQUFhLENBQUNGO1FBRXBCLE9BQU9FO0lBQ1Q7SUFFQUMsZ0JBQWdCO1FBQ2QsSUFBSUMsYUFBYTtRQUVqQixNQUFNQyxzQkFBc0IsT0FDdEJDLGVBQWUsSUFBSSxDQUFDQyxlQUFlLENBQUNGLHNCQUNwQ0cscUJBQXFCRixhQUFhRyxNQUFNO1FBRTlDLElBQUlELHVCQUF1QixHQUFHO1lBQzVCLE1BQU1FLGtCQUFrQi9DLE1BQU0yQztZQUU5QkYsYUFBYU0saUJBQWlCLEdBQUc7UUFDbkM7UUFFQSxPQUFPTjtJQUNUO0lBRUFPLFVBQVVOLHNCQUFzQixJQUFJLEVBQUU7UUFDcEMsTUFBTU8sU0FBUyxFQUFFO1FBRWpCLElBQUksQ0FBQ3ZDLFlBQVksQ0FBQ3dDLE9BQU8sQ0FBQyxDQUFDQztZQUN6QixNQUFNQyxpQkFBaUIsT0FDakJDLG9CQUFvQkYsWUFBWUgsU0FBUyxDQUFDSTtZQUVoRHRELEtBQUttRCxRQUFRSTtRQUNmO1FBRUEsSUFBSVgscUJBQXFCO1lBQ3ZCLElBQUksQ0FBQzlCLHlCQUF5QixDQUFDc0MsT0FBTyxDQUFDLENBQUNyQjtnQkFDdEMsTUFBTWEsc0JBQXNCLE9BQ3RCWSx1QkFBdUJ6QixlQUFlbUIsU0FBUyxDQUFDTjtnQkFFdEQ1QyxLQUFLbUQsUUFBUUs7WUFDZjtRQUNGO1FBRUEsT0FBT0w7SUFDVDtJQUVBTSxTQUFTYixzQkFBc0IsSUFBSSxFQUFFO1FBQ25DLE1BQU1jLFFBQVEsRUFBRTtRQUVoQixJQUFJLENBQUM5QyxZQUFZLENBQUN3QyxPQUFPLENBQUMsQ0FBQ0M7WUFDekIsTUFBTUMsaUJBQWlCLE9BQ2pCSyxtQkFBbUJOLFlBQVlJLFFBQVEsQ0FBQ0g7WUFFOUN0RCxLQUFLMEQsT0FBT0M7UUFDZDtRQUVBLElBQUlmLHFCQUFxQjtZQUN2QixJQUFJLENBQUM5Qix5QkFBeUIsQ0FBQ3NDLE9BQU8sQ0FBQyxDQUFDckI7Z0JBQ3RDLE1BQU1hLHNCQUFzQixPQUN0QmdCLHNCQUFzQjdCLGVBQWUwQixRQUFRLENBQUNiO2dCQUVwRDVDLEtBQUswRCxPQUFPRTtZQUNkO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUFHLFNBQVNqQixzQkFBc0IsSUFBSSxFQUFFO1FBQ25DLE1BQU1rQixRQUFRLEVBQUU7UUFFaEIsSUFBSSxDQUFDbEQsWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLGlCQUFpQixPQUNqQlMsbUJBQW1CVixZQUFZUSxRQUFRLENBQUNQO1lBRTlDdEQsS0FBSzhELE9BQU9DO1FBQ2Q7UUFFQSxJQUFJbkIscUJBQXFCO1lBQ3ZCLElBQUksQ0FBQzlCLHlCQUF5QixDQUFDc0MsT0FBTyxDQUFDLENBQUNyQjtnQkFDdEMsTUFBTWEsc0JBQXNCLE9BQ3RCb0Isc0JBQXNCakMsZUFBZThCLFFBQVEsQ0FBQ2pCO2dCQUVwRDVDLEtBQUs4RCxPQUFPRTtZQUNkO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUFHLFVBQVVyQixzQkFBc0IsSUFBSSxFQUFFO1FBQ3BDLE1BQU1zQixTQUFTLEVBQUU7UUFFakIsSUFBSSxDQUFDdEQsWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLGlCQUFpQixPQUNqQmEsb0JBQW9CZCxZQUFZWSxTQUFTLENBQUNYO1lBRWhEdEQsS0FBS2tFLFFBQVFDO1FBQ2Y7UUFFQSxJQUFJdkIscUJBQXFCO1lBQ3ZCLElBQUksQ0FBQzlCLHlCQUF5QixDQUFDc0MsT0FBTyxDQUFDLENBQUNyQjtnQkFDdEMsTUFBTWEsc0JBQXNCLE9BQ3RCd0IsdUJBQXVCckMsZUFBZWtDLFNBQVMsQ0FBQ3JCO2dCQUV0RDVDLEtBQUtrRSxRQUFRRTtZQUNmO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUFHLFVBQVV6QixzQkFBc0IsSUFBSSxFQUFFO1FBQ3BDLE1BQU0wQixTQUFTLEVBQUU7UUFFakIsSUFBSSxDQUFDMUQsWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLGlCQUFpQixPQUNqQmlCLG9CQUFvQmxCLFlBQVlnQixTQUFTLENBQUNmO1lBRWhEdEQsS0FBS3NFLFFBQVFDO1FBQ2Y7UUFFQSxPQUFPRDtJQUNUO0lBRUFFLFdBQVc1QixzQkFBc0IsSUFBSSxFQUFFO1FBQ3JDLE1BQU02QixVQUFVLEVBQUU7UUFFbEIsSUFBSSxDQUFDN0QsWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLGlCQUFpQixPQUNqQm9CLHFCQUFxQnJCLFlBQVltQixVQUFVLENBQUNsQjtZQUVsRHRELEtBQUt5RSxTQUFTQztRQUNoQjtRQUVBLElBQUk5QixxQkFBcUI7WUFDdkIsSUFBSSxDQUFDOUIseUJBQXlCLENBQUNzQyxPQUFPLENBQUMsQ0FBQ3JCO2dCQUN0QyxNQUFNYSxzQkFBc0IsT0FDdEIrQix3QkFBd0I1QyxlQUFleUMsVUFBVSxDQUFDNUI7Z0JBRXhENUMsS0FBS3lFLFNBQVNFO1lBQ2hCO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUFHLFlBQVloQyxzQkFBc0IsSUFBSSxFQUFFO1FBQ3RDLE1BQU1pQyxXQUFXLEVBQUU7UUFFbkIsSUFBSSxDQUFDakUsWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLGlCQUFpQixPQUNqQndCLHNCQUFzQnpCLFlBQVl1QixXQUFXLENBQUN0QjtZQUVwRHRELEtBQUs2RSxVQUFVQztRQUNqQjtRQUVBLElBQUlsQyxxQkFBcUI7WUFDdkIsSUFBSSxDQUFDOUIseUJBQXlCLENBQUNzQyxPQUFPLENBQUMsQ0FBQ3JCO2dCQUN0QyxNQUFNYSxzQkFBc0IsT0FDdEJtQyx5QkFBeUJoRCxlQUFlNkMsV0FBVyxDQUFDaEM7Z0JBRTFENUMsS0FBSzZFLFVBQVVFO1lBQ2pCO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUFHLGNBQWNwQyxzQkFBc0IsSUFBSSxFQUFFO1FBQ3hDLE1BQU1xQyxhQUFhLEVBQUU7UUFFckIsSUFBSSxDQUFDckUsWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLGlCQUFpQixPQUNqQjRCLHdCQUF3QjdCLFlBQVkyQixhQUFhLENBQUMxQjtZQUV4RHRELEtBQUtpRixZQUFZQztRQUNuQjtRQUVBLElBQUl0QyxxQkFBcUI7WUFDdkIsSUFBSSxDQUFDOUIseUJBQXlCLENBQUNzQyxPQUFPLENBQUMsQ0FBQ3JCO2dCQUN0QyxNQUFNYSxzQkFBc0IsT0FDdEJ1QywyQkFBMkJwRCxlQUFlaUQsYUFBYSxDQUFDcEM7Z0JBRTlENUMsS0FBS2lGLFlBQVlFO1lBQ25CO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUFHLGNBQWN4QyxzQkFBc0IsSUFBSSxFQUFFO1FBQ3hDLE1BQU15QyxhQUFhLEVBQUU7UUFFckIsSUFBSSxDQUFDekUsWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLGlCQUFpQixPQUNqQmdDLHdCQUF3QmpDLFlBQVkrQixhQUFhLENBQUM5QjtZQUV4RHRELEtBQUtxRixZQUFZQztRQUNuQjtRQUVBLElBQUkxQyxxQkFBcUI7WUFDdkIsSUFBSSxDQUFDOUIseUJBQXlCLENBQUNzQyxPQUFPLENBQUMsQ0FBQ3JCO2dCQUN0QyxNQUFNYSxzQkFBc0IsT0FDdEIyQywyQkFBMkJ4RCxlQUFlcUQsYUFBYSxDQUFDeEM7Z0JBRTlENUMsS0FBS3FGLFlBQVlFO1lBQ25CO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUFHLGVBQWU1QyxzQkFBc0IsSUFBSSxFQUFFO1FBQ3pDLE1BQU02QyxjQUFjLEVBQUU7UUFFdEIsSUFBSSxDQUFDN0UsWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLGlCQUFpQixPQUNqQm9DLHlCQUF5QnJDLFlBQVltQyxjQUFjLENBQUNsQztZQUUxRHRELEtBQUt5RixhQUFhQztRQUNwQjtRQUVBLElBQUk5QyxxQkFBcUI7WUFDdkIsSUFBSSxDQUFDOUIseUJBQXlCLENBQUNzQyxPQUFPLENBQUMsQ0FBQ3JCO2dCQUN0QyxNQUFNYSxzQkFBc0IsT0FDdEIrQyw0QkFBNEI1RCxlQUFleUQsY0FBYyxDQUFDNUM7Z0JBRWhFNUMsS0FBS3lGLGFBQWFFO1lBQ3BCO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUFHLGVBQWVoRCxzQkFBc0IsSUFBSSxFQUFFO1FBQ3pDLE1BQU1pRCxjQUFjLEVBQUU7UUFFdEIsSUFBSSxDQUFDakYsWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLGlCQUFpQixPQUNqQndDLHlCQUF5QnpDLFlBQVl1QyxjQUFjLENBQUN0QztZQUUxRHRELEtBQUs2RixhQUFhQztRQUNwQjtRQUVBLElBQUlsRCxxQkFBcUI7WUFDdkIsSUFBSSxDQUFDOUIseUJBQXlCLENBQUNzQyxPQUFPLENBQUMsQ0FBQ3JCO2dCQUN0QyxNQUFNYSxzQkFBc0IsT0FDdEJtRCw0QkFBNEJoRSxlQUFlNkQsY0FBYyxDQUFDaEQ7Z0JBRWhFNUMsS0FBSzZGLGFBQWFFO1lBQ3BCO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUEvQyxnQkFBZ0JGLHNCQUFzQixJQUFJLEVBQUU7UUFDMUMsTUFBTUMsZUFBZSxFQUFFO1FBRXZCLElBQUksQ0FBQ2pDLFlBQVksQ0FBQ3dDLE9BQU8sQ0FBQyxDQUFDQztZQUN6QixNQUFNQyxpQkFBaUIsT0FDakIwQywwQkFBMEIzQyxZQUFZUCxlQUFlLENBQUNRO1lBRTVEdEQsS0FBSzZDLGNBQWNtRDtRQUNyQjtRQUVBLElBQUlwRCxxQkFBcUI7WUFDdkIsSUFBSSxDQUFDOUIseUJBQXlCLENBQUNzQyxPQUFPLENBQUMsQ0FBQ3JCO2dCQUN0QyxNQUFNYSxzQkFBc0IsT0FDdEJxRCw2QkFBNkJsRSxlQUFlZSxlQUFlLENBQUNGO2dCQUVsRTVDLEtBQUs2QyxjQUFjb0Q7WUFDckI7UUFDRjtRQUVBLE9BQU9wRDtJQUNUO0lBRUFxRCxnQkFBZ0J0RCxzQkFBc0IsSUFBSSxFQUFFO1FBQzFDLE1BQU11RCxlQUFlLEVBQUU7UUFFdkIsSUFBSSxDQUFDdkYsWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLGlCQUFpQixPQUNqQjhDLDBCQUEwQi9DLFlBQVk2QyxlQUFlLENBQUM1QztZQUU1RHRELEtBQUttRyxjQUFjQztRQUNyQjtRQUVBLElBQUl4RCxxQkFBcUI7WUFDdkIsSUFBSSxDQUFDOUIseUJBQXlCLENBQUNzQyxPQUFPLENBQUMsQ0FBQ3JCO2dCQUN0QyxNQUFNYSxzQkFBc0IsT0FDdEJ5RCw2QkFBNkJ0RSxlQUFlbUUsZUFBZSxDQUFDdEQ7Z0JBRWxFNUMsS0FBS21HLGNBQWNFO1lBQ3JCO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUFHLGtCQUFrQjtRQUFFLE9BQU8sSUFBSSxDQUFDL0YsT0FBTyxDQUFDK0YsZUFBZTtJQUFJO0lBRTNEQyxzQkFBc0JDLGdCQUFnQixFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNqRyxPQUFPLENBQUNnRyxxQkFBcUIsQ0FBQ0M7SUFBbUI7SUFFdkdDLE1BQU1DLE9BQU8sRUFBRTtRQUNiLE1BQU1DLFFBQVFDLHNCQUFXO1FBRXpCLElBQUksQ0FBQ0MsVUFBVSxDQUFDRixPQUFPRDtJQUN6QjtJQUVBSSxNQUFNSixPQUFPLEVBQUU7UUFDYixNQUFNQyxRQUFRSSxzQkFBVztRQUV6QixJQUFJLENBQUNGLFVBQVUsQ0FBQ0YsT0FBT0Q7SUFDekI7SUFFQU0sS0FBS04sT0FBTyxFQUFFO1FBQ1osTUFBTUMsUUFBUU0scUJBQVU7UUFFeEIsSUFBSSxDQUFDSixVQUFVLENBQUNGLE9BQU9EO0lBQ3pCO0lBRUFRLFFBQVFSLE9BQU8sRUFBRTtRQUNmLE1BQU1DLFFBQVFRLHdCQUFhO1FBRTNCLElBQUksQ0FBQ04sVUFBVSxDQUFDRixPQUFPRDtJQUN6QjtJQUVBVSxNQUFNVixPQUFPLEVBQUU7UUFDYixNQUFNQyxRQUFRVSxzQkFBVztRQUV6QixJQUFJLENBQUNSLFVBQVUsQ0FBQ0YsT0FBT0Q7SUFDekI7SUFFQUcsV0FBV0YsS0FBSyxFQUFFRCxPQUFPLEVBQUVZLFdBQVcsSUFBSSxFQUFFQyxZQUFZLElBQUksRUFBRTtRQUM1RCxJQUFJLENBQUNuSCxHQUFHLENBQUNvSCxLQUFLLENBQUNiLE9BQU9ELFNBQVNZLFVBQVVDO0lBQzNDO0lBRUFFLFdBQVdDLGVBQWUsRUFBRUMsdUJBQXVCLEVBQUU7UUFDbkQsTUFBTXBGLFdBQVcsSUFBSSxDQUFDRCxVQUFVLElBQzFCUCxpQkFBaUIsSUFBSSxFQUNyQjZGLHNCQUFzQjNILEtBQUt5SDtRQUVqQyxJQUFJLENBQUM1Ryx5QkFBeUIsR0FBRzhHLHFCQUFxQixHQUFHO1FBRXpELElBQUksQ0FBQy9HLHFCQUFxQixHQUFHZ0gsSUFBQUEsdURBQXdDLEVBQUNIO1FBRXRFbkYsV0FDRXVGLElBQUFBLGlDQUFvQixFQUFDLElBQUksQ0FBQ3hILElBQUksRUFBRSxJQUFJLENBQUNNLFlBQVksRUFBRW1CLGdCQUFnQjRGLDJCQUNqRUksSUFBQUEsb0NBQXVCLEVBQUMsSUFBSSxDQUFDeEgsT0FBTyxFQUFFLElBQUksQ0FBQ0ssWUFBWSxFQUFFbUIsZ0JBQWdCNEY7UUFFN0UsSUFBSSxDQUFDL0csWUFBWSxDQUFDd0MsT0FBTyxDQUFDLENBQUNDO1lBQ3pCQSxZQUFZb0UsVUFBVTtRQUN4QjtRQUVBLElBQUksQ0FBQzlHLFdBQVcsR0FBRztJQUNyQjtJQUVBcUgsTUFBTUMsVUFBVSxFQUFFQyxZQUFZLEVBQUU7UUFDOUIsTUFBTXZCLFFBQVFDLHNCQUFXLEVBQ25CRixVQUFVeUIsd0JBQWEsRUFDdkJiLFdBQVdXLFdBQVdHLFdBQVcsSUFDakNiLFlBQVlVLFdBQVdJLFlBQVk7UUFFekMsSUFBSSxDQUFDeEIsVUFBVSxDQUFDRixPQUFPRCxTQUFTWSxVQUFVQztRQUUxQyxNQUFNdEYsVUFBVSxJQUFJLEVBQUUsR0FBRztRQUV6QixPQUFPLElBQUksQ0FBQ3pCLFFBQVEsQ0FBQ3lILFlBQVloRyxTQUFTaUc7SUFDNUM7SUFFQUksT0FBT0MsWUFBWSxFQUFFO1FBQ25CLElBQUk3SCxXQUFXO1FBRWYsTUFBTW1DLGVBQWUsSUFBSSxDQUFDQyxlQUFlLElBQ25DZixpQkFBaUIsSUFBSSxFQUNyQnlHLHFCQUFxQkMsSUFBQUEsMEJBQWtCLEVBQUM1RixjQUFjZDtRQUU1RCxJQUFJLENBQUN5RyxvQkFBb0I7WUFDdkJELGFBQWE3SDtZQUViO1FBQ0Y7UUFFQSxNQUFNZ0ksdUJBQXVCLEVBQUU7UUFFL0JDLElBQUFBLDBCQUFrQixFQUFDLElBQUksQ0FBQy9ILFlBQVksRUFBRThILHNCQUFzQixDQUFDRTtZQUMzRCxJQUFJQSxvQkFBb0I7Z0JBQ3RCbEksV0FBVztnQkFFWCxJQUFJLENBQUNBLFFBQVEsR0FBR0E7Z0JBRWhCLElBQUksQ0FBQ0UsWUFBWSxHQUFHOEgsc0JBQXNCLEdBQUc7WUFDL0M7WUFFQUgsYUFBYTdIO1FBQ2Y7SUFDRjtJQUVBbUksU0FBUztRQUNQLE1BQU1DLG1CQUFtQixJQUFJLENBQUNsSSxZQUFZLENBQUNtSSxHQUFHLENBQUMsQ0FBQzFGO1lBQ3hDLE1BQU0yRixrQkFBa0IzRixZQUFZd0YsTUFBTTtZQUUxQyxPQUFPRztRQUNULElBQ0ExSSxPQUFPd0ksa0JBQW1CLEdBQUc7UUFFbkMsT0FBT3hJO0lBQ1Q7SUFFQSxPQUFPMkksK0NBQStDQyxLQUFLLEVBQUU5SSxHQUFHLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxFQUFFO1FBQzlHLElBQUlBLGtCQUFrQjBJLFdBQVc7WUFDL0IxSSxnQkFBZ0JELFVBQVUsR0FBRztZQUU3QkEsV0FBV0QsU0FBUyxHQUFHO1lBRXZCQSxVQUFVRCxNQUFNLEdBQUc7WUFFbkJBLE9BQU9ELE1BQU8sR0FBRztZQUVqQkEsT0FBT0QsS0FBSyxHQUFHO1lBRWZBLE1BQU04SSxPQUFRLEdBQUc7WUFFakJBLFFBQVFuSixnQkFBZ0IsR0FBRztRQUM3QjtRQUVBLE1BQU1XLFdBQVcsT0FDWEMsY0FBYyxPQUNkQyxlQUFlLEVBQUUsRUFDakJDLHdCQUF3QixNQUN4QkMsNEJBQTRCLE1BQzVCaUIsaUJBQWlCLElBQUltSCxNQUFNOUksS0FBS0MsTUFBTUMsTUFBTUMsU0FBU0MsVUFBVUMsZUFBZUMsVUFBVUMsYUFBYUMsY0FBY0MsdUJBQXVCQztRQUVoSixPQUFPaUI7SUFDVDtBQUNGIn0=
package/lib/element.js CHANGED
@@ -8,6 +8,12 @@ Object.defineProperty(exports, "default", {
8
8
  return Element;
9
9
  }
10
10
  });
11
+ const _breakPoint = /*#__PURE__*/ _interop_require_default(require("./utilities/breakPoint"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
11
17
  class Element {
12
18
  constructor(context, string, node, breakPoint){
13
19
  this.context = context;
@@ -43,11 +49,14 @@ class Element {
43
49
  this.context = context;
44
50
  }
45
51
  break(context, continuation) {
46
- this.breakPoint = context.break(this.node, this.breakPoint, continuation);
52
+ return context.break(this.node, this.breakPoint, (breakPoint)=>{
53
+ this.breakPoint = breakPoint;
54
+ return continuation();
55
+ });
47
56
  }
48
57
  matchNode(node) {
49
58
  return this.node.match(node);
50
59
  }
51
60
  }
52
61
 
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lbGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMuYnJlYWtQb2ludCA9IGJyZWFrUG9pbnQ7XG4gIH1cblxuICBnZXRDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0QnJlYWtQb2ludCgpIHtcbiAgICByZXR1cm4gdGhpcy5icmVha1BvaW50O1xuICB9XG5cbiAgc2V0Q29udGV4dChjb250ZXh0KSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgfVxuXG4gIHNldFN0cmluZyhzdHJpbmcpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgfVxuXG4gIHNldE5vZGUobm9kZSkge1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gIH1cblxuICBzZXRCcmVha1BvaW50KGJyZWFrUG9pbnQpIHtcbiAgICB0aGlzLmJyZWFrUG9pbnQgPSBicmVha1BvaW50O1xuICB9XG5cbiAgY29tbWl0KGNvbnRleHQpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICB9XG5cbiAgYnJlYWsoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgdGhpcy5icmVha1BvaW50ID0gY29udGV4dC5icmVhayh0aGlzLm5vZGUsIHRoaXMuYnJlYWtQb2ludCwgY29udGludWF0aW9uKTtcbiAgfVxuXG4gIG1hdGNoTm9kZShub2RlKSB7IHJldHVybiB0aGlzLm5vZGUubWF0Y2gobm9kZSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiZ2V0Q29udGV4dCIsImdldFN0cmluZyIsImdldE5vZGUiLCJnZXRCcmVha1BvaW50Iiwic2V0Q29udGV4dCIsInNldFN0cmluZyIsInNldE5vZGUiLCJzZXRCcmVha1BvaW50IiwiY29tbWl0IiwiYnJlYWsiLCJjb250aW51YXRpb24iLCJtYXRjaE5vZGUiLCJtYXRjaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBRUE7OztlQUFxQkE7OztBQUFOLE1BQU1BO0lBQ25CLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsQ0FBRTtRQUM3QyxJQUFJLENBQUNILE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDSixPQUFPO0lBQ3JCO0lBRUFLLFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQ0osTUFBTTtJQUNwQjtJQUVBSyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNKLElBQUk7SUFDbEI7SUFFQUssZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNKLFVBQVU7SUFDeEI7SUFFQUssV0FBV1IsT0FBTyxFQUFFO1FBQ2xCLElBQUksQ0FBQ0EsT0FBTyxHQUFHQTtJQUNqQjtJQUVBUyxVQUFVUixNQUFNLEVBQUU7UUFDaEIsSUFBSSxDQUFDQSxNQUFNLEdBQUdBO0lBQ2hCO0lBRUFTLFFBQVFSLElBQUksRUFBRTtRQUNaLElBQUksQ0FBQ0EsSUFBSSxHQUFHQTtJQUNkO0lBRUFTLGNBQWNSLFVBQVUsRUFBRTtRQUN4QixJQUFJLENBQUNBLFVBQVUsR0FBR0E7SUFDcEI7SUFFQVMsT0FBT1osT0FBTyxFQUFFO1FBQ2QsSUFBSSxDQUFDQSxPQUFPLEdBQUdBO0lBQ2pCO0lBRUFhLE1BQU1iLE9BQU8sRUFBRWMsWUFBWSxFQUFFO1FBQzNCLElBQUksQ0FBQ1gsVUFBVSxHQUFHSCxRQUFRYSxLQUFLLENBQUMsSUFBSSxDQUFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDQyxVQUFVLEVBQUVXO0lBQzlEO0lBRUFDLFVBQVViLElBQUksRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDQSxJQUFJLENBQUNjLEtBQUssQ0FBQ2Q7SUFBTztBQUNsRCJ9
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lbGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgYnJlYWtQb2ludCBmcm9tIFwiLi91dGlsaXRpZXMvYnJlYWtQb2ludFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMuYnJlYWtQb2ludCA9IGJyZWFrUG9pbnQ7XG4gIH1cblxuICBnZXRDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0QnJlYWtQb2ludCgpIHtcbiAgICByZXR1cm4gdGhpcy5icmVha1BvaW50O1xuICB9XG5cbiAgc2V0Q29udGV4dChjb250ZXh0KSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgfVxuXG4gIHNldFN0cmluZyhzdHJpbmcpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgfVxuXG4gIHNldE5vZGUobm9kZSkge1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gIH1cblxuICBzZXRCcmVha1BvaW50KGJyZWFrUG9pbnQpIHtcbiAgICB0aGlzLmJyZWFrUG9pbnQgPSBicmVha1BvaW50O1xuICB9XG5cbiAgY29tbWl0KGNvbnRleHQpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICB9XG5cbiAgYnJlYWsoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgcmV0dXJuIGNvbnRleHQuYnJlYWsodGhpcy5ub2RlLCB0aGlzLmJyZWFrUG9pbnQsIChicmVha1BvaW50KSA9PiB7XG4gICAgICB0aGlzLmJyZWFrUG9pbnQgPSBicmVha1BvaW50O1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBtYXRjaE5vZGUobm9kZSkgeyByZXR1cm4gdGhpcy5ub2RlLm1hdGNoKG5vZGUpOyB9XG59XG4iXSwibmFtZXMiOlsiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImdldENvbnRleHQiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0QnJlYWtQb2ludCIsInNldENvbnRleHQiLCJzZXRTdHJpbmciLCJzZXROb2RlIiwic2V0QnJlYWtQb2ludCIsImNvbW1pdCIsImJyZWFrIiwiY29udGludWF0aW9uIiwibWF0Y2hOb2RlIiwibWF0Y2giXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBcUJBOzs7bUVBRkU7Ozs7OztBQUVSLE1BQU1BO0lBQ25CLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsQ0FBRTtRQUM3QyxJQUFJLENBQUNILE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDSixPQUFPO0lBQ3JCO0lBRUFLLFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQ0osTUFBTTtJQUNwQjtJQUVBSyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNKLElBQUk7SUFDbEI7SUFFQUssZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNKLFVBQVU7SUFDeEI7SUFFQUssV0FBV1IsT0FBTyxFQUFFO1FBQ2xCLElBQUksQ0FBQ0EsT0FBTyxHQUFHQTtJQUNqQjtJQUVBUyxVQUFVUixNQUFNLEVBQUU7UUFDaEIsSUFBSSxDQUFDQSxNQUFNLEdBQUdBO0lBQ2hCO0lBRUFTLFFBQVFSLElBQUksRUFBRTtRQUNaLElBQUksQ0FBQ0EsSUFBSSxHQUFHQTtJQUNkO0lBRUFTLGNBQWNSLFVBQVUsRUFBRTtRQUN4QixJQUFJLENBQUNBLFVBQVUsR0FBR0E7SUFDcEI7SUFFQVMsT0FBT1osT0FBTyxFQUFFO1FBQ2QsSUFBSSxDQUFDQSxPQUFPLEdBQUdBO0lBQ2pCO0lBRUFhLE1BQU1iLE9BQU8sRUFBRWMsWUFBWSxFQUFFO1FBQzNCLE9BQU9kLFFBQVFhLEtBQUssQ0FBQyxJQUFJLENBQUNYLElBQUksRUFBRSxJQUFJLENBQUNDLFVBQVUsRUFBRSxDQUFDQTtZQUNoRCxJQUFJLENBQUNBLFVBQVUsR0FBR0E7WUFFbEIsT0FBT1c7UUFDVDtJQUNGO0lBRUFDLFVBQVViLElBQUksRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDQSxJQUFJLENBQUNjLEtBQUssQ0FBQ2Q7SUFBTztBQUNsRCJ9
package/lib/index.js CHANGED
@@ -51,12 +51,6 @@ _export(exports, {
51
51
  get ReleaseContext () {
52
52
  return _release.default;
53
53
  },
54
- get SimplePass () {
55
- return _simple.default;
56
- },
57
- get ZipPass () {
58
- return _zip.default;
59
- },
60
54
  get bnfUtilities () {
61
55
  return _bnf.default;
62
56
  },
@@ -94,8 +88,6 @@ const _context = /*#__PURE__*/ _interop_require_default(require("./context"));
94
88
  const _breakPoint = /*#__PURE__*/ _interop_require_default(require("./breakPoint"));
95
89
  const _file = /*#__PURE__*/ _interop_require_default(require("./context/file"));
96
90
  const _release = /*#__PURE__*/ _interop_require_default(require("./context/release"));
97
- const _zip = /*#__PURE__*/ _interop_require_default(require("./pass/zip"));
98
- const _simple = /*#__PURE__*/ _interop_require_default(require("./pass/simple"));
99
91
  const _equivalence = /*#__PURE__*/ _interop_require_default(require("./pass/equivalence"));
100
92
  const _continuation = /*#__PURE__*/ _interop_require_default(require("./pass/continuation"));
101
93
  const _continuationZip = /*#__PURE__*/ _interop_require_default(require("./pass/continuationZip"));
@@ -120,4 +112,4 @@ function _interop_require_default(obj) {
120
112
  };
121
113
  }
122
114
 
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudCB9IGZyb20gXCIuL2VsZW1lbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJlYWtQb2ludCB9IGZyb20gXCIuL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy96aXBcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2ltcGxlUGFzcyB9IGZyb20gXCIuL3Bhc3Mvc2ltcGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVxdWl2YWxlbmNlUGFzcyB9IGZyb20gXCIuL3Bhc3MvZXF1aXZhbGVuY2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGludWF0aW9uUGFzcyB9IGZyb20gXCIuL3Bhc3MvY29udGludWF0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRpbnVhdGlvblppcFBhc3MgfSBmcm9tIFwiLi9wYXNzL2NvbnRpbnVhdGlvblppcFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZUxleGVyIH0gZnJvbSBcIi4vZnVydGxlL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZVBhcnNlciB9IGZyb20gXCIuL2Z1cnRsZS9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbExleGVyIH0gZnJvbSBcIi4vbm9taW5hbC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb21pbmFsUGFyc2VyIH0gZnJvbSBcIi4vbm9taW5hbC9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub25UZXJtaW5hbE5vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlTWl4aW5zIH0gZnJvbSBcIi4vbWl4aW5zL25vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBibmZVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYm5mXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmdXJ0bGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZnVydGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vbWluYWxVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9taW5hbFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZUNvbnRleHRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZUNvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2ZXJpZmljYXRpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyaWZpY2F0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlbGVhc2VDb250ZXh0VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3JlbGVhc2VDb250ZXh0XCI7XG4iXSwibmFtZXMiOlsiQnJlYWtQb2ludCIsIkNvbnRleHQiLCJDb250aW51YXRpb25QYXNzIiwiQ29udGludWF0aW9uWmlwUGFzcyIsIkVsZW1lbnQiLCJFcXVpdmFsZW5jZVBhc3MiLCJGaWxlQ29udGV4dCIsIkZ1cnRsZUxleGVyIiwiRnVydGxlUGFyc2VyIiwiTG9nIiwiTm9taW5hbExleGVyIiwiTm9taW5hbFBhcnNlciIsIk5vblRlcm1pbmFsTm9kZSIsIlJlbGVhc2VDb250ZXh0IiwiU2ltcGxlUGFzcyIsIlppcFBhc3MiLCJibmZVdGlsaXRpZXMiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiZmlsZUNvbnRleHRVdGlsaXRpZXMiLCJmdXJ0bGVVdGlsaXRpZXMiLCJub2RlTWl4aW5zIiwibm9kZVV0aWxpdGllcyIsIm5vbWluYWxVdGlsaXRpZXMiLCJyZWxlYXNlQ29udGV4dFV0aWxpdGllcyIsInZlcmlmaWNhdGlvblV0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBS29CQTtlQUFBQSxtQkFBVTs7UUFEVkM7ZUFBQUEsZ0JBQU87O1FBUVBDO2VBQUFBLHFCQUFnQjs7UUFDaEJDO2VBQUFBLHdCQUFtQjs7UUFWbkJDO2VBQUFBLGdCQUFPOztRQVFQQztlQUFBQSxvQkFBZTs7UUFMZkM7ZUFBQUEsYUFBVzs7UUFTWEM7ZUFBQUEsY0FBVzs7UUFDWEM7ZUFBQUEsZUFBWTs7UUFkWkM7ZUFBQUEsWUFBRzs7UUFlSEM7ZUFBQUEsZUFBWTs7UUFDWkM7ZUFBQUEsZ0JBQWE7O1FBRWJDO2VBQUFBLHdCQUFlOztRQWJmQztlQUFBQSxnQkFBYzs7UUFHZEM7ZUFBQUEsZUFBVTs7UUFEVkM7ZUFBQUEsWUFBTzs7UUFlUEM7ZUFBQUEsWUFBWTs7UUFJWkM7ZUFBQUEsb0JBQW1COztRQUVuQkM7ZUFBQUEsc0JBQXFCOztRQURyQkM7ZUFBQUEsb0JBQW9COztRQUhwQkM7ZUFBQUEsZUFBZTs7UUFKZkM7ZUFBQUEsYUFBVTs7UUFHVkM7ZUFBQUEsY0FBYTs7UUFFYkM7ZUFBQUEsZ0JBQWdCOztRQUtoQkM7ZUFBQUEsdUJBQXVCOztRQUR2QkM7ZUFBQUEscUJBQXFCOzs7NERBN0JWO2dFQUNJO2dFQUNBO21FQUNHOzZEQUNDO2dFQUNHOzREQUVQOytEQUNHO29FQUNLO3FFQUNDO3dFQUNHOzhEQUVSOytEQUNDOytEQUNBO2dFQUNDO3dFQUVFOzZEQUVMOzREQUVFOzhEQUNDOytEQUNFO2dFQUNDO29FQUNHO29FQUNDO3NFQUNDO3FFQUNBO3VFQUNFIn0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudCB9IGZyb20gXCIuL2VsZW1lbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJlYWtQb2ludCB9IGZyb20gXCIuL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFcXVpdmFsZW5jZVBhc3MgfSBmcm9tIFwiLi9wYXNzL2VxdWl2YWxlbmNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRpbnVhdGlvblBhc3MgfSBmcm9tIFwiLi9wYXNzL2NvbnRpbnVhdGlvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb250aW51YXRpb25aaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy9jb250aW51YXRpb25aaXBcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBGdXJ0bGVMZXhlciB9IGZyb20gXCIuL2Z1cnRsZS9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGdXJ0bGVQYXJzZXIgfSBmcm9tIFwiLi9mdXJ0bGUvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vbWluYWxMZXhlciB9IGZyb20gXCIuL25vbWluYWwvbGV4ZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbFBhcnNlciB9IGZyb20gXCIuL25vbWluYWwvcGFyc2VyXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9uVGVybWluYWxOb2RlIH0gZnJvbSBcIi4vbm9uVGVybWluYWxOb2RlXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgbm9kZU1peGlucyB9IGZyb20gXCIuL21peGlucy9ub2RlXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgYm5mVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2JuZlwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25vZGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZnVydGxlVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2Z1cnRsZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBub21pbmFsVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25vbWluYWxcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9icmVha1BvaW50XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZpbGVDb250ZXh0VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2ZpbGVDb250ZXh0XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9jb250aW51YXRpb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmVyaWZpY2F0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3ZlcmlmaWNhdGlvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZWxlYXNlQ29udGV4dFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9yZWxlYXNlQ29udGV4dFwiO1xuIl0sIm5hbWVzIjpbIkJyZWFrUG9pbnQiLCJDb250ZXh0IiwiQ29udGludWF0aW9uUGFzcyIsIkNvbnRpbnVhdGlvblppcFBhc3MiLCJFbGVtZW50IiwiRXF1aXZhbGVuY2VQYXNzIiwiRmlsZUNvbnRleHQiLCJGdXJ0bGVMZXhlciIsIkZ1cnRsZVBhcnNlciIsIkxvZyIsIk5vbWluYWxMZXhlciIsIk5vbWluYWxQYXJzZXIiLCJOb25UZXJtaW5hbE5vZGUiLCJSZWxlYXNlQ29udGV4dCIsImJuZlV0aWxpdGllcyIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJmaWxlQ29udGV4dFV0aWxpdGllcyIsImZ1cnRsZVV0aWxpdGllcyIsIm5vZGVNaXhpbnMiLCJub2RlVXRpbGl0aWVzIiwibm9taW5hbFV0aWxpdGllcyIsInJlbGVhc2VDb250ZXh0VXRpbGl0aWVzIiwidmVyaWZpY2F0aW9uVXRpbGl0aWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFLb0JBO2VBQUFBLG1CQUFVOztRQURWQztlQUFBQSxnQkFBTzs7UUFNUEM7ZUFBQUEscUJBQWdCOztRQUNoQkM7ZUFBQUEsd0JBQW1COztRQVJuQkM7ZUFBQUEsZ0JBQU87O1FBTVBDO2VBQUFBLG9CQUFlOztRQUhmQztlQUFBQSxhQUFXOztRQU9YQztlQUFBQSxjQUFXOztRQUNYQztlQUFBQSxlQUFZOztRQVpaQztlQUFBQSxZQUFHOztRQWFIQztlQUFBQSxlQUFZOztRQUNaQztlQUFBQSxnQkFBYTs7UUFFYkM7ZUFBQUEsd0JBQWU7O1FBWGZDO2VBQUFBLGdCQUFjOztRQWVkQztlQUFBQSxZQUFZOztRQUlaQztlQUFBQSxvQkFBbUI7O1FBRW5CQztlQUFBQSxzQkFBcUI7O1FBRHJCQztlQUFBQSxvQkFBb0I7O1FBSHBCQztlQUFBQSxlQUFlOztRQUpmQztlQUFBQSxhQUFVOztRQUdWQztlQUFBQSxjQUFhOztRQUViQztlQUFBQSxnQkFBZ0I7O1FBS2hCQztlQUFBQSx1QkFBdUI7O1FBRHZCQztlQUFBQSxxQkFBcUI7Ozs0REEzQlY7Z0VBQ0k7Z0VBQ0E7bUVBQ0c7NkRBQ0M7Z0VBQ0c7b0VBRUM7cUVBQ0M7d0VBQ0c7OERBRVI7K0RBQ0M7K0RBQ0E7Z0VBQ0M7d0VBRUU7NkRBRUw7NERBRUU7OERBQ0M7K0RBQ0U7Z0VBQ0M7b0VBQ0c7b0VBQ0M7c0VBQ0M7cUVBQ0E7dUVBQ0UifQ==
@@ -13,24 +13,23 @@ const _pass = require("../utilities/pass");
13
13
  class ContinuationPass {
14
14
  run(node, ...remainingArguments) {
15
15
  const continuation = remainingArguments.pop();
16
- this.visitNode(node, ...remainingArguments, continuation);
16
+ return this.visitNode(node, ...remainingArguments, continuation);
17
17
  }
18
18
  descend(childNodes, ...remainingArguments) {
19
19
  const continuation = remainingArguments.pop();
20
- (0, _continuation.every)(childNodes, (childNode, continuation)=>{
20
+ return (0, _continuation.every)(childNodes, (childNode, continuation)=>{
21
21
  const node = childNode; ///
22
- this.visitNode(node, ...remainingArguments, continuation);
22
+ return this.visitNode(node, ...remainingArguments, continuation);
23
23
  }, continuation);
24
24
  }
25
25
  visitNode(node, ...remainingArguments) {
26
26
  const continuation = remainingArguments.pop(), nodeTerminalNode = node.isTerminalNode();
27
27
  if (nodeTerminalNode) {
28
28
  const terminalNode = node; ///
29
- this.visitTerminalNode(terminalNode, ...remainingArguments, continuation);
30
- } else {
31
- const nonTerminalNode = node; ///
32
- this.visitNonTerminalNode(nonTerminalNode, ...remainingArguments, continuation);
29
+ return this.visitTerminalNode(terminalNode, ...remainingArguments, continuation);
33
30
  }
31
+ const nonTerminalNode = node; ///
32
+ return this.visitNonTerminalNode(nonTerminalNode, ...remainingArguments, continuation);
34
33
  }
35
34
  visitTerminalNode(terminalNode, ...remainingArguments) {
36
35
  const visited = true, continuation = remainingArguments.pop();
@@ -45,7 +44,7 @@ class ContinuationPass {
45
44
  nodeQuery: _pass.nonTerminalNodeQuery,
46
45
  run: (node, ...remainingArguments)=>{
47
46
  const continuation = remainingArguments.pop(), childNodes = nonTerminalNode.getChildNodes();
48
- this.descend(childNodes, ...remainingArguments, continuation);
47
+ return this.descend(childNodes, ...remainingArguments, continuation);
49
48
  }
50
49
  }
51
50
  ];
@@ -62,8 +61,8 @@ class ContinuationPass {
62
61
  return continuation(visited);
63
62
  }
64
63
  const { run } = map;
65
- run(node, ...remainingArguments, continuation);
64
+ return run(node, ...remainingArguments, continuation);
66
65
  }
67
66
  }
68
67
 
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uUGFzcyB7XG4gIHJ1bihub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICB0aGlzLnZpc2l0Tm9kZShub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICBkZXNjZW5kKGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIGV2ZXJ5KGNoaWxkTm9kZXMsIChjaGlsZE5vZGUsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICAgIHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9LCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgdmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgICAgdGhpcy52aXNpdFRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgICB0aGlzLnZpc2l0Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHZpc2l0VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgdmlzaXRlZCA9IHRydWUsXG4gICAgICAgICAgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkKTtcbiAgfVxuXG4gIHZpc2l0Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgbGV0IHsgbWFwcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIG1hcHMgPSBbIC8vL1xuICAgICAgLi4ubWFwcyxcbiAgICAgIHtcbiAgICAgICAgbm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgcnVuOiAobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpO1xuXG4gICAgICAgICAgdGhpcy5kZXNjZW5kKGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF07XG5cbiAgICBsZXQgbm9kZTtcblxuICAgIGNvbnN0IG1hcCA9IG1hcHMuZmluZCgobWFwKSA9PiB7XG4gICAgICBjb25zdCB7IG5vZGVRdWVyeSB9ID0gbWFwO1xuXG4gICAgICBub2RlID0gbm9kZVF1ZXJ5KG5vblRlcm1pbmFsTm9kZSk7XG5cbiAgICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pIHx8IG51bGw7XG5cbiAgICBpZiAobWFwID09PSBudWxsKSB7XG4gICAgICBjb25zdCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBydW4gfSA9IG1hcDtcblxuICAgIHJ1bihub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDb250aW51YXRpb25QYXNzIiwicnVuIiwibm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsInZpc2l0Tm9kZSIsImRlc2NlbmQiLCJjaGlsZE5vZGVzIiwiZXZlcnkiLCJjaGlsZE5vZGUiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJ2aXNpdFRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsInZpc2l0Tm9uVGVybWluYWxOb2RlIiwidmlzaXRlZCIsIm1hcHMiLCJub2RlUXVlcnkiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsImdldENoaWxkTm9kZXMiLCJtYXAiLCJmaW5kIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXFCQTs7OzhCQUhDO3NCQUNlO0FBRXRCLE1BQU1BO0lBQ25CQyxJQUFJQyxJQUFJLEVBQUUsR0FBR0Msa0JBQWtCLEVBQUU7UUFDL0IsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDLElBQUksQ0FBQ0MsU0FBUyxDQUFDSixTQUFTQyxvQkFBb0JDO0lBQzlDO0lBRUFHLFFBQVFDLFVBQVUsRUFBRSxHQUFHTCxrQkFBa0IsRUFBRTtRQUN6QyxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUc7UUFFM0NJLElBQUFBLG1CQUFLLEVBQUNELFlBQVksQ0FBQ0UsV0FBV047WUFDNUIsTUFBTUYsT0FBT1EsV0FBVyxHQUFHO1lBRTNCLElBQUksQ0FBQ0osU0FBUyxDQUFDSixTQUFTQyxvQkFBb0JDO1FBQzlDLEdBQUdBO0lBQ0w7SUFFQUUsVUFBVUosSUFBSSxFQUFFLEdBQUdDLGtCQUFrQixFQUFFO1FBQ3JDLE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ00sbUJBQW1CVCxLQUFLVSxjQUFjO1FBRTVDLElBQUlELGtCQUFrQjtZQUNwQixNQUFNRSxlQUFlWCxNQUFPLEdBQUc7WUFFL0IsSUFBSSxDQUFDWSxpQkFBaUIsQ0FBQ0QsaUJBQWlCVixvQkFBb0JDO1FBQzlELE9BQU87WUFDTCxNQUFNVyxrQkFBa0JiLE1BQU8sR0FBRztZQUVsQyxJQUFJLENBQUNjLG9CQUFvQixDQUFDRCxvQkFBb0JaLG9CQUFvQkM7UUFDcEU7SUFDRjtJQUVBVSxrQkFBa0JELFlBQVksRUFBRSxHQUFHVixrQkFBa0IsRUFBRTtRQUNyRCxNQUFNYyxVQUFVLE1BQ1ZiLGVBQWVELG1CQUFtQkUsR0FBRztRQUUzQyxPQUFPRCxhQUFhYTtJQUN0QjtJQUVBRCxxQkFBcUJELGVBQWUsRUFBRSxHQUFHWixrQkFBa0IsRUFBRTtRQUMzRCxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUc7UUFFM0MsSUFBSSxFQUFFYSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVztRQUUvQkEsT0FBTztlQUNGQTtZQUNIO2dCQUNFQyxXQUFXQywwQkFBb0I7Z0JBQy9CbkIsS0FBSyxDQUFDQyxNQUFNLEdBQUdDO29CQUNiLE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ0csYUFBYU8sZ0JBQWdCTSxhQUFhO29CQUVoRCxJQUFJLENBQUNkLE9BQU8sQ0FBQ0MsZUFBZUwsb0JBQW9CQztnQkFDbEQ7WUFDRjtTQUNEO1FBRUQsSUFBSUY7UUFFSixNQUFNb0IsTUFBTUosS0FBS0ssSUFBSSxDQUFDLENBQUNEO1lBQ3JCLE1BQU0sRUFBRUgsU0FBUyxFQUFFLEdBQUdHO1lBRXRCcEIsT0FBT2lCLFVBQVVKO1lBRWpCLElBQUliLFNBQVMsTUFBTTtnQkFDakIsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVOLElBQUlvQixRQUFRLE1BQU07WUFDaEIsTUFBTUwsVUFBVTtZQUVoQixPQUFPYixhQUFhYTtRQUN0QjtRQUVBLE1BQU0sRUFBRWhCLEdBQUcsRUFBRSxHQUFHcUI7UUFFaEJyQixJQUFJQyxTQUFTQyxvQkFBb0JDO0lBQ25DO0FBQ0YifQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uUGFzcyB7XG4gIHJ1bihub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdE5vZGUobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgZGVzY2VuZChjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gZXZlcnkoY2hpbGROb2RlcywgKGNoaWxkTm9kZSwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9LCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgdmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXRUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICB2aXNpdFRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IHZpc2l0ZWQgPSB0cnVlLFxuICAgICAgICAgIGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCk7XG4gIH1cblxuICB2aXNpdE5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIGxldCB7IG1hcHMgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBtYXBzID0gWyAvLy9cbiAgICAgIC4uLm1hcHMsXG4gICAgICB7XG4gICAgICAgIG5vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHJ1bjogKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLmRlc2NlbmQoY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcblxuICAgIGxldCBub2RlO1xuXG4gICAgY29uc3QgbWFwID0gbWFwcy5maW5kKChtYXApID0+IHtcbiAgICAgIGNvbnN0IHsgbm9kZVF1ZXJ5IH0gPSBtYXA7XG5cbiAgICAgIG5vZGUgPSBub2RlUXVlcnkobm9uVGVybWluYWxOb2RlKTtcblxuICAgICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIGlmIChtYXAgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHJ1biB9ID0gbWFwO1xuXG4gICAgcmV0dXJuIHJ1bihub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDb250aW51YXRpb25QYXNzIiwicnVuIiwibm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsInZpc2l0Tm9kZSIsImRlc2NlbmQiLCJjaGlsZE5vZGVzIiwiZXZlcnkiLCJjaGlsZE5vZGUiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJ2aXNpdFRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsInZpc2l0Tm9uVGVybWluYWxOb2RlIiwidmlzaXRlZCIsIm1hcHMiLCJub2RlUXVlcnkiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsImdldENoaWxkTm9kZXMiLCJtYXAiLCJmaW5kIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXFCQTs7OzhCQUhDO3NCQUNlO0FBRXRCLE1BQU1BO0lBQ25CQyxJQUFJQyxJQUFJLEVBQUUsR0FBR0Msa0JBQWtCLEVBQUU7UUFDL0IsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDLE9BQU8sSUFBSSxDQUFDQyxTQUFTLENBQUNKLFNBQVNDLG9CQUFvQkM7SUFDckQ7SUFFQUcsUUFBUUMsVUFBVSxFQUFFLEdBQUdMLGtCQUFrQixFQUFFO1FBQ3pDLE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRztRQUUzQyxPQUFPSSxJQUFBQSxtQkFBSyxFQUFDRCxZQUFZLENBQUNFLFdBQVdOO1lBQ25DLE1BQU1GLE9BQU9RLFdBQVcsR0FBRztZQUUzQixPQUFPLElBQUksQ0FBQ0osU0FBUyxDQUFDSixTQUFTQyxvQkFBb0JDO1FBQ3JELEdBQUdBO0lBQ0w7SUFFQUUsVUFBVUosSUFBSSxFQUFFLEdBQUdDLGtCQUFrQixFQUFFO1FBQ3JDLE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ00sbUJBQW1CVCxLQUFLVSxjQUFjO1FBRTVDLElBQUlELGtCQUFrQjtZQUNwQixNQUFNRSxlQUFlWCxNQUFPLEdBQUc7WUFFL0IsT0FBTyxJQUFJLENBQUNZLGlCQUFpQixDQUFDRCxpQkFBaUJWLG9CQUFvQkM7UUFDckU7UUFFQSxNQUFNVyxrQkFBa0JiLE1BQU8sR0FBRztRQUVsQyxPQUFPLElBQUksQ0FBQ2Msb0JBQW9CLENBQUNELG9CQUFvQlosb0JBQW9CQztJQUMzRTtJQUVBVSxrQkFBa0JELFlBQVksRUFBRSxHQUFHVixrQkFBa0IsRUFBRTtRQUNyRCxNQUFNYyxVQUFVLE1BQ1ZiLGVBQWVELG1CQUFtQkUsR0FBRztRQUUzQyxPQUFPRCxhQUFhYTtJQUN0QjtJQUVBRCxxQkFBcUJELGVBQWUsRUFBRSxHQUFHWixrQkFBa0IsRUFBRTtRQUMzRCxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUc7UUFFM0MsSUFBSSxFQUFFYSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVztRQUUvQkEsT0FBTztlQUNGQTtZQUNIO2dCQUNFQyxXQUFXQywwQkFBb0I7Z0JBQy9CbkIsS0FBSyxDQUFDQyxNQUFNLEdBQUdDO29CQUNiLE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ0csYUFBYU8sZ0JBQWdCTSxhQUFhO29CQUVoRCxPQUFPLElBQUksQ0FBQ2QsT0FBTyxDQUFDQyxlQUFlTCxvQkFBb0JDO2dCQUN6RDtZQUNGO1NBQ0Q7UUFFRCxJQUFJRjtRQUVKLE1BQU1vQixNQUFNSixLQUFLSyxJQUFJLENBQUMsQ0FBQ0Q7WUFDckIsTUFBTSxFQUFFSCxTQUFTLEVBQUUsR0FBR0c7WUFFdEJwQixPQUFPaUIsVUFBVUo7WUFFakIsSUFBSWIsU0FBUyxNQUFNO2dCQUNqQixPQUFPO1lBQ1Q7UUFDRixNQUFNO1FBRU4sSUFBSW9CLFFBQVEsTUFBTTtZQUNoQixNQUFNTCxVQUFVO1lBRWhCLE9BQU9iLGFBQWFhO1FBQ3RCO1FBRUEsTUFBTSxFQUFFaEIsR0FBRyxFQUFFLEdBQUdxQjtRQUVoQixPQUFPckIsSUFBSUMsU0FBU0Msb0JBQW9CQztJQUMxQztBQUNGIn0=
@@ -13,7 +13,7 @@ const _pass = require("../utilities/pass");
13
13
  class ContinuationZipPass {
14
14
  run(generalNode, specificNode, ...remainingArguments) {
15
15
  const continuation = remainingArguments.pop();
16
- this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
16
+ return this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
17
17
  }
18
18
  descend(generalChildNodes, specificChildNodes, ...remainingArguments) {
19
19
  const continuation = remainingArguments.pop(), childNodesCongruent = (0, _pass.areChildNodesCongruent)(generalChildNodes, specificChildNodes);
@@ -22,26 +22,24 @@ class ContinuationZipPass {
22
22
  return continuation(descended);
23
23
  }
24
24
  let index = -1;
25
- (0, _continuation.every)(generalChildNodes, (generalChildNode, continuation)=>{
25
+ return (0, _continuation.every)(generalChildNodes, (generalChildNode, continuation)=>{
26
26
  index++;
27
27
  const specificChildNode = specificChildNodes[index], specificNode = specificChildNode, generalNode = generalChildNode; ///
28
- this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
28
+ return this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
29
29
  }, continuation);
30
30
  }
31
31
  visitNode(generalNode, specificNode, ...remainingArguments) {
32
32
  const continuation = remainingArguments.pop(), generalNodeTerminalNode = generalNode.isTerminalNode(), specificNodeTerminalNode = specificNode.isTerminalNode(), generalNodeNonTerminalNode = generalNode.isNonTerminalNode(), specificNodeNonTerminalNode = specificNode.isNonTerminalNode();
33
- if (false) {
34
- ///
35
- } else if (generalNodeTerminalNode && specificNodeTerminalNode) {
33
+ if (generalNodeTerminalNode && specificNodeTerminalNode) {
36
34
  const generalTerminalNode = generalNode, specificTerminalNode = specificNode; ///
37
- this.visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments, continuation);
38
- } else if (generalNodeNonTerminalNode && specificNodeNonTerminalNode) {
35
+ return this.visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments, continuation);
36
+ }
37
+ if (generalNodeNonTerminalNode && specificNodeNonTerminalNode) {
39
38
  const generalNonTerminalNode = generalNode, specificNonTerminalNode = specificNode; ///
40
- this.visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments, continuation);
41
- } else {
42
- const visited = false;
43
- return continuation(visited);
39
+ return this.visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments, continuation);
44
40
  }
41
+ const visited = false;
42
+ return continuation(visited);
45
43
  }
46
44
  visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments) {
47
45
  const visited = true, continuation = remainingArguments.pop();
@@ -62,7 +60,7 @@ class ContinuationZipPass {
62
60
  return continuation(visited);
63
61
  }
64
62
  const generalNonTerminalNodeChildNodes = generalNonTerminalNode.getChildNodes(), specificNonTerminalNodeChildNodes = specificNonTerminalNode.getChildNodes(), generalChildNodes = generalNonTerminalNodeChildNodes, specificChildNodes = specificNonTerminalNodeChildNodes; ///
65
- this.descend(generalChildNodes, specificChildNodes, ...remainingArguments, continuation);
63
+ return this.descend(generalChildNodes, specificChildNodes, ...remainingArguments, continuation);
66
64
  }
67
65
  }
68
66
  ];
@@ -80,8 +78,8 @@ class ContinuationZipPass {
80
78
  return continuation(visited);
81
79
  }
82
80
  const { run } = map;
83
- run(generalNode, specificNode, ...remainingArguments, continuation);
81
+ return run(generalNode, specificNode, ...remainingArguments, continuation);
84
82
  }
85
83
  }
86
84
 
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvblppcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnksIGFyZUNoaWxkTm9kZXNDb25ncnVlbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uWmlwUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICBkZXNjZW5kKGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICBjaGlsZE5vZGVzQ29uZ3J1ZW50ID0gYXJlQ2hpbGROb2Rlc0NvbmdydWVudChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzKTtcblxuICAgIGlmICghY2hpbGROb2Rlc0NvbmdydWVudCkge1xuICAgICAgY29uc3QgZGVzY2VuZGVkID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVzY2VuZGVkKTtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSAtMTtcblxuICAgIGV2ZXJ5KGdlbmVyYWxDaGlsZE5vZGVzLCAoZ2VuZXJhbENoaWxkTm9kZSwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICBpbmRleCsrO1xuXG4gICAgICBjb25zdCBzcGVjaWZpY0NoaWxkTm9kZSA9IHNwZWNpZmljQ2hpbGROb2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxDaGlsZE5vZGU7IC8vL1xuXG4gICAgICB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gICAgfSwgY29udGludWF0aW9uKTtcbiAgfVxuXG4gIHZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgZ2VuZXJhbE5vZGVUZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHNwZWNpZmljTm9kZVRlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIGdlbmVyYWxOb2RlTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmIChnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSAmJiBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxUZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGU7ICAvLy9cblxuICAgICAgdGhpcy52aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAvLy9cblxuICAgICAgdGhpcy52aXNpdE5vblRlcm1pbmFsTm9kZShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCk7XG4gICAgfVxuICB9XG5cbiAgdmlzaXRUZXJtaW5hbE5vZGUoZ2VuZXJhbFRlcm1pbmFsTm9kZSwgc3BlY2lmaWNUZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgeyAvLy9cbiAgICBjb25zdCB2aXNpdGVkID0gdHJ1ZSxcbiAgICAgICAgICBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZpc2l0ZWQpO1xuICB9XG5cbiAgdmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIGxldCB7IG1hcHMgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBtYXBzID0gWyAvLy9cbiAgICAgIC4uLm1hcHMsXG4gICAgICB7XG4gICAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBzcGVjaWZpY05vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHJ1bjogKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICAgICAgICBnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksIC8vL1xuICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICAgICAgICAgIGlmIChnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgIT09IHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICBnZW5lcmFsQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZXMgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXM7IC8vL1xuXG4gICAgICAgICAgdGhpcy5kZXNjZW5kKGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF07XG5cbiAgICBsZXQgZ2VuZXJhbE5vZGUsXG4gICAgICAgIHNwZWNpZmljTm9kZTtcblxuICAgIGNvbnN0IG1hcCA9IG1hcHMuZmluZCgobWFwKSA9PiB7XG4gICAgICBjb25zdCB7IGdlbmVyYWxOb2RlUXVlcnksIHNwZWNpZmljTm9kZVF1ZXJ5IH0gPSBtYXA7XG5cbiAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbE5vZGVRdWVyeShnZW5lcmFsTm9uVGVybWluYWxOb2RlKTtcbiAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljTm9kZVF1ZXJ5KHNwZWNpZmljTm9uVGVybWluYWxOb2RlKTtcblxuICAgICAgaWYgKChnZW5lcmFsTm9kZSAhPT0gbnVsbCkgJiYgKHNwZWNpZmljTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIGlmIChtYXAgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHJ1biB9ID0gbWFwO1xuXG4gICAgcnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbnRpbnVhdGlvblppcFBhc3MiLCJydW4iLCJnZW5lcmFsTm9kZSIsInNwZWNpZmljTm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsInZpc2l0Tm9kZSIsImRlc2NlbmQiLCJnZW5lcmFsQ2hpbGROb2RlcyIsInNwZWNpZmljQ2hpbGROb2RlcyIsImNoaWxkTm9kZXNDb25ncnVlbnQiLCJhcmVDaGlsZE5vZGVzQ29uZ3J1ZW50IiwiZGVzY2VuZGVkIiwiaW5kZXgiLCJldmVyeSIsImdlbmVyYWxDaGlsZE5vZGUiLCJzcGVjaWZpY0NoaWxkTm9kZSIsImdlbmVyYWxOb2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlIiwiZ2VuZXJhbFRlcm1pbmFsTm9kZSIsInNwZWNpZmljVGVybWluYWxOb2RlIiwidmlzaXRUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGUiLCJ2aXNpdE5vblRlcm1pbmFsTm9kZSIsInZpc2l0ZWQiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5Iiwic3BlY2lmaWNOb2RlUXVlcnkiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJtYXAiLCJmaW5kIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXFCQTs7OzhCQUhDO3NCQUN1QztBQUU5QyxNQUFNQTtJQUNuQkMsSUFBSUMsV0FBVyxFQUFFQyxZQUFZ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
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvblppcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnksIGFyZUNoaWxkTm9kZXNDb25ncnVlbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uWmlwUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0NvbmdydWVudCA9IGFyZUNoaWxkTm9kZXNDb25ncnVlbnQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2Rlcyk7XG5cbiAgICBpZiAoIWNoaWxkTm9kZXNDb25ncnVlbnQpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRlZCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGRlc2NlbmRlZCk7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4ID0gLTE7XG5cbiAgICByZXR1cm4gZXZlcnkoZ2VuZXJhbENoaWxkTm9kZXMsIChnZW5lcmFsQ2hpbGROb2RlLCBjb250aW51YXRpb24pID0+IHtcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGNvbnN0IHNwZWNpZmljQ2hpbGROb2RlID0gc3BlY2lmaWNDaGlsZE5vZGVzW2luZGV4XSxcbiAgICAgICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbENoaWxkTm9kZTsgLy8vXG5cbiAgICAgIHJldHVybiB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gICAgfSwgY29udGludWF0aW9uKTtcbiAgfVxuXG4gIHZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgZ2VuZXJhbE5vZGVUZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHNwZWNpZmljTm9kZVRlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIGdlbmVyYWxOb2RlTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuXG4gICAgaWYgKGdlbmVyYWxOb2RlVGVybWluYWxOb2RlICYmIHNwZWNpZmljTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgZ2VuZXJhbFRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY1Rlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZTsgIC8vL1xuXG4gICAgICByZXR1cm4gdGhpcy52aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH1cblxuICAgIGlmIChnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSAmJiBzcGVjaWZpY05vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGU7IC8vL1xuXG4gICAgICByZXR1cm4gdGhpcy52aXNpdE5vblRlcm1pbmFsTm9kZShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCk7XG4gIH1cblxuICB2aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7IC8vL1xuICAgIGNvbnN0IHZpc2l0ZWQgPSB0cnVlLFxuICAgICAgICAgIGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCk7XG4gIH1cblxuICB2aXNpdE5vblRlcm1pbmFsTm9kZShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgbGV0IHsgbWFwcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIG1hcHMgPSBbIC8vL1xuICAgICAgLi4ubWFwcyxcbiAgICAgIHtcbiAgICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgcnVuOiAoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgICAgIGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSwgLy8vXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gICAgICAgICAgaWYgKGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSAhPT0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHZpc2l0ZWQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgIGdlbmVyYWxDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICAgIHNwZWNpZmljQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlczsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5kZXNjZW5kKGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF07XG5cbiAgICBsZXQgZ2VuZXJhbE5vZGUsXG4gICAgICAgIHNwZWNpZmljTm9kZTtcblxuICAgIGNvbnN0IG1hcCA9IG1hcHMuZmluZCgobWFwKSA9PiB7XG4gICAgICBjb25zdCB7IGdlbmVyYWxOb2RlUXVlcnksIHNwZWNpZmljTm9kZVF1ZXJ5IH0gPSBtYXA7XG5cbiAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbE5vZGVRdWVyeShnZW5lcmFsTm9uVGVybWluYWxOb2RlKTtcbiAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljTm9kZVF1ZXJ5KHNwZWNpZmljTm9uVGVybWluYWxOb2RlKTtcblxuICAgICAgaWYgKChnZW5lcmFsTm9kZSAhPT0gbnVsbCkgJiYgKHNwZWNpZmljTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIGlmIChtYXAgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHJ1biB9ID0gbWFwO1xuXG4gICAgcmV0dXJuIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDb250aW51YXRpb25aaXBQYXNzIiwicnVuIiwiZ2VuZXJhbE5vZGUiLCJzcGVjaWZpY05vZGUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJjb250aW51YXRpb24iLCJwb3AiLCJ2aXNpdE5vZGUiLCJkZXNjZW5kIiwiZ2VuZXJhbENoaWxkTm9kZXMiLCJzcGVjaWZpY0NoaWxkTm9kZXMiLCJjaGlsZE5vZGVzQ29uZ3J1ZW50IiwiYXJlQ2hpbGROb2Rlc0NvbmdydWVudCIsImRlc2NlbmRlZCIsImluZGV4IiwiZXZlcnkiLCJnZW5lcmFsQ2hpbGROb2RlIiwic3BlY2lmaWNDaGlsZE5vZGUiLCJnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlVGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSIsImdlbmVyYWxUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY1Rlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJ2aXNpdGVkIiwibWFwcyIsImdlbmVyYWxOb2RlUXVlcnkiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsInNwZWNpZmljTm9kZVF1ZXJ5IiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwibWFwIiwiZmluZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUFxQkE7Ozs4QkFIQztzQkFDdUM7QUFFOUMsTUFBTUE7SUFDbkJDLElBQUlDLFdBQVcsRUFBRUMsWUFB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
@@ -36,7 +36,7 @@ function breakable(innerFunction) {
36
36
  const continuation = remainingArguments.pop(), context = remainingArguments.pop();
37
37
  this.break(context, ()=>{
38
38
  setImmediate(()=>{
39
- innerFunction.call(this, ...remainingArguments, context, continuation);
39
+ return innerFunction.call(this, ...remainingArguments, context, continuation);
40
40
  });
41
41
  });
42
42
  };
@@ -79,4 +79,4 @@ const _default = {
79
79
  lineIndexFromNodeAndTokens
80
80
  };
81
81
 
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJlYWtQb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcbiAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJlYWtQb2ludEZyb21KU09OKGpzb24pIHtcbiAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgKHsgYnJlYWtQb2ludCB9ID0ganNvbik7XG5cbiAgaWYgKGJyZWFrUG9pbnQgIT09IG51bGwpIHtcbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnQ7ICAvLy9cblxuICAgIGpzb24gPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgYnJlYWtQb2ludCA9IEJyZWFrUG9pbnQuZnJvbUpTT04oanNvbik7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBicmVha1BvaW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCkge1xuICBsZXQgYnJlYWtQb2ludEpTT04gPSBudWxsO1xuXG4gIGlmIChicmVha1BvaW50ICE9PSBudWxsKSB7XG4gICAgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50LnRvSlNPTigpO1xuICB9XG5cbiAgcmV0dXJuIGJyZWFrUG9pbnRKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSB7XG4gIGxldCBsaW5lSW5kZXggPSAwO1xuXG4gIGNvbnN0IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpO1xuXG4gIHRva2Vucy5zb21lKCh0b2tlbiwgdG9rZW5JbmRleCkgPT4ge1xuICAgIGNvbnN0IHRva2VuRW5kT2ZMaW5lVG9rZW4gPSB0b2tlbi5pc0VuZE9mTGluZVRva2VuKCk7XG5cbiAgICBpZiAodG9rZW5FbmRPZkxpbmVUb2tlbikge1xuICAgICAgbGluZUluZGV4ICs9IDE7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuSW5kZXggPT09IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBsaW5lSW5kZXg7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYnJlYWthYmxlLFxuICBicmVha1BvaW50RnJvbUpTT04sXG4gIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OLFxuICBsaW5lSW5kZXhGcm9tTm9kZUFuZFRva2Vuc1xufTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrYWJsZSIsImxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zIiwiaW5uZXJGdW5jdGlvbiIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsImNvbnRleHQiLCJicmVhayIsInNldEltbWVkaWF0ZSIsImNhbGwiLCJqc29uIiwiYnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwiQnJlYWtQb2ludCIsImZyb21KU09OIiwidG9KU09OIiwibm9kZSIsInRva2VucyIsImxpbmVJbmRleCIsImZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJzb21lIiwidG9rZW4iLCJ0b2tlbkluZGV4IiwidG9rZW5FbmRPZkxpbmVUb2tlbiIsImlzRW5kT2ZMaW5lVG9rZW4iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWlCZ0JBO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBN0JBQztlQUFBQTs7UUEyRGhCO2VBQUE7O1FBcEJnQkM7ZUFBQUE7OzttRUF6Q087Ozs7OztBQUVoQixTQUFTRCxVQUFVRSxhQUFhO0lBQ3JDLE9BQU8sU0FBUyxHQUFHQyxrQkFBa0I7UUFDbkMsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDQyxVQUFVSCxtQkFBbUJFLEdBQUc7UUFFdEMsSUFBSSxDQUFDRSxLQUFLLENBQUNELFNBQVM7WUFDbEJFLGFBQWE7Z0JBQ1hOLGNBQWNPLElBQUksQ0FBQyxJQUFJLEtBQUtOLG9CQUFvQkcsU0FBU0Y7WUFDM0Q7UUFDRjtJQUNGO0FBQ0Y7QUFFTyxTQUFTTixtQkFBbUJZLElBQUk7SUFDckMsSUFBSUM7SUFFSCxDQUFBLEVBQUVBLFVBQVUsRUFBRSxHQUFHRCxJQUFHO0lBRXJCLElBQUlDLGVBQWUsTUFBTTtRQUN2QixNQUFNQyxpQkFBaUJELFlBQWEsR0FBRztRQUV2Q0QsT0FBT0UsZ0JBQWlCLEdBQUc7UUFFM0JELGFBQWFFLG1CQUFVLENBQUNDLFFBQVEsQ0FBQ0osT0FBUSxHQUFHO0lBQzlDO0lBRUEsT0FBT0M7QUFDVDtBQUVPLFNBQVNaLDJCQUEyQlksVUFBVTtJQUNuRCxJQUFJQyxpQkFBaUI7SUFFckIsSUFBSUQsZUFBZSxNQUFNO1FBQ3ZCQyxpQkFBaUJELFdBQVdJLE1BQU07SUFDcEM7SUFFQSxPQUFPSDtBQUNUO0FBRU8sU0FBU1gsMkJBQTJCZSxJQUFJLEVBQUVDLE1BQU07SUFDckQsSUFBSUMsWUFBWTtJQUVoQixNQUFNQyw2QkFBNkJILEtBQUtJLDZCQUE2QixDQUFDSDtJQUV0RUEsT0FBT0ksSUFBSSxDQUFDLENBQUNDLE9BQU9DO1FBQ2xCLE1BQU1DLHNCQUFzQkYsTUFBTUcsZ0JBQWdCO1FBRWxELElBQUlELHFCQUFxQjtZQUN2Qk4sYUFBYTtRQUNmO1FBRUEsSUFBSUssZUFBZUosNEJBQTRCO1lBQzdDLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0Q7QUFDVDtNQUVBLFdBQWU7SUFDYmxCO0lBQ0FGO0lBQ0FDO0lBQ0FFO0FBQ0YifQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJlYWtQb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGlubmVyRnVuY3Rpb24uY2FsbCh0aGlzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSB7XG4gIGxldCBicmVha1BvaW50O1xuXG4gICh7IGJyZWFrUG9pbnQgfSA9IGpzb24pO1xuXG4gIGlmIChicmVha1BvaW50ICE9PSBudWxsKSB7XG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50OyAgLy8vXG5cbiAgICBqc29uID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGJyZWFrUG9pbnQgPSBCcmVha1BvaW50LmZyb21KU09OKGpzb24pOyAgLy8vXG4gIH1cblxuICByZXR1cm4gYnJlYWtQb2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpIHtcbiAgbGV0IGJyZWFrUG9pbnRKU09OID0gbnVsbDtcblxuICBpZiAoYnJlYWtQb2ludCAhPT0gbnVsbCkge1xuICAgIGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludC50b0pTT04oKTtcbiAgfVxuXG4gIHJldHVybiBicmVha1BvaW50SlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2Vucykge1xuICBsZXQgbGluZUluZGV4ID0gMDtcblxuICBjb25zdCBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vZGUuZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKTtcblxuICB0b2tlbnMuc29tZSgodG9rZW4sIHRva2VuSW5kZXgpID0+IHtcbiAgICBjb25zdCB0b2tlbkVuZE9mTGluZVRva2VuID0gdG9rZW4uaXNFbmRPZkxpbmVUb2tlbigpO1xuXG4gICAgaWYgKHRva2VuRW5kT2ZMaW5lVG9rZW4pIHtcbiAgICAgIGxpbmVJbmRleCArPSAxO1xuICAgIH1cblxuICAgIGlmICh0b2tlbkluZGV4ID09PSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gbGluZUluZGV4O1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGJyZWFrYWJsZSxcbiAgYnJlYWtQb2ludEZyb21KU09OLFxuICBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTixcbiAgbGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnNcbn07XG4iXSwibmFtZXMiOlsiYnJlYWtQb2ludEZyb21KU09OIiwiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha2FibGUiLCJsaW5lSW5kZXhGcm9tTm9kZUFuZFRva2VucyIsImlubmVyRnVuY3Rpb24iLCJyZW1haW5pbmdBcmd1bWVudHMiLCJjb250aW51YXRpb24iLCJwb3AiLCJjb250ZXh0IiwiYnJlYWsiLCJzZXRJbW1lZGlhdGUiLCJjYWxsIiwianNvbiIsImJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsIkJyZWFrUG9pbnQiLCJmcm9tSlNPTiIsInRvSlNPTiIsIm5vZGUiLCJ0b2tlbnMiLCJsaW5lSW5kZXgiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4Iiwic29tZSIsInRva2VuIiwidG9rZW5JbmRleCIsInRva2VuRW5kT2ZMaW5lVG9rZW4iLCJpc0VuZE9mTGluZVRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFpQmdCQTtlQUFBQTs7UUFnQkFDO2VBQUFBOztRQTdCQUM7ZUFBQUE7O1FBMkRoQjtlQUFBOztRQXBCZ0JDO2VBQUFBOzs7bUVBekNPOzs7Ozs7QUFFaEIsU0FBU0QsVUFBVUUsYUFBYTtJQUNyQyxPQUFPLFNBQVMsR0FBR0Msa0JBQWtCO1FBQ25DLE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ0MsVUFBVUgsbUJBQW1CRSxHQUFHO1FBRXRDLElBQUksQ0FBQ0UsS0FBSyxDQUFDRCxTQUFTO1lBQ2xCRSxhQUFhO2dCQUNYLE9BQU9OLGNBQWNPLElBQUksQ0FBQyxJQUFJLEtBQUtOLG9CQUFvQkcsU0FBU0Y7WUFDbEU7UUFDRjtJQUNGO0FBQ0Y7QUFFTyxTQUFTTixtQkFBbUJZLElBQUk7SUFDckMsSUFBSUM7SUFFSCxDQUFBLEVBQUVBLFVBQVUsRUFBRSxHQUFHRCxJQUFHO0lBRXJCLElBQUlDLGVBQWUsTUFBTTtRQUN2QixNQUFNQyxpQkFBaUJELFlBQWEsR0FBRztRQUV2Q0QsT0FBT0UsZ0JBQWlCLEdBQUc7UUFFM0JELGFBQWFFLG1CQUFVLENBQUNDLFFBQVEsQ0FBQ0osT0FBUSxHQUFHO0lBQzlDO0lBRUEsT0FBT0M7QUFDVDtBQUVPLFNBQVNaLDJCQUEyQlksVUFBVTtJQUNuRCxJQUFJQyxpQkFBaUI7SUFFckIsSUFBSUQsZUFBZSxNQUFNO1FBQ3ZCQyxpQkFBaUJELFdBQVdJLE1BQU07SUFDcEM7SUFFQSxPQUFPSDtBQUNUO0FBRU8sU0FBU1gsMkJBQTJCZSxJQUFJLEVBQUVDLE1BQU07SUFDckQsSUFBSUMsWUFBWTtJQUVoQixNQUFNQyw2QkFBNkJILEtBQUtJLDZCQUE2QixDQUFDSDtJQUV0RUEsT0FBT0ksSUFBSSxDQUFDLENBQUNDLE9BQU9DO1FBQ2xCLE1BQU1DLHNCQUFzQkYsTUFBTUcsZ0JBQWdCO1FBRWxELElBQUlELHFCQUFxQjtZQUN2Qk4sYUFBYTtRQUNmO1FBRUEsSUFBSUssZUFBZUosNEJBQTRCO1lBQzdDLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0Q7QUFDVDtNQUVBLFdBQWU7SUFDYmxCO0lBQ0FGO0lBQ0FDO0lBQ0FFO0FBQ0YifQ==
@@ -128,7 +128,7 @@ function match(arrayA, arrayB, callback, ...remainingArguments) {
128
128
  every(arrayA, (elementA, continuation)=>{
129
129
  index++;
130
130
  const elementB = arrayB[index];
131
- callback(elementA, elementB, ...remainingArguments, continuation);
131
+ return callback(elementA, elementB, ...remainingArguments, continuation);
132
132
  }, (success)=>{
133
133
  const matches = success; ///
134
134
  return continuation(matches);
@@ -148,7 +148,7 @@ function reduce(array, initialValue, callback, ...remainingArguments) {
148
148
  }
149
149
  function forEach(array, callback, ...remainingArguments) {
150
150
  const continuation = remainingArguments.pop();
151
- asynchronousForEach(array, (element, next, done)=>{
151
+ return asynchronousForEach(array, (element, next, done)=>{
152
152
  callback(element, ...remainingArguments, ()=>{
153
153
  next();
154
154
  });
@@ -261,4 +261,4 @@ const _default = {
261
261
  backwardsEvery
262
262
  };
263
263
 
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpcnN0OiBhcnJheUZpcnN0LCBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgZm9yRWFjaDogYXN5bmNocm9ub3VzRm9yRWFjaCxcbiAgICAgICAgZm9yd2FyZHNGb3JFYWNoOiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2gsXG4gICAgICAgIGJhY2t3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIG9uZShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgZm91bmQgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3VuZCA9IGZhbHNlO1xuXG4gICAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIHJldHVybiBjb250aW51YXRpb24oZm91bmQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IGZvdW5kID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvdW5kID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihmb3VuZCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29tZShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aCxcbiAgICAgICAgYXJyYXlCTGVuZ3RoID0gYXJyYXlCLmxlbmd0aDtcblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKG1hdGNoZXMpO1xuICB9XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgZXZlcnkoYXJyYXlBLCAoZWxlbWVudEEsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICBjb25zdCBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICBjYWxsYmFjayhlbGVtZW50QSwgZWxlbWVudEIsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgfSwgKHN1Y2Nlc3MpID0+IHtcbiAgICBjb25zdCBtYXRjaGVzID0gc3VjY2VzczsgIC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgdmFsdWUgPSBpbml0aWFsVmFsdWU7IC8vL1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKHZhbHVlLCBlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChjdXJyZW50VmFsdWUpID0+IHtcbiAgICAgIHZhbHVlID0gY3VycmVudFZhbHVlOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIHJldHVybiBjb250aW51YXRpb24odmFsdWUpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sIGNvbnRpbnVhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBkZWxldGVkRWxlbWVudCA9IHVuZGVmaW5lZDsgLy8vXG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIHNvbWUoYXJyYXksIChlbGVtZW50LCBjb250aW51YXRpb24pID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXgsICAvLy9cbiAgICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxLFxuICAgICAgICAgICAgICBkZWxldGVkRWxlbWVudHMgPSBhcnJheS5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50KSxcbiAgICAgICAgICAgICAgZmlyc3REZWxldGVkRWxlbWVudCA9IGFycmF5Rmlyc3QoZGVsZXRlZEVsZW1lbnRzKTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudCA9IGZpcnN0RGVsZXRlZEVsZW1lbnQ7ICAvLy9cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihwYXNzZWQpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihkZWxldGVkRWxlbWVudCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dFBhc3MoKSB7XG4gICAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChhcnJheUFMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlOyAgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gICAgfVxuXG4gICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgIGxldCBjb3VudCA9IC0xO1xuXG4gICAgZnVuY3Rpb24gbmV4dEVsZW1lbnQoKSB7XG4gICAgICBjb3VudCsrO1xuXG4gICAgICBjb25zdCB0ZXJtaW5hdGUgPSAoY291bnQgPT09IGFycmF5QUxlbmd0aCk7XG5cbiAgICAgIGlmICh0ZXJtaW5hdGUpIHtcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IGZhbHNlOyAvLy9cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gICAgICAgIH1cblxuICAgICAgICBhcnJheUZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgICAgICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5leHRQYXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmRleCA9IGNvdW50LCAgLy8vXG4gICAgICAgICAgICAgIGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgICAgICBjYWxsYmFjayhlbGVtZW50QSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudEIgPSBlbGVtZW50QTsgIC8vL1xuXG4gICAgICAgICAgICBhcnJheUIucHVzaChlbGVtZW50Qik7XG5cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHRFbGVtZW50KCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5leHRFbGVtZW50KCk7XG4gIH1cblxuICBuZXh0UGFzcygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBvbmUsXG4gIGVhY2gsXG4gIHNvbWUsXG4gIGV2ZXJ5LFxuICBtYXRjaCxcbiAgcmVkdWNlLFxuICBmb3JFYWNoLFxuICBleHRyYWN0LFxuICByZXNvbHZlLFxuICBmb3J3YXJkc0V2ZXJ5LFxuICBiYWNrd2FyZHNFdmVyeVxufVxuIl0sIm5hbWVzIjpbImJhY2t3YXJkc0V2ZXJ5IiwiZWFjaCIsImV2ZXJ5IiwiZXh0cmFjdCIsImZvckVhY2giLCJmb3J3YXJkc0V2ZXJ5IiwibWF0Y2giLCJvbmUiLCJyZWR1Y2UiLCJyZXNvbHZlIiwic29tZSIsImZpcnN0IiwiYXJyYXlGaXJzdCIsImZpbHRlciIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwiZm9yd2FyZHNGb3JFYWNoIiwiYXN5bmNocm9ub3VzRm9yd2FyZHNGb3JFYWNoIiwiYmFja3dhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2giLCJhc3luY2hyb25vdXNVdGlsaXRpZXMiLCJhcnJheSIsImNhbGxiYWNrIiwicmVtYWluaW5nQXJndW1lbnRzIiwiZm91bmQiLCJjb250aW51YXRpb24iLCJwb3AiLCJlbGVtZW50IiwibmV4dCIsImRvbmUiLCJwYXNzZWQiLCJzdWNjZXNzIiwiYXJyYXlBIiwiYXJyYXlCIiwiYXJyYXlBTGVuZ3RoIiwibGVuZ3RoIiwiYXJyYXlCTGVuZ3RoIiwibWF0Y2hlcyIsImluZGV4IiwiZWxlbWVudEEiLCJlbGVtZW50QiIsImluaXRpYWxWYWx1ZSIsInZhbHVlIiwiY3VycmVudFZhbHVlIiwiZGVsZXRlZEVsZW1lbnQiLCJ1bmRlZmluZWQiLCJzdGFydCIsImRlbGV0ZUNvdW50IiwiZGVsZXRlZEVsZW1lbnRzIiwic3BsaWNlIiwiZmlyc3REZWxldGVkRWxlbWVudCIsIm5leHRQYXNzIiwiY291bnQiLCJuZXh0RWxlbWVudCIsInRlcm1pbmF0ZSIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTZRZ0JBO2VBQUFBOztRQXNCaEI7ZUFBQTs7UUFoUWdCQztlQUFBQTs7UUE4Q0FDO2VBQUFBOztRQTBFQUM7ZUFBQUE7O1FBVkFDO2VBQUFBOztRQXNHQUM7ZUFBQUE7O1FBaEpBQztlQUFBQTs7UUE5RkFDO2VBQUFBOztRQXdIQUM7ZUFBQUE7O1FBcURBQztlQUFBQTs7UUEzSEFDO2VBQUFBOzs7MkJBekRzQztBQUV0RCxNQUFNLEVBQUVDLE9BQU9DLFVBQVUsRUFBRUMsUUFBUUMsV0FBVyxFQUFFLEdBQUdDLHlCQUFjLEVBQzNELEVBQUVYLFNBQVNZLG1CQUFtQixFQUM1QkMsaUJBQWlCQywyQkFBMkIsRUFDNUNDLGtCQUFrQkMsNEJBQTRCLEVBQUUsR0FBR0MsZ0NBQXFCO0FBRXpFLFNBQVNkLElBQUllLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGtCQUFrQjtJQUN4RCxJQUFJQyxRQUFRO0lBRVosTUFBTUMsZUFBZUYsbUJBQW1CRyxHQUFHO0lBRTNDWCxvQkFBb0JNLE9BQU8sQ0FBQ00sU0FBU0MsTUFBTUM7UUFDekNQLFNBQVNLLFlBQVlKLG9CQUFvQixDQUFDTztZQUN4QyxJQUFJQSxRQUFRO2dCQUNWLElBQUksQ0FBQ04sT0FBTztvQkFDVkEsUUFBUTtnQkFDVixPQUFPO29CQUNMQSxRQUFRO29CQUVSSztvQkFFQTtnQkFDRjtZQUNGO1lBRUFEO1FBQ0Y7SUFDRixHQUFHO1FBQ0QsT0FBT0gsYUFBYUQ7SUFDdEI7QUFDRjtBQUVPLFNB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
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpcnN0OiBhcnJheUZpcnN0LCBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgZm9yRWFjaDogYXN5bmNocm9ub3VzRm9yRWFjaCxcbiAgICAgICAgZm9yd2FyZHNGb3JFYWNoOiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2gsXG4gICAgICAgIGJhY2t3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIG9uZShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgZm91bmQgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3VuZCA9IGZhbHNlO1xuXG4gICAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIHJldHVybiBjb250aW51YXRpb24oZm91bmQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IGZvdW5kID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvdW5kID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihmb3VuZCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29tZShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aCxcbiAgICAgICAgYXJyYXlCTGVuZ3RoID0gYXJyYXlCLmxlbmd0aDtcblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKG1hdGNoZXMpO1xuICB9XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgZXZlcnkoYXJyYXlBLCAoZWxlbWVudEEsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICBjb25zdCBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIChzdWNjZXNzKSA9PiB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN1Y2Nlc3M7ICAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24obWF0Y2hlcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlKGFycmF5LCBpbml0aWFsVmFsdWUsIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHZhbHVlID0gaW5pdGlhbFZhbHVlOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayh2YWx1ZSwgZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAoY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICB2YWx1ZSA9IGN1cnJlbnRWYWx1ZTsgIC8vL1xuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICByZXR1cm4gY29udGludWF0aW9uKHZhbHVlKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsICgpID0+IHtcbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgY29udGludWF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3QoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IGRlbGV0ZWRFbGVtZW50ID0gdW5kZWZpbmVkOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgc29tZShhcnJheSwgKGVsZW1lbnQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50cyA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLFxuICAgICAgICAgICAgICBmaXJzdERlbGV0ZWRFbGVtZW50ID0gYXJyYXlGaXJzdChkZWxldGVkRWxlbWVudHMpO1xuXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZmlyc3REZWxldGVkRWxlbWVudDsgIC8vL1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHBhc3NlZCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICByZXR1cm4gY29udGludWF0aW9uKGRlbGV0ZWRFbGVtZW50KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGFycmF5QSA9IFsgIC8vL1xuICAgIC4uLmFycmF5QVxuICBdO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBmdW5jdGlvbiBuZXh0UGFzcygpIHtcbiAgICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoO1xuXG4gICAgaWYgKGFycmF5QUxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IHRydWU7ICAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgICB9XG5cbiAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgbGV0IGNvdW50ID0gLTE7XG5cbiAgICBmdW5jdGlvbiBuZXh0RWxlbWVudCgpIHtcbiAgICAgIGNvdW50Kys7XG5cbiAgICAgIGNvbnN0IHRlcm1pbmF0ZSA9IChjb3VudCA9PT0gYXJyYXlBTGVuZ3RoKTtcblxuICAgICAgaWYgKHRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICBjb25zdCBzdWNjZXNzID0gZmFsc2U7IC8vL1xuXG4gICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFycmF5RmlsdGVyKGFycmF5QSwgKGVsZW1lbnRBKSA9PiB7XG4gICAgICAgICAgY29uc3QgYXJyYXlCSW5jbHVkZXNFbGVtZW50QSA9IGFycmF5Qi5pbmNsdWRlcyhlbGVtZW50QSk7XG5cbiAgICAgICAgICBpZiAoIWFycmF5QkluY2x1ZGVzRWxlbWVudEEpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmV4dFBhc3MoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gY291bnQsICAvLy9cbiAgICAgICAgICAgICAgZWxlbWVudEEgPSBhcnJheUFbaW5kZXhdO1xuXG4gICAgICAgIGNhbGxiYWNrKGVsZW1lbnRBLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50QiA9IGVsZW1lbnRBOyAgLy8vXG5cbiAgICAgICAgICAgIGFycmF5Qi5wdXNoKGVsZW1lbnRCKTtcblxuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV4dEVsZW1lbnQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV4dEVsZW1lbnQoKTtcbiAgfVxuXG4gIG5leHRQYXNzKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNCYWNrd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG9uZSxcbiAgZWFjaCxcbiAgc29tZSxcbiAgZXZlcnksXG4gIG1hdGNoLFxuICByZWR1Y2UsXG4gIGZvckVhY2gsXG4gIGV4dHJhY3QsXG4gIHJlc29sdmUsXG4gIGZvcndhcmRzRXZlcnksXG4gIGJhY2t3YXJkc0V2ZXJ5XG59XG4iXSwibmFtZXMiOlsiYmFja3dhcmRzRXZlcnkiLCJlYWNoIiwiZXZlcnkiLCJleHRyYWN0IiwiZm9yRWFjaCIsImZvcndhcmRzRXZlcnkiLCJtYXRjaCIsIm9uZSIsInJlZHVjZSIsInJlc29sdmUiLCJzb21lIiwiZmlyc3QiLCJhcnJheUZpcnN0IiwiZmlsdGVyIiwiYXJyYXlGaWx0ZXIiLCJhcnJheVV0aWxpdGllcyIsImFzeW5jaHJvbm91c0ZvckVhY2giLCJmb3J3YXJkc0ZvckVhY2giLCJhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2giLCJiYWNrd2FyZHNGb3JFYWNoIiwiYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImFycmF5IiwiY2FsbGJhY2siLCJyZW1haW5pbmdBcmd1bWVudHMiLCJmb3VuZCIsImNvbnRpbnVhdGlvbiIsInBvcCIsImVsZW1lbnQiLCJuZXh0IiwiZG9uZSIsInBhc3NlZCIsInN1Y2Nlc3MiLCJhcnJheUEiLCJhcnJheUIiLCJhcnJheUFMZW5ndGgiLCJsZW5ndGgiLCJhcnJheUJMZW5ndGgiLCJtYXRjaGVzIiwiaW5kZXgiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJjdXJyZW50VmFsdWUiLCJkZWxldGVkRWxlbWVudCIsInVuZGVmaW5lZCIsInN0YXJ0IiwiZGVsZXRlQ291bnQiLCJkZWxldGVkRWxlbWVudHMiLCJzcGxpY2UiLCJmaXJzdERlbGV0ZWRFbGVtZW50IiwibmV4dFBhc3MiLCJjb3VudCIsIm5leHRFbGVtZW50IiwidGVybWluYXRlIiwiYXJyYXlCSW5jbHVkZXNFbGVtZW50QSIsImluY2x1ZGVzIiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBNlFnQkE7ZUFBQUE7O1FBc0JoQjtlQUFBOztRQWhRZ0JDO2VBQUFBOztRQThDQUM7ZUFBQUE7O1FBMEVBQztlQUFBQTs7UUFWQUM7ZUFBQUE7O1FBc0dBQztlQUFBQTs7UUFoSkFDO2VBQUFBOztRQTlGQUM7ZUFBQUE7O1FBd0hBQztlQUFBQTs7UUFxREFDO2VBQUFBOztRQTNIQUM7ZUFBQUE7OzsyQkF6RHNDO0FBRXRELE1BQU0sRUFBRUMsT0FBT0MsVUFBVSxFQUFFQyxRQUFRQyxXQUFXLEVBQUUsR0FBR0MseUJBQWMsRUFDM0QsRUFBRVgsU0FBU1ksbUJBQW1CLEVBQzVCQyxpQkFBaUJDLDJCQUEyQixFQUM1Q0Msa0JBQWtCQyw0QkFBNEIsRUFBRSxHQUFHQyxnQ0FBcUI7QUFFekUsU0FBU2QsSUFBSWUsS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0Msa0JBQWtCO0lBQ3hELElBQUlDLFFBQVE7SUFFWixNQUFNQyxlQUFlRixtQkFBbUJHLEdBQUc7SUFFM0NYLG9CQUFvQk0sT0FBTyxDQUFDTSxTQUFTQyxNQUFNQztRQUN6Q1AsU0FBU0ssWUFBWUosb0JBQW9CLENBQUNPO1lBQ3hDLElBQUlBLFFBQVE7Z0JBQ1YsSUFBSSxDQUFDTixPQUFPO29CQUNWQSxRQUFRO2dCQUNWLE9BQU87b0JBQ0xBLFFBQVE7b0JBRVJLO29CQUVBO2dCQUNGO1lBQ0Y7WUFFQUQ7UUFDRjtJQUNGLEdBQUc7UUFDRCxPQUFPSCxhQUFhRDtJQUN0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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-languages",
3
3
  "author": "James Smith",
4
- "version": "2.1.27",
4
+ "version": "2.1.29",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-languages",
7
7
  "description": "Occam's common language functionality.",
@@ -81,9 +81,7 @@ export default class FileContext extends Context {
81
81
  breakPoint = BreakPoint.fromFilePathNodeAndTokens(filePath, node, this.tokens);
82
82
  }
83
83
 
84
- releaseContext.break(breakPoint, continuation);
85
-
86
- return breakPoint;
84
+ return releaseContext.break(breakPoint, continuation);
87
85
  }
88
86
 
89
87
  verify(continuation) {
@@ -474,9 +474,7 @@ export default class ReleaseContext {
474
474
 
475
475
  const context = this; ///
476
476
 
477
- this.callback(breakPoint, context, continuation);
478
-
479
- return breakPoint;
477
+ return this.callback(breakPoint, context, continuation);
480
478
  }
481
479
 
482
480
  verify(contiunation) {
package/src/element.js CHANGED
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ import breakPoint from "./utilities/breakPoint";
4
+
3
5
  export default class Element {
4
6
  constructor(context, string, node, breakPoint) {
5
7
  this.context = context;
@@ -45,7 +47,11 @@ export default class Element {
45
47
  }
46
48
 
47
49
  break(context, continuation) {
48
- this.breakPoint = context.break(this.node, this.breakPoint, continuation);
50
+ return context.break(this.node, this.breakPoint, (breakPoint) => {
51
+ this.breakPoint = breakPoint;
52
+
53
+ return continuation();
54
+ });
49
55
  }
50
56
 
51
57
  matchNode(node) { return this.node.match(node); }
package/src/index.js CHANGED
@@ -7,8 +7,6 @@ export { default as BreakPoint } from "./breakPoint";
7
7
  export { default as FileContext } from "./context/file";
8
8
  export { default as ReleaseContext } from "./context/release";
9
9
 
10
- export { default as ZipPass } from "./pass/zip";
11
- export { default as SimplePass } from "./pass/simple";
12
10
  export { default as EquivalencePass } from "./pass/equivalence";
13
11
  export { default as ContinuationPass } from "./pass/continuation";
14
12
  export { default as ContinuationZipPass } from "./pass/continuationZip";
@@ -7,16 +7,16 @@ export default class ContinuationPass {
7
7
  run(node, ...remainingArguments) {
8
8
  const continuation = remainingArguments.pop();
9
9
 
10
- this.visitNode(node, ...remainingArguments, continuation);
10
+ return this.visitNode(node, ...remainingArguments, continuation);
11
11
  }
12
12
 
13
13
  descend(childNodes, ...remainingArguments) {
14
14
  const continuation = remainingArguments.pop();
15
15
 
16
- every(childNodes, (childNode, continuation) => {
16
+ return every(childNodes, (childNode, continuation) => {
17
17
  const node = childNode; ///
18
18
 
19
- this.visitNode(node, ...remainingArguments, continuation);
19
+ return this.visitNode(node, ...remainingArguments, continuation);
20
20
  }, continuation);
21
21
  }
22
22
 
@@ -27,12 +27,12 @@ export default class ContinuationPass {
27
27
  if (nodeTerminalNode) {
28
28
  const terminalNode = node; ///
29
29
 
30
- this.visitTerminalNode(terminalNode, ...remainingArguments, continuation);
31
- } else {
32
- const nonTerminalNode = node; ///
33
-
34
- this.visitNonTerminalNode(nonTerminalNode, ...remainingArguments, continuation);
30
+ return this.visitTerminalNode(terminalNode, ...remainingArguments, continuation);
35
31
  }
32
+
33
+ const nonTerminalNode = node; ///
34
+
35
+ return this.visitNonTerminalNode(nonTerminalNode, ...remainingArguments, continuation);
36
36
  }
37
37
 
38
38
  visitTerminalNode(terminalNode, ...remainingArguments) {
@@ -55,7 +55,7 @@ export default class ContinuationPass {
55
55
  const continuation = remainingArguments.pop(),
56
56
  childNodes = nonTerminalNode.getChildNodes();
57
57
 
58
- this.descend(childNodes, ...remainingArguments, continuation);
58
+ return this.descend(childNodes, ...remainingArguments, continuation);
59
59
  }
60
60
  }
61
61
  ];
@@ -80,6 +80,6 @@ export default class ContinuationPass {
80
80
 
81
81
  const { run } = map;
82
82
 
83
- run(node, ...remainingArguments, continuation);
83
+ return run(node, ...remainingArguments, continuation);
84
84
  }
85
85
  }
@@ -7,7 +7,7 @@ export default class ContinuationZipPass {
7
7
  run(generalNode, specificNode, ...remainingArguments) {
8
8
  const continuation = remainingArguments.pop();
9
9
 
10
- this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
10
+ return this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
11
11
  }
12
12
 
13
13
  descend(generalChildNodes, specificChildNodes, ...remainingArguments) {
@@ -22,14 +22,14 @@ export default class ContinuationZipPass {
22
22
 
23
23
  let index = -1;
24
24
 
25
- every(generalChildNodes, (generalChildNode, continuation) => {
25
+ return every(generalChildNodes, (generalChildNode, continuation) => {
26
26
  index++;
27
27
 
28
28
  const specificChildNode = specificChildNodes[index],
29
29
  specificNode = specificChildNode, ///
30
30
  generalNode = generalChildNode; ///
31
31
 
32
- this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
32
+ return this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
33
33
  }, continuation);
34
34
  }
35
35
 
@@ -40,23 +40,24 @@ export default class ContinuationZipPass {
40
40
  generalNodeNonTerminalNode = generalNode.isNonTerminalNode(),
41
41
  specificNodeNonTerminalNode = specificNode.isNonTerminalNode();
42
42
 
43
- if (false) {
44
- ///
45
- } else if (generalNodeTerminalNode && specificNodeTerminalNode) {
43
+
44
+ if (generalNodeTerminalNode && specificNodeTerminalNode) {
46
45
  const generalTerminalNode = generalNode, ///
47
46
  specificTerminalNode = specificNode; ///
48
47
 
49
- this.visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments, continuation);
50
- } else if (generalNodeNonTerminalNode && specificNodeNonTerminalNode) {
48
+ return this.visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments, continuation);
49
+ }
50
+
51
+ if (generalNodeNonTerminalNode && specificNodeNonTerminalNode) {
51
52
  const generalNonTerminalNode = generalNode, ///
52
53
  specificNonTerminalNode = specificNode; ///
53
54
 
54
- this.visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments, continuation);
55
- } else {
56
- const visited = false;
57
-
58
- return continuation(visited);
55
+ return this.visitNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, ...remainingArguments, continuation);
59
56
  }
57
+
58
+ const visited = false;
59
+
60
+ return continuation(visited);
60
61
  }
61
62
 
62
63
  visitTerminalNode(generalTerminalNode, specificTerminalNode, ...remainingArguments) { ///
@@ -92,7 +93,7 @@ export default class ContinuationZipPass {
92
93
  generalChildNodes = generalNonTerminalNodeChildNodes, ///
93
94
  specificChildNodes = specificNonTerminalNodeChildNodes; ///
94
95
 
95
- this.descend(generalChildNodes, specificChildNodes, ...remainingArguments, continuation);
96
+ return this.descend(generalChildNodes, specificChildNodes, ...remainingArguments, continuation);
96
97
  }
97
98
  }
98
99
  ];
@@ -119,6 +120,6 @@ export default class ContinuationZipPass {
119
120
 
120
121
  const { run } = map;
121
122
 
122
- run(generalNode, specificNode, ...remainingArguments, continuation);
123
+ return run(generalNode, specificNode, ...remainingArguments, continuation);
123
124
  }
124
125
  }
@@ -9,7 +9,7 @@ export function breakable(innerFunction) {
9
9
 
10
10
  this.break(context, () => {
11
11
  setImmediate(() => {
12
- innerFunction.call(this, ...remainingArguments, context, continuation);
12
+ return innerFunction.call(this, ...remainingArguments, context, continuation);
13
13
  });
14
14
  });
15
15
  };
@@ -119,7 +119,7 @@ export function match(arrayA, arrayB, callback, ...remainingArguments) {
119
119
 
120
120
  const elementB = arrayB[index];
121
121
 
122
- callback(elementA, elementB, ...remainingArguments, continuation);
122
+ return callback(elementA, elementB, ...remainingArguments, continuation);
123
123
  }, (success) => {
124
124
  const matches = success; ///
125
125
 
@@ -146,7 +146,7 @@ export function reduce(array, initialValue, callback, ...remainingArguments) {
146
146
  export function forEach(array, callback, ...remainingArguments) {
147
147
  const continuation = remainingArguments.pop();
148
148
 
149
- asynchronousForEach(array, (element, next, done) => {
149
+ return asynchronousForEach(array, (element, next, done) => {
150
150
  callback(element, ...remainingArguments, () => {
151
151
  next();
152
152
  });