raise-common-lib 0.0.154 → 0.0.155

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,14 +37,11 @@ var MultiTabComponent = /** @class */ (function () {
37
37
  this.timer = null;
38
38
  this.keepAlive = (/** @type {?} */ (this.routeReuseStrategy));
39
39
  }
40
- // 初始化屏幕宽度
41
40
  /**
42
41
  * @param {?} event
43
42
  * @return {?}
44
43
  */
45
- MultiTabComponent.prototype.onResize =
46
- // 初始化屏幕宽度
47
- /**
44
+ MultiTabComponent.prototype.onResize = /**
48
45
  * @param {?} event
49
46
  * @return {?}
50
47
  */
@@ -60,6 +57,7 @@ var MultiTabComponent = /** @class */ (function () {
60
57
  */
61
58
  function () {
62
59
  var _this = this;
60
+ this.translation = JSON.parse(localStorage.getItem("translation"));
63
61
  this.initTab();
64
62
  // 解决刷新页面后,选中的 tab 丢失问题
65
63
  /** @type {?} */
@@ -522,7 +520,7 @@ var MultiTabComponent = /** @class */ (function () {
522
520
  MultiTabComponent.decorators = [
523
521
  { type: Component, args: [{
524
522
  selector: "rs-multi-tab",
525
- template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n <ul\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onTabDrop($event)\"\r\n >\r\n <li\r\n class=\"tab-item\"\r\n *ngFor=\"let tab of tabList; let i = index\"\r\n [ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n [cdkDragDisabled]=\"i === 0\"\r\n cdkDrag\r\n (click)=\"changeTab(tab, i)\"\r\n >\r\n <ng-template cdkDragPlaceholder let-item>\r\n <div class=\"placeholder\">\r\n\t\t</div>\r\n </ng-template>\r\n\t \r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n *ngIf=\"tab.displayTitle !== tab.title; else originText\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ tab.title }}\r\n </div>\r\n </ng-template>\r\n <span class=\"tabTitle\">{{ tab.displayTitle }}</span>\r\n </ejs-tooltip>\r\n <ng-template #originText>\r\n <span class=\"tabTitle\">\r\n {{ tab.displayTitle }}\r\n </span>\r\n </ng-template>\r\n <span class=\"img-block\" *ngIf=\"selectedTab !== i && i !== 0\"></span>\r\n <img\r\n *ngIf=\"i !== 0\"\r\n src=\"../../../assets/img/close-url.svg\"\r\n (click)=\"closeTab(i)\"\r\n />\r\n </li>\r\n </ul>\r\n <div class=\"refresh-tab\" (click)=\"refreshTab()\" *ngIf=\"tabList.length > 0\">\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n cssClass=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">Refresh Current Tab</div>\r\n </ng-template>\r\n <img\r\n id=\"loadingIcon\"\r\n alt\r\n class=\"refresh-btn\"\r\n src=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n />\r\n </ejs-tooltip>\r\n </div>\r\n</div>\r\n",
523
+ template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n <ul\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onTabDrop($event)\"\r\n >\r\n <li\r\n class=\"tab-item\"\r\n *ngFor=\"let tab of tabList; let i = index\"\r\n [ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n [cdkDragDisabled]=\"i === 0\"\r\n cdkDrag\r\n (click)=\"changeTab(tab, i)\"\r\n >\r\n <ng-template cdkDragPlaceholder let-item>\r\n <div class=\"placeholder\"></div>\r\n </ng-template>\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n *ngIf=\"tab.displayTitle !== tab.title; else originText\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ tab.title }}\r\n </div>\r\n </ng-template>\r\n <span class=\"tabTitle\">{{ tab.displayTitle }}</span>\r\n </ejs-tooltip>\r\n <ng-template #originText>\r\n <span class=\"tabTitle\">\r\n {{ tab.displayTitle }}\r\n </span>\r\n </ng-template>\r\n <span class=\"img-block\" *ngIf=\"selectedTab !== i && i !== 0\"></span>\r\n <img\r\n *ngIf=\"i !== 0\"\r\n src=\"../../../assets/img/close-url.svg\"\r\n (click)=\"closeTab(i)\"\r\n />\r\n </li>\r\n </ul>\r\n <div class=\"refresh-tab\" (click)=\"refreshTab()\" *ngIf=\"tabList.length > 0\">\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n cssClass=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ translation.REFRESH_CURRENT_TAB || \".REFRESH_CURRENT_TAB\" }}\r\n </div>\r\n </ng-template>\r\n <img\r\n id=\"loadingIcon\"\r\n alt\r\n class=\"refresh-btn\"\r\n src=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n />\r\n </ejs-tooltip>\r\n </div>\r\n</div>\r\n",
526
524
  styles: ["@charset \"UTF-8\";.rs-multi-tab{width:100%;display:flex;justify-content:space-between;margin:0 auto;max-width:1886px}.rs-multi-tab.b-line{border-bottom:1px solid #e5eaef}.rs-multi-tab ul{display:flex;margin:0 8px;padding:0;overflow:hidden;height:100%}.rs-multi-tab ul .tab-item{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.rs-multi-tab ul .tab-item .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s}.rs-multi-tab ul .tab-item img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul .tab-item img:hover{background:#dce8f6}.rs-multi-tab ul .tab-item:not(:last-child){border-right:none}.rs-multi-tab ul .tab-item:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul .tab-item:last-child{border-top-right-radius:8px}.rs-multi-tab ul.cdk-drop-list-dragging .tab-item.cdk-drag-disabled:hover{background:#f8fafb!important;cursor:no-drop}.rs-multi-tab ul .isSelect{color:#1f3f5c;background:#fff}.rs-multi-tab ul .notSelect img{display:none}.rs-multi-tab ul .notSelect .img-block{display:inline-block;width:22px}.rs-multi-tab ul .notSelect:hover{color:#1f3f5c;background-color:rgba(31,123,255,.04)}.rs-multi-tab ul .notSelect:hover .img-block{display:none}.rs-multi-tab ul .notSelect:hover img{display:inline-block}.rs-multi-tab .refresh-tab{cursor:pointer;text-align:right;color:#6c7c90;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;padding-right:12px}.rs-multi-tab .refresh-tab img{vertical-align:middle;margin-right:4px}.refresh-tab-loading{-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.notSelectTooltip{transform:translateX(-12px)}.tab-item.cdk-drag{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.tab-item.cdk-drag .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s}.tab-item.cdk-drag img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.tab-item.cdk-drag img:hover{background:#dce8f6}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.tooltip-content{padding:4px;color:#f8fafb;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px}@media (max-width:1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width:1100px){.rs-multi-tab ul .tab-item img{position:absolute;right:3px;background-color:#fff}.notSelect:hover img{position:absolute;right:3px;background-color:#eff5fb}.img-block{display:none!important}.isSelect:not(:first-child){padding-right:20px!important}}@media (max-width:600px){.rs-multi-tab ul .tab-item{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0!important}}"]
527
525
  }] }
528
526
  ];
@@ -585,6 +583,8 @@ if (false) {
585
583
  /** @type {?} */
586
584
  MultiTabComponent.prototype.screenWidth;
587
585
  /** @type {?} */
586
+ MultiTabComponent.prototype.translation;
587
+ /** @type {?} */
588
588
  MultiTabComponent.prototype.timer;
589
589
  /** @type {?} */
590
590
  MultiTabComponent.prototype.router;
@@ -608,4 +608,4 @@ if (false) {
608
608
  */
609
609
  MultiTabComponent.prototype.routeReuseStrategy;
610
610
  }
611
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbXVsdGktdGFiL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEU7SUFNRSwyQkFDUyxNQUFjLEVBQ2QsRUFBeUIsRUFDekIsY0FBOEIsRUFDN0IsR0FBc0IsRUFDdEIsTUFBcUIsRUFDckIsa0JBQXNDO1FBTHZDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUF1QjtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBS3ZDLG9CQUFlLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTs7UUFDNUMsc0JBQWlCLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTs7UUFDOUMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsa0JBQWEs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MkNBQWU7Ozs7O0lBQXZCLFVBQXdCLEdBQUc7UUFDekIsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7O2dCQXZVRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLGdsRUFBcUM7O2lCQUV0Qzs7OztnQkFkQyxNQUFNO2dCQU1DLHFCQUFxQjtnQkFSNUIsY0FBYztnQkFWZCxpQkFBaUI7Z0JBbUJWLGFBQWE7Z0JBRmIsa0JBQWtCOzs7a0NBc0J4QixLQUFLO29DQUNMLEtBQUs7OEJBQ0wsS0FBSztnQ0FDTCxLQUFLOytCQUVMLE1BQU07MkJBYU4sWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7SUFxUzNDLHdCQUFDO0NBQUEsQUF4VUQsSUF3VUM7U0FuVVksaUJBQWlCOzs7SUFXNUIsc0NBQTRCOztJQUM1Qiw0Q0FBd0M7O0lBQ3hDLDhDQUEwQzs7SUFDMUMsd0NBQTBCOztJQUMxQiwwQ0FBNEI7O0lBRTVCLHlDQUE0Qzs7Ozs7SUFFNUMsMENBQTJDOztJQUMzQyxzQ0FBZ0I7O0lBQ2hCLHVDQUFnQjs7SUFDaEIsc0NBQWU7O0lBQ2Ysb0NBQVE7O0lBQ1IsZ0NBQWtCOztJQUNsQixtQ0FBWTs7SUFDWixvQ0FBYTs7SUFDYix3Q0FBd0I7O0lBQ3hCLG9DQUFxQjs7SUFDckIsd0NBQXdDOztJQW9ReEMsa0NBQWE7O0lBL1JYLG1DQUFxQjs7SUFDckIsK0JBQWdDOztJQUNoQywyQ0FBcUM7Ozs7O0lBQ3JDLGdDQUE4Qjs7Ozs7SUFDOUIsbUNBQTZCOzs7OztJQUM3QiwrQ0FBOEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgQWN0aXZhdGVkUm91dGUsXHJcbiAgTmF2aWdhdGlvbkVuZCxcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyT3V0bGV0LFxyXG59IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFJvdXRlUmV1c2VTdHJhdGVneSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRHJhd2VyU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RyYXdlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEtlZXBBbGl2ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9rZWVwLWFsaXZlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLW11bHRpLXRhYlwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuICAgIHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZHJhd2VyOiBEcmF3ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZVJldXNlU3RyYXRlZ3k6IFJvdXRlUmV1c2VTdHJhdGVneVxyXG4gICkge1xyXG4gICAgdGhpcy5rZWVwQWxpdmUgPSB0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSBhcyBLZWVwQWxpdmVTZXJ2aWNlO1xyXG4gIH1cclxuICBrZWVwQWxpdmU6IEtlZXBBbGl2ZVNlcnZpY2U7XHJcbiAgQElucHV0KCkgc2luZ2xlUmV1c2VVcmxzOiBzdHJpbmdbXSA9IFtdOyAvL+WPquiDveWNleS4que8k+WtmOeahHVybFxyXG4gIEBJbnB1dCgpIG5vR2VuZXJhdGVUYWJVcmxzOiBzdHJpbmdbXSA9IFtdOyAvL+S4jeeUn+aIkHRhYueahHVybFxyXG4gIEBJbnB1dCgpIGZsYXR0ZW5NZW51ID0gW107XHJcbiAgQElucHV0KCkgZGVmYXVsdFRhYlVybCA9IFwiXCI7XHJcblxyXG4gIEBPdXRwdXQoKSBvblJlZnJlc2hUYWIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBUQUJfV0lEVEggPSAxNjQ7XHJcbiAgR0FQX05PUk1BTCA9IDU0O1xyXG4gIEdBUF9TTUFMTCA9IDMwO1xyXG4gIHRleHRHYXA7IC8vIOaWh+acrOS4jui+ueahhueahOaAu+mXtOi3nVxyXG4gIGZvbzogUm91dGVyT3V0bGV0O1xyXG4gIGNvbVJlZjogYW55O1xyXG4gIHRhYkxpc3QgPSBbXTtcclxuICBzZWxlY3RlZFRhYjogbnVtYmVyID0gMDtcclxuICBtYXhUYWJzOiBudW1iZXIgPSAxMDtcclxuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gd2luZG93LmlubmVyV2lkdGg7IC8vIOWIneWni+WMluWxj+W5leWuveW6plxyXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIsIFtcIiRldmVudFwiXSlcclxuICBvblJlc2l6ZShldmVudCkge1xyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDmm7TmlrDlsY/luZXlrr3luqZcclxuICAgIC8vIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpOyDlnKjmnIDlpJbpnaLlrrnlmajosIPnlKhcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0VGFiKCk7XHJcbiAgICAvLyDop6PlhrPliLfmlrDpobXpnaLlkI7vvIzpgInkuK3nmoQgdGFiIOS4ouWksemXrumimFxyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChlbGUpID0+XHJcbiAgICAgICAgdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRoaXMucm91dGVyLnVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IGlzRXhpc3RJZHg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmUtcG9wdXAtb3BlblwiKTtcclxuICAgICAgICAgICAgLy8g5Yig6ZmkdG9vbHRpcHNcclxuICAgICAgICAgICAgdG9vbHRpcEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IGVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgaHRtbEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBuYXZpZ2F0aW9uLmV4dHJhcy5zdGF0ZTsgLy8g6I635Y+W5Lyg6YCS55qEIHN0YXRlXHJcbiAgICAgICAgICAgIGNvbnN0IHNraXBMb2NhdGlvbkNoYW5nZSA9IG5hdmlnYXRpb24uZXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZTsgLy8g6I635Y+W5piv5ZCm6Lez6L+HIGxvY2F0aW9uIGNoYW5nZVxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LmZpcnN0Q2hpbGQ7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hdmlnYXRpb25JbmZvID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwibmF2aWdhdGlvbkluZm9cIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGxldCB0aXRsZSA9XHJcbiAgICAgICAgICAgICAgKHN0YXRlICYmIHN0YXRlW1widGl0bGVcIl0pIHx8XHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkluZm8udGl0bGUgfHxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5mby5zdWJUaXRsZSB8fFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25JbmZvLm5hbWU7XHJcblxyXG4gICAgICAgICAgICBsZXQgbm9SZXVzZWQgPSAoc3RhdGUgJiYgc3RhdGVbXCJub1JldXNlZFwiXSkgfHwgZmFsc2U7IC8vIOW9k+WJjXRhYuS4jeWkjeeUqO+8jOaWsOW8gOS4gOS4qnRhYizlvZPmnInlt7Lnu4/lrZjlnKjnmoR0YWLml7blgJnkuZ/mmK/mlrDlvIBcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRSb3V0ZSAmJiAhc2tpcExvY2F0aW9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub0dlbmVyYXRlVGFiVXJscy5pbmNsdWRlcyhcclxuICAgICAgICAgICAgICAgICAgdGhpcy51cmxXaXRob3V0UXVlcnkodGhpcy5yb3V0ZXIudXJsKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyDmjpLpmaTkuI3nlJ/miJB0YWLnmoR1cmxcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRUYWIoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci51cmwsXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50Um91dGUuc25hcHNob3Qucm91dGVDb25maWcucGF0aCxcclxuICAgICAgICAgICAgICAgIHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgbm9SZXVzZWRcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgIH0sIDUwKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnRhYkxpc3QgPSBbXTsgLy8g5riF56m6IHRhYiDliJfooahcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAwOyAvLyDph43nva7pgInkuK3nmoQgdGFiIOe0ouW8lVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2V0RWxsaXBzaXNUaXRsZSh0aXRsZT8pIHtcclxuICAgIHRoaXMudGV4dEdhcCA9IHRoaXMuR0FQX05PUk1BTDtcclxuICAgIGlmICh0aGlzLnNjcmVlbldpZHRoIDw9IDExMDApIHtcclxuICAgICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfU01BTEw7XHJcbiAgICB9XHJcbiAgICBsZXQgeyBhbGxXaWR0aCwgbGVmdFdpZHRoLCByaWdodFdpZHRoIH0gPSB0aGlzLmNhbGNUYWJXaWR0aCgpO1xyXG4gICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihcclxuICAgICAgKGFsbFdpZHRoIC0gcmlnaHRXaWR0aCkgLyAodGhpcy50YWJMaXN0ICYmIHRoaXMudGFiTGlzdC5sZW5ndGgpXHJcbiAgICApO1xyXG4gICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKFxyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIHdpZHRoID4gdGhpcy5UQUJfV0lEVEhcclxuICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgIDogd2lkdGggLSB0aGlzLnRleHRHYXAsXHJcbiAgICAgICAgMTJcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFiTGlzdC5mb3JFYWNoKChlbGUsIGlkeCkgPT4ge1xyXG4gICAgICAgIGVsZS5kaXNwbGF5VGl0bGUgPSB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKFxyXG4gICAgICAgICAgZWxlLnRpdGxlLFxyXG4gICAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgICA/IHRoaXMuVEFCX1dJRFRIIC0gdGhpcy50ZXh0R2FwXHJcbiAgICAgICAgICAgIDogd2lkdGggLSB0aGlzLnRleHRHYXAsXHJcbiAgICAgICAgICAxMlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjYWxjVGFiV2lkdGgoKSB7XHJcbiAgICBjb25zdCB3cmFwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWJcIik7XHJcbiAgICBjb25zdCB1bEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiA+IHVsXCIpO1xyXG4gICAgY29uc3QgcmVmcmVzaFRhYkRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiIC5yZWZyZXNoLXRhYlwiKTtcclxuICAgIGxldCBhbGxXaWR0aDtcclxuICAgIGxldCBsZWZ0V2lkdGg7XHJcbiAgICBsZXQgcmlnaHRXaWR0aDtcclxuICAgIGlmICh3cmFwICYmIHVsRWxlbWVudCkge1xyXG4gICAgICAvLyDojrflj5blhYPntKDnmoTkvY3nva7kv6Hmga9cclxuICAgICAgY29uc3Qgd3JhcFJlY3QgPSB3cmFwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCB1bFJlY3QgPSB1bEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IHJlZnJlc2hUYWJSZWN0ID1cclxuICAgICAgICByZWZyZXNoVGFiRGl2ICYmIHJlZnJlc2hUYWJEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGFsbFdpZHRoID0gd3JhcFJlY3Qud2lkdGg7XHJcbiAgICAgIGxlZnRXaWR0aCA9IHVsUmVjdC53aWR0aDtcclxuICAgICAgcmlnaHRXaWR0aCA9IChyZWZyZXNoVGFiUmVjdCAmJiByZWZyZXNoVGFiUmVjdC53aWR0aCkgfHwgMTAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWxsV2lkdGgsXHJcbiAgICAgIGxlZnRXaWR0aCxcclxuICAgICAgcmlnaHRXaWR0aCxcclxuICAgIH07XHJcbiAgfVxyXG4gIGluaXRUYWIoKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInRoaXMuZmxhdHRlbk1lbnVcIiwgdGhpcy5mbGF0dGVuTWVudSk7XHJcbiAgICBsZXQgVGFiQ2FjaGUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJUYWJDYWNoZVwiKSk7XHJcbiAgICB0aGlzLnRhYkxpc3QgPSBUYWJDYWNoZSB8fCBbXTtcclxuICAgIGlmICh0aGlzLnRhYkxpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IHRpdGxlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcbiAgICAgIGlmICh0aXRsZSkge1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJmaXJzdFRhYlRpdGxlXCIpO1xyXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgICAgICB0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBwdXJlVXJsID0gdGhpcy51cmxXaXRob3V0UXVlcnkodGhpcy5yb3V0ZXIudXJsKTtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmZsYXR0ZW5NZW51LmZpbmQoKGVsZSkgPT4gZWxlLnVybCA9PT0gcHVyZVVybCk7XHJcbiAgICAgICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgICAgaWYgKHRhcmdldC51cmwgIT09IHRoaXMuZGVmYXVsdFRhYlVybCkge1xyXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0VGFiID0gdGhpcy5mbGF0dGVuTWVudS5maW5kKFxyXG4gICAgICAgICAgICAgIChlbGUpID0+IGVsZS51cmwgPT09IHRoaXMuZGVmYXVsdFRhYlVybFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnRhYkxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgdXJsOiBkZWZhdWx0VGFiLnVybCxcclxuICAgICAgICAgICAgICB0aXRsZTogZGVmYXVsdFRhYi5sYWJlbCxcclxuICAgICAgICAgICAgICBkaXNwbGF5VGl0bGU6IGRlZmF1bHRUYWIubGFiZWwsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5hZGRUYWIodGFyZ2V0LnVybCwgdGFyZ2V0LmxhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlVGFiKGlkeCwgbm9DaGFuZ2U/KSB7XHJcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYkxpc3RbaWR4XTtcclxuICAgIHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoKGVsZSkgPT4gZWxlLnVybCAhPT0gdGFiLnVybCk7XHJcbiAgICB0aGlzLmNsZWFyQ2FjaGUodGFiLnVybCk7XHJcbiAgICBpZiAoIW5vQ2hhbmdlICYmIHRoaXMuc2VsZWN0ZWRUYWIgPT09IGlkeCkge1xyXG4gICAgICBjb25zdCB0YXJnZXRJZHggPSBNYXRoLm1heCgwLCBpZHggLSAxKTtcclxuICAgICAgdGhpcy5jaGFuZ2VUYWIodGhpcy50YWJMaXN0W3RhcmdldElkeF0sIHRhcmdldElkeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaWR4IDwgdGhpcy5zZWxlY3RlZFRhYikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5zZWxlY3RlZFRhYiAtIDE7IC8vIOWmguaenOWFs+mXreeahHRhYuWcqOW9k+WJjemAieS4reeahHRhYuS5i+WJje+8jOmAieS4rXRhYue0ouW8leWHjzFcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUYWIodGFiLCBpZHgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGFiLnVybCk7XHJcbiAgICBpZiAodGFiLm5hdmlnYXRpb25JbmZvKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgXCJuYXZpZ2F0aW9uSW5mb1wiLFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRhYi5uYXZpZ2F0aW9uSW5mbylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0YWIuZnJvbUluZm8pIHtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcImZyb21JbmZvXCIsIEpTT04uc3RyaW5naWZ5KHRhYi5mcm9tSW5mbykpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRhYi5wZXJtaXNzaW9ucykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwicGVybWlzc2lvbnNcIiwgSlNPTi5zdHJpbmdpZnkodGFiLnBlcm1pc3Npb25zKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gaWR4O1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBhZGRUYWIodXJsLCB0aXRsZSkge1xyXG4gICAgaWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPj0gdGhpcy5tYXhUYWJzKSB7XHJcbiAgICAgIGNvbnN0IHNlY29uZFRhYiA9IHRoaXMudGFiTGlzdFsxXTtcclxuICAgICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcigoZWxlKSA9PiBlbGUudXJsICE9PSBzZWNvbmRUYWIudXJsKTtcclxuICAgICAgdGhpcy5jbGVhckNhY2hlKHNlY29uZFRhYi51cmwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbG9jYWxQZXJtaXNzaW9ucyA9XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJwZXJtaXNzaW9uc1wiKSB8fFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBlcm1pc3Npb25zXCIpO1xyXG4gICAgY29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKSk7XHJcbiAgICBjb25zdCBmcm9tSW5mbyA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZyb21JbmZvXCIpKTtcclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZShsb2NhbFBlcm1pc3Npb25zKTtcclxuXHJcbiAgICB0aGlzLnRhYkxpc3QucHVzaCh7XHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICB0aXRsZTogdGl0bGUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIGRpc3BsYXlUaXRsZTogdGl0bGUsXHJcbiAgICAgIG5hdmlnYXRpb25JbmZvOiBuYXZpZ2F0aW9uSW5mbyxcclxuICAgICAgcGVybWlzc2lvbnM6IHBlcm1pc3Npb25zLFxyXG4gICAgICBmcm9tSW5mbzogZnJvbUluZm8sXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLnRhYkxpc3QubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFiKHVybCwgcHVyZVVybCwgdGl0bGUsIG5vUmV1c2VkKSB7XHJcbiAgICBjb25zdCBpc0V4aXN0SWR4ID0gdGhpcy50YWJMaXN0LmZpbmRJbmRleChcclxuICAgICAgKGVsZSkgPT4gdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCA9PT0gLTEpIHtcclxuICAgICAgY29uc3Qgc2luZ2xlSWR4ID0gdGhpcy5zaW5nbGVSZXVzZVVybHMuZmluZEluZGV4KFxyXG4gICAgICAgIChlbGUpID0+IGVsZSA9PT0gcHVyZVVybFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoc2luZ2xlSWR4ICE9PSAtMSkge1xyXG4gICAgICAgIHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAoZWxlKSA9PiAhZWxlLnVybC5pbmNsdWRlcyh0aGlzLnNpbmdsZVJldXNlVXJsc1tzaW5nbGVJZHhdKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh0aGlzLnVybFdpdGhvdXRRdWVyeSh1cmwpKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdGFyZ2V0VGFiVXJsID0gdGhpcy50YWJMaXN0W2lzRXhpc3RJZHhdLnVybDtcclxuICAgICAgaWYgKHRhcmdldFRhYlVybCAhPT0gdXJsIHx8IG5vUmV1c2VkKSB7XHJcbiAgICAgICAgLy8g5b2T57yT5a2Y5LiA6Ie05pe25YCZ77yM5L2G5pivdXJs5LiN5LiA6Ie077yM6YeN5paw5oyJ54Wn5paw55qEdXJs55Sf5oiQdGFiXHJcbiAgICAgICAgdGhpcy5jbG9zZVRhYihpc0V4aXN0SWR4LCB0cnVlKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG4gICAgICAgIH0sIDMwKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoYW5nZVRhYih0aGlzLnRhYkxpc3RbaXNFeGlzdElkeF0sIGlzRXhpc3RJZHgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UYWJEcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIGNvbnN0IHsgcHJldmlvdXNJbmRleCwgY3VycmVudEluZGV4IH0gPSBldmVudDtcclxuICAgIGNvbnNvbGUubG9nKFwicHJldmlvdXNJbmRleFwiLCBwcmV2aW91c0luZGV4LCBcImN1cnJlbnRJbmRleFwiLCBjdXJyZW50SW5kZXgpO1xyXG4gICAgaWYgKHByZXZpb3VzSW5kZXggPT09IDAgfHwgY3VycmVudEluZGV4ID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLnRhYkxpc3QsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiVGFiQ2FjaGVcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJMaXN0KSk7XHJcbiAgfVxyXG5cclxuICB0aW1lciA9IG51bGw7XHJcbiAgcmVmcmVzaFRhYigpIHtcclxuICAgIGNvbnN0IGxvYWRpbmdJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJsb2FkaW5nSWNvblwiKTtcclxuICAgIGxvYWRpbmdJY29uLmNsYXNzTGlzdC5hZGQoXCJyZWZyZXNoLXRhYi1sb2FkaW5nXCIpO1xyXG4gICAgaWYgKHRoaXMudGltZXIpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcclxuICAgIH1cclxuICAgIC8vIOaooeaLn+WKoOi9vei/h+eoi++8jDHnp5LlkI7np7vpmaTliqjnlLtcclxuICAgIHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgbG9hZGluZ0ljb24uY2xhc3NMaXN0LnJlbW92ZShcInJlZnJlc2gtdGFiLWxvYWRpbmdcIik7XHJcbiAgICAgIHRoaXMudGltZXIgPSBudWxsO1xyXG4gICAgfSwgMTUwMCk7XHJcbiAgICAvLyB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHRoaXMudGFiTGlzdFt0aGlzLnNlbGVjdGVkVGFiXS51cmwpO1xyXG4gICAgLy8gdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcbiAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsOyAvLyDojrflj5blvZPliY0gVVJMXHJcbiAgICB0aGlzLm9uUmVmcmVzaFRhYi5lbWl0KGN1cnJlbnRVcmwpO1xyXG4gICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChcIi9cIiwgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoY3VycmVudFVybCk7IC8vIOmHjeaWsOWvvOiIquWIsOW9k+WJjSBVUkxcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDYWNoZSh1cmwpIHtcclxuICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodGhpcy51cmxXaXRob3V0UXVlcnkodXJsKSk7IC8vIOiwg+eUqOiHquWumuS5ieetlueVpeeahOa4hemZpOe8k+WtmOaWueazlVxyXG4gICAgdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodXJsKTtcclxuICB9XHJcbiAgY2xlYW5BbGxDYWNoZSgpIHtcclxuICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJUYWJDYWNoZVwiKTsgLy8g5riF6Zmk57yT5a2YXHJcbiAgICB0aGlzLnRhYkxpc3QgPSBbXTsgLy8g5riF56m6IHRhYiDliJfooahcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAwOyAvLyDph43nva7pgInkuK3nmoQgdGFiIOe0ouW8lVxyXG4gICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJBbGxDYWNoZSgpOyAvLyDosIPnlKjoh6rlrprkuYnnrZbnlaXnmoTmuIXpmaTnvJPlrZjmlrnms5VcclxuICB9XHJcbiAgcHJpdmF0ZSB1cmxXaXRob3V0UXVlcnkodXJsKSB7XHJcbiAgICByZXR1cm4gdXJsLnNwbGl0KFwiP1wiKVswXTtcclxuICB9XHJcbn1cclxuIl19
611
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbXVsdGktdGFiL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEU7SUFNRSwyQkFDUyxNQUFjLEVBQ2QsRUFBeUIsRUFDekIsY0FBOEIsRUFDN0IsR0FBc0IsRUFDdEIsTUFBcUIsRUFDckIsa0JBQXNDO1FBTHZDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUF1QjtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBS3ZDLG9CQUFlLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTs7UUFDNUMsc0JBQWlCLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTs7UUFDOUMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsa0JBQWEs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QUFDLGVBQWU7UUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtJQUNuRCxDQUFDOzs7Ozs7SUFDTywyQ0FBZTs7Ozs7SUFBdkIsVUFBd0IsR0FBRztRQUN6QixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7Z0JBM1VGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsd29FQUFxQzs7aUJBRXRDOzs7O2dCQWRDLE1BQU07Z0JBTUMscUJBQXFCO2dCQVI1QixjQUFjO2dCQVZkLGlCQUFpQjtnQkFtQlYsYUFBYTtnQkFGYixrQkFBa0I7OztrQ0FzQnhCLEtBQUs7b0NBQ0wsS0FBSzs4QkFDTCxLQUFLO2dDQUNMLEtBQUs7K0JBRUwsTUFBTTsyQkFlTixZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztJQXVTM0Msd0JBQUM7Q0FBQSxBQTVVRCxJQTRVQztTQXZVWSxpQkFBaUI7OztJQVc1QixzQ0FBNEI7O0lBQzVCLDRDQUF3Qzs7SUFDeEMsOENBQTBDOztJQUMxQyx3Q0FBMEI7O0lBQzFCLDBDQUE0Qjs7SUFFNUIseUNBQTRDOzs7OztJQUU1QywwQ0FBMkM7O0lBQzNDLHNDQUFnQjs7SUFDaEIsdUNBQWdCOztJQUNoQixzQ0FBZTs7SUFDZixvQ0FBUTs7SUFDUixnQ0FBa0I7O0lBQ2xCLG1DQUFZOztJQUNaLG9DQUFhOztJQUNiLHdDQUF3Qjs7SUFDeEIsb0NBQXFCOztJQUNyQix3Q0FBd0M7O0lBQ3hDLHdDQUFZOztJQXVRWixrQ0FBYTs7SUFuU1gsbUNBQXFCOztJQUNyQiwrQkFBZ0M7O0lBQ2hDLDJDQUFxQzs7Ozs7SUFDckMsZ0NBQThCOzs7OztJQUM5QixtQ0FBNkI7Ozs7O0lBQzdCLCtDQUE4QyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICBBY3RpdmF0ZWRSb3V0ZSxcclxuICBOYXZpZ2F0aW9uRW5kLFxyXG4gIFJvdXRlcixcclxuICBSb3V0ZXJPdXRsZXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgUm91dGVSZXVzZVN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBDb21tb25GdW5jdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9jb21tb24tZnVuY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcmF3ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZHJhd2VyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgS2VlcEFsaXZlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2tlZXAtYWxpdmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtbXVsdGktdGFiXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE11bHRpVGFiQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIGNmOiBDb21tb25GdW5jdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBkcmF3ZXI6IERyYXdlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlUmV1c2VTdHJhdGVneTogUm91dGVSZXVzZVN0cmF0ZWd5XHJcbiAgKSB7XHJcbiAgICB0aGlzLmtlZXBBbGl2ZSA9IHRoaXMucm91dGVSZXVzZVN0cmF0ZWd5IGFzIEtlZXBBbGl2ZVNlcnZpY2U7XHJcbiAgfVxyXG4gIGtlZXBBbGl2ZTogS2VlcEFsaXZlU2VydmljZTtcclxuICBASW5wdXQoKSBzaW5nbGVSZXVzZVVybHM6IHN0cmluZ1tdID0gW107IC8v5Y+q6IO95Y2V5Liq57yT5a2Y55qEdXJsXHJcbiAgQElucHV0KCkgbm9HZW5lcmF0ZVRhYlVybHM6IHN0cmluZ1tdID0gW107IC8v5LiN55Sf5oiQdGFi55qEdXJsXHJcbiAgQElucHV0KCkgZmxhdHRlbk1lbnUgPSBbXTtcclxuICBASW5wdXQoKSBkZWZhdWx0VGFiVXJsID0gXCJcIjtcclxuXHJcbiAgQE91dHB1dCgpIG9uUmVmcmVzaFRhYiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIFRBQl9XSURUSCA9IDE2NDtcclxuICBHQVBfTk9STUFMID0gNTQ7XHJcbiAgR0FQX1NNQUxMID0gMzA7XHJcbiAgdGV4dEdhcDsgLy8g5paH5pys5LiO6L655qGG55qE5oC76Ze06LedXHJcbiAgZm9vOiBSb3V0ZXJPdXRsZXQ7XHJcbiAgY29tUmVmOiBhbnk7XHJcbiAgdGFiTGlzdCA9IFtdO1xyXG4gIHNlbGVjdGVkVGFiOiBudW1iZXIgPSAwO1xyXG4gIG1heFRhYnM6IG51bWJlciA9IDEwO1xyXG4gIHNjcmVlbldpZHRoOiBudW1iZXIgPSB3aW5kb3cuaW5uZXJXaWR0aDsgLy8g5Yid5aeL5YyW5bGP5bmV5a695bqmXHJcbiAgdHJhbnNsYXRpb247XHJcbiAgXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7IC8vIOabtOaWsOWxj+W5leWuveW6plxyXG4gICAgLy8gdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7IOWcqOacgOWklumdouWuueWZqOiwg+eUqFxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRyYW5zbGF0aW9uXCIpKTtcclxuXHJcbiAgICB0aGlzLmluaXRUYWIoKTtcclxuICAgIC8vIOino+WGs+WIt+aWsOmhtemdouWQju+8jOmAieS4reeahCB0YWIg5Lii5aSx6Zeu6aKYXHJcbiAgICBjb25zdCBpc0V4aXN0SWR4ID0gdGhpcy50YWJMaXN0LmZpbmRJbmRleChcclxuICAgICAgKGVsZSkgPT5cclxuICAgICAgICB0aGlzLnVybFdpdGhvdXRRdWVyeShlbGUudXJsKSA9PT0gdGhpcy51cmxXaXRob3V0UXVlcnkodGhpcy5yb3V0ZXIudXJsKVxyXG4gICAgKTtcclxuICAgIGlmIChpc0V4aXN0SWR4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gaXNFeGlzdElkeDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hdmlnYXRpb24gPSB0aGlzLnJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpOyAvLyDojrflj5blvZPliY3lr7zoiKpcclxuICAgICAgICAgIGlmIChuYXZpZ2F0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZS1wb3B1cC1vcGVuXCIpO1xyXG4gICAgICAgICAgICAvLyDliKDpmaR0b29sdGlwc1xyXG4gICAgICAgICAgICB0b29sdGlwRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgICAgICBodG1sRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IG5hdmlnYXRpb24uZXh0cmFzLnN0YXRlOyAvLyDojrflj5bkvKDpgJLnmoQgc3RhdGVcclxuICAgICAgICAgICAgY29uc3Qgc2tpcExvY2F0aW9uQ2hhbmdlID0gbmF2aWdhdGlvbi5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlOyAvLyDojrflj5bmmK/lkKbot7Pov4cgbG9jYXRpb24gY2hhbmdlXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3V0ZSA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnJvb3QuZmlyc3RDaGlsZDtcclxuICAgICAgICAgICAgY29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKSB8fCBcInt9XCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgbGV0IHRpdGxlID1cclxuICAgICAgICAgICAgICAoc3RhdGUgJiYgc3RhdGVbXCJ0aXRsZVwiXSkgfHxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5mby50aXRsZSB8fFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25JbmZvLnN1YlRpdGxlIHx8XHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkluZm8ubmFtZTtcclxuXHJcbiAgICAgICAgICAgIGxldCBub1JldXNlZCA9IChzdGF0ZSAmJiBzdGF0ZVtcIm5vUmV1c2VkXCJdKSB8fCBmYWxzZTsgLy8g5b2T5YmNdGFi5LiN5aSN55So77yM5paw5byA5LiA5LiqdGFiLOW9k+acieW3sue7j+WtmOWcqOeahHRhYuaXtuWAmeS5n+aYr+aWsOW8gFxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFJvdXRlICYmICFza2lwTG9jYXRpb25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vR2VuZXJhdGVUYWJVcmxzLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVybFdpdGhvdXRRdWVyeSh0aGlzLnJvdXRlci51cmwpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47IC8vIOaOkumZpOS4jeeUn+aIkHRhYueahHVybFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNldFRhYihcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLnVybCxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZS5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRoLFxyXG4gICAgICAgICAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBub1JldXNlZFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudGFiTGlzdCA9IFtdOyAvLyDmuIXnqbogdGFiIOWIl+ihqFxyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IDA7IC8vIOmHjee9rumAieS4reeahCB0YWIg57Si5byVXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRFbGxpcHNpc1RpdGxlKHRpdGxlPykge1xyXG4gICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfTk9STUFMO1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuV2lkdGggPD0gMTEwMCkge1xyXG4gICAgICB0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9TTUFMTDtcclxuICAgIH1cclxuICAgIGxldCB7IGFsbFdpZHRoLCBsZWZ0V2lkdGgsIHJpZ2h0V2lkdGggfSA9IHRoaXMuY2FsY1RhYldpZHRoKCk7XHJcbiAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKFxyXG4gICAgICAoYWxsV2lkdGggLSByaWdodFdpZHRoKSAvICh0aGlzLnRhYkxpc3QgJiYgdGhpcy50YWJMaXN0Lmxlbmd0aClcclxuICAgICk7XHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgPyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG4gICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAxMlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJMaXN0LmZvckVhY2goKGVsZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgZWxlLmRpc3BsYXlUaXRsZSA9IHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgICBlbGUudGl0bGUsXHJcbiAgICAgICAgICB3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcbiAgICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAgIDEyXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNhbGNUYWJXaWR0aCgpIHtcclxuICAgIGNvbnN0IHdyYXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYlwiKTtcclxuICAgIGNvbnN0IHVsRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiID4gdWxcIik7XHJcbiAgICBjb25zdCByZWZyZXNoVGFiRGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWIgLnJlZnJlc2gtdGFiXCIpO1xyXG4gICAgbGV0IGFsbFdpZHRoO1xyXG4gICAgbGV0IGxlZnRXaWR0aDtcclxuICAgIGxldCByaWdodFdpZHRoO1xyXG4gICAgaWYgKHdyYXAgJiYgdWxFbGVtZW50KSB7XHJcbiAgICAgIC8vIOiOt+WPluWFg+e0oOeahOS9jee9ruS/oeaBr1xyXG4gICAgICBjb25zdCB3cmFwUmVjdCA9IHdyYXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IHVsUmVjdCA9IHVsRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgY29uc3QgcmVmcmVzaFRhYlJlY3QgPVxyXG4gICAgICAgIHJlZnJlc2hUYWJEaXYgJiYgcmVmcmVzaFRhYkRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgYWxsV2lkdGggPSB3cmFwUmVjdC53aWR0aDtcclxuICAgICAgbGVmdFdpZHRoID0gdWxSZWN0LndpZHRoO1xyXG4gICAgICByaWdodFdpZHRoID0gKHJlZnJlc2hUYWJSZWN0ICYmIHJlZnJlc2hUYWJSZWN0LndpZHRoKSB8fCAxMDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhbGxXaWR0aCxcclxuICAgICAgbGVmdFdpZHRoLFxyXG4gICAgICByaWdodFdpZHRoLFxyXG4gICAgfTtcclxuICB9XHJcbiAgaW5pdFRhYigpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwidGhpcy5mbGF0dGVuTWVudVwiLCB0aGlzLmZsYXR0ZW5NZW51KTtcclxuICAgIGxldCBUYWJDYWNoZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcIlRhYkNhY2hlXCIpKTtcclxuICAgIHRoaXMudGFiTGlzdCA9IFRhYkNhY2hlIHx8IFtdO1xyXG4gICAgaWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc3QgdGl0bGUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiZmlyc3RUYWJUaXRsZVwiKTtcclxuICAgICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICAgIHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHB1cmVVcmwgPSB0aGlzLnVybFdpdGhvdXRRdWVyeSh0aGlzLnJvdXRlci51cmwpO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuZmxhdHRlbk1lbnUuZmluZCgoZWxlKSA9PiBlbGUudXJsID09PSBwdXJlVXJsKTtcclxuICAgICAgICBpZiAodGFyZ2V0KSB7XHJcbiAgICAgICAgICBpZiAodGFyZ2V0LnVybCAhPT0gdGhpcy5kZWZhdWx0VGFiVXJsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRUYWIgPSB0aGlzLmZsYXR0ZW5NZW51LmZpbmQoXHJcbiAgICAgICAgICAgICAgKGVsZSkgPT4gZWxlLnVybCA9PT0gdGhpcy5kZWZhdWx0VGFiVXJsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMudGFiTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICB1cmw6IGRlZmF1bHRUYWIudXJsLFxyXG4gICAgICAgICAgICAgIHRpdGxlOiBkZWZhdWx0VGFiLmxhYmVsLFxyXG4gICAgICAgICAgICAgIGRpc3BsYXlUaXRsZTogZGVmYXVsdFRhYi5sYWJlbCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmFkZFRhYih0YXJnZXQudXJsLCB0YXJnZXQubGFiZWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VUYWIoaWR4LCBub0NoYW5nZT8pIHtcclxuICAgIGNvbnN0IHRhYiA9IHRoaXMudGFiTGlzdFtpZHhdO1xyXG4gICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcigoZWxlKSA9PiBlbGUudXJsICE9PSB0YWIudXJsKTtcclxuICAgIHRoaXMuY2xlYXJDYWNoZSh0YWIudXJsKTtcclxuICAgIGlmICghbm9DaGFuZ2UgJiYgdGhpcy5zZWxlY3RlZFRhYiA9PT0gaWR4KSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldElkeCA9IE1hdGgubWF4KDAsIGlkeCAtIDEpO1xyXG4gICAgICB0aGlzLmNoYW5nZVRhYih0aGlzLnRhYkxpc3RbdGFyZ2V0SWR4XSwgdGFyZ2V0SWR4KTtcclxuICAgIH1cclxuICAgIGlmIChpZHggPCB0aGlzLnNlbGVjdGVkVGFiKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLnNlbGVjdGVkVGFiIC0gMTsgLy8g5aaC5p6c5YWz6Zet55qEdGFi5Zyo5b2T5YmN6YCJ5Lit55qEdGFi5LmL5YmN77yM6YCJ5LitdGFi57Si5byV5YePMVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiVGFiQ2FjaGVcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJMaXN0KSk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVRhYih0YWIsIGlkeCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0YWIudXJsKTtcclxuICAgIGlmICh0YWIubmF2aWdhdGlvbkluZm8pIHtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICBcIm5hdmlnYXRpb25JbmZvXCIsXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGFiLm5hdmlnYXRpb25JbmZvKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRhYi5mcm9tSW5mbykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiZnJvbUluZm9cIiwgSlNPTi5zdHJpbmdpZnkodGFiLmZyb21JbmZvKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGFiLnBlcm1pc3Npb25zKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJwZXJtaXNzaW9uc1wiLCBKU09OLnN0cmluZ2lmeSh0YWIucGVybWlzc2lvbnMpKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBpZHg7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGFkZFRhYih1cmwsIHRpdGxlKSB7XHJcbiAgICBpZiAodGhpcy50YWJMaXN0Lmxlbmd0aCA+PSB0aGlzLm1heFRhYnMpIHtcclxuICAgICAgY29uc3Qgc2Vjb25kVGFiID0gdGhpcy50YWJMaXN0WzFdO1xyXG4gICAgICB0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKChlbGUpID0+IGVsZS51cmwgIT09IHNlY29uZFRhYi51cmwpO1xyXG4gICAgICB0aGlzLmNsZWFyQ2FjaGUoc2Vjb25kVGFiLnVybCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsb2NhbFBlcm1pc3Npb25zID1cclxuICAgICAgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcInBlcm1pc3Npb25zXCIpIHx8XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicGVybWlzc2lvbnNcIik7XHJcbiAgICBjb25zdCBuYXZpZ2F0aW9uSW5mbyA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcIm5hdmlnYXRpb25JbmZvXCIpKTtcclxuICAgIGNvbnN0IGZyb21JbmZvID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiZnJvbUluZm9cIikpO1xyXG4gICAgY29uc3QgcGVybWlzc2lvbnMgPSBKU09OLnBhcnNlKGxvY2FsUGVybWlzc2lvbnMpO1xyXG5cclxuICAgIHRoaXMudGFiTGlzdC5wdXNoKHtcclxuICAgICAgdXJsOiB1cmwsXHJcbiAgICAgIHRpdGxlOiB0aXRsZSB8fCBcImRlZmF1bHRcIixcclxuICAgICAgZGlzcGxheVRpdGxlOiB0aXRsZSxcclxuICAgICAgbmF2aWdhdGlvbkluZm86IG5hdmlnYXRpb25JbmZvLFxyXG4gICAgICBwZXJtaXNzaW9uczogcGVybWlzc2lvbnMsXHJcbiAgICAgIGZyb21JbmZvOiBmcm9tSW5mbyxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMudGFiTGlzdC5sZW5ndGggLSAxO1xyXG4gICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiVGFiQ2FjaGVcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJMaXN0KSk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUYWIodXJsLCBwdXJlVXJsLCB0aXRsZSwgbm9SZXVzZWQpIHtcclxuICAgIGNvbnN0IGlzRXhpc3RJZHggPSB0aGlzLnRhYkxpc3QuZmluZEluZGV4KFxyXG4gICAgICAoZWxlKSA9PiB0aGlzLnVybFdpdGhvdXRRdWVyeShlbGUudXJsKSA9PT0gdGhpcy51cmxXaXRob3V0UXVlcnkodXJsKVxyXG4gICAgKTtcclxuICAgIGlmIChpc0V4aXN0SWR4ID09PSAtMSkge1xyXG4gICAgICBjb25zdCBzaW5nbGVJZHggPSB0aGlzLnNpbmdsZVJldXNlVXJscy5maW5kSW5kZXgoXHJcbiAgICAgICAgKGVsZSkgPT4gZWxlID09PSBwdXJlVXJsXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChzaW5nbGVJZHggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcihcclxuICAgICAgICAgIChlbGUpID0+ICFlbGUudXJsLmluY2x1ZGVzKHRoaXMuc2luZ2xlUmV1c2VVcmxzW3NpbmdsZUlkeF0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHRoaXMudXJsV2l0aG91dFF1ZXJ5KHVybCkpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHVybCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB0YXJnZXRUYWJVcmwgPSB0aGlzLnRhYkxpc3RbaXNFeGlzdElkeF0udXJsO1xyXG4gICAgICBpZiAodGFyZ2V0VGFiVXJsICE9PSB1cmwgfHwgbm9SZXVzZWQpIHtcclxuICAgICAgICAvLyDlvZPnvJPlrZjkuIDoh7Tml7blgJnvvIzkvYbmmK91cmzkuI3kuIDoh7TvvIzph43mlrDmjInnhafmlrDnmoR1cmznlJ/miJB0YWJcclxuICAgICAgICB0aGlzLmNsb3NlVGFiKGlzRXhpc3RJZHgsIHRydWUpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICAgICAgfSwgMzApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMudGFiTGlzdFtpc0V4aXN0SWR4XSwgaXNFeGlzdElkeCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRhYkRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgY29uc3QgeyBwcmV2aW91c0luZGV4LCBjdXJyZW50SW5kZXggfSA9IGV2ZW50O1xyXG4gICAgY29uc29sZS5sb2coXCJwcmV2aW91c0luZGV4XCIsIHByZXZpb3VzSW5kZXgsIFwiY3VycmVudEluZGV4XCIsIGN1cnJlbnRJbmRleCk7XHJcbiAgICBpZiAocHJldmlvdXNJbmRleCA9PT0gMCB8fCBjdXJyZW50SW5kZXggPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMudGFiTGlzdCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuICB9XHJcblxyXG4gIHRpbWVyID0gbnVsbDtcclxuICByZWZyZXNoVGFiKCkge1xyXG4gICAgY29uc3QgbG9hZGluZ0ljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImxvYWRpbmdJY29uXCIpO1xyXG4gICAgbG9hZGluZ0ljb24uY2xhc3NMaXN0LmFkZChcInJlZnJlc2gtdGFiLWxvYWRpbmdcIik7XHJcbiAgICBpZiAodGhpcy50aW1lcikge1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xyXG4gICAgfVxyXG4gICAgLy8g5qih5ouf5Yqg6L296L+H56iL77yMMeenkuWQjuenu+mZpOWKqOeUu1xyXG4gICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBsb2FkaW5nSWNvbi5jbGFzc0xpc3QucmVtb3ZlKFwicmVmcmVzaC10YWItbG9hZGluZ1wiKTtcclxuICAgICAgdGhpcy50aW1lciA9IG51bGw7XHJcbiAgICB9LCAxNTAwKTtcclxuICAgIC8vIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcbiAgICAvLyB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh0aGlzLnRhYkxpc3RbdGhpcy5zZWxlY3RlZFRhYl0udXJsKTtcclxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7IC8vIOiOt+WPluW9k+WJjSBVUkxcclxuICAgIHRoaXMub25SZWZyZXNoVGFiLmVtaXQoY3VycmVudFVybCk7XHJcbiAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFwiL1wiLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChjdXJyZW50VXJsKTsgLy8g6YeN5paw5a+86Iiq5Yiw5b2T5YmNIFVSTFxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckNhY2hlKHVybCkge1xyXG4gICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh0aGlzLnVybFdpdGhvdXRRdWVyeSh1cmwpKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcbiAgICB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG4gIH1cclxuICBjbGVhbkFsbENhY2hlKCkge1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcIlRhYkNhY2hlXCIpOyAvLyDmuIXpmaTnvJPlrZhcclxuICAgIHRoaXMudGFiTGlzdCA9IFtdOyAvLyDmuIXnqbogdGFiIOWIl+ihqFxyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IDA7IC8vIOmHjee9rumAieS4reeahCB0YWIg57Si5byVXHJcbiAgICB0aGlzLmtlZXBBbGl2ZS5jbGVhckFsbENhY2hlKCk7IC8vIOiwg+eUqOiHquWumuS5ieetlueVpeeahOa4hemZpOe8k+WtmOaWueazlVxyXG4gIH1cclxuICBwcml2YXRlIHVybFdpdGhvdXRRdWVyeSh1cmwpIHtcclxuICAgIHJldHVybiB1cmwuc3BsaXQoXCI/XCIpWzBdO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -638,7 +638,7 @@ class CommonGridComponent {
638
638
  CommonGridComponent.decorators = [
639
639
  { type: Component, args: [{
640
640
  selector: "rs-common-grid",
641
- template: "<ejs-grid\r\n #grid\r\n [id]=\"gridId\"\r\n [ngClass]=\"{\r\n 'hide-Check-box': !alwaysShowCheckbox,\r\n 'grid-loading': className === 'grid-loading'\r\n }\"\r\n [dataSource]=\"dataSource\"\r\n [allowPaging]=\"allowPaging && pageSettings\"\r\n [allowResizing]=\"true\"\r\n [pageSettings]=\"pageSettings\"\r\n [showColumnMenu]=\"true\"\r\n [allowSorting]=\"true\"\r\n [allowFiltering]=\"true\"\r\n [allowExcelExport]=\"true\"\r\n [allowRowDragAndDrop]=\"allowRowDragAndDrop\"\r\n [filterSettings]=\"filterSettings\"\r\n [resizeSettings]=\"resizeSettings\"\r\n [allowSelection]=\"true\"\r\n [editSettings]=\"editSettings\"\r\n [childGrid]=\"childGrid\"\r\n [contextMenuItems]=\"dataSource && dataSource.length ? contextMenuItems : null\"\r\n [selectionSettings]=\"selectionSettings\"\r\n (recordClick)=\"_recordClick($event)\"\r\n (recordDoubleClick)=\"_recordDoubleClick($event)\"\r\n (actionBegin)=\"_actionBegin($event)\"\r\n (actionComplete)=\"_actionHandler($event)\"\r\n (rowSelected)=\"_rowSelected($event)\"\r\n (rowDeselected)=\"_rowDeselected($event)\"\r\n style=\"border: none\"\r\n (contextMenuClick)=\"_onContextMenu($event)\"\r\n (contextMenuOpen)=\"contextMenuOpen($event)\"\r\n (queryCellInfo)=\"customiseCell($event)\"\r\n (dataBound)=\"_dataBound($event)\"\r\n (rowDataBound)=\"_rowDataBound($event)\"\r\n (rowSelecting)=\"_rowSelecting($event)\"\r\n (excelQueryCellInfo)=\"_exportQueryCellInfo($event)\"\r\n (rowDrop)=\"onRowDrop($event)\"\r\n (rowDragStart)=\"_rowDragStart($event)\"\r\n (rowDrag)=\"_rowDrag($event)\"\r\n (load)=\"_load()\"\r\n [frozenColumns]=\"frozenColumns\"\r\n [columnChooserSettings]=\"columnChooserSettings\"\r\n>\r\n <e-columns>\r\n <e-column\r\n *ngIf=\"showCheckBox\"\r\n type=\"checkbox\"\r\n [width]=\"checkBoxWidth\"\r\n [showColumnMenu]=\"false\"\r\n [allowResizing]=\"false\"\r\n ></e-column>\r\n <e-column\r\n *ngFor=\"let item of fields; trackBy: trackByFn; let last = last\"\r\n [field]=\"item.columnName\"\r\n [filter]=\"item.filter ? item.filter : { type: 'CheckBox' }\"\r\n [customAttributes]=\"\r\n item.colName === 'entityUserList' || item.colName === 'kycProgress'\r\n ? { class: 'hideColumnFilterClass' }\r\n : {}\r\n \"\r\n [headerText]=\"item.columnDisplayName\"\r\n [textAlign]=\"item.textAlign\"\r\n [showColumnMenu]=\"item.showColumnMenu === undefined ? true : false\"\r\n [allowFiltering]=\"item.allowFiltering === undefined ? true : false\"\r\n [allowSorting]=\"item.allowSorting === undefined ? true : false\"\r\n [editType]=\"item.editType\"\r\n [validationRules]=\"item.validationRules\"\r\n [type]=\"item.dataType || 'string'\"\r\n [width]=\"item.width\"\r\n [minWidth]=\"item.minWidth\"\r\n [format]=\"item.format\"\r\n [visible]=\"item.visible\"\r\n [template]=\"item.showTemplate ? columnTemplate : undefined\"\r\n [clipMode]=\"\r\n item.clipMode ? item.clipMode : clipMode || 'EllipsisWithTooltip'\r\n \"\r\n [sortComparer]=\"item.dateComparer || null\"\r\n [allowResizing]=\"!last\"\r\n >\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n",
641
+ template: "<ejs-grid\r\n #grid\r\n [id]=\"gridId\"\r\n [ngClass]=\"{\r\n 'hide-Check-box': !alwaysShowCheckbox,\r\n 'grid-loading': className === 'grid-loading'\r\n }\"\r\n [dataSource]=\"dataSource\"\r\n [allowPaging]=\"allowPaging && pageSettings\"\r\n [allowResizing]=\"true\"\r\n [pageSettings]=\"pageSettings\"\r\n [showColumnMenu]=\"true\"\r\n [allowSorting]=\"true\"\r\n [allowFiltering]=\"true\"\r\n [allowExcelExport]=\"true\"\r\n [allowRowDragAndDrop]=\"allowRowDragAndDrop\"\r\n [filterSettings]=\"filterSettings\"\r\n [resizeSettings]=\"resizeSettings\"\r\n [allowSelection]=\"true\"\r\n [editSettings]=\"editSettings\"\r\n [childGrid]=\"childGrid\"\r\n [contextMenuItems]=\"dataSource && dataSource.length ? contextMenuItems : null\"\r\n [selectionSettings]=\"selectionSettings\"\r\n (recordClick)=\"_recordClick($event)\"\r\n (recordDoubleClick)=\"_recordDoubleClick($event)\"\r\n (actionBegin)=\"_actionBegin($event)\"\r\n (actionComplete)=\"_actionHandler($event)\"\r\n (rowSelected)=\"_rowSelected($event)\"\r\n (rowDeselected)=\"_rowDeselected($event)\"\r\n style=\"border: none\"\r\n (contextMenuClick)=\"_onContextMenu($event)\"\r\n (contextMenuOpen)=\"contextMenuOpen($event)\"\r\n (queryCellInfo)=\"customiseCell($event)\"\r\n (dataBound)=\"_dataBound($event)\"\r\n (rowDataBound)=\"_rowDataBound($event)\"\r\n (rowSelecting)=\"_rowSelecting($event)\"\r\n (excelQueryCellInfo)=\"_exportQueryCellInfo($event)\"\r\n (rowDrop)=\"onRowDrop($event)\"\r\n (rowDragStart)=\"_rowDragStart($event)\"\r\n (rowDrag)=\"_rowDrag($event)\"\r\n (load)=\"_load()\"\r\n [frozenColumns]=\"frozenColumns\"\r\n [columnChooserSettings]=\"columnChooserSettings\"\r\n>\r\n <e-columns>\r\n <e-column\r\n *ngIf=\"showCheckBox\"\r\n type=\"checkbox\"\r\n [width]=\"checkBoxWidth\"\r\n [minWidth]=\"checkBoxWidth\"\r\n [showColumnMenu]=\"false\"\r\n [allowResizing]=\"false\"\r\n ></e-column>\r\n <e-column\r\n *ngFor=\"let item of fields; trackBy: trackByFn; let last = last\"\r\n [field]=\"item.columnName\"\r\n [filter]=\"item.filter ? item.filter : { type: 'CheckBox' }\"\r\n [customAttributes]=\"\r\n item.colName === 'entityUserList' || item.colName === 'kycProgress'\r\n ? { class: 'hideColumnFilterClass' }\r\n : {}\r\n \"\r\n [headerText]=\"item.columnDisplayName\"\r\n [textAlign]=\"item.textAlign\"\r\n [showColumnMenu]=\"item.showColumnMenu === undefined ? true : false\"\r\n [allowFiltering]=\"item.allowFiltering === undefined ? true : false\"\r\n [allowSorting]=\"item.allowSorting === undefined ? true : false\"\r\n [editType]=\"item.editType\"\r\n [validationRules]=\"item.validationRules\"\r\n [type]=\"item.dataType || 'string'\"\r\n [width]=\"item.width\"\r\n [minWidth]=\"item.minWidth\"\r\n [format]=\"item.format\"\r\n [visible]=\"item.visible\"\r\n [template]=\"item.showTemplate ? columnTemplate : undefined\"\r\n [clipMode]=\"\r\n item.clipMode ? item.clipMode : clipMode || 'EllipsisWithTooltip'\r\n \"\r\n [sortComparer]=\"item.dateComparer || null\"\r\n [allowResizing]=\"!last\"\r\n >\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n",
642
642
  styles: [""]
643
643
  }] }
644
644
  ];
@@ -2728,7 +2728,6 @@ class MultiTabComponent {
2728
2728
  this.timer = null;
2729
2729
  this.keepAlive = (/** @type {?} */ (this.routeReuseStrategy));
2730
2730
  }
2731
- // 初始化屏幕宽度
2732
2731
  /**
2733
2732
  * @param {?} event
2734
2733
  * @return {?}
@@ -2741,6 +2740,7 @@ class MultiTabComponent {
2741
2740
  * @return {?}
2742
2741
  */
2743
2742
  ngOnInit() {
2743
+ this.translation = JSON.parse(localStorage.getItem("translation"));
2744
2744
  this.initTab();
2745
2745
  // 解决刷新页面后,选中的 tab 丢失问题
2746
2746
  /** @type {?} */
@@ -3140,7 +3140,7 @@ class MultiTabComponent {
3140
3140
  MultiTabComponent.decorators = [
3141
3141
  { type: Component, args: [{
3142
3142
  selector: "rs-multi-tab",
3143
- template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n <ul\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onTabDrop($event)\"\r\n >\r\n <li\r\n class=\"tab-item\"\r\n *ngFor=\"let tab of tabList; let i = index\"\r\n [ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n [cdkDragDisabled]=\"i === 0\"\r\n cdkDrag\r\n (click)=\"changeTab(tab, i)\"\r\n >\r\n <ng-template cdkDragPlaceholder let-item>\r\n <div class=\"placeholder\">\r\n\t\t</div>\r\n </ng-template>\r\n\t \r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n *ngIf=\"tab.displayTitle !== tab.title; else originText\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ tab.title }}\r\n </div>\r\n </ng-template>\r\n <span class=\"tabTitle\">{{ tab.displayTitle }}</span>\r\n </ejs-tooltip>\r\n <ng-template #originText>\r\n <span class=\"tabTitle\">\r\n {{ tab.displayTitle }}\r\n </span>\r\n </ng-template>\r\n <span class=\"img-block\" *ngIf=\"selectedTab !== i && i !== 0\"></span>\r\n <img\r\n *ngIf=\"i !== 0\"\r\n src=\"../../../assets/img/close-url.svg\"\r\n (click)=\"closeTab(i)\"\r\n />\r\n </li>\r\n </ul>\r\n <div class=\"refresh-tab\" (click)=\"refreshTab()\" *ngIf=\"tabList.length > 0\">\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n cssClass=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">Refresh Current Tab</div>\r\n </ng-template>\r\n <img\r\n id=\"loadingIcon\"\r\n alt\r\n class=\"refresh-btn\"\r\n src=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n />\r\n </ejs-tooltip>\r\n </div>\r\n</div>\r\n",
3143
+ template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n <ul\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onTabDrop($event)\"\r\n >\r\n <li\r\n class=\"tab-item\"\r\n *ngFor=\"let tab of tabList; let i = index\"\r\n [ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n [cdkDragDisabled]=\"i === 0\"\r\n cdkDrag\r\n (click)=\"changeTab(tab, i)\"\r\n >\r\n <ng-template cdkDragPlaceholder let-item>\r\n <div class=\"placeholder\"></div>\r\n </ng-template>\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n *ngIf=\"tab.displayTitle !== tab.title; else originText\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ tab.title }}\r\n </div>\r\n </ng-template>\r\n <span class=\"tabTitle\">{{ tab.displayTitle }}</span>\r\n </ejs-tooltip>\r\n <ng-template #originText>\r\n <span class=\"tabTitle\">\r\n {{ tab.displayTitle }}\r\n </span>\r\n </ng-template>\r\n <span class=\"img-block\" *ngIf=\"selectedTab !== i && i !== 0\"></span>\r\n <img\r\n *ngIf=\"i !== 0\"\r\n src=\"../../../assets/img/close-url.svg\"\r\n (click)=\"closeTab(i)\"\r\n />\r\n </li>\r\n </ul>\r\n <div class=\"refresh-tab\" (click)=\"refreshTab()\" *ngIf=\"tabList.length > 0\">\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n cssClass=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ translation.REFRESH_CURRENT_TAB || \".REFRESH_CURRENT_TAB\" }}\r\n </div>\r\n </ng-template>\r\n <img\r\n id=\"loadingIcon\"\r\n alt\r\n class=\"refresh-btn\"\r\n src=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n />\r\n </ejs-tooltip>\r\n </div>\r\n</div>\r\n",
3144
3144
  styles: ["@charset \"UTF-8\";.rs-multi-tab{width:100%;display:flex;justify-content:space-between;margin:0 auto;max-width:1886px}.rs-multi-tab.b-line{border-bottom:1px solid #e5eaef}.rs-multi-tab ul{display:flex;margin:0 8px;padding:0;overflow:hidden;height:100%}.rs-multi-tab ul .tab-item{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.rs-multi-tab ul .tab-item .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s}.rs-multi-tab ul .tab-item img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul .tab-item img:hover{background:#dce8f6}.rs-multi-tab ul .tab-item:not(:last-child){border-right:none}.rs-multi-tab ul .tab-item:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul .tab-item:last-child{border-top-right-radius:8px}.rs-multi-tab ul.cdk-drop-list-dragging .tab-item.cdk-drag-disabled:hover{background:#f8fafb!important;cursor:no-drop}.rs-multi-tab ul .isSelect{color:#1f3f5c;background:#fff}.rs-multi-tab ul .notSelect img{display:none}.rs-multi-tab ul .notSelect .img-block{display:inline-block;width:22px}.rs-multi-tab ul .notSelect:hover{color:#1f3f5c;background-color:rgba(31,123,255,.04)}.rs-multi-tab ul .notSelect:hover .img-block{display:none}.rs-multi-tab ul .notSelect:hover img{display:inline-block}.rs-multi-tab .refresh-tab{cursor:pointer;text-align:right;color:#6c7c90;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;padding-right:12px}.rs-multi-tab .refresh-tab img{vertical-align:middle;margin-right:4px}.refresh-tab-loading{-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.notSelectTooltip{transform:translateX(-12px)}.tab-item.cdk-drag{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.tab-item.cdk-drag .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s}.tab-item.cdk-drag img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.tab-item.cdk-drag img:hover{background:#dce8f6}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.tooltip-content{padding:4px;color:#f8fafb;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px}@media (max-width:1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width:1100px){.rs-multi-tab ul .tab-item img{position:absolute;right:3px;background-color:#fff}.notSelect:hover img{position:absolute;right:3px;background-color:#eff5fb}.img-block{display:none!important}.isSelect:not(:first-child){padding-right:20px!important}}@media (max-width:600px){.rs-multi-tab ul .tab-item{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0!important}}"]
3145
3145
  }] }
3146
3146
  ];
@@ -3200,6 +3200,8 @@ if (false) {
3200
3200
  /** @type {?} */
3201
3201
  MultiTabComponent.prototype.screenWidth;
3202
3202
  /** @type {?} */
3203
+ MultiTabComponent.prototype.translation;
3204
+ /** @type {?} */
3203
3205
  MultiTabComponent.prototype.timer;
3204
3206
  /** @type {?} */
3205
3207
  MultiTabComponent.prototype.router;