@resolveio/client-lib-core 1.3.6 → 1.3.8
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.
- package/esm2020/lib/auth/auth-guard.service.mjs +17 -17
- package/fesm2015/resolveio-client-lib-core.mjs +16 -16
- package/fesm2015/resolveio-client-lib-core.mjs.map +1 -1
- package/fesm2020/resolveio-client-lib-core.mjs +16 -16
- package/fesm2020/resolveio-client-lib-core.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -54,8 +54,8 @@ export class AuthGuard {
|
|
|
54
54
|
if (user.roles.super_admin) {
|
|
55
55
|
resolve(true);
|
|
56
56
|
}
|
|
57
|
-
else if (!this.isLinkPartialRoute(view) && !user.roles.groups.
|
|
58
|
-
if (user.roles.groups.
|
|
57
|
+
else if (!this.isLinkPartialRoute(view) && !user.roles.groups.some(a => a.views.some(b => b === view))) {
|
|
58
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
59
59
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
60
60
|
this._router.navigateByUrl(link);
|
|
61
61
|
}
|
|
@@ -64,8 +64,8 @@ export class AuthGuard {
|
|
|
64
64
|
}
|
|
65
65
|
resolve(false);
|
|
66
66
|
}
|
|
67
|
-
else if (this.isLinkPartialRoute(view) && !user.roles.groups.
|
|
68
|
-
if (user.roles.groups.
|
|
67
|
+
else if (this.isLinkPartialRoute(view) && !user.roles.groups.some(a => a.views.some(b => b.startsWith(view) || view.startsWith(b)))) {
|
|
68
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
69
69
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
70
70
|
this._router.navigateByUrl(link);
|
|
71
71
|
}
|
|
@@ -78,8 +78,8 @@ export class AuthGuard {
|
|
|
78
78
|
resolve(true);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
-
else if (!this.isLinkPartialRoute(view) &&
|
|
82
|
-
if (user.roles.groups.
|
|
81
|
+
else if (!this.isLinkPartialRoute(view) && user.roles.groups.some(a => a.views.some(b => b === view))) {
|
|
82
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
83
83
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
84
84
|
this._router.navigateByUrl(link);
|
|
85
85
|
}
|
|
@@ -88,8 +88,8 @@ export class AuthGuard {
|
|
|
88
88
|
}
|
|
89
89
|
resolve(false);
|
|
90
90
|
}
|
|
91
|
-
else if (this.isLinkPartialRoute(view) &&
|
|
92
|
-
if (user.roles.groups.
|
|
91
|
+
else if (this.isLinkPartialRoute(view) && user.roles.groups.some(a => a.views.some(b => b.startsWith(view) || view.startsWith(b)))) {
|
|
92
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
93
93
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
94
94
|
this._router.navigateByUrl(link);
|
|
95
95
|
}
|
|
@@ -124,8 +124,8 @@ export class AuthGuard {
|
|
|
124
124
|
if (user.roles.super_admin) {
|
|
125
125
|
resolve(true);
|
|
126
126
|
}
|
|
127
|
-
else if (!this.isLinkPartialRoute(view) && !user.roles.groups.
|
|
128
|
-
if (user.roles.groups.
|
|
127
|
+
else if (!this.isLinkPartialRoute(view) && !user.roles.groups.some(a => a.views.some(b => b === view))) {
|
|
128
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
129
129
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
130
130
|
this._router.navigateByUrl(link);
|
|
131
131
|
}
|
|
@@ -134,8 +134,8 @@ export class AuthGuard {
|
|
|
134
134
|
}
|
|
135
135
|
resolve(false);
|
|
136
136
|
}
|
|
137
|
-
else if (this.isLinkPartialRoute(view) && !user.roles.groups.
|
|
138
|
-
if (user.roles.groups.
|
|
137
|
+
else if (this.isLinkPartialRoute(view) && !user.roles.groups.some(a => a.views.some(b => b.startsWith(view) || view.startsWith(b)))) {
|
|
138
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
139
139
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
140
140
|
this._router.navigateByUrl(link);
|
|
141
141
|
}
|
|
@@ -148,8 +148,8 @@ export class AuthGuard {
|
|
|
148
148
|
resolve(true);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
else if (!this.isLinkPartialRoute(view) &&
|
|
152
|
-
if (user.roles.groups.
|
|
151
|
+
else if (!this.isLinkPartialRoute(view) && user.roles.groups.some(a => a.views.some(b => b === view))) {
|
|
152
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
153
153
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
154
154
|
this._router.navigateByUrl(link);
|
|
155
155
|
}
|
|
@@ -158,8 +158,8 @@ export class AuthGuard {
|
|
|
158
158
|
}
|
|
159
159
|
resolve(false);
|
|
160
160
|
}
|
|
161
|
-
else if (this.isLinkPartialRoute(view) &&
|
|
162
|
-
if (user.roles.groups.
|
|
161
|
+
else if (this.isLinkPartialRoute(view) && user.roles.groups.some(a => a.views.some(b => b.startsWith(view) || view.startsWith(b)))) {
|
|
162
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
163
163
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
164
164
|
this._router.navigateByUrl(link);
|
|
165
165
|
}
|
|
@@ -221,4 +221,4 @@ AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
|
221
221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: AuthGuard, decorators: [{
|
|
222
222
|
type: Injectable
|
|
223
223
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AuthService }, { type: i3.DialogService }, { type: i4.AccountManagerService }, { type: i5.CoreService }, { type: i6.OfflineManagerService }, { type: i7.AuthPermissionService }, { type: i8.AlertService }]; } });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFlLE1BQU0sRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBRzlELE1BQU0sT0FBTyxTQUFTO0lBSXJCLFlBQW9CLE9BQWUsRUFDeEIsS0FBa0IsRUFDbEIsR0FBa0IsRUFDbEIsUUFBK0IsRUFDL0IsSUFBaUIsRUFDakIsUUFBK0IsRUFDL0IsSUFBMkIsRUFDM0IsTUFBb0I7UUFQWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUF1QjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQy9CLFNBQUksR0FBSixJ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Q0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTt3Q0FDOUgsSUFBVSxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7NENBQzNKLElBQUksSUFBSSxHQUFTLElBQUksQ0FBQyxLQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRDQUMzUSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FB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SUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVk7UUFDOUIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBRXRELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVDLElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pELElBQUksSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRS9CLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7b0JBQ3ZCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7aUJBQzVCO2FBQ0Q7U0FDRDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQzs7c0dBak9XLFNBQVM7MEdBQVQsU0FBUzsyRkFBVCxTQUFTO2tCQURyQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3VudE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuQWN0aXZhdGUsIFJvdXRlciwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9vZmZsaW5lLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBkYXRlUmV2aXZlciB9IGZyb20gJy4uL3V0aWwvY29tbW9uLmhlbHBlcic7XG5pbXBvcnQgeyBDb3JlU2VydmljZSB9IGZyb20gJy4uL2NvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuL2F1dGgtcGVybWlzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi93aWRnZXRzL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuXG5cdHJlZGlyZWN0VXJsOiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsIFxuXHRcdFx0XHRwcml2YXRlIF9hdXRoOiBBdXRoU2VydmljZSwgXG5cdFx0XHRcdHByaXZhdGUgX2RzOiBEaWFsb2dTZXJ2aWNlLFxuXHRcdFx0XHRwcml2YXRlIF9hY2NvdW50OiBBY2NvdW50TWFuYWdlclNlcnZpY2UsXG5cdFx0XHRcdHByaXZhdGUgX2FwcDogQ29yZVNlcnZpY2UsXG5cdFx0XHRcdHByaXZhdGUgX29mZmxpbmU6IE9mZmxpbmVNYW5hZ2VyU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfYXBzOiBBdXRoUGVybWlzc2lvblNlcnZpY2UsXG5cdFx0XHRcdHByaXZhdGUgX2FsZXJ0OiBBbGVydFNlcnZpY2UpIFxuXHR7fVxuXHRcblx0Y2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPnxib29sZWFuIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdHRoaXMuX2FjY291bnQuaXNJbml0Q29tcGxldGVkKCkudGhlbigoKSA9PiB7XG5cdFx0XHRcdGxldCB1c2VyID0gdGhpcy5fYWNjb3VudC5nZXRVc2VyKCk7XG5cblx0XHRcdFx0aWYgKCF1c2VyKSB7XG5cdFx0XHRcdFx0dXNlciA9IEpTT04ucGFyc2UodGhpcy5fb2ZmbGluZS5nZXRVc2VyKCksIGRhdGVSZXZpdmVyKTtcblx0XHRcdFx0XHRpZiAodXNlcikge1xuXHRcdFx0XHRcdFx0dGhpcy5fYWNjb3VudC5zZXRVc2VyKHVzZXIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICghdXNlcikge1xuXHRcdFx0XHRcdGlmIChuYXZpZ2F0b3Iub25MaW5lKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9hdXRoLmxvZ2luVXNlcigpLnRoZW4obmV3VXNlciA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2FjY291bnQuaXNMb2dpbkNvbXBsZXRlZCgpLnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHVzZXIgPSB0aGlzLl9hY2NvdW50LmdldFVzZXIoKTtcblxuXHRcdFx0XHRcdFx0XHRcdGlmICghdXNlci5hY3RpdmUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IHZpZXcgPSBzdGF0ZS51cmwucmVwbGFjZSgvXihcXC9bLWEtel0rXFwvW15cXC9dKylcXC8uKiQvLCAnJDEnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgbW9kdWxlVmlldyA9IHZpZXcucmVwbGFjZSgvXihcXC9bLWEtel0rXFwvKS4qJC8sICckMScpO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIXRoaXMuaXNMaW5rRmFrZVJvdXRlKHZpZXcpKSB7XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoKDxhbnk+dXNlci5yb2xlcykuc3VwZXJfYWRtaW4pIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGVsc2UgaWYgKCF0aGlzLmlzTGlua1BhcnRpYWxSb3V0ZSh2aWV3KSAmJiAhKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIgPT09IHZpZXcpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsZXQgbGluayA9ICg8YW55PnVzZXIucm9sZXMpLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpWzBdLnZpZXdzLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYSkgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGEpKVswXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLmlzTGlua1BhcnRpYWxSb3V0ZSh2aWV3KSAmJiAhKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aCh2aWV3KSkpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICgoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSlbMF0udmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihhKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYSkpWzBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdGVsc2UgaWYgKCF0aGlzLmlzTGlua1BhcnRpYWxSb3V0ZSh2aWV3KSAmJiAhKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIgPT09IHZpZXcpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCg8YW55PnVzZXIucm9sZXMpLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSlbMF0udmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihhKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYSkpWzBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMuaXNMaW5rUGFydGlhbFJvdXRlKHZpZXcpICYmICEoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKHZpZXcpKSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICgoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsZXQgbGluayA9ICg8YW55PnVzZXIucm9sZXMpLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpWzBdLnZpZXdzLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYSkgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGEpKVswXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0aWYgKCF1c2VyLmFjdGl2ZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRsZXQgdmlldyA9IHN0YXRlLnVybC5yZXBsYWNlKC9eKFxcL1stYS16XStcXC9bXlxcL10rKVxcLy4qJC8sICckMScpLnJlcGxhY2UoL1xcPy4rJC8sICcnKTtcblx0XHRcdFx0XHRcdGxldCBtb2R1bGVWaWV3ID0gdmlldy5yZXBsYWNlKC9eKFxcL1stYS16XStcXC8pLiokLywgJyQxJyk7XG5cblx0XHRcdFx0XHRcdGlmICghdGhpcy5pc0xpbmtGYWtlUm91dGUodmlldykpIHtcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGlmICgoPGFueT51c2VyLnJvbGVzKS5zdXBlcl9hZG1pbikge1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0ZWxzZSBpZiAoIXRoaXMuaXNMaW5rUGFydGlhbFJvdXRlKHZpZXcpICYmICEoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYiA9PT0gdmlldykpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICgoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSlbMF0udmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihhKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYSkpWzBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMuaXNMaW5rUGFydGlhbFJvdXRlKHZpZXcpICYmICEoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKHZpZXcpKSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCg8YW55PnVzZXIucm9sZXMpLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSAoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSBpZiAoIXRoaXMuaXNMaW5rUGFydGlhbFJvdXRlKHZpZXcpICYmICEoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYiA9PT0gdmlldykpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRpZiAoKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSAoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5pc0xpbmtQYXJ0aWFsUm91dGUodmlldykgJiYgISg8YW55PnVzZXIucm9sZXMpLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgodmlldykpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0aWYgKCg8YW55PnVzZXIucm9sZXMpLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSlbMF0udmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihhKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYSkpWzBdO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0sICgpID0+IHt9KTtcblx0XHR9KTtcblx0fVxuXG5cdGRvZXNMaW5rSGF2ZVBhcmFtZXRlcihsaW5rOiBzdHJpbmcpIHtcblx0XHRsZXQgcGVybWlzc2lvbnMgPSB0aGlzLl9hcHMuZ2V0QWxsTW9kdWxlUGVybWlzc2lvbnMoKTtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcGVybWlzc2lvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGxldCBwZXJtaXNzaW9uID0gcGVybWlzc2lvbnNbaV07XG5cdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IHBlcm1pc3Npb24udmlld3MubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0bGV0IHZpZXcgPSBwZXJtaXNzaW9uLnZpZXdzW2pdO1xuXG5cdFx0XHRcdGlmICh2aWV3LmxpbmsgPT09IGxpbmspIHtcblx0XHRcdFx0XHRyZXR1cm4gISF2aWV3Lmhhc19wYXJhbWV0ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpc0xpbmtGYWtlUm91dGUobGluazogc3RyaW5nKSB7XG5cdFx0bGV0IHBlcm1pc3Npb25zID0gdGhpcy5fYXBzLmdldEFsbE1vZHVsZVBlcm1pc3Npb25zKCk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zW2ldO1xuXHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBwZXJtaXNzaW9uLnZpZXdzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGxldCB2aWV3ID0gcGVybWlzc2lvbi52aWV3c1tqXTtcblxuXHRcdFx0XHRpZiAodmlldy5saW5rID09PSBsaW5rKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRpc0xpbmtQYXJ0aWFsUm91dGUobGluazogc3RyaW5nKSB7XG5cdFx0bGV0IHBlcm1pc3Npb25zID0gdGhpcy5fYXBzLmdldEFsbE1vZHVsZVBlcm1pc3Npb25zKCk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zW2ldO1xuXHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBwZXJtaXNzaW9uLnZpZXdzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGxldCB2aWV3ID0gcGVybWlzc2lvbi52aWV3c1tqXTtcblxuXHRcdFx0XHRpZiAodmlldy5saW5rID09PSBsaW5rKSB7XG5cdFx0XHRcdFx0cmV0dXJuICEhdmlldy5wYXJ0aWFsX3JvdXRlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59Il19
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFlLE1BQU0sRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBRzlELE1BQU0sT0FBTyxTQUFTO0lBSXJCLFlBQW9CLE9BQWUsRUFDeEIsS0FBa0IsRUFDbEIsR0FBa0IsRUFDbEIsUUFBK0IsRUFDL0IsSUFBaUIsRUFDakIsUUFBK0IsRUFDL0IsSUFBMkIsRUFDM0IsTUFBb0I7UUFQWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUF1QjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQXVCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQWM7SUFDOUIsQ0FBQztJQUVGLFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ3BFLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBRW5DLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ1YsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxJQUFJLEVBQUU7d0JBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQzVCO2lCQUNEO2dCQUVELElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ1YsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFO3dCQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTs0QkFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0NBQzFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dDQUUvQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtvQ0FDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7b0NBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQ0FDZjtxQ0FDSTtvQ0FDSixJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29DQUNyRixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO29DQUV6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTt3Q0FDaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTs0Q0FDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3lDQUNkOzZDQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFOzRDQUN2RyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dEQUMzSSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMs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WTtRQUM5QixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFFdEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtvQkFDdkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztpQkFDNUI7YUFDRDtTQUNEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDOztzR0FqT1csU0FBUzswR0FBVCxTQUFTOzJGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9hY2NvdW50LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSwgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9mZmxpbmVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IGRhdGVSZXZpdmVyIH0gZnJvbSAnLi4vdXRpbC9jb21tb24uaGVscGVyJztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cblx0cmVkaXJlY3RVcmw6IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciwgXG5cdFx0XHRcdHByaXZhdGUgX2F1dGg6IEF1dGhTZXJ2aWNlLCBcblx0XHRcdFx0cHJpdmF0ZSBfZHM6IERpYWxvZ1NlcnZpY2UsXG5cdFx0XHRcdHByaXZhdGUgX2FjY291bnQ6IEFjY291bnRNYW5hZ2VyU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfYXBwOiBDb3JlU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlLFxuXHRcdFx0XHRwcml2YXRlIF9hcHM6IEF1dGhQZXJtaXNzaW9uU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfYWxlcnQ6IEFsZXJ0U2VydmljZSkgXG5cdHt9XG5cdFxuXHRjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+fGJvb2xlYW4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXHRcdFx0dGhpcy5fYWNjb3VudC5pc0luaXRDb21wbGV0ZWQoKS50aGVuKCgpID0+IHtcblx0XHRcdFx0bGV0IHVzZXIgPSB0aGlzLl9hY2NvdW50LmdldFVzZXIoKTtcblxuXHRcdFx0XHRpZiAoIXVzZXIpIHtcblx0XHRcdFx0XHR1c2VyID0gSlNPTi5wYXJzZSh0aGlzLl9vZmZsaW5lLmdldFVzZXIoKSwgZGF0ZVJldml2ZXIpO1xuXHRcdFx0XHRcdGlmICh1c2VyKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9hY2NvdW50LnNldFVzZXIodXNlcik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCF1c2VyKSB7XG5cdFx0XHRcdFx0aWYgKG5hdmlnYXRvci5vbkxpbmUpIHtcblx0XHRcdFx0XHRcdHRoaXMuX2F1dGgubG9naW5Vc2VyKCkudGhlbihuZXdVc2VyID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fYWNjb3VudC5pc0xvZ2luQ29tcGxldGVkKCkudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dXNlciA9IHRoaXMuX2FjY291bnQuZ2V0VXNlcigpO1xuXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCF1c2VyLmFjdGl2ZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgdmlldyA9IHN0YXRlLnVybC5yZXBsYWNlKC9eKFxcL1stYS16XStcXC9bXlxcL10rKVxcLy4qJC8sICckMScpLnJlcGxhY2UoL1xcPy4rJC8sICcnKTtcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBtb2R1bGVWaWV3ID0gdmlldy5yZXBsYWNlKC9eKFxcL1stYS16XStcXC8pLiokLywgJyQxJyk7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdGlmICghdGhpcy5pc0xpbmtGYWtlUm91dGUodmlldykpIHtcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLnN1cGVyX2FkbWluKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIGlmICghdGhpcy5pc0xpbmtQYXJ0aWFsUm91dGUodmlldykgJiYgIXVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiID09PSB2aWV3KSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5ncm91cHMuc29tZShhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gdXNlci5yb2xlcy5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5pc0xpbmtQYXJ0aWFsUm91dGUodmlldykgJiYgIXVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgodmlldykgfHwgdmlldy5zdGFydHNXaXRoKGIpKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5ncm91cHMuc29tZShhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gdXNlci5yb2xlcy5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSBpZiAoIXRoaXMuaXNMaW5rUGFydGlhbFJvdXRlKHZpZXcpICYmIHVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiID09PSB2aWV3KSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKHVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSB1c2VyLnJvbGVzLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpWzBdLnZpZXdzLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYSkgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGEpKVswXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLmlzTGlua1BhcnRpYWxSb3V0ZSh2aWV3KSAmJiB1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKHZpZXcpIHx8IHZpZXcuc3RhcnRzV2l0aChiKSkpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gdXNlci5yb2xlcy5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdGlmICghdXNlci5hY3RpdmUpIHtcblx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0bGV0IHZpZXcgPSBzdGF0ZS51cmwucmVwbGFjZSgvXihcXC9bLWEtel0rXFwvW15cXC9dKylcXC8uKiQvLCAnJDEnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJyk7XG5cdFx0XHRcdFx0XHRsZXQgbW9kdWxlVmlldyA9IHZpZXcucmVwbGFjZSgvXihcXC9bLWEtel0rXFwvKS4qJC8sICckMScpO1xuXG5cdFx0XHRcdFx0XHRpZiAoIXRoaXMuaXNMaW5rRmFrZVJvdXRlKHZpZXcpKSB7XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5zdXBlcl9hZG1pbikge1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0ZWxzZSBpZiAoIXRoaXMuaXNMaW5rUGFydGlhbFJvdXRlKHZpZXcpICYmICF1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYiA9PT0gdmlldykpKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgbGluayA9IHVzZXIucm9sZXMuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSlbMF0udmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihhKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYSkpWzBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMuaXNMaW5rUGFydGlhbFJvdXRlKHZpZXcpICYmICF1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKHZpZXcpIHx8IHZpZXcuc3RhcnRzV2l0aChiKSkpKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgbGluayA9IHVzZXIucm9sZXMuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSlbMF0udmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihhKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYSkpWzBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2UgaWYgKCF0aGlzLmlzTGlua1BhcnRpYWxSb3V0ZSh2aWV3KSAmJiB1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYiA9PT0gdmlldykpKSB7XG5cdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gdXNlci5yb2xlcy5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5pc0xpbmtQYXJ0aWFsUm91dGUodmlldykgJiYgdXNlci5yb2xlcy5ncm91cHMuc29tZShhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aCh2aWV3KSB8fCB2aWV3LnN0YXJ0c1dpdGgoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5ncm91cHMuc29tZShhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRsZXQgbGluayA9IHVzZXIucm9sZXMuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSlbMF0udmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihhKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYSkpWzBdO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0sICgpID0+IHt9KTtcblx0XHR9KTtcblx0fVxuXG5cdGRvZXNMaW5rSGF2ZVBhcmFtZXRlcihsaW5rOiBzdHJpbmcpIHtcblx0XHRsZXQgcGVybWlzc2lvbnMgPSB0aGlzLl9hcHMuZ2V0QWxsTW9kdWxlUGVybWlzc2lvbnMoKTtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcGVybWlzc2lvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGxldCBwZXJtaXNzaW9uID0gcGVybWlzc2lvbnNbaV07XG5cdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IHBlcm1pc3Npb24udmlld3MubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0bGV0IHZpZXcgPSBwZXJtaXNzaW9uLnZpZXdzW2pdO1xuXG5cdFx0XHRcdGlmICh2aWV3LmxpbmsgPT09IGxpbmspIHtcblx0XHRcdFx0XHRyZXR1cm4gISF2aWV3Lmhhc19wYXJhbWV0ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpc0xpbmtGYWtlUm91dGUobGluazogc3RyaW5nKSB7XG5cdFx0bGV0IHBlcm1pc3Npb25zID0gdGhpcy5fYXBzLmdldEFsbE1vZHVsZVBlcm1pc3Npb25zKCk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zW2ldO1xuXHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBwZXJtaXNzaW9uLnZpZXdzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGxldCB2aWV3ID0gcGVybWlzc2lvbi52aWV3c1tqXTtcblxuXHRcdFx0XHRpZiAodmlldy5saW5rID09PSBsaW5rKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRpc0xpbmtQYXJ0aWFsUm91dGUobGluazogc3RyaW5nKSB7XG5cdFx0bGV0IHBlcm1pc3Npb25zID0gdGhpcy5fYXBzLmdldEFsbE1vZHVsZVBlcm1pc3Npb25zKCk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zW2ldO1xuXHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBwZXJtaXNzaW9uLnZpZXdzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGxldCB2aWV3ID0gcGVybWlzc2lvbi52aWV3c1tqXTtcblxuXHRcdFx0XHRpZiAodmlldy5saW5rID09PSBsaW5rKSB7XG5cdFx0XHRcdFx0cmV0dXJuICEhdmlldy5wYXJ0aWFsX3JvdXRlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59Il19
|
|
@@ -5529,8 +5529,8 @@ class AuthGuard {
|
|
|
5529
5529
|
if (user.roles.super_admin) {
|
|
5530
5530
|
resolve(true);
|
|
5531
5531
|
}
|
|
5532
|
-
else if (!this.isLinkPartialRoute(view) && !user.roles.groups.
|
|
5533
|
-
if (user.roles.groups.
|
|
5532
|
+
else if (!this.isLinkPartialRoute(view) && !user.roles.groups.some(a => a.views.some(b => b === view))) {
|
|
5533
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
5534
5534
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
5535
5535
|
this._router.navigateByUrl(link);
|
|
5536
5536
|
}
|
|
@@ -5539,8 +5539,8 @@ class AuthGuard {
|
|
|
5539
5539
|
}
|
|
5540
5540
|
resolve(false);
|
|
5541
5541
|
}
|
|
5542
|
-
else if (this.isLinkPartialRoute(view) && !user.roles.groups.
|
|
5543
|
-
if (user.roles.groups.
|
|
5542
|
+
else if (this.isLinkPartialRoute(view) && !user.roles.groups.some(a => a.views.some(b => b.startsWith(view) || view.startsWith(b)))) {
|
|
5543
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
5544
5544
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
5545
5545
|
this._router.navigateByUrl(link);
|
|
5546
5546
|
}
|
|
@@ -5553,8 +5553,8 @@ class AuthGuard {
|
|
|
5553
5553
|
resolve(true);
|
|
5554
5554
|
}
|
|
5555
5555
|
}
|
|
5556
|
-
else if (!this.isLinkPartialRoute(view) &&
|
|
5557
|
-
if (user.roles.groups.
|
|
5556
|
+
else if (!this.isLinkPartialRoute(view) && user.roles.groups.some(a => a.views.some(b => b === view))) {
|
|
5557
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
5558
5558
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
5559
5559
|
this._router.navigateByUrl(link);
|
|
5560
5560
|
}
|
|
@@ -5563,8 +5563,8 @@ class AuthGuard {
|
|
|
5563
5563
|
}
|
|
5564
5564
|
resolve(false);
|
|
5565
5565
|
}
|
|
5566
|
-
else if (this.isLinkPartialRoute(view) &&
|
|
5567
|
-
if (user.roles.groups.
|
|
5566
|
+
else if (this.isLinkPartialRoute(view) && user.roles.groups.some(a => a.views.some(b => b.startsWith(view) || view.startsWith(b)))) {
|
|
5567
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
5568
5568
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
5569
5569
|
this._router.navigateByUrl(link);
|
|
5570
5570
|
}
|
|
@@ -5599,8 +5599,8 @@ class AuthGuard {
|
|
|
5599
5599
|
if (user.roles.super_admin) {
|
|
5600
5600
|
resolve(true);
|
|
5601
5601
|
}
|
|
5602
|
-
else if (!this.isLinkPartialRoute(view) && !user.roles.groups.
|
|
5603
|
-
if (user.roles.groups.
|
|
5602
|
+
else if (!this.isLinkPartialRoute(view) && !user.roles.groups.some(a => a.views.some(b => b === view))) {
|
|
5603
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
5604
5604
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
5605
5605
|
this._router.navigateByUrl(link);
|
|
5606
5606
|
}
|
|
@@ -5609,8 +5609,8 @@ class AuthGuard {
|
|
|
5609
5609
|
}
|
|
5610
5610
|
resolve(false);
|
|
5611
5611
|
}
|
|
5612
|
-
else if (this.isLinkPartialRoute(view) && !user.roles.groups.
|
|
5613
|
-
if (user.roles.groups.
|
|
5612
|
+
else if (this.isLinkPartialRoute(view) && !user.roles.groups.some(a => a.views.some(b => b.startsWith(view) || view.startsWith(b)))) {
|
|
5613
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
5614
5614
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
5615
5615
|
this._router.navigateByUrl(link);
|
|
5616
5616
|
}
|
|
@@ -5623,8 +5623,8 @@ class AuthGuard {
|
|
|
5623
5623
|
resolve(true);
|
|
5624
5624
|
}
|
|
5625
5625
|
}
|
|
5626
|
-
else if (!this.isLinkPartialRoute(view) &&
|
|
5627
|
-
if (user.roles.groups.
|
|
5626
|
+
else if (!this.isLinkPartialRoute(view) && user.roles.groups.some(a => a.views.some(b => b === view))) {
|
|
5627
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
5628
5628
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
5629
5629
|
this._router.navigateByUrl(link);
|
|
5630
5630
|
}
|
|
@@ -5633,8 +5633,8 @@ class AuthGuard {
|
|
|
5633
5633
|
}
|
|
5634
5634
|
resolve(false);
|
|
5635
5635
|
}
|
|
5636
|
-
else if (this.isLinkPartialRoute(view) &&
|
|
5637
|
-
if (user.roles.groups.
|
|
5636
|
+
else if (this.isLinkPartialRoute(view) && user.roles.groups.some(a => a.views.some(b => b.startsWith(view) || view.startsWith(b)))) {
|
|
5637
|
+
if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
|
|
5638
5638
|
let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
|
|
5639
5639
|
this._router.navigateByUrl(link);
|
|
5640
5640
|
}
|