diff --git a/dist/src/atom/views/SelectListView.js b/dist/src/atom/views/SelectListView.js index e17260a..f618a19 100644 --- a/dist/src/atom/views/SelectListView.js +++ b/dist/src/atom/views/SelectListView.js @@ -10,7 +10,7 @@ var __extends = (this && this.__extends) || function (d, b) { var _ = require('lodash'); var rxjs_1 = require('rxjs'); var View_1 = require('./View'); -atom.themes.requireStylesheet(require.resolve('../../../styles/select-list.less')); +atom.themes.requireStylesheet(require.resolve('../../../../styles/select-list.less')); var SelectListView = (function (_super) { __extends(SelectListView, _super); function SelectListView(commands) { @@ -276,4 +276,4 @@ var SelectListView = (function (_super) { return SelectListView; }(View_1.View)); exports.SelectListView = SelectListView; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0TGlzdFZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXRvbS92aWV3cy9TZWxlY3RMaXN0Vmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7R0FFRztBQUNILElBQVksQ0FBQyxXQUFNLFFBQVEsQ0FBQyxDQUFBO0FBQzVCLHFCQUEyQixNQUFNLENBQUMsQ0FBQTtBQUVsQyxxQkFBcUIsUUFBUSxDQUFDLENBQUE7QUFFOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQztBQUVuRjtJQUFnRCxrQ0FBb0I7SUFpQmhFLHdCQUFtQixRQUFzQjtRQWpCN0MsaUJBMlNDO1FBelJPLGtCQUFNLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQWpCL0IsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUNuQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFDekMsY0FBUyxHQUFXLFFBQVEsQ0FBQztRQVc3QixtQkFBYyxHQUFXLEdBQUcsQ0FBQztRQUtqQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQ2hCLGlCQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7YUFDL0MsU0FBUyxDQUFDO1lBQ1AsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FB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LGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDTCxxQkFBQztBQUFELENBQUMsQUEzU0QsQ0FBZ0QsV0FBSSxHQTJTbkQ7QUEzU3FCLHNCQUFjLGlCQTJTbkMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKlxyXG4gKi9cclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEF0b21Db21tYW5kcyB9IGZyb20gJy4uL0F0b21Db21tYW5kcyc7XHJcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuL1ZpZXcnO1xyXG5cclxuYXRvbS50aGVtZXMucmVxdWlyZVN0eWxlc2hlZXQocmVxdWlyZS5yZXNvbHZlKCcuLi8uLi8uLi9zdHlsZXMvc2VsZWN0LWxpc3QubGVzcycpKTtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTZWxlY3RMaXN0VmlldzxUPiBleHRlbmRzIFZpZXc8SFRNTERpdkVsZW1lbnQ+IHtcclxuICAgIHByb3RlY3RlZCBfaXRlbXM6IFRbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfd2Vha01hcCA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBUPigpO1xyXG4gICAgcHJpdmF0ZSBfbWF4SXRlbXM6IG51bWJlciA9IEluZmluaXR5O1xyXG4gICAgcHJvdGVjdGVkIF9maWx0ZXJFZGl0b3JWaWV3OiBBdG9tLlRleHRFZGl0b3JQcmVzZW50ZXI7XHJcbiAgICBwcm90ZWN0ZWQgX2ZpbHRlckVkaXRvcjogQXRvbS5UZXh0RWRpdG9yO1xyXG4gICAgcHJpdmF0ZSBfZXJyb3I6IEhUTUxEaXZFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSBfbG9hZGluZ0FyZWE6IEhUTUxEaXZFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSBfbG9hZGluZzogSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgcHJpdmF0ZSBfbG9hZGluZ0JhZGdlOiBIVE1MU3BhbkVsZW1lbnQ7XHJcbiAgICBwcml2YXRlIF9saXN0OiBIVE1MT0xpc3RFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSBfcHJldmlvdXNseUZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuICAgIHByaXZhdGUgX2NhbmNlbGxpbmc6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9zY2hlZHVsZVRpbWVvdXQ6IE5vZGVKUy5UaW1lcjtcclxuICAgIHByaXZhdGUgX2lucHV0VGhyb3R0bGU6IG51bWJlciA9IDEwMDtcclxuICAgIHByb3RlY3RlZCBfY29tbWFuZHM6IEF0b21Db21tYW5kcztcclxuXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoY29tbWFuZHM6IEF0b21Db21tYW5kcykge1xyXG4gICAgICAgIHN1cGVyKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTtcclxuICAgICAgICB0aGlzLl9jb21tYW5kcyA9IGNvbW1hbmRzO1xyXG4gICAgICAgIHRoaXMuX2J1aWxkSHRtbCgpO1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlckVkaXRvciA9IHRoaXMuX2ZpbHRlckVkaXRvclZpZXcuZ2V0TW9kZWwoKTtcclxuICAgICAgICB0aGlzLnN0b3JlRm9jdXNlZEVsZW1lbnQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlzcG9zYWJsZS5hZGQoXHJcbiAgICAgICAgICAgIE9ic2VydmFibGUuZnJvbUV2ZW50KHRoaXMuX2ZpbHRlckVkaXRvclZpZXcsICdibHVyJylcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQuaGFzRm9jdXMoKSAmJiAhdGhpcy5fY2FuY2VsbGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjb21tYW5kcy5hZGQodGhpcy5yb290LCB7XHJcbiAgICAgICAgICAgICAgICAnY29yZTptb3ZlLXVwJzogKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RQcmV2aW91c0l0ZW0oKTtcclxuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAnY29yZTptb3ZlLWRvd24nOiAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdE5leHRJdGVtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgJ2NvcmU6bW92ZS10by10b3AnOiAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEZpcnN0SXRlbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9Ub3AodGhpcy5fbGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgJ2NvcmU6bW92ZS10by1ib3R0b20nOiAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdExhc3RJdGVtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSh0aGlzLl9saXN0KTtcclxuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAnY29yZTpjb25maXJtJzogKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZmlybVNlbGVjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICdjb3JlOmNhbmNlbCc6IChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBPYnNlcnZhYmxlLmZyb21FdmVudCh0aGlzLl9saXN0LCAnbW91c2Vkb3duJylcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoKDxIVE1MRWxlbWVudD5lLnRhcmdldCkudGFnTmFtZS5tYXRjaCgvbGkvaSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbSg8RWxlbWVudD5lLnRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgT2JzZXJ2YWJsZS5mcm9tRXZlbnQodGhpcy5fbGlzdCwgJ21vdXNldXAnKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgoPEhUTUxFbGVtZW50PmUudGFyZ2V0KS50YWdOYW1lLm1hdGNoKC9saS9pKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKDxIVE1MRWxlbWVudD5lLnRhcmdldCkuY2xhc3NMaXN0LmNvbnRhaW5zKCdzZWxlY3RlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maXJtU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBPYnNlcnZhYmxlLmZyb21FdmVudCh0aGlzLl9saXN0LCAnbW91c2Vkb3duJylcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHt0YXJnZXR9OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldCA9PT0gdGhpcy5fbGlzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWJzdHJhY3Qgdmlld0Zvckl0ZW0oaXRlbTogZnVzZS5SZXN1bHQ8VD4pOiBIVE1MTElFbGVtZW50O1xyXG4gICAgcHVibGljIGFic3RyYWN0IGNvbmZpcm1lZChpdGVtOiBUKTogdm9pZDtcclxuICAgIHB1YmxpYyBhYnN0cmFjdCBjYW5jZWxsZWQoKTogdm9pZDtcclxuXHJcbiAgICBwdWJsaWMgc2V0SXRlbXMoaXRlbXM6IFRbXSkge1xyXG4gICAgICAgIHRoaXMuX2l0ZW1zID0gaXRlbXMgIT0gbnVsbCA/IGl0ZW1zIDogW107XHJcbiAgICAgICAgdGhpcy5wb3B1bGF0ZUxpc3QoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXRMb2FkaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzZWxlY3RlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fd2Vha01hcC5nZXQodGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRGaWx0ZXJRdWVyeSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyRWRpdG9yLmdldFRleHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TWF4SXRlbXMobWF4SXRlbXM6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX21heEl0ZW1zID0gbWF4SXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHBvcHVsYXRlTGlzdCgpIHtcclxuICAgICAgICB0aGlzLnBvcHVsYXRlSXRlbXMoXy5tYXAodGhpcy5faXRlbXMsIGl0ZW0gPT4gKHsgaXRlbSB9KSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBwb3B1bGF0ZUl0ZW1zKGl0ZW1zOiBmdXNlLlJlc3VsdDxUPltdKSB7XHJcbiAgICAgICAgaWYgKGl0ZW1zID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5uZXItaHRtbCAqL1xyXG4gICAgICAgIHRoaXMuX2xpc3QuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnNldEVycm9yKHVuZGVmaW5lZCk7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgXy50YWtlKGl0ZW1zLCBfLm1pbihbaXRlbXMubGVuZ3RoLCB0aGlzLl9tYXhJdGVtc10pKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudmlld0Zvckl0ZW0oaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWFrTWFwLnNldCh2aWV3LCBpdGVtLml0ZW0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbGlzdC5hcHBlbmRDaGlsZCh2aWV3KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdEl0ZW0odGhpcy5fbGlzdC5maXJzdEVsZW1lbnRDaGlsZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0RXJyb3IodGhpcy5nZXRFbXB0eU1lc3NhZ2UodGhpcy5faXRlbXMubGVuZ3RoLCBpdGVtcy5sZW5ndGgpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldEVycm9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAobWVzc2FnZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1lc3NhZ2UubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yLmlubmVyVGV4dCA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUodGhpcy5fZXJyb3IpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZygpO1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvci5pbm5lclRleHQgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3codGhpcy5fZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TG9hZGluZyhtZXNzYWdlPzogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKG1lc3NhZ2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtZXNzYWdlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nLmlubmVyVGV4dCA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nQmFkZ2UuaW5uZXJUZXh0ID0gJyc7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhpZGUodGhpcy5fbG9hZGluZ0FyZWEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RXJyb3IoKTtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZGluZy5pbm5lclRleHQgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaG93KHRoaXMuX2xvYWRpbmdBcmVhKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEVtcHR5TWVzc2FnZShpdGVtQ291bnQ6IG51bWJlciwgZmlsdGVyZWRJdGVtQ291bnQ6IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiAnTm8gbWF0Y2hlcyBmb3VuZCc7XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgIFNlY3Rpb246IFZpZXcgQWN0aW9uc1xyXG4gICAgICovXHJcblxyXG4gICAgcHVibGljIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLmVtcHR5KHRoaXMuX2xpc3QpO1xyXG4gICAgICAgIHRoaXMuX2NhbmNlbGxpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBjb25zdCBmaWx0ZXJFZGl0b3JWaWV3Rm9jdXNlZCA9IHRoaXMuaGFzRm9jdXModGhpcy5fZmlsdGVyRWRpdG9yVmlldyk7XHJcbiAgICAgICAgdGhpcy5jYW5jZWxsZWQoKTtcclxuICAgICAgICB0aGlzLl9maWx0ZXJFZGl0b3Iuc2V0VGV4dCgnJyk7XHJcbiAgICAgICAgaWYgKGZpbHRlckVkaXRvclZpZXdGb2N1c2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVGb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jYW5jZWxsaW5nID0gZmFsc2U7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3NjaGVkdWxlVGltZW91dCk7XHJcbiAgICAgICAgdGhpcy5kaXNwb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzRmlsdGVyRWRpdG9yKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXJFZGl0b3JWaWV3LmZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0b3JlRm9jdXNlZEVsZW1lbnQoKSB7XHJcbiAgICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSA8YW55PmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNlbGVjdEZpcnN0SXRlbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0SXRlbSg8SFRNTExJRWxlbWVudD50aGlzLl9saXN0LmZpcnN0RWxlbWVudENoaWxkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2VsZWN0TGFzdEl0ZW0oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdEl0ZW0oPEhUTUxMSUVsZW1lbnQ+dGhpcy5fbGlzdC5sYXN0RWxlbWVudENoaWxkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2VsZWN0UHJldmlvdXNJdGVtKCkge1xyXG4gICAgICAgIGxldCB2aWV3OiBIVE1MTElFbGVtZW50ID0gPEhUTUxMSUVsZW1lbnQ+dGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkucHJldmlvdXNFbGVtZW50U2libGluZztcclxuICAgICAgICBpZiAoIXZpZXcpIHtcclxuICAgICAgICAgICAgdmlldyA9IDxIVE1MTElFbGVtZW50PnRoaXMuX2xpc3QubGFzdEVsZW1lbnRDaGlsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdEl0ZW0odmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNlbGVjdE5leHRJdGVtKCkge1xyXG4gICAgICAgIGxldCB2aWV3OiBIVE1MTElFbGVtZW50ID0gPEhUTUxMSUVsZW1lbnQ+dGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkubmV4dEVsZW1lbnRTaWJsaW5nO1xyXG4gICAgICAgIGlmICghdmlldykge1xyXG4gICAgICAgICAgICB2aWV3ID0gPEhUTUxMSUVsZW1lbnQ+dGhpcy5fbGlzdC5maXJzdEVsZW1lbnRDaGlsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdEl0ZW0odmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0SXRlbSh2aWV3OiBFbGVtZW50KSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLl9saXN0LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZCcpO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICBzZWxlY3RlZC5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2aWV3LmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbFRvSXRlbSh2aWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zY3JvbGxUb0l0ZW0odmlldzogRWxlbWVudCkge1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuX2xpc3Quc2Nyb2xsVG9wO1xyXG4gICAgICAgIGNvbnN0IGRlc2lyZWRUb3AgPSB2aWV3LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHNjcm9sbFRvcDtcclxuICAgICAgICBjb25zdCBkZXNpcmVkQm90dG9tID0gZGVzaXJlZFRvcCArIHZpZXcuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIGlmIChkZXNpcmVkVG9wIDwgc2Nyb2xsVG9wKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xpc3Quc2Nyb2xsVG9wID0gZGVzaXJlZFRvcDtcclxuICAgICAgICB9IGVsc2UgaWYgKGRlc2lyZWRCb3R0b20gPiB0aGlzLnNjcm9sbEJvdHRvbSh0aGlzLl9saXN0KSkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbEJvdHRvbSh0aGlzLl9saXN0LCBkZXNpcmVkQm90dG9tKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVzdG9yZUZvY3VzKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNseUZvY3VzZWRFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldFNlbGVjdGVkSXRlbSgpOiBIVE1MTElFbGVtZW50IHtcclxuICAgICAgICByZXR1cm4gPEhUTUxMSUVsZW1lbnQ+dGhpcy5fbGlzdC5xdWVyeVNlbGVjdG9yKCdsaS5zZWxlY3RlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NvbmZpcm1TZWxlY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuc2VsZWN0ZWQ7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1lZChpdGVtKTtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyRWRpdG9yVmlld0ZvY3VzZWQgPSB0aGlzLmhhc0ZvY3VzKHRoaXMuX2ZpbHRlckVkaXRvclZpZXcpO1xyXG4gICAgICAgICAgICBpZiAoZmlsdGVyRWRpdG9yVmlld0ZvY3VzZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVGb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcG9zZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBzY2hlZHVsZVBvcHVsYXRlTGlzdCgpIHtcclxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fc2NoZWR1bGVUaW1lb3V0KTtcclxuICAgICAgICBjb25zdCBwb3B1bGF0ZUNhbGxiYWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jb250YWlucyh0aGlzLnJvb3QpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wb3B1bGF0ZUxpc3QoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5fc2NoZWR1bGVUaW1lb3V0ID0gc2V0VGltZW91dChwb3B1bGF0ZUNhbGxiYWNrLCB0aGlzLl9pbnB1dFRocm90dGxlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9idWlsZEh0bWwoKSB7XHJcbiAgICAgICAgdGhpcy5yb290LmNsYXNzTGlzdC5hZGQoJ3NlbGVjdC1saXN0Jyk7XHJcbiAgICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gICAgICAgIGNvbnN0IGVkaXRvcjogQXRvbS5UZXh0RWRpdG9yUHJlc2VudGVyID0gdGhpcy5fZmlsdGVyRWRpdG9yVmlldyA9IDxhbnk+ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYXRvbS10ZXh0LWVkaXRvcicpO1xyXG4gICAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICAgICAgICBlZGl0b3Iuc2V0QXR0cmlidXRlKCdtaW5pJywgPGFueT50cnVlKTtcclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSB0aGlzLl9lcnJvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIGVycm9yTWVzc2FnZS5jbGFzc0xpc3QuYWRkKCdlcnJvci1tZXNzYWdlJyk7XHJcbiAgICAgICAgY29uc3QgbG9hZGluZyA9IHRoaXMuX2xvYWRpbmdBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgbG9hZGluZy5jbGFzc0xpc3QuYWRkKCdsb2FkaW5nJyk7XHJcbiAgICAgICAgY29uc3QgbG9hZGluZ01lc3NhZ2UgPSB0aGlzLl9sb2FkaW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxvYWRpbmdNZXNzYWdlLmNsYXNzTGlzdC5hZGQoJ2xvYWRpbmctbWVzc2FnZScpO1xyXG4gICAgICAgIGNvbnN0IGxvYWRpbmdCYWRnZSA9IHRoaXMuX2xvYWRpbmdCYWRnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBsb2FkaW5nQmFkZ2UuY2xhc3NMaXN0LmFkZCgnYmFkZ2UnKTtcclxuICAgICAgICBjb25zdCBsaXN0R3JvdXAgPSB0aGlzLl9saXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb2wnKTtcclxuICAgICAgICBsaXN0R3JvdXAuY2xhc3NMaXN0LmFkZCgnbGlzdC1ncm91cCcpO1xyXG5cclxuICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQoZWRpdG9yKTtcclxuICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQoZXJyb3JNZXNzYWdlKTtcclxuICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQobG9hZGluZyk7XHJcbiAgICAgICAgbG9hZGluZy5hcHBlbmRDaGlsZChsb2FkaW5nTWVzc2FnZSk7XHJcbiAgICAgICAgbG9hZGluZy5hcHBlbmRDaGlsZChsb2FkaW5nQmFkZ2UpO1xyXG4gICAgICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZChsaXN0R3JvdXApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0TGlzdFZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXRvbS92aWV3cy9TZWxlY3RMaXN0Vmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7R0FFRztBQUNILElBQVksQ0FBQyxXQUFNLFFBQVEsQ0FBQyxDQUFBO0FBQzVCLHFCQUEyQixNQUFNLENBQUMsQ0FBQTtBQUVsQyxxQkFBcUIsUUFBUSxDQUFDLENBQUE7QUFFOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQztBQUVuRjtJQUFnRCxrQ0FBb0I7SUFpQmhFLHdCQUFtQixRQUFzQjtRQWpCN0MsaUJBMlNDO1FBelJPLGtCQUFNLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQWpCL0IsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUNuQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFDekMsY0FBUyxHQUFXLFFBQVEsQ0FBQztRQVc3QixtQkFBYyxHQUFXLEdBQUcsQ0FBQztRQUtqQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQ2hCLGlCQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7YUFDL0MsU0FBUyxDQUFDO1lBQ1AsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FB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LGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDTCxxQkFBQztBQUFELENBQUMsQUEzU0QsQ0FBZ0QsV0FBSSxHQTJTbkQ7QUEzU3FCLHNCQUFjLGlCQTJTbkMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKlxyXG4gKi9cclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEF0b21Db21tYW5kcyB9IGZyb20gJy4uL0F0b21Db21tYW5kcyc7XHJcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuL1ZpZXcnO1xyXG5cclxuYXRvbS50aGVtZXMucmVxdWlyZVN0eWxlc2hlZXQocmVxdWlyZS5yZXNvbHZlKCcuLi8uLi8uLi9zdHlsZXMvc2VsZWN0LWxpc3QubGVzcycpKTtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTZWxlY3RMaXN0VmlldzxUPiBleHRlbmRzIFZpZXc8SFRNTERpdkVsZW1lbnQ+IHtcclxuICAgIHByb3RlY3RlZCBfaXRlbXM6IFRbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfd2Vha01hcCA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBUPigpO1xyXG4gICAgcHJpdmF0ZSBfbWF4SXRlbXM6IG51bWJlciA9IEluZmluaXR5O1xyXG4gICAgcHJvdGVjdGVkIF9maWx0ZXJFZGl0b3JWaWV3OiBBdG9tLlRleHRFZGl0b3JQcmVzZW50ZXI7XHJcbiAgICBwcm90ZWN0ZWQgX2ZpbHRlckVkaXRvcjogQXRvbS5UZXh0RWRpdG9yO1xyXG4gICAgcHJpdmF0ZSBfZXJyb3I6IEhUTUxEaXZFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSBfbG9hZGluZ0FyZWE6IEhUTUxEaXZFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSBfbG9hZGluZzogSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgcHJpdmF0ZSBfbG9hZGluZ0JhZGdlOiBIVE1MU3BhbkVsZW1lbnQ7XHJcbiAgICBwcml2YXRlIF9saXN0OiBIVE1MT0xpc3RFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSBfcHJldmlvdXNseUZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuICAgIHByaXZhdGUgX2NhbmNlbGxpbmc6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9zY2hlZHVsZVRpbWVvdXQ6IE5vZGVKUy5UaW1lcjtcclxuICAgIHByaXZhdGUgX2lucHV0VGhyb3R0bGU6IG51bWJlciA9IDEwMDtcclxuICAgIHByb3RlY3RlZCBfY29tbWFuZHM6IEF0b21Db21tYW5kcztcclxuXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoY29tbWFuZHM6IEF0b21Db21tYW5kcykge1xyXG4gICAgICAgIHN1cGVyKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTtcclxuICAgICAgICB0aGlzLl9jb21tYW5kcyA9IGNvbW1hbmRzO1xyXG4gICAgICAgIHRoaXMuX2J1aWxkSHRtbCgpO1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlckVkaXRvciA9IHRoaXMuX2ZpbHRlckVkaXRvclZpZXcuZ2V0TW9kZWwoKTtcclxuICAgICAgICB0aGlzLnN0b3JlRm9jdXNlZEVsZW1lbnQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlzcG9zYWJsZS5hZGQoXHJcbiAgICAgICAgICAgIE9ic2VydmFibGUuZnJvbUV2ZW50KHRoaXMuX2ZpbHRlckVkaXRvclZpZXcsICdibHVyJylcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQuaGFzRm9jdXMoKSAmJiAhdGhpcy5fY2FuY2VsbGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjb21tYW5kcy5hZGQodGhpcy5yb290LCB7XHJcbiAgICAgICAgICAgICAgICAnY29yZTptb3ZlLXVwJzogKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RQcmV2aW91c0l0ZW0oKTtcclxuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAnY29yZTptb3ZlLWRvd24nOiAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdE5leHRJdGVtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgJ2NvcmU6bW92ZS10by10b3AnOiAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEZpcnN0SXRlbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9Ub3AodGhpcy5fbGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgJ2NvcmU6bW92ZS10by1ib3R0b20nOiAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdExhc3RJdGVtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSh0aGlzLl9saXN0KTtcclxuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAnY29yZTpjb25maXJtJzogKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZmlybVNlbGVjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICdjb3JlOmNhbmNlbCc6IChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBPYnNlcnZhYmxlLmZyb21FdmVudCh0aGlzLl9saXN0LCAnbW91c2Vkb3duJylcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoKDxIVE1MRWxlbWVudD5lLnRhcmdldCkudGFnTmFtZS5tYXRjaCgvbGkvaSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbSg8RWxlbWVudD5lLnRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgT2JzZXJ2YWJsZS5mcm9tRXZlbnQodGhpcy5fbGlzdCwgJ21vdXNldXAnKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgoPEhUTUxFbGVtZW50PmUudGFyZ2V0KS50YWdOYW1lLm1hdGNoKC9saS9pKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKDxIVE1MRWxlbWVudD5lLnRhcmdldCkuY2xhc3NMaXN0LmNvbnRhaW5zKCdzZWxlY3RlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maXJtU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBPYnNlcnZhYmxlLmZyb21FdmVudCh0aGlzLl9saXN0LCAnbW91c2Vkb3duJylcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHt0YXJnZXR9OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldCA9PT0gdGhpcy5fbGlzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWJzdHJhY3Qgdmlld0Zvckl0ZW0oaXRlbTogZnVzZS5SZXN1bHQ8VD4pOiBIVE1MTElFbGVtZW50O1xyXG4gICAgcHVibGljIGFic3RyYWN0IGNvbmZpcm1lZChpdGVtOiBUKTogdm9pZDtcclxuICAgIHB1YmxpYyBhYnN0cmFjdCBjYW5jZWxsZWQoKTogdm9pZDtcclxuXHJcbiAgICBwdWJsaWMgc2V0SXRlbXMoaXRlbXM6IFRbXSkge1xyXG4gICAgICAgIHRoaXMuX2l0ZW1zID0gaXRlbXMgIT0gbnVsbCA/IGl0ZW1zIDogW107XHJcbiAgICAgICAgdGhpcy5wb3B1bGF0ZUxpc3QoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXRMb2FkaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzZWxlY3RlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fd2Vha01hcC5nZXQodGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRGaWx0ZXJRdWVyeSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyRWRpdG9yLmdldFRleHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TWF4SXRlbXMobWF4SXRlbXM6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX21heEl0ZW1zID0gbWF4SXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHBvcHVsYXRlTGlzdCgpIHtcclxuICAgICAgICB0aGlzLnBvcHVsYXRlSXRlbXMoXy5tYXAodGhpcy5faXRlbXMsIGl0ZW0gPT4gKHsgaXRlbSB9KSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBwb3B1bGF0ZUl0ZW1zKGl0ZW1zOiBmdXNlLlJlc3VsdDxUPltdKSB7XHJcbiAgICAgICAgaWYgKGl0ZW1zID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5uZXItaHRtbCAqL1xyXG4gICAgICAgIHRoaXMuX2xpc3QuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnNldEVycm9yKHVuZGVmaW5lZCk7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgXy50YWtlKGl0ZW1zLCBfLm1pbihbaXRlbXMubGVuZ3RoLCB0aGlzLl9tYXhJdGVtc10pKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudmlld0Zvckl0ZW0oaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWFrTWFwLnNldCh2aWV3LCBpdGVtLml0ZW0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbGlzdC5hcHBlbmRDaGlsZCh2aWV3KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdEl0ZW0odGhpcy5fbGlzdC5maXJzdEVsZW1lbnRDaGlsZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0RXJyb3IodGhpcy5nZXRFbXB0eU1lc3NhZ2UodGhpcy5faXRlbXMubGVuZ3RoLCBpdGVtcy5sZW5ndGgpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldEVycm9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAobWVzc2FnZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1lc3NhZ2UubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yLmlubmVyVGV4dCA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUodGhpcy5fZXJyb3IpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZygpO1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvci5pbm5lclRleHQgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3codGhpcy5fZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TG9hZGluZyhtZXNzYWdlPzogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKG1lc3NhZ2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtZXNzYWdlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nLmlubmVyVGV4dCA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nQmFkZ2UuaW5uZXJUZXh0ID0gJyc7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhpZGUodGhpcy5fbG9hZGluZ0FyZWEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RXJyb3IoKTtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZGluZy5pbm5lclRleHQgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaG93KHRoaXMuX2xvYWRpbmdBcmVhKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEVtcHR5TWVzc2FnZShpdGVtQ291bnQ6IG51bWJlciwgZmlsdGVyZWRJdGVtQ291bnQ6IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiAnTm8gbWF0Y2hlcyBmb3VuZCc7XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgIFNlY3Rpb246IFZpZXcgQWN0aW9uc1xyXG4gICAgICovXHJcblxyXG4gICAgcHVibGljIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLmVtcHR5KHRoaXMuX2xpc3QpO1xyXG4gICAgICAgIHRoaXMuX2NhbmNlbGxpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBjb25zdCBmaWx0ZXJFZGl0b3JWaWV3Rm9jdXNlZCA9IHRoaXMuaGFzRm9jdXModGhpcy5fZmlsdGVyRWRpdG9yVmlldyk7XHJcbiAgICAgICAgdGhpcy5jYW5jZWxsZWQoKTtcclxuICAgICAgICB0aGlzLl9maWx0ZXJFZGl0b3Iuc2V0VGV4dCgnJyk7XHJcbiAgICAgICAgaWYgKGZpbHRlckVkaXRvclZpZXdGb2N1c2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVGb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jYW5jZWxsaW5nID0gZmFsc2U7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3NjaGVkdWxlVGltZW91dCk7XHJcbiAgICAgICAgdGhpcy5kaXNwb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzRmlsdGVyRWRpdG9yKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXJFZGl0b3JWaWV3LmZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0b3JlRm9jdXNlZEVsZW1lbnQoKSB7XHJcbiAgICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSA8YW55PmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNlbGVjdEZpcnN0SXRlbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0SXRlbSg8SFRNTExJRWxlbWVudD50aGlzLl9saXN0LmZpcnN0RWxlbWVudENoaWxkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2VsZWN0TGFzdEl0ZW0oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdEl0ZW0oPEhUTUxMSUVsZW1lbnQ+dGhpcy5fbGlzdC5sYXN0RWxlbWVudENoaWxkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2VsZWN0UHJldmlvdXNJdGVtKCkge1xyXG4gICAgICAgIGxldCB2aWV3OiBIVE1MTElFbGVtZW50ID0gPEhUTUxMSUVsZW1lbnQ+dGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkucHJldmlvdXNFbGVtZW50U2libGluZztcclxuICAgICAgICBpZiAoIXZpZXcpIHtcclxuICAgICAgICAgICAgdmlldyA9IDxIVE1MTElFbGVtZW50PnRoaXMuX2xpc3QubGFzdEVsZW1lbnRDaGlsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdEl0ZW0odmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNlbGVjdE5leHRJdGVtKCkge1xyXG4gICAgICAgIGxldCB2aWV3OiBIVE1MTElFbGVtZW50ID0gPEhUTUxMSUVsZW1lbnQ+dGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkubmV4dEVsZW1lbnRTaWJsaW5nO1xyXG4gICAgICAgIGlmICghdmlldykge1xyXG4gICAgICAgICAgICB2aWV3ID0gPEhUTUxMSUVsZW1lbnQ+dGhpcy5fbGlzdC5maXJzdEVsZW1lbnRDaGlsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdEl0ZW0odmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0SXRlbSh2aWV3OiBFbGVtZW50KSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLl9saXN0LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZCcpO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICBzZWxlY3RlZC5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2aWV3LmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbFRvSXRlbSh2aWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zY3JvbGxUb0l0ZW0odmlldzogRWxlbWVudCkge1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuX2xpc3Quc2Nyb2xsVG9wO1xyXG4gICAgICAgIGNvbnN0IGRlc2lyZWRUb3AgPSB2aWV3LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHNjcm9sbFRvcDtcclxuICAgICAgICBjb25zdCBkZXNpcmVkQm90dG9tID0gZGVzaXJlZFRvcCArIHZpZXcuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIGlmIChkZXNpcmVkVG9wIDwgc2Nyb2xsVG9wKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xpc3Quc2Nyb2xsVG9wID0gZGVzaXJlZFRvcDtcclxuICAgICAgICB9IGVsc2UgaWYgKGRlc2lyZWRCb3R0b20gPiB0aGlzLnNjcm9sbEJvdHRvbSh0aGlzLl9saXN0KSkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbEJvdHRvbSh0aGlzLl9saXN0LCBkZXNpcmVkQm90dG9tKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVzdG9yZUZvY3VzKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNseUZvY3VzZWRFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldFNlbGVjdGVkSXRlbSgpOiBIVE1MTElFbGVtZW50IHtcclxuICAgICAgICByZXR1cm4gPEhUTUxMSUVsZW1lbnQ+dGhpcy5fbGlzdC5xdWVyeVNlbGVjdG9yKCdsaS5zZWxlY3RlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NvbmZpcm1TZWxlY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuc2VsZWN0ZWQ7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1lZChpdGVtKTtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyRWRpdG9yVmlld0ZvY3VzZWQgPSB0aGlzLmhhc0ZvY3VzKHRoaXMuX2ZpbHRlckVkaXRvclZpZXcpO1xyXG4gICAgICAgICAgICBpZiAoZmlsdGVyRWRpdG9yVmlld0ZvY3VzZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVGb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcG9zZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBzY2hlZHVsZVBvcHVsYXRlTGlzdCgpIHtcclxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fc2NoZWR1bGVUaW1lb3V0KTtcclxuICAgICAgICBjb25zdCBwb3B1bGF0ZUNhbGxiYWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jb250YWlucyh0aGlzLnJvb3QpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wb3B1bGF0ZUxpc3QoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5fc2NoZWR1bGVUaW1lb3V0ID0gc2V0VGltZW91dChwb3B1bGF0ZUNhbGxiYWNrLCB0aGlzLl9pbnB1dFRocm90dGxlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9idWlsZEh0bWwoKSB7XHJcbiAgICAgICAgdGhpcy5yb290LmNsYXNzTGlzdC5hZGQoJ3NlbGVjdC1saXN0Jyk7XHJcbiAgICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gICAgICAgIGNvbnN0IGVkaXRvcjogQXRvbS5UZXh0RWRpdG9yUHJlc2VudGVyID0gdGhpcy5fZmlsdGVyRWRpdG9yVmlldyA9IDxhbnk+ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYXRvbS10ZXh0LWVkaXRvcicpO1xyXG4gICAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICAgICAgICBlZGl0b3Iuc2V0QXR0cmlidXRlKCdtaW5pJywgPGFueT50cnVlKTtcclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSB0aGlzLl9lcnJvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIGVycm9yTWVzc2FnZS5jbGFzc0xpc3QuYWRkKCdlcnJvci1tZXNzYWdlJyk7XHJcbiAgICAgICAgY29uc3QgbG9hZGluZyA9IHRoaXMuX2xvYWRpbmdBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgbG9hZGluZy5jbGFzc0xpc3QuYWRkKCdsb2FkaW5nJyk7XHJcbiAgICAgICAgY29uc3QgbG9hZGluZ01lc3NhZ2UgPSB0aGlzLl9sb2FkaW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxvYWRpbmdNZXNzYWdlLmNsYXNzTGlzdC5hZGQoJ2xvYWRpbmctbWVzc2FnZScpO1xyXG4gICAgICAgIGNvbnN0IGxvYWRpbmdCYWRnZSA9IHRoaXMuX2xvYWRpbmdCYWRnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBsb2FkaW5nQmFkZ2UuY2xhc3NMaXN0LmFkZCgnYmFkZ2UnKTtcclxuICAgICAgICBjb25zdCBsaXN0R3JvdXAgPSB0aGlzLl9saXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb2wnKTtcclxuICAgICAgICBsaXN0R3JvdXAuY2xhc3NMaXN0LmFkZCgnbGlzdC1ncm91cCcpO1xyXG5cclxuICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQoZWRpdG9yKTtcclxuICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQoZXJyb3JNZXNzYWdlKTtcclxuICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQobG9hZGluZyk7XHJcbiAgICAgICAgbG9hZGluZy5hcHBlbmRDaGlsZChsb2FkaW5nTWVzc2FnZSk7XHJcbiAgICAgICAgbG9hZGluZy5hcHBlbmRDaGlsZChsb2FkaW5nQmFkZ2UpO1xyXG4gICAgICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZChsaXN0R3JvdXApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==