New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@remult/core

Package Overview
Dependencies
Maintainers
2
Versions
220
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@remult/core - npm Package Compare versions

Comparing version 1.0.27 to 1.0.28

10

esm2015/src/grid-settings.js

@@ -276,3 +276,3 @@ /**

return undefined;
return (/** @type {?} */ (this.currentRow));
return this.currentRow;
}

@@ -283,4 +283,4 @@ /**

cancelCurrentRowChanges() {
if (this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow().reset)
this.currentRowAsRestListItemRow().reset();
if (this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow())
this.currentRowAsRestListItemRow().undoChanges();
}

@@ -297,3 +297,3 @@ /**

currentRowChanged() {
return this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow().__wasChanged && this.currentRowAsRestListItemRow().__wasChanged();
return this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow().wasChanged();
}

@@ -588,2 +588,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0ByZW11bHQvY29yZS8iLCJzb3VyY2VzIjpbInNyYy9ncmlkLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBR3JGLE1BQU0sT0FBTyxZQUFZOzs7Ozs7SUFDdkIsWUFBb0IsY0FBdUMsRUFBRSxPQUFnQixFQUFTLFFBQWlDO1FBQW5HLG1CQUFjLEdBQWQsY0FBYyxDQUF5QjtRQUEyQixhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQTBEdkgscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBaUp6QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixhQUFRLEdBQTZCLEVBQUUsQ0FBQztRQWtCeEMsaUJBQVksR0FBRyxJQUFJLFlBQVk7OztRQUFVLEdBQUcsRUFBRTtZQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUMsQ0FBQztRQU9ILFNBQUksR0FBRyxDQUFDLENBQUM7UUFnQlQsdUJBQWtCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFH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QUV6QyxpQ0FBa0I7Ozs7O0lBeUNsQixnQ0FBb0M7Ozs7O0lBblZ4QixzQ0FBK0M7O0lBQW9CLGdDQUF3Qzs7Ozs7OztBQStWekgsbUNBcUJDOzs7SUFwQkMsb0NBQXNCOztJQUN0QixvQ0FBc0I7O0lBQ3RCLG9DQUFzQjs7SUFDdEIscUNBQXVCOztJQUN2QixzQ0FBc0Q7O0lBRXRELHVDQUE4RDs7SUFDOUQsOEJBQTBEOztJQUUxRCxvQ0FBdUM7O0lBQ3ZDLG1DQUFrQzs7SUFDbEMsNEJBQTJCOztJQUMzQixzQ0FBd0I7O0lBQ3hCLG9DQUFtQzs7SUFDbkMsbUNBQWtDOztJQUNsQyxtQ0FBa0M7O0lBQ2xDLGlDQUFnQzs7SUFDaEMsMkNBQTRCOztJQUM1QixnQ0FBaUI7Ozs7OztBQUduQiwrQkFPQzs7O0lBTkMseUJBQWM7O0lBQ2QsNEJBQWtDOztJQUNsQywwQkFBNkI7O0lBQzdCLHlCQUFjOztJQUNkLDZCQUFpRDs7Ozs7O0FBS25ELFNBQVMsUUFBUSxDQUFDLENBQWM7SUFDOUIsSUFBSSxDQUFDLEVBQUU7UUFDTCxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQzNCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4vZW50aXR5XCI7XHJcblxyXG5cclxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4vY29sdW1uXCI7XHJcbmltcG9ydCB7IERhdGFDb250cm9sU2V0dGluZ3MsIERhdGFDb250cm9sSW5mbyB9IGZyb20gXCIuL2NvbHVtbi1pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0XCI7XHJcblxyXG5pbXBvcnQgeyBEYXRhTGlzdCB9IGZyb20gXCIuL2RhdGFMaXN0XCI7XHJcbmltcG9ydCB7IFNvcnQgfSBmcm9tIFwiLi9zb3J0XCI7XHJcbmltcG9ydCB7IENvbHVtbkNvbGxlY3Rpb24gfSBmcm9tIFwiLi9jb2x1bW4tY29sbGVjdGlvblwiO1xyXG5pbXBvcnQgeyBJRGF0YUFyZWFTZXR0aW5ncywgRGF0YUFyZWFTZXR0aW5ncyB9IGZyb20gXCIuL2RhdGEtYXJlYS1zZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tIFwiLi9maWx0ZXIvZmlsdGVyLWhlbHBlclwiO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm92aWRlciwgRmluZE9wdGlvbnMsIGVudGl0eU9yZGVyQnlUb1NvcnQgfSBmcm9tICcuL2RhdGEtaW50ZXJmYWNlcyc7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEdyaWRTZXR0aW5nczxyb3dUeXBlIGV4dGVuZHMgRW50aXR5PGFueT4+ICB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHlQcm92aWRlcjogRW50aXR5UHJvdmlkZXI8cm93VHlwZT4sIGNvbnRleHQ6IENvbnRleHQsIHB1YmxpYyBzZXR0aW5ncz86IElEYXRhU2V0dGluZ3M8cm93VHlwZT4pIHtcclxuICAgIHRoaXMucmVzdExpc3QgPSBuZXcgRGF0YUxpc3Q8cm93VHlwZT4oZW50aXR5UHJvdmlkZXIpO1xyXG4gICAgaWYgKGVudGl0eVByb3ZpZGVyKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVySGVscGVyLmZpbHRlclJvdyA9IDxyb3dUeXBlPmVudGl0eVByb3ZpZGVyLmNyZWF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29sdW1ucyA9IG5ldyBDb2x1bW5Db2xsZWN0aW9uPHJvd1R5cGU+KCgpID0+IHRoaXMuY3VycmVudFJvdywgKCkgPT4gdGhpcy5hbGxvd1VwZGF0ZSwgdGhpcy5maWx0ZXJIZWxwZXIsICgpID0+IHRoaXMuY3VycmVudFJvdyA/IHRydWUgOiBmYWxzZSwgY29udGV4dClcclxuXHJcbiAgICB0aGlzLnJlc3RMaXN0Ll9yb3dSZXBsYWNlZExpc3RlbmVycy5wdXNoKChvbGQsIGN1cnIpID0+IHtcclxuICAgICAgaWYgKG9sZCA9PSB0aGlzLmN1cnJlbnRSb3cpXHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KGN1cnIpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHNldHRpbmdzKSB7XHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3MuY29sdW1uU2V0dGluZ3MpXHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLmFkZCguLi5zZXR0aW5ncy5jb2x1bW5TZXR0aW5ncyhlbnRpdHlQcm92aWRlci5jcmVhdGUoKSkpO1xyXG5cclxuICAgICAgaWYgKHNldHRpbmdzLmFsbG93VXBkYXRlKVxyXG4gICAgICAgIHRoaXMuYWxsb3dVcGRhdGUgPSB0cnVlO1xyXG4gICAgICBpZiAoc2V0dGluZ3MuYWxsb3dEZWxldGUpXHJcbiAgICAgICAgdGhpcy5hbGxvd0RlbGV0ZSA9IHRydWU7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5hbGxvd0luc2VydClcclxuICAgICAgICB0aGlzLmFsbG93SW5zZXJ0ID0gdHJ1ZTtcclxuICAgICAgaWYgKHNldHRpbmdzLmhpZGVEYXRhQXJlYSlcclxuICAgICAgICB0aGlzLmhpZGVEYXRhQXJlYSA9IHNldHRpbmdzLmhpZGVEYXRhQXJlYTtcclxuICAgICAgaWYgKHNldHRpbmdzLm51bU9mQ29sdW1uc0luR3JpZCAhPSB1bmRlZmluZWQpXHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZCA9IHNldHRpbmdzLm51bU9mQ29sdW1uc0luR3JpZDtcclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5yb3dCdXR0b25zKVxyXG4gICAgICAgIHRoaXMuX2J1dHRvbnMgPSBzZXR0aW5ncy5yb3dCdXR0b25zO1xyXG5cclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5yb3dDc3NDbGFzcylcclxuICAgICAgICB0aGlzLnJvd0NsYXNzID0gc2V0dGluZ3Mucm93Q3NzQ2xhc3M7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5vblNhdmluZ1JvdylcclxuICAgICAgICB0aGlzLm9uU2F2aW5nUm93ID0gc2V0dGluZ3Mub25TYXZpbmdSb3c7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5vbkVudGVyUm93KVxyXG4gICAgICAgIHRoaXMub25FbnRlclJvdyA9IHNldHRpbmdzLm9uRW50ZXJSb3c7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5vbk5ld1JvdylcclxuICAgICAgICB0aGlzLm9uTmV3Um93ID0gc2V0dGluZ3Mub25OZXdSb3c7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5vblZhbGlkYXRlKVxyXG4gICAgICAgIHRoaXMub25WYWxpZGF0ZSA9IHNldHRpbmdzLm9uVmFsaWRhdGU7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5jYXB0aW9uKVxyXG4gICAgICAgIHRoaXMuY2FwdGlvbiA9IHNldHRpbmdzLmNhcHRpb247XHJcbiAgICAgIGlmICghdGhpcy5jYXB0aW9uICYmIGVudGl0eVByb3ZpZGVyKSB7XHJcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gZW50aXR5UHJvdmlkZXIuY3JlYXRlKCkuZGVmcy5jYXB0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0R2V0T3B0aW9ucyhzZXR0aW5ncy5nZXQpO1xyXG5cclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgY3Vyckxpc3Q6IERhdGFDb250cm9sU2V0dGluZ3M8YW55PltdO1xyXG4gIG9yaWdMaXN0OiBEYXRhQ29udHJvbFNldHRpbmdzPGFueT5bXTtcclxuICBvcmlnTnVtT2ZDb2x1bW5zOiBudW1iZXI7XHJcbiAgc2hvd1NlbGVjdENvbHVtbiA9IGZhbHNlO1xyXG5cclxuICBpbml0T3JpZ0xpc3QoKSB7XHJcbiAgICBpZiAoIXRoaXMub3JpZ0xpc3QpIHtcclxuICAgICAgdGhpcy5vcmlnTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLm9yaWdOdW1PZkNvbHVtbnMgPSB0aGlzLmNvbHVtbnMubnVtT2ZDb2x1bW5zSW5HcmlkO1xyXG4gICAgICB0aGlzLm9yaWdMaXN0LnB1c2goLi4udGhpcy5jb2x1bW5zLml0ZW1zKTtcclxuICAgIH1cclxuICB9XHJcbiAgdXNlckNob29zZUNvbHVtbnMoKSB7XHJcbiAgICB0aGlzLmluaXRPcmlnTGlzdCgpO1xyXG4gICAgaWYgKCF0aGlzLmN1cnJMaXN0KSB7XHJcblxyXG4gICAgICB0aGlzLnJlc2V0Q29sdW1ucygpO1xyXG5cclxuICAgIH1cclxuICAgIHRoaXMuc2hvd1NlbGVjdENvbHVtbiA9ICF0aGlzLnNob3dTZWxlY3RDb2x1bW47XHJcbiAgfVxyXG4gIHJlc2V0Q29sdW1ucygpIHtcclxuICAgIHRoaXMuY3Vyckxpc3QgPSBbXTtcclxuICAgIHRoaXMuY29sdW1ucy5pdGVtcyA9IHRoaXMuY3Vyckxpc3Q7XHJcbiAgICB0aGlzLmNvbHVtbnMubnVtT2ZDb2x1bW5zSW5HcmlkID0gdGhpcy5vcmlnTnVtT2ZDb2x1bW5zO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm9yaWdMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpIDwgdGhpcy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZClcclxuICAgICAgICB0aGlzLmN1cnJMaXN0LnB1c2godGhpcy5vcmlnTGlzdFtpXSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBhZGRDb2woYzogRGF0YUNvbnRyb2xTZXR0aW5nczxhbnk+KSB7XHJcbiAgICB0aGlzLmNvbHVtbnMuYWRkQ29sKGMpO1xyXG4gICAgdGhpcy5hZGp1c3RDb2x1bW5zKCk7XHJcbiAgfVxyXG4gIGRlbGV0ZUNvbChjOiBEYXRhQ29udHJvbFNldHRpbmdzPGFueT4pIHtcclxuICAgIHRoaXMuY29sdW1ucy5kZWxldGVDb2woYylcclxuICAgIHRoaXMuYWRqdXN0Q29sdW1ucygpO1xyXG4gIH1cclxuICBhZGp1c3RDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZCA9IHRoaXMuY29sdW1ucy5pdGVtcy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEdldE9wdGlvbnMoZ2V0OiBGaW5kT3B0aW9uczxyb3dUeXBlPikge1xyXG4gICAgdGhpcy5nZXRPcHRpb25zID0gZ2V0O1xyXG4gICAgaWYgKGdldCAmJiBnZXQubGltaXQpXHJcbiAgICAgIHRoaXMucm93c1BlclBhZ2UgPSBnZXQubGltaXQ7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMucm93c1BlclBhZ2UgPSA3O1xyXG4gICAgaWYgKHRoaXMucm93c1BlclBhZ2VPcHRpb25zLmluZGV4T2YodGhpcy5yb3dzUGVyUGFnZSkgPCAwKSB7XHJcbiAgICAgIHRoaXMucm93c1BlclBhZ2VPcHRpb25zLnB1c2godGhpcy5yb3dzUGVyUGFnZSk7XHJcbiAgICAgIHRoaXMucm93c1BlclBhZ2VPcHRpb25zLnNvcnQoKGEsIGIpID0+ICthIC0gK2IpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY3VycmVudE9yZGVyQnkgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiAodGhpcy5nZXRPcHRpb25zICYmIHRoaXMuZ2V0T3B0aW9ucy5vcmRlckJ5KVxyXG4gICAgICB0aGlzLl9jdXJyZW50T3JkZXJCeSA9IGVudGl0eU9yZGVyQnlUb1NvcnQodGhpcy5lbnRpdHlQcm92aWRlci5jcmVhdGUoKSwgdGhpcy5nZXRPcHRpb25zLm9yZGVyQnkpO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgYWRkTmV3Um93KCkge1xyXG4gICAgbGV0IHI6IGFueSA9IHRoaXMucmVzdExpc3QuYWRkKCk7XHJcbiAgICBpZiAodGhpcy5vbk5ld1JvdylcclxuICAgICAgdGhpcy5vbk5ld1JvdyhyKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudFJvdyhyKTtcclxuICB9XHJcblxyXG4gIG5vYW06IHN0cmluZztcclxuXHJcbiAgYWRkQXJlYShzZXR0aW5nczogSURhdGFBcmVhU2V0dGluZ3M8cm93VHlwZT4pIHtcclxuICAgIGxldCBjb2wgPSBuZXcgQ29sdW1uQ29sbGVjdGlvbjxyb3dUeXBlPigoKSA9PiB0aGlzLmN1cnJlbnRSb3csICgpID0+IHRoaXMuYWxsb3dVcGRhdGUsIHRoaXMuZmlsdGVySGVscGVyLCAoKSA9PiB0aGlzLmN1cnJlbnRSb3cgPyB0cnVlIDogZmFsc2UpO1xyXG4gICAgY29sLm51bU9mQ29sdW1uc0luR3JpZCA9IDA7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBEYXRhQXJlYVNldHRpbmdzPHJvd1R5cGU+KHNldHRpbmdzLCBjb2wsIHRoaXMuZW50aXR5UHJvdmlkZXIuY3JlYXRlKCkpO1xyXG4gIH1cclxuICBjdXJyZW50Um93OiByb3dUeXBlO1xyXG4gIHNldEN1cnJlbnRSb3cocm93OiByb3dUeXBlKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Um93ICE9IHJvdykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRSb3cgPSByb3c7XHJcbiAgICAgIGlmICh0aGlzLm9uRW50ZXJSb3cgJiYgcm93KSB7XHJcblxyXG4gICAgICAgIHRoaXMub25FbnRlclJvdyhyb3cpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBuZXh0Um93KCkge1xyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRSb3cgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwKVxyXG4gICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5pdGVtc1swXSk7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Um93KSB7XHJcbiAgICAgIGxldCBjdXJyZW50Um93UG9zaXRpb24gPSB0aGlzLml0ZW1zLmluZGV4T2YodGhpcy5jdXJyZW50Um93KTtcclxuICAgICAgaWYgKGN1cnJlbnRSb3dQb3NpdGlvbiA8IHRoaXMuaXRlbXMubGVuZ3RoIC0gMSlcclxuICAgICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5pdGVtc1tjdXJyZW50Um93UG9zaXRpb24gKyAxXSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLm5leHRQYWdlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5pdGVtc1swXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByZXZpb3VzUm93QWxsb3dlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSb3cgJiYgdGhpcy5pdGVtcy5pbmRleE9mKHRoaXMuY3VycmVudFJvdykgPiAwIHx8IHRoaXMucGFnZSA+IDE7XHJcbiAgfVxyXG4gIHByZXZpb3VzUm93KCkge1xyXG4gICAgaWYgKCF0aGlzLnByZXZpb3VzUm93QWxsb3dlZCgpKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgbGV0IGN1cnJlbnRSb3dQb3NpdGlvbiA9IHRoaXMuaXRlbXMuaW5kZXhPZih0aGlzLmN1cnJlbnRSb3cpO1xyXG4gICAgaWYgKGN1cnJlbnRSb3dQb3NpdGlvbiA+IDApXHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLml0ZW1zW2N1cnJlbnRSb3dQb3NpdGlvbiAtIDFdKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5wYWdlID4gMSlcclxuICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBkZWxldGVDdXJlbnRSb3coKSB7XHJcbiAgICBpZiAoIXRoaXMuZGVsZXRlQ3VycmVudFJvd0FsbG93ZWQpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkuZGVsZXRlKCk7XHJcbiAgfVxyXG4gIGN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpIHtcclxuICAgIGlmICghdGhpcy5jdXJyZW50Um93KVxyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIDxhbnk+dGhpcy5jdXJyZW50Um93O1xyXG4gIH1cclxuICBjYW5jZWxDdXJyZW50Um93Q2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpICYmIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkucmVzZXQpXHJcbiAgICAgIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkucmVzZXQoKTtcclxuICB9XHJcbiAgZGVsZXRlQ3VycmVudFJvd0FsbG93ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSAmJiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLmRlbGV0ZSAmJiB0aGlzLmFsbG93RGVsZXRlICYmICFpc05ld1Jvdyh0aGlzLmN1cnJlbnRSb3cpO1xyXG4gIH1cclxuICBjdXJyZW50Um93Q2hhbmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpICYmIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkuX193YXNDaGFuZ2VkICYmIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkuX193YXNDaGFuZ2VkKCk7XHJcbiAgfVxyXG4gIHNhdmVDdXJyZW50Um93KCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkgJiYgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5zYXZlKVxyXG4gICAgICB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLnNhdmUoKTtcclxuICB9XHJcblxyXG4gIGFsbG93VXBkYXRlID0gZmFsc2U7XHJcbiAgYWxsb3dJbnNlcnQgPSBmYWxzZTtcclxuICBhbGxvd0RlbGV0ZSA9IGZhbHNlO1xyXG4gIGhpZGVEYXRhQXJlYSA9IGZhbHNlO1xyXG5cclxuXHJcbiAgX2J1dHRvbnM6IFJvd0J1dHRvbjxFbnRpdHk8YW55Pj5bXSA9IFtdO1xyXG5cclxuICByb3dDbGFzcz86IChyb3c6IGFueSkgPT4gc3RyaW5nO1xyXG4gIG9uU2F2aW5nUm93PzogKHJvdzogYW55KSA9PiBQcm9taXNlPGFueT4gfCBhbnk7XHJcbiAgb25WYWxpZGF0ZT86IChyb3c6IHJvd1R5cGUpID0+IFByb21pc2U8YW55PiB8IGFueTtcclxuICBvbkVudGVyUm93OiAocm93OiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIG9uTmV3Um93OiAocm93OiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIF9kb1NhdmluZ1JvdyhzOiByb3dUeXBlKSB7XHJcbiAgICByZXR1cm4gcy5zYXZlKGFzeW5jICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMub25WYWxpZGF0ZSlcclxuICAgICAgICBhd2FpdCB0aGlzLm9uVmFsaWRhdGUocyk7XHJcbiAgICAgIGlmICh0aGlzLm9uU2F2aW5nUm93KVxyXG4gICAgICAgIGF3YWl0IHRoaXMub25TYXZpbmdSb3cocyk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIGNhcHRpb246IHN0cmluZztcclxuXHJcbiAgZmlsdGVySGVscGVyID0gbmV3IEZpbHRlckhlbHBlcjxyb3dUeXBlPigoKSA9PiB7XHJcbiAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgdGhpcy5nZXRSZWNvcmRzKCk7XHJcbiAgfSk7XHJcblxyXG4gIGNvbHVtbnM6IENvbHVtbkNvbGxlY3Rpb248cm93VHlwZT47XHJcblxyXG5cclxuXHJcblxyXG4gIHBhZ2UgPSAxO1xyXG4gIG5leHRQYWdlKCkge1xyXG4gICAgdGhpcy5wYWdlKys7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRzKCk7XHJcbiAgfVxyXG4gIHByZXZpb3VzUGFnZSgpIHtcclxuICAgIGlmICh0aGlzLnBhZ2UgPD0gMSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5wYWdlLS07XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRzKCk7XHJcbiAgfVxyXG4gIGZpcnN0UGFnZSgpIHtcclxuICAgIHRoaXMucGFnZSA9IDE7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRzKCk7XHJcbiAgfVxyXG4gIHJvd3NQZXJQYWdlOiBudW1iZXI7XHJcbiAgcm93c1BlclBhZ2VPcHRpb25zID0gWzEwLCAyNSwgNTAsIDEwMCwgNTAwLCAxMDAwXTtcclxuICBnZXQob3B0aW9uczogRmluZE9wdGlvbnM8cm93VHlwZT4pIHtcclxuXHJcbiAgICB0aGlzLnNldEdldE9wdGlvbnMob3B0aW9ucyk7XHJcbiAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3JkcygpO1xyXG5cclxuICB9XHJcblxyXG4gIF9jdXJyZW50T3JkZXJCeTogU29ydDtcclxuICBzb3J0KGNvbHVtbjogQ29sdW1uPGFueT4pIHtcclxuXHJcbiAgICBsZXQgZG9uZSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuX2N1cnJlbnRPcmRlckJ5ICYmIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmNvbHVtbiA9PSBjb2x1bW4pIHtcclxuICAgICAgICB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5kZXNjZW5kaW5nID0gIXRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmRlc2NlbmRpbmc7XHJcbiAgICAgICAgZG9uZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gaWYgKCFkb25lKVxyXG4gICAgICB0aGlzLl9jdXJyZW50T3JkZXJCeSA9IG5ldyBTb3J0KHsgY29sdW1uOiBjb2x1bW4gfSk7XHJcbiAgICB0aGlzLmdldFJlY29yZHMoKTtcclxuICB9XHJcbiAgc29ydGVkQXNjZW5kaW5nKGNvbHVtbjogQ29sdW1uPGFueT4pIHtcclxuICAgIGlmICghdGhpcy5fY3VycmVudE9yZGVyQnkpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIGlmICghY29sdW1uKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHMubGVuZ3RoID4gMCAmJlxyXG4gICAgICB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5jb2x1bW4gPT0gY29sdW1uICYmXHJcbiAgICAgICF0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5kZXNjZW5kaW5nO1xyXG4gIH1cclxuICBzb3J0ZWREZXNjZW5kaW5nKGNvbHVtbjogQ29sdW1uPGFueT4pIHtcclxuICAgIGlmICghdGhpcy5fY3VycmVudE9yZGVyQnkpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIGlmICghY29sdW1uKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHMubGVuZ3RoID4gMCAmJlxyXG4gICAgICB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5jb2x1bW4gPT0gY29sdW1uICYmXHJcbiAgICAgICEhdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHNbMF0uZGVzY2VuZGluZztcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBnZXRPcHRpb25zOiBGaW5kT3B0aW9uczxyb3dUeXBlPjtcclxuXHJcbiAgdG90YWxSb3dzOiBudW1iZXI7XHJcblxyXG4gIGdldFJlY29yZHMoKSB7XHJcblxyXG4gICAgbGV0IG9wdDogRmluZE9wdGlvbnM8cm93VHlwZT4gPSB7fTtcclxuICAgIGlmICh0aGlzLmdldE9wdGlvbnMpIHtcclxuICAgICAgb3B0ID0gT2JqZWN0LmFzc2lnbihvcHQsIHRoaXMuZ2V0T3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fY3VycmVudE9yZGVyQnkpXHJcbiAgICAgIG9wdC5vcmRlckJ5ID0gciA9PiB0aGlzLl9jdXJyZW50T3JkZXJCeTtcclxuXHJcbiAgICBvcHQubGltaXQgPSB0aGlzLnJvd3NQZXJQYWdlO1xyXG4gICAgaWYgKHRoaXMucGFnZSA+IDEpXHJcbiAgICAgIG9wdC5wYWdlID0gdGhpcy5wYWdlO1xyXG4gICAgdGhpcy5maWx0ZXJIZWxwZXIuYWRkVG9GaW5kT3B0aW9ucyhvcHQpO1xyXG5cclxuICAgIGxldCByZXN1bHQgPSB0aGlzLnJlc3RMaXN0LmdldChvcHQpLnRoZW4oKCkgPT4ge1xyXG5cclxuXHJcbiAgICAgIGlmICh0aGlzLnJlc3RMaXN0Lml0ZW1zLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLmF1dG9HZW5lcmF0ZUNvbHVtbnNCYXNlZE9uRGF0YSh0aGlzLmVudGl0eVByb3ZpZGVyLmNyZWF0ZSgpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLnJlc3RMaXN0Lml0ZW1zWzBdKTtcclxuICAgICAgICB0aGlzLmNvbHVtbnMuYXV0b0dlbmVyYXRlQ29sdW1uc0Jhc2VkT25EYXRhKHRoaXMuZW50aXR5UHJvdmlkZXIuY3JlYXRlKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLnJlc3RMaXN0O1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncyAmJiB0aGlzLnNldHRpbmdzLmtub3dUb3RhbFJvd3MpIHtcclxuICAgICAgdGhpcy5yZXN0TGlzdC5jb3VudChvcHQud2hlcmUpLnRoZW4oeCA9PiB7XHJcbiAgICAgICAgdGhpcy50b3RhbFJvd3MgPSB4O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfTtcclxuXHJcblxyXG5cclxuICBwcml2YXRlIHJlc3RMaXN0OiBEYXRhTGlzdDxyb3dUeXBlPjtcclxuICBnZXQgaXRlbXMoKTogcm93VHlwZVtdIHtcclxuICAgIGlmICh0aGlzLnJlc3RMaXN0KVxyXG4gICAgICByZXR1cm4gdGhpcy5yZXN0TGlzdC5pdGVtcztcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBJRGF0YVNldHRpbmdzPHJvd1R5cGUgZXh0ZW5kcyBFbnRpdHk8YW55Pj4ge1xyXG4gIGFsbG93VXBkYXRlPzogYm9vbGVhbixcclxuICBhbGxvd0luc2VydD86IGJvb2xlYW4sXHJcbiAgYWxsb3dEZWxldGU/OiBib29sZWFuLFxyXG4gIGhpZGVEYXRhQXJlYT86IGJvb2xlYW4sXHJcbiAgY29uZmlybURlbGV0ZT86IChyOiByb3dUeXBlLCB5ZXM6ICgpID0+IHZvaWQpID0+IHZvaWQ7XHJcblxyXG4gIGNvbHVtblNldHRpbmdzPzogKHJvdzogcm93VHlwZSkgPT4gRGF0YUNvbnRyb2xJbmZvPHJvd1R5cGU+W10sXHJcbiAgYXJlYXM/OiB7IFthcmVhS2V5OiBzdHJpbmddOiBEYXRhQ29udHJvbEluZm88cm93VHlwZT5bXSB9LFxyXG5cclxuICByb3dDc3NDbGFzcz86IChyb3c6IHJvd1R5cGUpID0+IHN0cmluZztcclxuICByb3dCdXR0b25zPzogUm93QnV0dG9uPHJvd1R5cGU+W10sXHJcbiAgZ2V0PzogRmluZE9wdGlvbnM8cm93VHlwZT4sXHJcbiAga25vd1RvdGFsUm93cz86IGJvb2xlYW4sXHJcbiAgb25TYXZpbmdSb3c/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICBvblZhbGlkYXRlPzogKHI6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgb25FbnRlclJvdz86IChyOiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIG9uTmV3Um93PzogKHI6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgbnVtT2ZDb2x1bW5zSW5HcmlkPzogbnVtYmVyO1xyXG4gIGNhcHRpb24/OiBzdHJpbmc7XHJcblxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUm93QnV0dG9uPHJvd1R5cGUgZXh0ZW5kcyBFbnRpdHk8YW55Pj4ge1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgdmlzaWJsZT86IChyOiByb3dUeXBlKSA9PiBib29sZWFuO1xyXG4gIGNsaWNrPzogKHI6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBjc3NDbGFzcz86IChzdHJpbmcgfCAoKHJvdzogcm93VHlwZSkgPT4gc3RyaW5nKSk7XHJcblxyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gaXNOZXdSb3cocjogRW50aXR5PGFueT4pIHtcclxuICBpZiAocikge1xyXG4gICAgci5fX2VudGl0eURhdGEuaXNOZXdSb3coKTtcclxuICB9XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0ByZW11bHQvY29yZS8iLCJzb3VyY2VzIjpbInNyYy9ncmlkLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBR3JGLE1BQU0sT0FBTyxZQUFZOzs7Ozs7SUFDdkIsWUFBb0IsY0FBdUMsRUFBRSxPQUFnQixFQUFTLFFBQWlDO1FBQW5HLG1CQUFjLEdBQWQsY0FBYyxDQUF5QjtRQUEyQixhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQTBEdkgscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBaUp6QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixhQUFRLEdBQTZCLEVBQUUsQ0FBQztRQWtCeEMsaUJBQVksR0FBRyxJQUFJLFlBQVk7OztRQUFVLEdBQUcsRUFBRTtZQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUMsQ0FBQztRQU9ILFNBQUksR0FBRyxDQUFDLENBQUM7UUFnQlQsdUJBQWtCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFH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QXdDOzs7Ozs7O0FBK1Z6SCxtQ0FxQkM7OztJQXBCQyxvQ0FBc0I7O0lBQ3RCLG9DQUFzQjs7SUFDdEIsb0NBQXNCOztJQUN0QixxQ0FBdUI7O0lBQ3ZCLHNDQUFzRDs7SUFFdEQsdUNBQThEOztJQUM5RCw4QkFBMEQ7O0lBRTFELG9DQUF1Qzs7SUFDdkMsbUNBQWtDOztJQUNsQyw0QkFBMkI7O0lBQzNCLHNDQUF3Qjs7SUFDeEIsb0NBQW1DOztJQUNuQyxtQ0FBa0M7O0lBQ2xDLG1DQUFrQzs7SUFDbEMsaUNBQWdDOztJQUNoQywyQ0FBNEI7O0lBQzVCLGdDQUFpQjs7Ozs7O0FBR25CLCtCQU9DOzs7SUFOQyx5QkFBYzs7SUFDZCw0QkFBa0M7O0lBQ2xDLDBCQUE2Qjs7SUFDN0IseUJBQWM7O0lBQ2QsNkJBQWlEOzs7Ozs7QUFLbkQsU0FBUyxRQUFRLENBQUMsQ0FBYztJQUM5QixJQUFJLENBQUMsRUFBRTtRQUNMLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDM0I7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcclxuXHJcblxyXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tIFwiLi9jb2x1bW5cIjtcclxuaW1wb3J0IHsgRGF0YUNvbnRyb2xTZXR0aW5ncywgRGF0YUNvbnRyb2xJbmZvIH0gZnJvbSBcIi4vY29sdW1uLWludGVyZmFjZXNcIjtcclxuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcclxuXHJcbmltcG9ydCB7IERhdGFMaXN0IH0gZnJvbSBcIi4vZGF0YUxpc3RcIjtcclxuaW1wb3J0IHsgU29ydCB9IGZyb20gXCIuL3NvcnRcIjtcclxuaW1wb3J0IHsgQ29sdW1uQ29sbGVjdGlvbiB9IGZyb20gXCIuL2NvbHVtbi1jb2xsZWN0aW9uXCI7XHJcbmltcG9ydCB7IElEYXRhQXJlYVNldHRpbmdzLCBEYXRhQXJlYVNldHRpbmdzIH0gZnJvbSBcIi4vZGF0YS1hcmVhLXNldHRpbmdzXCI7XHJcbmltcG9ydCB7IEZpbHRlckhlbHBlciB9IGZyb20gXCIuL2ZpbHRlci9maWx0ZXItaGVscGVyXCI7XHJcbmltcG9ydCB7IEVudGl0eVByb3ZpZGVyLCBGaW5kT3B0aW9ucywgZW50aXR5T3JkZXJCeVRvU29ydCB9IGZyb20gJy4vZGF0YS1pbnRlcmZhY2VzJztcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR3JpZFNldHRpbmdzPHJvd1R5cGUgZXh0ZW5kcyBFbnRpdHk8YW55Pj4gIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eVByb3ZpZGVyOiBFbnRpdHlQcm92aWRlcjxyb3dUeXBlPiwgY29udGV4dDogQ29udGV4dCwgcHVibGljIHNldHRpbmdzPzogSURhdGFTZXR0aW5nczxyb3dUeXBlPikge1xyXG4gICAgdGhpcy5yZXN0TGlzdCA9IG5ldyBEYXRhTGlzdDxyb3dUeXBlPihlbnRpdHlQcm92aWRlcik7XHJcbiAgICBpZiAoZW50aXR5UHJvdmlkZXIpIHtcclxuICAgICAgdGhpcy5maWx0ZXJIZWxwZXIuZmlsdGVyUm93ID0gPHJvd1R5cGU+ZW50aXR5UHJvdmlkZXIuY3JlYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb2x1bW5zID0gbmV3IENvbHVtbkNvbGxlY3Rpb248cm93VHlwZT4oKCkgPT4gdGhpcy5jdXJyZW50Um93LCAoKSA9PiB0aGlzLmFsbG93VXBkYXRlLCB0aGlzLmZpbHRlckhlbHBlciwgKCkgPT4gdGhpcy5jdXJyZW50Um93ID8gdHJ1ZSA6IGZhbHNlLCBjb250ZXh0KVxyXG5cclxuICAgIHRoaXMucmVzdExpc3QuX3Jvd1JlcGxhY2VkTGlzdGVuZXJzLnB1c2goKG9sZCwgY3VycikgPT4ge1xyXG4gICAgICBpZiAob2xkID09IHRoaXMuY3VycmVudFJvdylcclxuICAgICAgICB0aGlzLnNldEN1cnJlbnRSb3coY3Vycik7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoc2V0dGluZ3MpIHtcclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5jb2x1bW5TZXR0aW5ncylcclxuICAgICAgICB0aGlzLmNvbHVtbnMuYWRkKC4uLnNldHRpbmdzLmNvbHVtblNldHRpbmdzKGVudGl0eVByb3ZpZGVyLmNyZWF0ZSgpKSk7XHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3MuYWxsb3dVcGRhdGUpXHJcbiAgICAgICAgdGhpcy5hbGxvd1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5hbGxvd0RlbGV0ZSlcclxuICAgICAgICB0aGlzLmFsbG93RGVsZXRlID0gdHJ1ZTtcclxuICAgICAgaWYgKHNldHRpbmdzLmFsbG93SW5zZXJ0KVxyXG4gICAgICAgIHRoaXMuYWxsb3dJbnNlcnQgPSB0cnVlO1xyXG4gICAgICBpZiAoc2V0dGluZ3MuaGlkZURhdGFBcmVhKVxyXG4gICAgICAgIHRoaXMuaGlkZURhdGFBcmVhID0gc2V0dGluZ3MuaGlkZURhdGFBcmVhO1xyXG4gICAgICBpZiAoc2V0dGluZ3MubnVtT2ZDb2x1bW5zSW5HcmlkICE9IHVuZGVmaW5lZClcclxuICAgICAgICB0aGlzLmNvbHVtbnMubnVtT2ZDb2x1bW5zSW5HcmlkID0gc2V0dGluZ3MubnVtT2ZDb2x1bW5zSW5HcmlkO1xyXG5cclxuICAgICAgaWYgKHNldHRpbmdzLnJvd0J1dHRvbnMpXHJcbiAgICAgICAgdGhpcy5fYnV0dG9ucyA9IHNldHRpbmdzLnJvd0J1dHRvbnM7XHJcblxyXG5cclxuICAgICAgaWYgKHNldHRpbmdzLnJvd0Nzc0NsYXNzKVxyXG4gICAgICAgIHRoaXMucm93Q2xhc3MgPSBzZXR0aW5ncy5yb3dDc3NDbGFzcztcclxuICAgICAgaWYgKHNldHRpbmdzLm9uU2F2aW5nUm93KVxyXG4gICAgICAgIHRoaXMub25TYXZpbmdSb3cgPSBzZXR0aW5ncy5vblNhdmluZ1JvdztcclxuICAgICAgaWYgKHNldHRpbmdzLm9uRW50ZXJSb3cpXHJcbiAgICAgICAgdGhpcy5vbkVudGVyUm93ID0gc2V0dGluZ3Mub25FbnRlclJvdztcclxuICAgICAgaWYgKHNldHRpbmdzLm9uTmV3Um93KVxyXG4gICAgICAgIHRoaXMub25OZXdSb3cgPSBzZXR0aW5ncy5vbk5ld1JvdztcclxuICAgICAgaWYgKHNldHRpbmdzLm9uVmFsaWRhdGUpXHJcbiAgICAgICAgdGhpcy5vblZhbGlkYXRlID0gc2V0dGluZ3Mub25WYWxpZGF0ZTtcclxuICAgICAgaWYgKHNldHRpbmdzLmNhcHRpb24pXHJcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gc2V0dGluZ3MuY2FwdGlvbjtcclxuICAgICAgaWYgKCF0aGlzLmNhcHRpb24gJiYgZW50aXR5UHJvdmlkZXIpIHtcclxuICAgICAgICB0aGlzLmNhcHRpb24gPSBlbnRpdHlQcm92aWRlci5jcmVhdGUoKS5kZWZzLmNhcHRpb247XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRHZXRPcHRpb25zKHNldHRpbmdzLmdldCk7XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBjdXJyTGlzdDogRGF0YUNvbnRyb2xTZXR0aW5nczxhbnk+W107XHJcbiAgb3JpZ0xpc3Q6IERhdGFDb250cm9sU2V0dGluZ3M8YW55PltdO1xyXG4gIG9yaWdOdW1PZkNvbHVtbnM6IG51bWJlcjtcclxuICBzaG93U2VsZWN0Q29sdW1uID0gZmFsc2U7XHJcblxyXG4gIGluaXRPcmlnTGlzdCgpIHtcclxuICAgIGlmICghdGhpcy5vcmlnTGlzdCkge1xyXG4gICAgICB0aGlzLm9yaWdMaXN0ID0gW107XHJcbiAgICAgIHRoaXMub3JpZ051bU9mQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQ7XHJcbiAgICAgIHRoaXMub3JpZ0xpc3QucHVzaCguLi50aGlzLmNvbHVtbnMuaXRlbXMpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1c2VyQ2hvb3NlQ29sdW1ucygpIHtcclxuICAgIHRoaXMuaW5pdE9yaWdMaXN0KCk7XHJcbiAgICBpZiAoIXRoaXMuY3Vyckxpc3QpIHtcclxuXHJcbiAgICAgIHRoaXMucmVzZXRDb2x1bW5zKCk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93U2VsZWN0Q29sdW1uID0gIXRoaXMuc2hvd1NlbGVjdENvbHVtbjtcclxuICB9XHJcbiAgcmVzZXRDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5jdXJyTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jb2x1bW5zLml0ZW1zID0gdGhpcy5jdXJyTGlzdDtcclxuICAgIHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQgPSB0aGlzLm9yaWdOdW1PZkNvbHVtbnM7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMub3JpZ0xpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGkgPCB0aGlzLmNvbHVtbnMubnVtT2ZDb2x1bW5zSW5HcmlkKVxyXG4gICAgICAgIHRoaXMuY3Vyckxpc3QucHVzaCh0aGlzLm9yaWdMaXN0W2ldKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGFkZENvbChjOiBEYXRhQ29udHJvbFNldHRpbmdzPGFueT4pIHtcclxuICAgIHRoaXMuY29sdW1ucy5hZGRDb2woYyk7XHJcbiAgICB0aGlzLmFkanVzdENvbHVtbnMoKTtcclxuICB9XHJcbiAgZGVsZXRlQ29sKGM6IERhdGFDb250cm9sU2V0dGluZ3M8YW55Pikge1xyXG4gICAgdGhpcy5jb2x1bW5zLmRlbGV0ZUNvbChjKVxyXG4gICAgdGhpcy5hZGp1c3RDb2x1bW5zKCk7XHJcbiAgfVxyXG4gIGFkanVzdENvbHVtbnMoKSB7XHJcbiAgICB0aGlzLmNvbHVtbnMubnVtT2ZDb2x1bW5zSW5HcmlkID0gdGhpcy5jb2x1bW5zLml0ZW1zLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0R2V0T3B0aW9ucyhnZXQ6IEZpbmRPcHRpb25zPHJvd1R5cGU+KSB7XHJcbiAgICB0aGlzLmdldE9wdGlvbnMgPSBnZXQ7XHJcbiAgICBpZiAoZ2V0ICYmIGdldC5saW1pdClcclxuICAgICAgdGhpcy5yb3dzUGVyUGFnZSA9IGdldC5saW1pdDtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5yb3dzUGVyUGFnZSA9IDc7XHJcbiAgICBpZiAodGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMuaW5kZXhPZih0aGlzLnJvd3NQZXJQYWdlKSA8IDApIHtcclxuICAgICAgdGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMucHVzaCh0aGlzLnJvd3NQZXJQYWdlKTtcclxuICAgICAgdGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMuc29ydCgoYSwgYikgPT4gK2EgLSArYik7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9jdXJyZW50T3JkZXJCeSA9IHVuZGVmaW5lZDtcclxuICAgIGlmICh0aGlzLmdldE9wdGlvbnMgJiYgdGhpcy5nZXRPcHRpb25zLm9yZGVyQnkpXHJcbiAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5ID0gZW50aXR5T3JkZXJCeVRvU29ydCh0aGlzLmVudGl0eVByb3ZpZGVyLmNyZWF0ZSgpLCB0aGlzLmdldE9wdGlvbnMub3JkZXJCeSk7XHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBhZGROZXdSb3coKSB7XHJcbiAgICBsZXQgcjogYW55ID0gdGhpcy5yZXN0TGlzdC5hZGQoKTtcclxuICAgIGlmICh0aGlzLm9uTmV3Um93KVxyXG4gICAgICB0aGlzLm9uTmV3Um93KHIpO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50Um93KHIpO1xyXG4gIH1cclxuXHJcbiAgbm9hbTogc3RyaW5nO1xyXG5cclxuICBhZGRBcmVhKHNldHRpbmdzOiBJRGF0YUFyZWFTZXR0aW5nczxyb3dUeXBlPikge1xyXG4gICAgbGV0IGNvbCA9IG5ldyBDb2x1bW5Db2xsZWN0aW9uPHJvd1R5cGU+KCgpID0+IHRoaXMuY3VycmVudFJvdywgKCkgPT4gdGhpcy5hbGxvd1VwZGF0ZSwgdGhpcy5maWx0ZXJIZWxwZXIsICgpID0+IHRoaXMuY3VycmVudFJvdyA/IHRydWUgOiBmYWxzZSk7XHJcbiAgICBjb2wubnVtT2ZDb2x1bW5zSW5HcmlkID0gMDtcclxuXHJcbiAgICByZXR1cm4gbmV3IERhdGFBcmVhU2V0dGluZ3M8cm93VHlwZT4oc2V0dGluZ3MsIGNvbCwgdGhpcy5lbnRpdHlQcm92aWRlci5jcmVhdGUoKSk7XHJcbiAgfVxyXG4gIGN1cnJlbnRSb3c6IHJvd1R5cGU7XHJcbiAgc2V0Q3VycmVudFJvdyhyb3c6IHJvd1R5cGUpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRSb3cgIT0gcm93KSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFJvdyA9IHJvdztcclxuICAgICAgaWYgKHRoaXMub25FbnRlclJvdyAmJiByb3cpIHtcclxuXHJcbiAgICAgICAgdGhpcy5vbkVudGVyUm93KHJvdyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIG5leHRSb3coKSB7XHJcbiAgICBpZiAoIXRoaXMuY3VycmVudFJvdyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDApXHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLml0ZW1zWzBdKTtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRSb3cpIHtcclxuICAgICAgbGV0IGN1cnJlbnRSb3dQb3NpdGlvbiA9IHRoaXMuaXRlbXMuaW5kZXhPZih0aGlzLmN1cnJlbnRSb3cpO1xyXG4gICAgICBpZiAoY3VycmVudFJvd1Bvc2l0aW9uIDwgdGhpcy5pdGVtcy5sZW5ndGggLSAxKVxyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLml0ZW1zW2N1cnJlbnRSb3dQb3NpdGlvbiArIDFdKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMubmV4dFBhZ2UoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLml0ZW1zLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLml0ZW1zWzBdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJldmlvdXNSb3dBbGxvd2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFJvdyAmJiB0aGlzLml0ZW1zLmluZGV4T2YodGhpcy5jdXJyZW50Um93KSA+IDAgfHwgdGhpcy5wYWdlID4gMTtcclxuICB9XHJcbiAgcHJldmlvdXNSb3coKSB7XHJcbiAgICBpZiAoIXRoaXMucHJldmlvdXNSb3dBbGxvd2VkKCkpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBsZXQgY3VycmVudFJvd1Bvc2l0aW9uID0gdGhpcy5pdGVtcy5pbmRleE9mKHRoaXMuY3VycmVudFJvdyk7XHJcbiAgICBpZiAoY3VycmVudFJvd1Bvc2l0aW9uID4gMClcclxuICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbY3VycmVudFJvd1Bvc2l0aW9uIC0gMV0pO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnBhZ2UgPiAxKVxyXG4gICAgICAgIHRoaXMucHJldmlvdXNQYWdlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5pdGVtc1t0aGlzLml0ZW1zLmxlbmd0aCAtIDFdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGRlbGV0ZUN1cmVudFJvdygpIHtcclxuICAgIGlmICghdGhpcy5kZWxldGVDdXJyZW50Um93QWxsb3dlZClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5kZWxldGUoKTtcclxuICB9XHJcbiAgY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkge1xyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRSb3cpXHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50Um93O1xyXG4gIH1cclxuICBjYW5jZWxDdXJyZW50Um93Q2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpICYmIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkpXHJcbiAgICAgIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkudW5kb0NoYW5nZXMoKTtcclxuICB9XHJcbiAgZGVsZXRlQ3VycmVudFJvd0FsbG93ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSAmJiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLmRlbGV0ZSAmJiB0aGlzLmFsbG93RGVsZXRlICYmICFpc05ld1Jvdyh0aGlzLmN1cnJlbnRSb3cpO1xyXG4gIH1cclxuICBjdXJyZW50Um93Q2hhbmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpICYmICB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLndhc0NoYW5nZWQoKTtcclxuICB9XHJcbiAgc2F2ZUN1cnJlbnRSb3coKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSAmJiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLnNhdmUpXHJcbiAgICAgIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkuc2F2ZSgpO1xyXG4gIH1cclxuXHJcbiAgYWxsb3dVcGRhdGUgPSBmYWxzZTtcclxuICBhbGxvd0luc2VydCA9IGZhbHNlO1xyXG4gIGFsbG93RGVsZXRlID0gZmFsc2U7XHJcbiAgaGlkZURhdGFBcmVhID0gZmFsc2U7XHJcblxyXG5cclxuICBfYnV0dG9uczogUm93QnV0dG9uPEVudGl0eTxhbnk+PltdID0gW107XHJcblxyXG4gIHJvd0NsYXNzPzogKHJvdzogYW55KSA9PiBzdHJpbmc7XHJcbiAgb25TYXZpbmdSb3c/OiAocm93OiBhbnkpID0+IFByb21pc2U8YW55PiB8IGFueTtcclxuICBvblZhbGlkYXRlPzogKHJvdzogcm93VHlwZSkgPT4gUHJvbWlzZTxhbnk+IHwgYW55O1xyXG4gIG9uRW50ZXJSb3c6IChyb3c6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgb25OZXdSb3c6IChyb3c6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgX2RvU2F2aW5nUm93KHM6IHJvd1R5cGUpIHtcclxuICAgIHJldHVybiBzLnNhdmUoYXN5bmMgKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5vblZhbGlkYXRlKVxyXG4gICAgICAgIGF3YWl0IHRoaXMub25WYWxpZGF0ZShzKTtcclxuICAgICAgaWYgKHRoaXMub25TYXZpbmdSb3cpXHJcbiAgICAgICAgYXdhaXQgdGhpcy5vblNhdmluZ1JvdyhzKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgY2FwdGlvbjogc3RyaW5nO1xyXG5cclxuICBmaWx0ZXJIZWxwZXIgPSBuZXcgRmlsdGVySGVscGVyPHJvd1R5cGU+KCgpID0+IHtcclxuICAgIHRoaXMucGFnZSA9IDE7XHJcbiAgICB0aGlzLmdldFJlY29yZHMoKTtcclxuICB9KTtcclxuXHJcbiAgY29sdW1uczogQ29sdW1uQ29sbGVjdGlvbjxyb3dUeXBlPjtcclxuXHJcblxyXG5cclxuXHJcbiAgcGFnZSA9IDE7XHJcbiAgbmV4dFBhZ2UoKSB7XHJcbiAgICB0aGlzLnBhZ2UrKztcclxuICAgIHJldHVybiB0aGlzLmdldFJlY29yZHMoKTtcclxuICB9XHJcbiAgcHJldmlvdXNQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMucGFnZSA8PSAxKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLnBhZ2UtLTtcclxuICAgIHJldHVybiB0aGlzLmdldFJlY29yZHMoKTtcclxuICB9XHJcbiAgZmlyc3RQYWdlKCkge1xyXG4gICAgdGhpcy5wYWdlID0gMTtcclxuICAgIHJldHVybiB0aGlzLmdldFJlY29yZHMoKTtcclxuICB9XHJcbiAgcm93c1BlclBhZ2U6IG51bWJlcjtcclxuICByb3dzUGVyUGFnZU9wdGlvbnMgPSBbMTAsIDI1LCA1MCwgMTAwLCA1MDAsIDEwMDBdO1xyXG4gIGdldChvcHRpb25zOiBGaW5kT3B0aW9uczxyb3dUeXBlPikge1xyXG5cclxuICAgIHRoaXMuc2V0R2V0T3B0aW9ucyhvcHRpb25zKTtcclxuICAgIHRoaXMucGFnZSA9IDE7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRzKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgX2N1cnJlbnRPcmRlckJ5OiBTb3J0O1xyXG4gIHNvcnQoY29sdW1uOiBDb2x1bW48YW55Pikge1xyXG5cclxuICAgIGxldCBkb25lID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5fY3VycmVudE9yZGVyQnkgJiYgdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAodGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHNbMF0uY29sdW1uID09IGNvbHVtbikge1xyXG4gICAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmRlc2NlbmRpbmcgPSAhdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHNbMF0uZGVzY2VuZGluZztcclxuICAgICAgICBkb25lID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBpZiAoIWRvbmUpXHJcbiAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5ID0gbmV3IFNvcnQoeyBjb2x1bW46IGNvbHVtbiB9KTtcclxuICAgIHRoaXMuZ2V0UmVjb3JkcygpO1xyXG4gIH1cclxuICBzb3J0ZWRBc2NlbmRpbmcoY29sdW1uOiBDb2x1bW48YW55Pikge1xyXG4gICAgaWYgKCF0aGlzLl9jdXJyZW50T3JkZXJCeSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKCFjb2x1bW4pXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50cy5sZW5ndGggPiAwICYmXHJcbiAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmNvbHVtbiA9PSBjb2x1bW4gJiZcclxuICAgICAgIXRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmRlc2NlbmRpbmc7XHJcbiAgfVxyXG4gIHNvcnRlZERlc2NlbmRpbmcoY29sdW1uOiBDb2x1bW48YW55Pikge1xyXG4gICAgaWYgKCF0aGlzLl9jdXJyZW50T3JkZXJCeSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKCFjb2x1bW4pXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50cy5sZW5ndGggPiAwICYmXHJcbiAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmNvbHVtbiA9PSBjb2x1bW4gJiZcclxuICAgICAgISF0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5kZXNjZW5kaW5nO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBwcml2YXRlIGdldE9wdGlvbnM6IEZpbmRPcHRpb25zPHJvd1R5cGU+O1xyXG5cclxuICB0b3RhbFJvd3M6IG51bWJlcjtcclxuXHJcbiAgZ2V0UmVjb3JkcygpIHtcclxuXHJcbiAgICBsZXQgb3B0OiBGaW5kT3B0aW9uczxyb3dUeXBlPiA9IHt9O1xyXG4gICAgaWYgKHRoaXMuZ2V0T3B0aW9ucykge1xyXG4gICAgICBvcHQgPSBPYmplY3QuYXNzaWduKG9wdCwgdGhpcy5nZXRPcHRpb25zKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9jdXJyZW50T3JkZXJCeSlcclxuICAgICAgb3B0Lm9yZGVyQnkgPSByID0+IHRoaXMuX2N1cnJlbnRPcmRlckJ5O1xyXG5cclxuICAgIG9wdC5saW1pdCA9IHRoaXMucm93c1BlclBhZ2U7XHJcbiAgICBpZiAodGhpcy5wYWdlID4gMSlcclxuICAgICAgb3B0LnBhZ2UgPSB0aGlzLnBhZ2U7XHJcbiAgICB0aGlzLmZpbHRlckhlbHBlci5hZGRUb0ZpbmRPcHRpb25zKG9wdCk7XHJcblxyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMucmVzdExpc3QuZ2V0KG9wdCkudGhlbigoKSA9PiB7XHJcblxyXG5cclxuICAgICAgaWYgKHRoaXMucmVzdExpc3QuaXRlbXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0aGlzLnNldEN1cnJlbnRSb3codW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLmNvbHVtbnMuYXV0b0dlbmVyYXRlQ29sdW1uc0Jhc2VkT25EYXRhKHRoaXMuZW50aXR5UHJvdmlkZXIuY3JlYXRlKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMucmVzdExpc3QuaXRlbXNbMF0pO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucy5hdXRvR2VuZXJhdGVDb2x1bW5zQmFzZWRPbkRhdGEodGhpcy5lbnRpdHlQcm92aWRlci5jcmVhdGUoKSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMucmVzdExpc3Q7XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzICYmIHRoaXMuc2V0dGluZ3Mua25vd1RvdGFsUm93cykge1xyXG4gICAgICB0aGlzLnJlc3RMaXN0LmNvdW50KG9wdC53aGVyZSkudGhlbih4ID0+IHtcclxuICAgICAgICB0aGlzLnRvdGFsUm93cyA9IHg7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9O1xyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgcmVzdExpc3Q6IERhdGFMaXN0PHJvd1R5cGU+O1xyXG4gIGdldCBpdGVtcygpOiByb3dUeXBlW10ge1xyXG4gICAgaWYgKHRoaXMucmVzdExpc3QpXHJcbiAgICAgIHJldHVybiB0aGlzLnJlc3RMaXN0Lml0ZW1zO1xyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIElEYXRhU2V0dGluZ3M8cm93VHlwZSBleHRlbmRzIEVudGl0eTxhbnk+PiB7XHJcbiAgYWxsb3dVcGRhdGU/OiBib29sZWFuLFxyXG4gIGFsbG93SW5zZXJ0PzogYm9vbGVhbixcclxuICBhbGxvd0RlbGV0ZT86IGJvb2xlYW4sXHJcbiAgaGlkZURhdGFBcmVhPzogYm9vbGVhbixcclxuICBjb25maXJtRGVsZXRlPzogKHI6IHJvd1R5cGUsIHllczogKCkgPT4gdm9pZCkgPT4gdm9pZDtcclxuXHJcbiAgY29sdW1uU2V0dGluZ3M/OiAocm93OiByb3dUeXBlKSA9PiBEYXRhQ29udHJvbEluZm88cm93VHlwZT5bXSxcclxuICBhcmVhcz86IHsgW2FyZWFLZXk6IHN0cmluZ106IERhdGFDb250cm9sSW5mbzxyb3dUeXBlPltdIH0sXHJcblxyXG4gIHJvd0Nzc0NsYXNzPzogKHJvdzogcm93VHlwZSkgPT4gc3RyaW5nO1xyXG4gIHJvd0J1dHRvbnM/OiBSb3dCdXR0b248cm93VHlwZT5bXSxcclxuICBnZXQ/OiBGaW5kT3B0aW9uczxyb3dUeXBlPixcclxuICBrbm93VG90YWxSb3dzPzogYm9vbGVhbixcclxuICBvblNhdmluZ1Jvdz86IChyOiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIG9uVmFsaWRhdGU/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICBvbkVudGVyUm93PzogKHI6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgb25OZXdSb3c/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICBudW1PZkNvbHVtbnNJbkdyaWQ/OiBudW1iZXI7XHJcbiAgY2FwdGlvbj86IHN0cmluZztcclxuXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSb3dCdXR0b248cm93VHlwZSBleHRlbmRzIEVudGl0eTxhbnk+PiB7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICB2aXNpYmxlPzogKHI6IHJvd1R5cGUpID0+IGJvb2xlYW47XHJcbiAgY2xpY2s/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGNzc0NsYXNzPzogKHN0cmluZyB8ICgocm93OiByb3dUeXBlKSA9PiBzdHJpbmcpKTtcclxuXHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBpc05ld1JvdyhyOiBFbnRpdHk8YW55Pikge1xyXG4gIGlmIChyKSB7XHJcbiAgICByLl9fZW50aXR5RGF0YS5pc05ld1JvdygpO1xyXG4gIH1cclxuICByZXR1cm4gZmFsc2U7XHJcbn0iXX0=

@@ -331,3 +331,3 @@ /**

return undefined;
return (/** @type {?} */ (this.currentRow));
return this.currentRow;
};

@@ -341,4 +341,4 @@ /**

function () {
if (this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow().reset)
this.currentRowAsRestListItemRow().reset();
if (this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow())
this.currentRowAsRestListItemRow().undoChanges();
};

@@ -361,3 +361,3 @@ /**

function () {
return this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow().__wasChanged && this.currentRowAsRestListItemRow().__wasChanged();
return this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow().wasChanged();
};

@@ -711,2 +711,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0ByZW11bHQvY29yZS8iLCJzb3VyY2VzIjpbInNyYy9ncmlkLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBR3JGOzs7O0lBQ0Usc0JBQW9CLGNBQXVDLEVBQUUsT0FBZ0IsRUFBUyxRQUFpQzs7UUFBdkgsaUJBcURDO1FBckRtQixtQkFBYyxHQUFkLGNBQWMsQ0FBeUI7UUFBMkIsYUFBUSxHQUFSLFFBQVEsQ0FBeUI7UUEwRHZILHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQWlKekIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsYUFBUSxHQUE2QixFQUFFLENBQUM7UUFrQnhDLGlCQUFZLEdBQUcsSUFBSSxZQUFZOzs7UUFBVTtZQUN2QyxLQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNkLEtBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUMsQ0FBQztRQU9ILFNBQUksR0FBRyxDQUFDLENBQUM7UUFnQlQsdUJBQWtCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxF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LE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eSB9IGZyb20gXCIuL2VudGl0eVwiO1xyXG5cclxuXHJcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gXCIuL2NvbHVtblwiO1xyXG5pbXBvcnQgeyBEYXRhQ29udHJvbFNldHRpbmdzLCBEYXRhQ29udHJvbEluZm8gfSBmcm9tIFwiLi9jb2x1bW4taW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dFwiO1xyXG5cclxuaW1wb3J0IHsgRGF0YUxpc3QgfSBmcm9tIFwiLi9kYXRhTGlzdFwiO1xyXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSBcIi4vc29ydFwiO1xyXG5pbXBvcnQgeyBDb2x1bW5Db2xsZWN0aW9uIH0gZnJvbSBcIi4vY29sdW1uLWNvbGxlY3Rpb25cIjtcclxuaW1wb3J0IHsgSURhdGFBcmVhU2V0dGluZ3MsIERhdGFBcmVhU2V0dGluZ3MgfSBmcm9tIFwiLi9kYXRhLWFyZWEtc2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgRmlsdGVySGVscGVyIH0gZnJvbSBcIi4vZmlsdGVyL2ZpbHRlci1oZWxwZXJcIjtcclxuaW1wb3J0IHsgRW50aXR5UHJvdmlkZXIsIEZpbmRPcHRpb25zLCBlbnRpdHlPcmRlckJ5VG9Tb3J0IH0gZnJvbSAnLi9kYXRhLWludGVyZmFjZXMnO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBHcmlkU2V0dGluZ3M8cm93VHlwZSBleHRlbmRzIEVudGl0eTxhbnk+PiAge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZW50aXR5UHJvdmlkZXI6IEVudGl0eVByb3ZpZGVyPHJvd1R5cGU+LCBjb250ZXh0OiBDb250ZXh0LCBwdWJsaWMgc2V0dGluZ3M/OiBJRGF0YVNldHRpbmdzPHJvd1R5cGU+KSB7XHJcbiAgICB0aGlzLnJlc3RMaXN0ID0gbmV3IERhdGFMaXN0PHJvd1R5cGU+KGVudGl0eVByb3ZpZGVyKTtcclxuICAgIGlmIChlbnRpdHlQcm92aWRlcikge1xyXG4gICAgICB0aGlzLmZpbHRlckhlbHBlci5maWx0ZXJSb3cgPSA8cm93VHlwZT5lbnRpdHlQcm92aWRlci5jcmVhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbHVtbnMgPSBuZXcgQ29sdW1uQ29sbGVjdGlvbjxyb3dUeXBlPigoKSA9PiB0aGlzLmN1cnJlbnRSb3csICgpID0+IHRoaXMuYWxsb3dVcGRhdGUsIHRoaXMuZmlsdGVySGVscGVyLCAoKSA9PiB0aGlzLmN1cnJlbnRSb3cgPyB0cnVlIDogZmFsc2UsIGNvbnRleHQpXHJcblxyXG4gICAgdGhpcy5yZXN0TGlzdC5fcm93UmVwbGFjZWRMaXN0ZW5lcnMucHVzaCgob2xkLCBjdXJyKSA9PiB7XHJcbiAgICAgIGlmIChvbGQgPT0gdGhpcy5jdXJyZW50Um93KVxyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyhjdXJyKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChzZXR0aW5ncykge1xyXG5cclxuICAgICAgaWYgKHNldHRpbmdzLmNvbHVtblNldHRpbmdzKVxyXG4gICAgICAgIHRoaXMuY29sdW1ucy5hZGQoLi4uc2V0dGluZ3MuY29sdW1uU2V0dGluZ3MoZW50aXR5UHJvdmlkZXIuY3JlYXRlKCkpKTtcclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5hbGxvd1VwZGF0ZSlcclxuICAgICAgICB0aGlzLmFsbG93VXBkYXRlID0gdHJ1ZTtcclxuICAgICAgaWYgKHNldHRpbmdzLmFsbG93RGVsZXRlKVxyXG4gICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSB0cnVlO1xyXG4gICAgICBpZiAoc2V0dGluZ3MuYWxsb3dJbnNlcnQpXHJcbiAgICAgICAgdGhpcy5hbGxvd0luc2VydCA9IHRydWU7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5oaWRlRGF0YUFyZWEpXHJcbiAgICAgICAgdGhpcy5oaWRlRGF0YUFyZWEgPSBzZXR0aW5ncy5oaWRlRGF0YUFyZWE7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5udW1PZkNvbHVtbnNJbkdyaWQgIT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQgPSBzZXR0aW5ncy5udW1PZkNvbHVtbnNJbkdyaWQ7XHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3Mucm93QnV0dG9ucylcclxuICAgICAgICB0aGlzLl9idXR0b25zID0gc2V0dGluZ3Mucm93QnV0dG9ucztcclxuXHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3Mucm93Q3NzQ2xhc3MpXHJcbiAgICAgICAgdGhpcy5yb3dDbGFzcyA9IHNldHRpbmdzLnJvd0Nzc0NsYXNzO1xyXG4gICAgICBpZiAoc2V0dGluZ3Mub25TYXZpbmdSb3cpXHJcbiAgICAgICAgdGhpcy5vblNhdmluZ1JvdyA9IHNldHRpbmdzLm9uU2F2aW5nUm93O1xyXG4gICAgICBpZiAoc2V0dGluZ3Mub25FbnRlclJvdylcclxuICAgICAgICB0aGlzLm9uRW50ZXJSb3cgPSBzZXR0aW5ncy5vbkVudGVyUm93O1xyXG4gICAgICBpZiAoc2V0dGluZ3Mub25OZXdSb3cpXHJcbiAgICAgICAgdGhpcy5vbk5ld1JvdyA9IHNldHRpbmdzLm9uTmV3Um93O1xyXG4gICAgICBpZiAoc2V0dGluZ3Mub25WYWxpZGF0ZSlcclxuICAgICAgICB0aGlzLm9uVmFsaWRhdGUgPSBzZXR0aW5ncy5vblZhbGlkYXRlO1xyXG4gICAgICBpZiAoc2V0dGluZ3MuY2FwdGlvbilcclxuICAgICAgICB0aGlzLmNhcHRpb24gPSBzZXR0aW5ncy5jYXB0aW9uO1xyXG4gICAgICBpZiAoIXRoaXMuY2FwdGlvbiAmJiBlbnRpdHlQcm92aWRlcikge1xyXG4gICAgICAgIHRoaXMuY2FwdGlvbiA9IGVudGl0eVByb3ZpZGVyLmNyZWF0ZSgpLmRlZnMuY2FwdGlvbjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldEdldE9wdGlvbnMoc2V0dGluZ3MuZ2V0KTtcclxuXHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG4gIGN1cnJMaXN0OiBEYXRhQ29udHJvbFNldHRpbmdzPGFueT5bXTtcclxuICBvcmlnTGlzdDogRGF0YUNvbnRyb2xTZXR0aW5nczxhbnk+W107XHJcbiAgb3JpZ051bU9mQ29sdW1uczogbnVtYmVyO1xyXG4gIHNob3dTZWxlY3RDb2x1bW4gPSBmYWxzZTtcclxuXHJcbiAgaW5pdE9yaWdMaXN0KCkge1xyXG4gICAgaWYgKCF0aGlzLm9yaWdMaXN0KSB7XHJcbiAgICAgIHRoaXMub3JpZ0xpc3QgPSBbXTtcclxuICAgICAgdGhpcy5vcmlnTnVtT2ZDb2x1bW5zID0gdGhpcy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZDtcclxuICAgICAgdGhpcy5vcmlnTGlzdC5wdXNoKC4uLnRoaXMuY29sdW1ucy5pdGVtcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVzZXJDaG9vc2VDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5pbml0T3JpZ0xpc3QoKTtcclxuICAgIGlmICghdGhpcy5jdXJyTGlzdCkge1xyXG5cclxuICAgICAgdGhpcy5yZXNldENvbHVtbnMoKTtcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dTZWxlY3RDb2x1bW4gPSAhdGhpcy5zaG93U2VsZWN0Q29sdW1uO1xyXG4gIH1cclxuICByZXNldENvbHVtbnMoKSB7XHJcbiAgICB0aGlzLmN1cnJMaXN0ID0gW107XHJcbiAgICB0aGlzLmNvbHVtbnMuaXRlbXMgPSB0aGlzLmN1cnJMaXN0O1xyXG4gICAgdGhpcy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZCA9IHRoaXMub3JpZ051bU9mQ29sdW1ucztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5vcmlnTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSA8IHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQpXHJcbiAgICAgICAgdGhpcy5jdXJyTGlzdC5wdXNoKHRoaXMub3JpZ0xpc3RbaV0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgYWRkQ29sKGM6IERhdGFDb250cm9sU2V0dGluZ3M8YW55Pikge1xyXG4gICAgdGhpcy5jb2x1bW5zLmFkZENvbChjKTtcclxuICAgIHRoaXMuYWRqdXN0Q29sdW1ucygpO1xyXG4gIH1cclxuICBkZWxldGVDb2woYzogRGF0YUNvbnRyb2xTZXR0aW5nczxhbnk+KSB7XHJcbiAgICB0aGlzLmNvbHVtbnMuZGVsZXRlQ29sKGMpXHJcbiAgICB0aGlzLmFkanVzdENvbHVtbnMoKTtcclxuICB9XHJcbiAgYWRqdXN0Q29sdW1ucygpIHtcclxuICAgIHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQgPSB0aGlzLmNvbHVtbnMuaXRlbXMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRHZXRPcHRpb25zKGdldDogRmluZE9wdGlvbnM8cm93VHlwZT4pIHtcclxuICAgIHRoaXMuZ2V0T3B0aW9ucyA9IGdldDtcclxuICAgIGlmIChnZXQgJiYgZ2V0LmxpbWl0KVxyXG4gICAgICB0aGlzLnJvd3NQZXJQYWdlID0gZ2V0LmxpbWl0O1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLnJvd3NQZXJQYWdlID0gNztcclxuICAgIGlmICh0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucy5pbmRleE9mKHRoaXMucm93c1BlclBhZ2UpIDwgMCkge1xyXG4gICAgICB0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucy5wdXNoKHRoaXMucm93c1BlclBhZ2UpO1xyXG4gICAgICB0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucy5zb3J0KChhLCBiKSA9PiArYSAtICtiKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5ID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKHRoaXMuZ2V0T3B0aW9ucyAmJiB0aGlzLmdldE9wdGlvbnMub3JkZXJCeSlcclxuICAgICAgdGhpcy5fY3VycmVudE9yZGVyQnkgPSBlbnRpdHlPcmRlckJ5VG9Tb3J0KHRoaXMuZW50aXR5UHJvdmlkZXIuY3JlYXRlKCksIHRoaXMuZ2V0T3B0aW9ucy5vcmRlckJ5KTtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIGFkZE5ld1JvdygpIHtcclxuICAgIGxldCByOiBhbnkgPSB0aGlzLnJlc3RMaXN0LmFkZCgpO1xyXG4gICAgaWYgKHRoaXMub25OZXdSb3cpXHJcbiAgICAgIHRoaXMub25OZXdSb3cocik7XHJcbiAgICB0aGlzLnNldEN1cnJlbnRSb3cocik7XHJcbiAgfVxyXG5cclxuICBub2FtOiBzdHJpbmc7XHJcblxyXG4gIGFkZEFyZWEoc2V0dGluZ3M6IElEYXRhQXJlYVNldHRpbmdzPHJvd1R5cGU+KSB7XHJcbiAgICBsZXQgY29sID0gbmV3IENvbHVtbkNvbGxlY3Rpb248cm93VHlwZT4oKCkgPT4gdGhpcy5jdXJyZW50Um93LCAoKSA9PiB0aGlzLmFsbG93VXBkYXRlLCB0aGlzLmZpbHRlckhlbHBlciwgKCkgPT4gdGhpcy5jdXJyZW50Um93ID8gdHJ1ZSA6IGZhbHNlKTtcclxuICAgIGNvbC5udW1PZkNvbHVtbnNJbkdyaWQgPSAwO1xyXG5cclxuICAgIHJldHVybiBuZXcgRGF0YUFyZWFTZXR0aW5nczxyb3dUeXBlPihzZXR0aW5ncywgY29sLCB0aGlzLmVudGl0eVByb3ZpZGVyLmNyZWF0ZSgpKTtcclxuICB9XHJcbiAgY3VycmVudFJvdzogcm93VHlwZTtcclxuICBzZXRDdXJyZW50Um93KHJvdzogcm93VHlwZSkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFJvdyAhPSByb3cpIHtcclxuICAgICAgdGhpcy5jdXJyZW50Um93ID0gcm93O1xyXG4gICAgICBpZiAodGhpcy5vbkVudGVyUm93ICYmIHJvdykge1xyXG5cclxuICAgICAgICB0aGlzLm9uRW50ZXJSb3cocm93KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgbmV4dFJvdygpIHtcclxuICAgIGlmICghdGhpcy5jdXJyZW50Um93ICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMClcclxuICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbMF0pO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFJvdykge1xyXG4gICAgICBsZXQgY3VycmVudFJvd1Bvc2l0aW9uID0gdGhpcy5pdGVtcy5pbmRleE9mKHRoaXMuY3VycmVudFJvdyk7XHJcbiAgICAgIGlmIChjdXJyZW50Um93UG9zaXRpb24gPCB0aGlzLml0ZW1zLmxlbmd0aCAtIDEpXHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbY3VycmVudFJvd1Bvc2l0aW9uICsgMV0pO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5uZXh0UGFnZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbMF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcmV2aW91c1Jvd0FsbG93ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50Um93ICYmIHRoaXMuaXRlbXMuaW5kZXhPZih0aGlzLmN1cnJlbnRSb3cpID4gMCB8fCB0aGlzLnBhZ2UgPiAxO1xyXG4gIH1cclxuICBwcmV2aW91c1JvdygpIHtcclxuICAgIGlmICghdGhpcy5wcmV2aW91c1Jvd0FsbG93ZWQoKSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGxldCBjdXJyZW50Um93UG9zaXRpb24gPSB0aGlzLml0ZW1zLmluZGV4T2YodGhpcy5jdXJyZW50Um93KTtcclxuICAgIGlmIChjdXJyZW50Um93UG9zaXRpb24gPiAwKVxyXG4gICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5pdGVtc1tjdXJyZW50Um93UG9zaXRpb24gLSAxXSk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMucGFnZSA+IDEpXHJcbiAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2UoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLml0ZW1zLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMV0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgZGVsZXRlQ3VyZW50Um93KCkge1xyXG4gICAgaWYgKCF0aGlzLmRlbGV0ZUN1cnJlbnRSb3dBbGxvd2VkKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLmRlbGV0ZSgpO1xyXG4gIH1cclxuICBjdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSB7XHJcbiAgICBpZiAoIXRoaXMuY3VycmVudFJvdylcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIHJldHVybiA8YW55PnRoaXMuY3VycmVudFJvdztcclxuICB9XHJcbiAgY2FuY2VsQ3VycmVudFJvd0NoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSAmJiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLnJlc2V0KVxyXG4gICAgICB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLnJlc2V0KCk7XHJcbiAgfVxyXG4gIGRlbGV0ZUN1cnJlbnRSb3dBbGxvd2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkgJiYgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5kZWxldGUgJiYgdGhpcy5hbGxvd0RlbGV0ZSAmJiAhaXNOZXdSb3codGhpcy5jdXJyZW50Um93KTtcclxuICB9XHJcbiAgY3VycmVudFJvd0NoYW5nZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSAmJiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLl9fd2FzQ2hhbmdlZCAmJiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLl9fd2FzQ2hhbmdlZCgpO1xyXG4gIH1cclxuICBzYXZlQ3VycmVudFJvdygpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpICYmIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkuc2F2ZSlcclxuICAgICAgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5zYXZlKCk7XHJcbiAgfVxyXG5cclxuICBhbGxvd1VwZGF0ZSA9IGZhbHNlO1xyXG4gIGFsbG93SW5zZXJ0ID0gZmFsc2U7XHJcbiAgYWxsb3dEZWxldGUgPSBmYWxzZTtcclxuICBoaWRlRGF0YUFyZWEgPSBmYWxzZTtcclxuXHJcblxyXG4gIF9idXR0b25zOiBSb3dCdXR0b248RW50aXR5PGFueT4+W10gPSBbXTtcclxuXHJcbiAgcm93Q2xhc3M/OiAocm93OiBhbnkpID0+IHN0cmluZztcclxuICBvblNhdmluZ1Jvdz86IChyb3c6IGFueSkgPT4gUHJvbWlzZTxhbnk+IHwgYW55O1xyXG4gIG9uVmFsaWRhdGU/OiAocm93OiByb3dUeXBlKSA9PiBQcm9taXNlPGFueT4gfCBhbnk7XHJcbiAgb25FbnRlclJvdzogKHJvdzogcm93VHlwZSkgPT4gdm9pZDtcclxuICBvbk5ld1JvdzogKHJvdzogcm93VHlwZSkgPT4gdm9pZDtcclxuICBfZG9TYXZpbmdSb3coczogcm93VHlwZSkge1xyXG4gICAgcmV0dXJuIHMuc2F2ZShhc3luYyAoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm9uVmFsaWRhdGUpXHJcbiAgICAgICAgYXdhaXQgdGhpcy5vblZhbGlkYXRlKHMpO1xyXG4gICAgICBpZiAodGhpcy5vblNhdmluZ1JvdylcclxuICAgICAgICBhd2FpdCB0aGlzLm9uU2F2aW5nUm93KHMpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICBjYXB0aW9uOiBzdHJpbmc7XHJcblxyXG4gIGZpbHRlckhlbHBlciA9IG5ldyBGaWx0ZXJIZWxwZXI8cm93VHlwZT4oKCkgPT4ge1xyXG4gICAgdGhpcy5wYWdlID0gMTtcclxuICAgIHRoaXMuZ2V0UmVjb3JkcygpO1xyXG4gIH0pO1xyXG5cclxuICBjb2x1bW5zOiBDb2x1bW5Db2xsZWN0aW9uPHJvd1R5cGU+O1xyXG5cclxuXHJcblxyXG5cclxuICBwYWdlID0gMTtcclxuICBuZXh0UGFnZSgpIHtcclxuICAgIHRoaXMucGFnZSsrO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3JkcygpO1xyXG4gIH1cclxuICBwcmV2aW91c1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5wYWdlIDw9IDEpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMucGFnZS0tO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3JkcygpO1xyXG4gIH1cclxuICBmaXJzdFBhZ2UoKSB7XHJcbiAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3JkcygpO1xyXG4gIH1cclxuICByb3dzUGVyUGFnZTogbnVtYmVyO1xyXG4gIHJvd3NQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjUsIDUwLCAxMDAsIDUwMCwgMTAwMF07XHJcbiAgZ2V0KG9wdGlvbnM6IEZpbmRPcHRpb25zPHJvd1R5cGU+KSB7XHJcblxyXG4gICAgdGhpcy5zZXRHZXRPcHRpb25zKG9wdGlvbnMpO1xyXG4gICAgdGhpcy5wYWdlID0gMTtcclxuICAgIHJldHVybiB0aGlzLmdldFJlY29yZHMoKTtcclxuXHJcbiAgfVxyXG5cclxuICBfY3VycmVudE9yZGVyQnk6IFNvcnQ7XHJcbiAgc29ydChjb2x1bW46IENvbHVtbjxhbnk+KSB7XHJcblxyXG4gICAgbGV0IGRvbmUgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLl9jdXJyZW50T3JkZXJCeSAmJiB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5jb2x1bW4gPT0gY29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHNbMF0uZGVzY2VuZGluZyA9ICF0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5kZXNjZW5kaW5nO1xyXG4gICAgICAgIGRvbmUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGlmICghZG9uZSlcclxuICAgICAgdGhpcy5fY3VycmVudE9yZGVyQnkgPSBuZXcgU29ydCh7IGNvbHVtbjogY29sdW1uIH0pO1xyXG4gICAgdGhpcy5nZXRSZWNvcmRzKCk7XHJcbiAgfVxyXG4gIHNvcnRlZEFzY2VuZGluZyhjb2x1bW46IENvbHVtbjxhbnk+KSB7XHJcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRPcmRlckJ5KVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAoIWNvbHVtbilcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHNbMF0uY29sdW1uID09IGNvbHVtbiAmJlxyXG4gICAgICAhdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHNbMF0uZGVzY2VuZGluZztcclxuICB9XHJcbiAgc29ydGVkRGVzY2VuZGluZyhjb2x1bW46IENvbHVtbjxhbnk+KSB7XHJcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRPcmRlckJ5KVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAoIWNvbHVtbilcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHNbMF0uY29sdW1uID09IGNvbHVtbiAmJlxyXG4gICAgICAhIXRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmRlc2NlbmRpbmc7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgZ2V0T3B0aW9uczogRmluZE9wdGlvbnM8cm93VHlwZT47XHJcblxyXG4gIHRvdGFsUm93czogbnVtYmVyO1xyXG5cclxuICBnZXRSZWNvcmRzKCkge1xyXG5cclxuICAgIGxldCBvcHQ6IEZpbmRPcHRpb25zPHJvd1R5cGU+ID0ge307XHJcbiAgICBpZiAodGhpcy5nZXRPcHRpb25zKSB7XHJcbiAgICAgIG9wdCA9IE9iamVjdC5hc3NpZ24ob3B0LCB0aGlzLmdldE9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2N1cnJlbnRPcmRlckJ5KVxyXG4gICAgICBvcHQub3JkZXJCeSA9IHIgPT4gdGhpcy5fY3VycmVudE9yZGVyQnk7XHJcblxyXG4gICAgb3B0LmxpbWl0ID0gdGhpcy5yb3dzUGVyUGFnZTtcclxuICAgIGlmICh0aGlzLnBhZ2UgPiAxKVxyXG4gICAgICBvcHQucGFnZSA9IHRoaXMucGFnZTtcclxuICAgIHRoaXMuZmlsdGVySGVscGVyLmFkZFRvRmluZE9wdGlvbnMob3B0KTtcclxuXHJcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5yZXN0TGlzdC5nZXQob3B0KS50aGVuKCgpID0+IHtcclxuXHJcblxyXG4gICAgICBpZiAodGhpcy5yZXN0TGlzdC5pdGVtcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh1bmRlZmluZWQpO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucy5hdXRvR2VuZXJhdGVDb2x1bW5zQmFzZWRPbkRhdGEodGhpcy5lbnRpdHlQcm92aWRlci5jcmVhdGUoKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcblxyXG5cclxuICAgICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5yZXN0TGlzdC5pdGVtc1swXSk7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLmF1dG9HZW5lcmF0ZUNvbHVtbnNCYXNlZE9uRGF0YSh0aGlzLmVudGl0eVByb3ZpZGVyLmNyZWF0ZSgpKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5yZXN0TGlzdDtcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MgJiYgdGhpcy5zZXR0aW5ncy5rbm93VG90YWxSb3dzKSB7XHJcbiAgICAgIHRoaXMucmVzdExpc3QuY291bnQob3B0LndoZXJlKS50aGVuKHggPT4ge1xyXG4gICAgICAgIHRoaXMudG90YWxSb3dzID0geDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH07XHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSByZXN0TGlzdDogRGF0YUxpc3Q8cm93VHlwZT47XHJcbiAgZ2V0IGl0ZW1zKCk6IHJvd1R5cGVbXSB7XHJcbiAgICBpZiAodGhpcy5yZXN0TGlzdClcclxuICAgICAgcmV0dXJuIHRoaXMucmVzdExpc3QuaXRlbXM7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFTZXR0aW5nczxyb3dUeXBlIGV4dGVuZHMgRW50aXR5PGFueT4+IHtcclxuICBhbGxvd1VwZGF0ZT86IGJvb2xlYW4sXHJcbiAgYWxsb3dJbnNlcnQ/OiBib29sZWFuLFxyXG4gIGFsbG93RGVsZXRlPzogYm9vbGVhbixcclxuICBoaWRlRGF0YUFyZWE/OiBib29sZWFuLFxyXG4gIGNvbmZpcm1EZWxldGU/OiAocjogcm93VHlwZSwgeWVzOiAoKSA9PiB2b2lkKSA9PiB2b2lkO1xyXG5cclxuICBjb2x1bW5TZXR0aW5ncz86IChyb3c6IHJvd1R5cGUpID0+IERhdGFDb250cm9sSW5mbzxyb3dUeXBlPltdLFxyXG4gIGFyZWFzPzogeyBbYXJlYUtleTogc3RyaW5nXTogRGF0YUNvbnRyb2xJbmZvPHJvd1R5cGU+W10gfSxcclxuXHJcbiAgcm93Q3NzQ2xhc3M/OiAocm93OiByb3dUeXBlKSA9PiBzdHJpbmc7XHJcbiAgcm93QnV0dG9ucz86IFJvd0J1dHRvbjxyb3dUeXBlPltdLFxyXG4gIGdldD86IEZpbmRPcHRpb25zPHJvd1R5cGU+LFxyXG4gIGtub3dUb3RhbFJvd3M/OiBib29sZWFuLFxyXG4gIG9uU2F2aW5nUm93PzogKHI6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgb25WYWxpZGF0ZT86IChyOiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIG9uRW50ZXJSb3c/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICBvbk5ld1Jvdz86IChyOiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIG51bU9mQ29sdW1uc0luR3JpZD86IG51bWJlcjtcclxuICBjYXB0aW9uPzogc3RyaW5nO1xyXG5cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJvd0J1dHRvbjxyb3dUeXBlIGV4dGVuZHMgRW50aXR5PGFueT4+IHtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHZpc2libGU/OiAocjogcm93VHlwZSkgPT4gYm9vbGVhbjtcclxuICBjbGljaz86IChyOiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgY3NzQ2xhc3M/OiAoc3RyaW5nIHwgKChyb3c6IHJvd1R5cGUpID0+IHN0cmluZykpO1xyXG5cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGlzTmV3Um93KHI6IEVudGl0eTxhbnk+KSB7XHJcbiAgaWYgKHIpIHtcclxuICAgIHIuX19lbnRpdHlEYXRhLmlzTmV3Um93KCk7XHJcbiAgfVxyXG4gIHJldHVybiBmYWxzZTtcclxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0ByZW11bHQvY29yZS8iLCJzb3VyY2VzIjpbInNyYy9ncmlkLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBR3JGOzs7O0lBQ0Usc0JBQW9CLGNBQXVDLEVBQUUsT0FBZ0IsRUFBUyxRQUFpQzs7UUFBdkgsaUJBcURDO1FBckRtQixtQkFBYyxHQUFkLGNBQWMsQ0FBeUI7UUFBMkIsYUFBUSxHQUFSLFFBQVEsQ0FBeUI7UUEwRHZILHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQWlKekIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsYUFBUSxHQUE2QixFQUFFLENBQUM7UUFrQnhDLGlCQUFZLEdBQUcsSUFBSSxZQUFZOzs7UUFBVTtZQUN2QyxLQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNkLEtBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUMsQ0FBQztRQU9ILFNBQUksR0FBRyxDQUFDLENBQUM7UUFnQlQsdUJBQWtCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBNVBoRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFVLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLG1CQUFTLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBQSxDQUFDO1NBQ2hFO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFnQjs7O1FBQVUsY0FBTSxPQUFBLEtBQUksQ0FBQyxVQUFVLEVBQWYsQ0FBZTs7O1FBQUUsY0FBTSxPQUFBLEtBQUksQ0FBQyxXQUFXLEVBQWhCLENBQWdCLEdBQUUsSUFBSSxDQUFDLFlBQVk7OztRQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBOUIsQ0FBOEIsR0FBRSxPQUFPLENBQUMsQ0FBQTtRQUU3SixJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUk7Ozs7O1FBQUMsVUFBQyxHQUFHLEVBQUUsSUFBSTtZQUNqRCxJQUFJLEdBQUcsSUFBSSxLQUFJLENBQUMsVUFBVTtnQkFDeEIsS0FBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDLEVBQUMsQ0FBQztRQUVILElBQUksUUFBUSxFQUFFO1lBRVosSUFBSSxRQUFRLENBQUMsY0FBYztnQkFDekIsQ0FBQSxLQUFBLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxHQUFHLDRCQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUU7WUFFeEUsSUFBSSxRQUFRLENBQUMsV0FBVztnQkFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxRQUFRLENBQUMsV0FBVztnQkFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxRQUFRLENBQUMsV0FBVztnQkFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxRQUFRLENBQUMsWUFBWTtnQkFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQzVDLElBQUksUUFBUSxDQUFDLGtCQUFrQixJQUFJLFNBQVM7Z0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDO1lBRWhFLElBQUksUUFBUSxDQUFDLFVBQVU7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUd0QyxJQUFJLFFBQVEsQ0FBQyxXQUFXO2dCQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDdkMsSUFBSSxRQUFRLENBQUMsV0FBVztnQkFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO1lBQzFDLElBQUksUUFBUSxDQUFDLFVBQVU7Z0JBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUN4QyxJQUFJLFFBQVEsQ0FBQyxRQUFRO2dCQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDcEMsSUFBSSxRQUFRLENBQUMsVUFBVTtnQkFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ3hDLElBQUksUUFBUSxDQUFDLE9BQU87Z0JBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDckQ7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUVsQztJQUdILENBQUM7Ozs7SUFPRCxtQ0FBWTs7O0lBQVo7O1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7WUFDeEQsQ0FBQSxLQUFBLElBQUksQ0FBQyxRQUFRLENBQUEsQ0FBQyxJQUFJLDRCQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFFO1NBQzNDO0lBQ0gsQ0FBQzs7OztJQUNELHdDQUFpQjs7O0lBQWpCO1FBQ0UsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBRWxCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUVyQjtRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDOzs7O0lBQ0QsbUNBQVk7OztJQUFaO1FBQ0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUN4RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0I7Z0JBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QztJQUVILENBQUM7Ozs7O0lBQ0QsNkJBQU07Ozs7SUFBTixVQUFPLENBQTJCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7OztJQUNELGdDQUFTOzs7O0lBQVQsVUFBVSxDQUEyQjtRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7OztJQUNELG9DQUFhOzs7SUFBYjtRQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzlELENBQUM7Ozs7OztJQUVPLG9DQUFhOzs7OztJQUFyQixVQUFzQixHQUF5QjtRQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUN0QixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSztZQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7O1lBRTdCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJOzs7OztZQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFQLENBQU8sRUFBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTztZQUM1QyxJQUFJLENBQUMsZUFBZSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV0RyxDQUFDOzs7O0lBT0QsZ0NBQVM7OztJQUFUOztZQUNNLENBQUMsR0FBUSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBSUQsOEJBQU87Ozs7SUFBUCxVQUFRLFFBQW9DO1FBQTVDLGlCQUtDOztZQUpLLEdBQUcsR0FBRyxJQUFJLGdCQUFnQjs7O1FBQVUsY0FBTSxPQUFBLEtBQUksQ0FBQyxVQUFVLEVBQWYsQ0FBZTs7O1FBQUUsY0FBTSxPQUFBLEtBQUksQ0FBQyxXQUFXLEVBQWhCLENBQWdCLEdBQUUsSUFBSSxDQUFDLFlBQVk7OztRQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBOUIsQ0FBOEIsRUFBQztRQUMvSSxHQUFHLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBRTNCLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBVSxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDOzs7OztJQUVELG9DQUFhOzs7O0lBQWIsVUFBYyxHQUFZO1FBQ3hCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRTtnQkFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN0QjtTQUNGO0lBRUgsQ0FBQzs7OztJQUNELDhCQUFPOzs7SUFBUDtRQUFBLGlCQWFDO1FBWkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7O2dCQUNmLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDNUQsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Z0JBRXZELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJOzs7Z0JBQUM7b0JBQ25CLElBQUksS0FBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQzt3QkFDdkIsS0FBSSxDQUFDLGFBQWEsQ0FBQyxLQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLENBQUMsRUFBQyxDQUFDO1NBQ047SUFDSCxDQUFDOzs7O0lBQ0QseUNBQWtCOzs7SUFBbEI7UUFDRSxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNyRixDQUFDOzs7O0lBQ0Qsa0NBQVc7OztJQUFYO1FBQUEsaUJBZUM7UUFkQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLE9BQU87O1lBRUwsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUM1RCxJQUFJLGtCQUFrQixHQUFHLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEQ7WUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQztnQkFDZixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSTs7O2dCQUFDO29CQUN2QixJQUFJLEtBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7d0JBQ3ZCLEtBQUksQ0FBQyxhQUFhLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxLQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxDQUFDLEVBQUMsQ0FBQztTQUNOO0lBRUgsQ0FBQzs7OztJQUNELHNDQUFlOzs7SUFBZjtRQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCO1lBQy9CLE9BQU87UUFDVCxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzs7O0lBQ0Qsa0RBQTJCOzs7SUFBM0I7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDbEIsT0FBTyxTQUFTLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7Ozs7SUFDRCw4Q0FBdUI7OztJQUF2QjtRQUNFLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQzFFLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JELENBQUM7Ozs7SUFDRCw4Q0FBdUI7OztJQUF2QjtRQUNFLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixFQUFFLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNJLENBQUM7Ozs7SUFDRCx3Q0FBaUI7OztJQUFqQjtRQUNFLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixFQUFFLElBQUssSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDaEcsQ0FBQzs7OztJQUNELHFDQUFjOzs7SUFBZDtRQUNFLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUMsSUFBSTtZQUMvRSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzs7OztJQWVELG1DQUFZOzs7O0lBQVosVUFBYSxDQUFVO1FBQXZCLGlCQVFDO1FBUEMsT0FBTyxDQUFDLENBQUMsSUFBSTs7O1FBQUM7Ozs7NkJBQ1IsSUFBSSxDQUFDLFVBQVUsRUFBZix3QkFBZTt3QkFDakIscUJBQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBQTs7d0JBQXhCLFNBQXdCLENBQUM7Ozs2QkFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBaEIsd0JBQWdCO3dCQUNsQixxQkFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFBOzt3QkFBekIsU0FBeUIsQ0FBQzs7Ozs7YUFDN0IsRUFBQyxDQUFDO0lBRUwsQ0FBQzs7OztJQWNELCtCQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNCLENBQUM7Ozs7SUFDRCxtQ0FBWTs7O0lBQVo7UUFDRSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztZQUNoQixPQUFPO1FBQ1QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7OztJQUNELGdDQUFTOzs7SUFBVDtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Ozs7SUFHRCwwQkFBRzs7OztJQUFILFVBQUksT0FBNkI7UUFFL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRTNCLENBQUM7Ozs7O0lBR0QsMkJBQUk7Ozs7SUFBSixVQUFLLE1BQW1COztZQUVsQixJQUFJLEdBQUcsS0FBSztRQUNoQixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwRSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztnQkFDM0YsSUFBSSxHQUFHLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFBQyxJQUFJLENBQUMsSUFBSTtZQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7Ozs7SUFDRCxzQ0FBZTs7OztJQUFmLFVBQWdCLE1BQW1CO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUN2QixPQUFPLEtBQUssQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNO1lBQ1QsT0FBTyxLQUFLLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNO1lBQ2pELENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2pELENBQUM7Ozs7O0lBQ0QsdUNBQWdCOzs7O0lBQWhCLFVBQWlCLE1BQW1CO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUN2QixPQUFPLEtBQUssQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNO1lBQ1QsT0FBTyxLQUFLLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNO1lBQ2pELENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDbEQsQ0FBQzs7OztJQVFELGlDQUFVOzs7SUFBVjtRQUFBLGlCQW1DQzs7WUFqQ0ssR0FBRyxHQUF5QixFQUFFO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZTtZQUN0QixHQUFHLENBQUMsT0FBTzs7OztZQUFHLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSSxDQUFDLGVBQWUsRUFBcEIsQ0FBb0IsQ0FBQSxDQUFDO1FBRTFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQztZQUNmLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDOztZQUVwQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSTs7O1FBQUM7WUFHdkMsSUFBSSxLQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUNuQyxLQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM5QixLQUFJLENBQUMsT0FBTyxDQUFDLDhCQUE4QixDQUFDLEtBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUMzRTtpQkFDSTtnQkFHSCxLQUFJLENBQUMsYUFBYSxDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLEtBQUksQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQzNFO1lBQ0QsT0FBTyxLQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLENBQUMsRUFBQztRQUNGLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtZQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSTs7OztZQUFDLFVBQUEsQ0FBQztnQkFDbkMsS0FBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDckIsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDO0lBS0Ysc0JBQUksK0JBQUs7Ozs7UUFBVDtZQUNFLElBQUksSUFBSSxDQUFDLFFBQVE7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM3QixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDOzs7T0FBQTtJQU1ILG1CQUFDO0FBQUQsQ0FBQyxBQS9WRCxJQStWQzs7Ozs7OztJQXZTQyxnQ0FBcUM7O0lBQ3JDLGdDQUFxQzs7SUFDckMsd0NBQXlCOztJQUN6Qix3Q0FBeUI7O0lBb0V6Qiw0QkFBYTs7SUFRYixrQ0FBb0I7O0lBcUVwQixtQ0FBb0I7O0lBQ3BCLG1DQUFvQjs7SUFDcEIsbUNBQW9COztJQUNwQixvQ0FBcUI7O0lBR3JCLGdDQUF3Qzs7SUFFeEMsZ0NBQWdDOztJQUNoQyxtQ0FBK0M7O0lBQy9DLGtDQUFrRDs7SUFDbEQsa0NBQW1DOztJQUNuQyxnQ0FBaUM7O0lBVWpDLCtCQUFnQjs7SUFFaEIsb0NBR0c7O0lBRUgsK0JBQW1DOztJQUtuQyw0QkFBUzs7SUFlVCxtQ0FBb0I7O0lBQ3BCLDBDQUFrRDs7SUFTbEQsdUNBQXNCOzs7OztJQWtDdEIsa0NBQXlDOztJQUV6QyxpQ0FBa0I7Ozs7O0lBeUNsQixnQ0FBb0M7Ozs7O0lBblZ4QixzQ0FBK0M7O0lBQW9CLGdDQUF3Qzs7Ozs7OztBQStWekgsbUNBcUJDOzs7SUFwQkMsb0NBQXNCOztJQUN0QixvQ0FBc0I7O0lBQ3RCLG9DQUFzQjs7SUFDdEIscUNBQXVCOztJQUN2QixzQ0FBc0Q7O0lBRXRELHVDQUE4RDs7SUFDOUQsOEJBQTBEOztJQUUxRCxvQ0FBdUM7O0lBQ3ZDLG1DQUFrQzs7SUFDbEMsNEJBQTJCOztJQUMzQixzQ0FBd0I7O0lBQ3hCLG9DQUFtQzs7SUFDbkMsbUNBQWtDOztJQUNsQyxtQ0FBa0M7O0lBQ2xDLGlDQUFnQzs7SUFDaEMsMkNBQTRCOztJQUM1QixnQ0FBaUI7Ozs7OztBQUduQiwrQkFPQzs7O0lBTkMseUJBQWM7O0lBQ2QsNEJBQWtDOztJQUNsQywwQkFBNkI7O0lBQzdCLHlCQUFjOztJQUNkLDZCQUFpRDs7Ozs7O0FBS25ELFNBQVMsUUFBUSxDQUFDLENBQWM7SUFDOUIsSUFBSSxDQUFDLEVBQUU7UUFDTCxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQzNCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4vZW50aXR5XCI7XHJcblxyXG5cclxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4vY29sdW1uXCI7XHJcbmltcG9ydCB7IERhdGFDb250cm9sU2V0dGluZ3MsIERhdGFDb250cm9sSW5mbyB9IGZyb20gXCIuL2NvbHVtbi1pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0XCI7XHJcblxyXG5pbXBvcnQgeyBEYXRhTGlzdCB9IGZyb20gXCIuL2RhdGFMaXN0XCI7XHJcbmltcG9ydCB7IFNvcnQgfSBmcm9tIFwiLi9zb3J0XCI7XHJcbmltcG9ydCB7IENvbHVtbkNvbGxlY3Rpb24gfSBmcm9tIFwiLi9jb2x1bW4tY29sbGVjdGlvblwiO1xyXG5pbXBvcnQgeyBJRGF0YUFyZWFTZXR0aW5ncywgRGF0YUFyZWFTZXR0aW5ncyB9IGZyb20gXCIuL2RhdGEtYXJlYS1zZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tIFwiLi9maWx0ZXIvZmlsdGVyLWhlbHBlclwiO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm92aWRlciwgRmluZE9wdGlvbnMsIGVudGl0eU9yZGVyQnlUb1NvcnQgfSBmcm9tICcuL2RhdGEtaW50ZXJmYWNlcyc7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEdyaWRTZXR0aW5nczxyb3dUeXBlIGV4dGVuZHMgRW50aXR5PGFueT4+ICB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHlQcm92aWRlcjogRW50aXR5UHJvdmlkZXI8cm93VHlwZT4sIGNvbnRleHQ6IENvbnRleHQsIHB1YmxpYyBzZXR0aW5ncz86IElEYXRhU2V0dGluZ3M8cm93VHlwZT4pIHtcclxuICAgIHRoaXMucmVzdExpc3QgPSBuZXcgRGF0YUxpc3Q8cm93VHlwZT4oZW50aXR5UHJvdmlkZXIpO1xyXG4gICAgaWYgKGVudGl0eVByb3ZpZGVyKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVySGVscGVyLmZpbHRlclJvdyA9IDxyb3dUeXBlPmVudGl0eVByb3ZpZGVyLmNyZWF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29sdW1ucyA9IG5ldyBDb2x1bW5Db2xsZWN0aW9uPHJvd1R5cGU+KCgpID0+IHRoaXMuY3VycmVudFJvdywgKCkgPT4gdGhpcy5hbGxvd1VwZGF0ZSwgdGhpcy5maWx0ZXJIZWxwZXIsICgpID0+IHRoaXMuY3VycmVudFJvdyA/IHRydWUgOiBmYWxzZSwgY29udGV4dClcclxuXHJcbiAgICB0aGlzLnJlc3RMaXN0Ll9yb3dSZXBsYWNlZExpc3RlbmVycy5wdXNoKChvbGQsIGN1cnIpID0+IHtcclxuICAgICAgaWYgKG9sZCA9PSB0aGlzLmN1cnJlbnRSb3cpXHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KGN1cnIpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHNldHRpbmdzKSB7XHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3MuY29sdW1uU2V0dGluZ3MpXHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLmFkZCguLi5zZXR0aW5ncy5jb2x1bW5TZXR0aW5ncyhlbnRpdHlQcm92aWRlci5jcmVhdGUoKSkpO1xyXG5cclxuICAgICAgaWYgKHNldHRpbmdzLmFsbG93VXBkYXRlKVxyXG4gICAgICAgIHRoaXMuYWxsb3dVcGRhdGUgPSB0cnVlO1xyXG4gICAgICBpZiAoc2V0dGluZ3MuYWxsb3dEZWxldGUpXHJcbiAgICAgICAgdGhpcy5hbGxvd0RlbGV0ZSA9IHRydWU7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5hbGxvd0luc2VydClcclxuICAgICAgICB0aGlzLmFsbG93SW5zZXJ0ID0gdHJ1ZTtcclxuICAgICAgaWYgKHNldHRpbmdzLmhpZGVEYXRhQXJlYSlcclxuICAgICAgICB0aGlzLmhpZGVEYXRhQXJlYSA9IHNldHRpbmdzLmhpZGVEYXRhQXJlYTtcclxuICAgICAgaWYgKHNldHRpbmdzLm51bU9mQ29sdW1uc0luR3JpZCAhPSB1bmRlZmluZWQpXHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZCA9IHNldHRpbmdzLm51bU9mQ29sdW1uc0luR3JpZDtcclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5yb3dCdXR0b25zKVxyXG4gICAgICAgIHRoaXMuX2J1dHRvbnMgPSBzZXR0aW5ncy5yb3dCdXR0b25zO1xyXG5cclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5yb3dDc3NDbGFzcylcclxuICAgICAgICB0aGlzLnJvd0NsYXNzID0gc2V0dGluZ3Mucm93Q3NzQ2xhc3M7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5vblNhdmluZ1JvdylcclxuICAgICAgICB0aGlzLm9uU2F2aW5nUm93ID0gc2V0dGluZ3Mub25TYXZpbmdSb3c7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5vbkVudGVyUm93KVxyXG4gICAgICAgIHRoaXMub25FbnRlclJvdyA9IHNldHRpbmdzLm9uRW50ZXJSb3c7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5vbk5ld1JvdylcclxuICAgICAgICB0aGlzLm9uTmV3Um93ID0gc2V0dGluZ3Mub25OZXdSb3c7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5vblZhbGlkYXRlKVxyXG4gICAgICAgIHRoaXMub25WYWxpZGF0ZSA9IHNldHRpbmdzLm9uVmFsaWRhdGU7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5jYXB0aW9uKVxyXG4gICAgICAgIHRoaXMuY2FwdGlvbiA9IHNldHRpbmdzLmNhcHRpb247XHJcbiAgICAgIGlmICghdGhpcy5jYXB0aW9uICYmIGVudGl0eVByb3ZpZGVyKSB7XHJcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gZW50aXR5UHJvdmlkZXIuY3JlYXRlKCkuZGVmcy5jYXB0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0R2V0T3B0aW9ucyhzZXR0aW5ncy5nZXQpO1xyXG5cclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgY3Vyckxpc3Q6IERhdGFDb250cm9sU2V0dGluZ3M8YW55PltdO1xyXG4gIG9yaWdMaXN0OiBEYXRhQ29udHJvbFNldHRpbmdzPGFueT5bXTtcclxuICBvcmlnTnVtT2ZDb2x1bW5zOiBudW1iZXI7XHJcbiAgc2hvd1NlbGVjdENvbHVtbiA9IGZhbHNlO1xyXG5cclxuICBpbml0T3JpZ0xpc3QoKSB7XHJcbiAgICBpZiAoIXRoaXMub3JpZ0xpc3QpIHtcclxuICAgICAgdGhpcy5vcmlnTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLm9yaWdOdW1PZkNvbHVtbnMgPSB0aGlzLmNvbHVtbnMubnVtT2ZDb2x1bW5zSW5HcmlkO1xyXG4gICAgICB0aGlzLm9yaWdMaXN0LnB1c2goLi4udGhpcy5jb2x1bW5zLml0ZW1zKTtcclxuICAgIH1cclxuICB9XHJcbiAgdXNlckNob29zZUNvbHVtbnMoKSB7XHJcbiAgICB0aGlzLmluaXRPcmlnTGlzdCgpO1xyXG4gICAgaWYgKCF0aGlzLmN1cnJMaXN0KSB7XHJcblxyXG4gICAgICB0aGlzLnJlc2V0Q29sdW1ucygpO1xyXG5cclxuICAgIH1cclxuICAgIHRoaXMuc2hvd1NlbGVjdENvbHVtbiA9ICF0aGlzLnNob3dTZWxlY3RDb2x1bW47XHJcbiAgfVxyXG4gIHJlc2V0Q29sdW1ucygpIHtcclxuICAgIHRoaXMuY3Vyckxpc3QgPSBbXTtcclxuICAgIHRoaXMuY29sdW1ucy5pdGVtcyA9IHRoaXMuY3Vyckxpc3Q7XHJcbiAgICB0aGlzLmNvbHVtbnMubnVtT2ZDb2x1bW5zSW5HcmlkID0gdGhpcy5vcmlnTnVtT2ZDb2x1bW5zO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm9yaWdMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpIDwgdGhpcy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZClcclxuICAgICAgICB0aGlzLmN1cnJMaXN0LnB1c2godGhpcy5vcmlnTGlzdFtpXSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBhZGRDb2woYzogRGF0YUNvbnRyb2xTZXR0aW5nczxhbnk+KSB7XHJcbiAgICB0aGlzLmNvbHVtbnMuYWRkQ29sKGMpO1xyXG4gICAgdGhpcy5hZGp1c3RDb2x1bW5zKCk7XHJcbiAgfVxyXG4gIGRlbGV0ZUNvbChjOiBEYXRhQ29udHJvbFNldHRpbmdzPGFueT4pIHtcclxuICAgIHRoaXMuY29sdW1ucy5kZWxldGVDb2woYylcclxuICAgIHRoaXMuYWRqdXN0Q29sdW1ucygpO1xyXG4gIH1cclxuICBhZGp1c3RDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZCA9IHRoaXMuY29sdW1ucy5pdGVtcy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEdldE9wdGlvbnMoZ2V0OiBGaW5kT3B0aW9uczxyb3dUeXBlPikge1xyXG4gICAgdGhpcy5nZXRPcHRpb25zID0gZ2V0O1xyXG4gICAgaWYgKGdldCAmJiBnZXQubGltaXQpXHJcbiAgICAgIHRoaXMucm93c1BlclBhZ2UgPSBnZXQubGltaXQ7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMucm93c1BlclBhZ2UgPSA3O1xyXG4gICAgaWYgKHRoaXMucm93c1BlclBhZ2VPcHRpb25zLmluZGV4T2YodGhpcy5yb3dzUGVyUGFnZSkgPCAwKSB7XHJcbiAgICAgIHRoaXMucm93c1BlclBhZ2VPcHRpb25zLnB1c2godGhpcy5yb3dzUGVyUGFnZSk7XHJcbiAgICAgIHRoaXMucm93c1BlclBhZ2VPcHRpb25zLnNvcnQoKGEsIGIpID0+ICthIC0gK2IpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY3VycmVudE9yZGVyQnkgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiAodGhpcy5nZXRPcHRpb25zICYmIHRoaXMuZ2V0T3B0aW9ucy5vcmRlckJ5KVxyXG4gICAgICB0aGlzLl9jdXJyZW50T3JkZXJCeSA9IGVudGl0eU9yZGVyQnlUb1NvcnQodGhpcy5lbnRpdHlQcm92aWRlci5jcmVhdGUoKSwgdGhpcy5nZXRPcHRpb25zLm9yZGVyQnkpO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgYWRkTmV3Um93KCkge1xyXG4gICAgbGV0IHI6IGFueSA9IHRoaXMucmVzdExpc3QuYWRkKCk7XHJcbiAgICBpZiAodGhpcy5vbk5ld1JvdylcclxuICAgICAgdGhpcy5vbk5ld1JvdyhyKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudFJvdyhyKTtcclxuICB9XHJcblxyXG4gIG5vYW06IHN0cmluZztcclxuXHJcbiAgYWRkQXJlYShzZXR0aW5nczogSURhdGFBcmVhU2V0dGluZ3M8cm93VHlwZT4pIHtcclxuICAgIGxldCBjb2wgPSBuZXcgQ29sdW1uQ29sbGVjdGlvbjxyb3dUeXBlPigoKSA9PiB0aGlzLmN1cnJlbnRSb3csICgpID0+IHRoaXMuYWxsb3dVcGRhdGUsIHRoaXMuZmlsdGVySGVscGVyLCAoKSA9PiB0aGlzLmN1cnJlbnRSb3cgPyB0cnVlIDogZmFsc2UpO1xyXG4gICAgY29sLm51bU9mQ29sdW1uc0luR3JpZCA9IDA7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBEYXRhQXJlYVNldHRpbmdzPHJvd1R5cGU+KHNldHRpbmdzLCBjb2wsIHRoaXMuZW50aXR5UHJvdmlkZXIuY3JlYXRlKCkpO1xyXG4gIH1cclxuICBjdXJyZW50Um93OiByb3dUeXBlO1xyXG4gIHNldEN1cnJlbnRSb3cocm93OiByb3dUeXBlKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Um93ICE9IHJvdykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRSb3cgPSByb3c7XHJcbiAgICAgIGlmICh0aGlzLm9uRW50ZXJSb3cgJiYgcm93KSB7XHJcblxyXG4gICAgICAgIHRoaXMub25FbnRlclJvdyhyb3cpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBuZXh0Um93KCkge1xyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRSb3cgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwKVxyXG4gICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5pdGVtc1swXSk7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Um93KSB7XHJcbiAgICAgIGxldCBjdXJyZW50Um93UG9zaXRpb24gPSB0aGlzLml0ZW1zLmluZGV4T2YodGhpcy5jdXJyZW50Um93KTtcclxuICAgICAgaWYgKGN1cnJlbnRSb3dQb3NpdGlvbiA8IHRoaXMuaXRlbXMubGVuZ3RoIC0gMSlcclxuICAgICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5pdGVtc1tjdXJyZW50Um93UG9zaXRpb24gKyAxXSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLm5leHRQYWdlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5pdGVtc1swXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByZXZpb3VzUm93QWxsb3dlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSb3cgJiYgdGhpcy5pdGVtcy5pbmRleE9mKHRoaXMuY3VycmVudFJvdykgPiAwIHx8IHRoaXMucGFnZSA+IDE7XHJcbiAgfVxyXG4gIHByZXZpb3VzUm93KCkge1xyXG4gICAgaWYgKCF0aGlzLnByZXZpb3VzUm93QWxsb3dlZCgpKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgbGV0IGN1cnJlbnRSb3dQb3NpdGlvbiA9IHRoaXMuaXRlbXMuaW5kZXhPZih0aGlzLmN1cnJlbnRSb3cpO1xyXG4gICAgaWYgKGN1cnJlbnRSb3dQb3NpdGlvbiA+IDApXHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLml0ZW1zW2N1cnJlbnRSb3dQb3NpdGlvbiAtIDFdKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5wYWdlID4gMSlcclxuICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBkZWxldGVDdXJlbnRSb3coKSB7XHJcbiAgICBpZiAoIXRoaXMuZGVsZXRlQ3VycmVudFJvd0FsbG93ZWQpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkuZGVsZXRlKCk7XHJcbiAgfVxyXG4gIGN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpIHtcclxuICAgIGlmICghdGhpcy5jdXJyZW50Um93KVxyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFJvdztcclxuICB9XHJcbiAgY2FuY2VsQ3VycmVudFJvd0NoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSAmJiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpKVxyXG4gICAgICB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLnVuZG9DaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIGRlbGV0ZUN1cnJlbnRSb3dBbGxvd2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkgJiYgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5kZWxldGUgJiYgdGhpcy5hbGxvd0RlbGV0ZSAmJiAhaXNOZXdSb3codGhpcy5jdXJyZW50Um93KTtcclxuICB9XHJcbiAgY3VycmVudFJvd0NoYW5nZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSAmJiAgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS53YXNDaGFuZ2VkKCk7XHJcbiAgfVxyXG4gIHNhdmVDdXJyZW50Um93KCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkgJiYgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5zYXZlKVxyXG4gICAgICB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLnNhdmUoKTtcclxuICB9XHJcblxyXG4gIGFsbG93VXBkYXRlID0gZmFsc2U7XHJcbiAgYWxsb3dJbnNlcnQgPSBmYWxzZTtcclxuICBhbGxvd0RlbGV0ZSA9IGZhbHNlO1xyXG4gIGhpZGVEYXRhQXJlYSA9IGZhbHNlO1xyXG5cclxuXHJcbiAgX2J1dHRvbnM6IFJvd0J1dHRvbjxFbnRpdHk8YW55Pj5bXSA9IFtdO1xyXG5cclxuICByb3dDbGFzcz86IChyb3c6IGFueSkgPT4gc3RyaW5nO1xyXG4gIG9uU2F2aW5nUm93PzogKHJvdzogYW55KSA9PiBQcm9taXNlPGFueT4gfCBhbnk7XHJcbiAgb25WYWxpZGF0ZT86IChyb3c6IHJvd1R5cGUpID0+IFByb21pc2U8YW55PiB8IGFueTtcclxuICBvbkVudGVyUm93OiAocm93OiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIG9uTmV3Um93OiAocm93OiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIF9kb1NhdmluZ1JvdyhzOiByb3dUeXBlKSB7XHJcbiAgICByZXR1cm4gcy5zYXZlKGFzeW5jICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMub25WYWxpZGF0ZSlcclxuICAgICAgICBhd2FpdCB0aGlzLm9uVmFsaWRhdGUocyk7XHJcbiAgICAgIGlmICh0aGlzLm9uU2F2aW5nUm93KVxyXG4gICAgICAgIGF3YWl0IHRoaXMub25TYXZpbmdSb3cocyk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIGNhcHRpb246IHN0cmluZztcclxuXHJcbiAgZmlsdGVySGVscGVyID0gbmV3IEZpbHRlckhlbHBlcjxyb3dUeXBlPigoKSA9PiB7XHJcbiAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgdGhpcy5nZXRSZWNvcmRzKCk7XHJcbiAgfSk7XHJcblxyXG4gIGNvbHVtbnM6IENvbHVtbkNvbGxlY3Rpb248cm93VHlwZT47XHJcblxyXG5cclxuXHJcblxyXG4gIHBhZ2UgPSAxO1xyXG4gIG5leHRQYWdlKCkge1xyXG4gICAgdGhpcy5wYWdlKys7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRzKCk7XHJcbiAgfVxyXG4gIHByZXZpb3VzUGFnZSgpIHtcclxuICAgIGlmICh0aGlzLnBhZ2UgPD0gMSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5wYWdlLS07XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRzKCk7XHJcbiAgfVxyXG4gIGZpcnN0UGFnZSgpIHtcclxuICAgIHRoaXMucGFnZSA9IDE7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRzKCk7XHJcbiAgfVxyXG4gIHJvd3NQZXJQYWdlOiBudW1iZXI7XHJcbiAgcm93c1BlclBhZ2VPcHRpb25zID0gWzEwLCAyNSwgNTAsIDEwMCwgNTAwLCAxMDAwXTtcclxuICBnZXQob3B0aW9uczogRmluZE9wdGlvbnM8cm93VHlwZT4pIHtcclxuXHJcbiAgICB0aGlzLnNldEdldE9wdGlvbnMob3B0aW9ucyk7XHJcbiAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3JkcygpO1xyXG5cclxuICB9XHJcblxyXG4gIF9jdXJyZW50T3JkZXJCeTogU29ydDtcclxuICBzb3J0KGNvbHVtbjogQ29sdW1uPGFueT4pIHtcclxuXHJcbiAgICBsZXQgZG9uZSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuX2N1cnJlbnRPcmRlckJ5ICYmIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmNvbHVtbiA9PSBjb2x1bW4pIHtcclxuICAgICAgICB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5kZXNjZW5kaW5nID0gIXRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmRlc2NlbmRpbmc7XHJcbiAgICAgICAgZG9uZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gaWYgKCFkb25lKVxyXG4gICAgICB0aGlzLl9jdXJyZW50T3JkZXJCeSA9IG5ldyBTb3J0KHsgY29sdW1uOiBjb2x1bW4gfSk7XHJcbiAgICB0aGlzLmdldFJlY29yZHMoKTtcclxuICB9XHJcbiAgc29ydGVkQXNjZW5kaW5nKGNvbHVtbjogQ29sdW1uPGFueT4pIHtcclxuICAgIGlmICghdGhpcy5fY3VycmVudE9yZGVyQnkpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIGlmICghY29sdW1uKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHMubGVuZ3RoID4gMCAmJlxyXG4gICAgICB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5jb2x1bW4gPT0gY29sdW1uICYmXHJcbiAgICAgICF0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5kZXNjZW5kaW5nO1xyXG4gIH1cclxuICBzb3J0ZWREZXNjZW5kaW5nKGNvbHVtbjogQ29sdW1uPGFueT4pIHtcclxuICAgIGlmICghdGhpcy5fY3VycmVudE9yZGVyQnkpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIGlmICghY29sdW1uKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHMubGVuZ3RoID4gMCAmJlxyXG4gICAgICB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5jb2x1bW4gPT0gY29sdW1uICYmXHJcbiAgICAgICEhdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHNbMF0uZGVzY2VuZGluZztcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBnZXRPcHRpb25zOiBGaW5kT3B0aW9uczxyb3dUeXBlPjtcclxuXHJcbiAgdG90YWxSb3dzOiBudW1iZXI7XHJcblxyXG4gIGdldFJlY29yZHMoKSB7XHJcblxyXG4gICAgbGV0IG9wdDogRmluZE9wdGlvbnM8cm93VHlwZT4gPSB7fTtcclxuICAgIGlmICh0aGlzLmdldE9wdGlvbnMpIHtcclxuICAgICAgb3B0ID0gT2JqZWN0LmFzc2lnbihvcHQsIHRoaXMuZ2V0T3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fY3VycmVudE9yZGVyQnkpXHJcbiAgICAgIG9wdC5vcmRlckJ5ID0gciA9PiB0aGlzLl9jdXJyZW50T3JkZXJCeTtcclxuXHJcbiAgICBvcHQubGltaXQgPSB0aGlzLnJvd3NQZXJQYWdlO1xyXG4gICAgaWYgKHRoaXMucGFnZSA+IDEpXHJcbiAgICAgIG9wdC5wYWdlID0gdGhpcy5wYWdlO1xyXG4gICAgdGhpcy5maWx0ZXJIZWxwZXIuYWRkVG9GaW5kT3B0aW9ucyhvcHQpO1xyXG5cclxuICAgIGxldCByZXN1bHQgPSB0aGlzLnJlc3RMaXN0LmdldChvcHQpLnRoZW4oKCkgPT4ge1xyXG5cclxuXHJcbiAgICAgIGlmICh0aGlzLnJlc3RMaXN0Lml0ZW1zLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLmF1dG9HZW5lcmF0ZUNvbHVtbnNCYXNlZE9uRGF0YSh0aGlzLmVudGl0eVByb3ZpZGVyLmNyZWF0ZSgpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLnJlc3RMaXN0Lml0ZW1zWzBdKTtcclxuICAgICAgICB0aGlzLmNvbHVtbnMuYXV0b0dlbmVyYXRlQ29sdW1uc0Jhc2VkT25EYXRhKHRoaXMuZW50aXR5UHJvdmlkZXIuY3JlYXRlKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLnJlc3RMaXN0O1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncyAmJiB0aGlzLnNldHRpbmdzLmtub3dUb3RhbFJvd3MpIHtcclxuICAgICAgdGhpcy5yZXN0TGlzdC5jb3VudChvcHQud2hlcmUpLnRoZW4oeCA9PiB7XHJcbiAgICAgICAgdGhpcy50b3RhbFJvd3MgPSB4O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfTtcclxuXHJcblxyXG5cclxuICBwcml2YXRlIHJlc3RMaXN0OiBEYXRhTGlzdDxyb3dUeXBlPjtcclxuICBnZXQgaXRlbXMoKTogcm93VHlwZVtdIHtcclxuICAgIGlmICh0aGlzLnJlc3RMaXN0KVxyXG4gICAgICByZXR1cm4gdGhpcy5yZXN0TGlzdC5pdGVtcztcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBJRGF0YVNldHRpbmdzPHJvd1R5cGUgZXh0ZW5kcyBFbnRpdHk8YW55Pj4ge1xyXG4gIGFsbG93VXBkYXRlPzogYm9vbGVhbixcclxuICBhbGxvd0luc2VydD86IGJvb2xlYW4sXHJcbiAgYWxsb3dEZWxldGU/OiBib29sZWFuLFxyXG4gIGhpZGVEYXRhQXJlYT86IGJvb2xlYW4sXHJcbiAgY29uZmlybURlbGV0ZT86IChyOiByb3dUeXBlLCB5ZXM6ICgpID0+IHZvaWQpID0+IHZvaWQ7XHJcblxyXG4gIGNvbHVtblNldHRpbmdzPzogKHJvdzogcm93VHlwZSkgPT4gRGF0YUNvbnRyb2xJbmZvPHJvd1R5cGU+W10sXHJcbiAgYXJlYXM/OiB7IFthcmVhS2V5OiBzdHJpbmddOiBEYXRhQ29udHJvbEluZm88cm93VHlwZT5bXSB9LFxyXG5cclxuICByb3dDc3NDbGFzcz86IChyb3c6IHJvd1R5cGUpID0+IHN0cmluZztcclxuICByb3dCdXR0b25zPzogUm93QnV0dG9uPHJvd1R5cGU+W10sXHJcbiAgZ2V0PzogRmluZE9wdGlvbnM8cm93VHlwZT4sXHJcbiAga25vd1RvdGFsUm93cz86IGJvb2xlYW4sXHJcbiAgb25TYXZpbmdSb3c/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICBvblZhbGlkYXRlPzogKHI6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgb25FbnRlclJvdz86IChyOiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIG9uTmV3Um93PzogKHI6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgbnVtT2ZDb2x1bW5zSW5HcmlkPzogbnVtYmVyO1xyXG4gIGNhcHRpb24/OiBzdHJpbmc7XHJcblxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUm93QnV0dG9uPHJvd1R5cGUgZXh0ZW5kcyBFbnRpdHk8YW55Pj4ge1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgdmlzaWJsZT86IChyOiByb3dUeXBlKSA9PiBib29sZWFuO1xyXG4gIGNsaWNrPzogKHI6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBjc3NDbGFzcz86IChzdHJpbmcgfCAoKHJvdzogcm93VHlwZSkgPT4gc3RyaW5nKSk7XHJcblxyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gaXNOZXdSb3cocjogRW50aXR5PGFueT4pIHtcclxuICBpZiAocikge1xyXG4gICAgci5fX2VudGl0eURhdGEuaXNOZXdSb3coKTtcclxuICB9XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59Il19
{
"name": "@remult/core",
"schematics": "./schematics/collection.json",
"version": "1.0.27",
"version": "1.0.28",
"description": "remult core lib",

@@ -6,0 +6,0 @@ "license": "MIT",

@@ -35,6 +35,6 @@ import { Entity } from "./entity";

deleteCurentRow(): void;
currentRowAsRestListItemRow(): any;
currentRowAsRestListItemRow(): rowType;
cancelCurrentRowChanges(): void;
deleteCurrentRowAllowed(): boolean;
currentRowChanged(): any;
currentRowChanged(): boolean;
saveCurrentRow(): void;

@@ -41,0 +41,0 @@ allowUpdate: boolean;

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc