@osovitny/anatoly 3.16.43 → 3.16.45
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.
|
@@ -17,39 +17,69 @@
|
|
|
17
17
|
import { HttpResponse } from '@angular/common/http';
|
|
18
18
|
import { Injectable } from '@angular/core';
|
|
19
19
|
// RxJS
|
|
20
|
-
import { tap } from 'rxjs/operators';
|
|
20
|
+
import { catchError, mergeMap, tap } from 'rxjs/operators';
|
|
21
|
+
import { of } from 'rxjs';
|
|
21
22
|
//App
|
|
22
23
|
import { AppCoreSettings } from '../consts/settings';
|
|
23
24
|
import * as i0 from "@angular/core";
|
|
24
|
-
import * as i1 from "
|
|
25
|
-
import * as i2 from "../
|
|
25
|
+
import * as i1 from "../../iam";
|
|
26
|
+
import * as i2 from "../services/loading.service";
|
|
27
|
+
import * as i3 from "../logging/logging.service";
|
|
26
28
|
export class AnatolyHttpInterceptor {
|
|
29
|
+
authService;
|
|
27
30
|
loadingService;
|
|
28
31
|
loggingService;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
longRunningExceptions = [
|
|
33
|
+
'chunkupload',
|
|
34
|
+
];
|
|
35
|
+
authorizationTokenExceptions = [
|
|
36
|
+
'jsons',
|
|
37
|
+
'l10n'
|
|
38
|
+
];
|
|
39
|
+
autoCDNSASTokenUrls = [
|
|
40
|
+
'chunks',
|
|
41
|
+
'l10n'
|
|
42
|
+
];
|
|
43
|
+
externalSiteUrls = [
|
|
44
|
+
'azurewebsites.net'
|
|
45
|
+
];
|
|
46
|
+
constructor(authService, loadingService, loggingService) {
|
|
47
|
+
this.authService = authService;
|
|
33
48
|
this.loadingService = loadingService;
|
|
34
49
|
this.loggingService = loggingService;
|
|
35
50
|
}
|
|
51
|
+
handleHttpRequest(req, next, loadingRequired) {
|
|
52
|
+
return next.handle(req).pipe(tap({
|
|
53
|
+
next: (event) => {
|
|
54
|
+
if (event instanceof HttpResponse) {
|
|
55
|
+
this.onRequestEnd(loadingRequired);
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
error: (err) => {
|
|
59
|
+
this.onRequestEnd(loadingRequired);
|
|
60
|
+
this.loggingService.logError(err);
|
|
61
|
+
}
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
36
64
|
intercept(req, next) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const authorizationTokenRequired = true;
|
|
41
|
-
const url = req.url.toLowerCase();
|
|
42
|
-
const originalUrl = req.url;
|
|
43
|
-
let isExternalSite = false;
|
|
65
|
+
let isCDNEnabled = AppCoreSettings.IsCDNEnabled;
|
|
66
|
+
let cdnSasToken = AppCoreSettings.CDNSASToken;
|
|
67
|
+
let isLoadingFreezed = this.loadingService.isFreezed;
|
|
44
68
|
let loadingRequired = !isLoadingFreezed;
|
|
69
|
+
let url = req.url.toLowerCase();
|
|
70
|
+
let originalUrl = req.url;
|
|
71
|
+
let isExternalSite = false;
|
|
72
|
+
let authorizationTokenRequired = true;
|
|
73
|
+
//1. longRunning tasks
|
|
45
74
|
if (!isLoadingFreezed) {
|
|
46
|
-
for (const i of this.
|
|
47
|
-
if (url.indexOf(this.
|
|
75
|
+
for (const i of this.longRunningExceptions) {
|
|
76
|
+
if (url.indexOf(this.longRunningExceptions[i]) >= 0) {
|
|
48
77
|
loadingRequired = false;
|
|
49
78
|
break;
|
|
50
79
|
}
|
|
51
80
|
}
|
|
52
81
|
}
|
|
82
|
+
//2. Check should we add CDN SAS tokens
|
|
53
83
|
if (isCDNEnabled) {
|
|
54
84
|
for (const i of this.autoCDNSASTokenUrls) {
|
|
55
85
|
if (url.indexOf(this.autoCDNSASTokenUrls[i]) >= 0) {
|
|
@@ -58,13 +88,26 @@ export class AnatolyHttpInterceptor {
|
|
|
58
88
|
}
|
|
59
89
|
}
|
|
60
90
|
}
|
|
91
|
+
//3. Check is site External?
|
|
61
92
|
for (const i of this.externalSiteUrls) {
|
|
62
93
|
if (url.indexOf(this.externalSiteUrls[i]) >= 0) {
|
|
63
94
|
isExternalSite = true;
|
|
64
95
|
break;
|
|
65
96
|
}
|
|
66
97
|
}
|
|
67
|
-
//
|
|
98
|
+
//4. Is Authorization Token Required
|
|
99
|
+
if (isExternalSite) {
|
|
100
|
+
authorizationTokenRequired = false;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
for (var i = 0; i < this.authorizationTokenExceptions.length; i++) {
|
|
104
|
+
if (url.indexOf(this.authorizationTokenExceptions[i]) >= 0) {
|
|
105
|
+
authorizationTokenRequired = false;
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// VadimOS: no cashing for API calls
|
|
68
111
|
if (url.indexOf('/api/') > -1) {
|
|
69
112
|
let newUrl = '';
|
|
70
113
|
const t = new Date().getTime().toString();
|
|
@@ -79,15 +122,28 @@ export class AnatolyHttpInterceptor {
|
|
|
79
122
|
req = req.clone({ headers: req.headers.set('Accept', 'application/json') });
|
|
80
123
|
req = req.clone({ headers: req.headers.set('Accept', 'application/text') });
|
|
81
124
|
this.onRequestStart(loadingRequired);
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
125
|
+
if (authorizationTokenRequired) {
|
|
126
|
+
return this.authService.getAccessToken(req.url).pipe(mergeMap((token) => {
|
|
127
|
+
/*
|
|
128
|
+
let userEmail = this.authService.getUserEmail();
|
|
129
|
+
|
|
130
|
+
req = req.clone({ headers: req.headers.set('cli_sessionguid', MiceAppCoreSettings.SERVICES_CONF.CLI_SessionGUID) });
|
|
131
|
+
req = req.clone({ headers: req.headers.set('cskii', MiceAppCoreSettings.SERVICES_CONF.selectedClientID) });
|
|
132
|
+
req = req.clone({ headers: req.headers.set('cskii_upn', userEmail) });
|
|
133
|
+
*/
|
|
134
|
+
if (token) {
|
|
135
|
+
req = req.clone({ headers: req.headers.set('Authorization', 'Bearer ' + token) });
|
|
136
|
+
}
|
|
137
|
+
return this.handleHttpRequest(req, next, loadingRequired);
|
|
138
|
+
}), catchError(err => {
|
|
139
|
+
return of(null);
|
|
140
|
+
}));
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
return this.handleHttpRequest(req, next, loadingRequired);
|
|
144
|
+
}
|
|
90
145
|
}
|
|
146
|
+
//Events
|
|
91
147
|
onRequestStart(loadingRequired) {
|
|
92
148
|
if (loadingRequired) {
|
|
93
149
|
this.loadingService.show();
|
|
@@ -98,10 +154,10 @@ export class AnatolyHttpInterceptor {
|
|
|
98
154
|
this.loadingService.hide();
|
|
99
155
|
}
|
|
100
156
|
}
|
|
101
|
-
static ɵfac = function AnatolyHttpInterceptor_Factory(t) { return new (t || AnatolyHttpInterceptor)(i0.ɵɵinject(i1.
|
|
157
|
+
static ɵfac = function AnatolyHttpInterceptor_Factory(t) { return new (t || AnatolyHttpInterceptor)(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.LoadingService), i0.ɵɵinject(i3.LoggingService)); };
|
|
102
158
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AnatolyHttpInterceptor, factory: AnatolyHttpInterceptor.ɵfac });
|
|
103
159
|
}
|
|
104
160
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AnatolyHttpInterceptor, [{
|
|
105
161
|
type: Injectable
|
|
106
|
-
}], function () { return [{ type: i1.
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2h0dHBJbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQXVELFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3hHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTztBQUNQLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxLQUFLO0FBQ0wsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7O0FBS25ELE1BQU0sT0FBTyxzQkFBc0I7SUFLWDtJQUEwQztJQUp0RCx5QkFBeUIsR0FBRyxFQUFFLENBQUM7SUFDL0IsbUJBQW1CLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDOUMsZ0JBQWdCLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRW5ELFlBQXNCLGNBQThCLEVBQVksY0FBOEI7UUFBeEUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVksbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQzlGLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUNoRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDO1FBQ2xELE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUM7UUFFaEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUN2RCxNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQztRQUN4QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFD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Y0FBYyxDQUFDLGVBQXdCO1FBQ3JDLElBQUksZUFBZSxFQUFFO1lBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLGVBQXdCO1FBQ25DLElBQUksZUFBZSxFQUFFO1lBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO2dGQXhGVSxzQkFBc0I7Z0VBQXRCLHNCQUFzQixXQUF0QixzQkFBc0I7O3VGQUF0QixzQkFBc0I7Y0FEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNSBNYXJjaCAyMDIwXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7SHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vLyBSeEpTXHJcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQge0FwcENvcmVTZXR0aW5nc30gZnJvbSAnLi4vY29uc3RzL3NldHRpbmdzJztcclxuaW1wb3J0IHtMb2FkaW5nU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvbG9hZGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtMb2dnaW5nU2VydmljZX0gZnJvbSAnLi4vbG9nZ2luZy9sb2dnaW5nLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQW5hdG9seUh0dHBJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgcHJvdGVjdGVkIGxvbmdSdW5uaW5nRXhjZXB0aW9uc0xpc3QgPSBbXTtcclxuICBwcm90ZWN0ZWQgYXV0b0NETlNBU1Rva2VuVXJscyA9IFsnY2h1bmtzJywgJ3Jlc291cmNlcyddO1xyXG4gIHByb3RlY3RlZCBleHRlcm5hbFNpdGVVcmxzID0gWydhenVyZXdlYnNpdGVzLm5ldCddO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlLCBwcm90ZWN0ZWQgbG9nZ2luZ1NlcnZpY2U6IExvZ2dpbmdTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgIGNvbnN0IGlzQ0RORW5hYmxlZCA9IEFwcENvcmVTZXR0aW5ncy5Jc0NETkVuYWJsZWQ7XHJcbiAgICBjb25zdCBjZG5TYXNUb2tlbiA9IEFwcENvcmVTZXR0aW5ncy5DRE5TQVNUb2tlbjtcclxuXHJcbiAgICBjb25zdCBpc0xvYWRpbmdGcmVlemVkID0gdGhpcy5sb2FkaW5nU2VydmljZS5pc0ZyZWV6ZWQ7XHJcbiAgICBjb25zdCBhdXRob3JpemF0aW9uVG9rZW5SZXF1aXJlZCA9IHRydWU7XHJcbiAgICBjb25zdCB1cmwgPSByZXEudXJsLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBvcmlnaW5hbFVybCA9IHJlcS51cmw7XHJcbiAgICBsZXQgaXNFeHRlcm5hbFNpdGUgPSBmYWxzZTtcclxuICAgIGxldCBsb2FkaW5nUmVxdWlyZWQgPSAhaXNMb2FkaW5nRnJlZXplZDtcclxuXHJcbiAgICBpZiAoIWlzTG9hZGluZ0ZyZWV6ZWQpIHtcclxuICAgICAgZm9yIChjb25zdCBpIG9mIHRoaXMubG9uZ1J1bm5pbmdFeGNlcHRpb25zTGlzdCkge1xyXG4gICAgICAgIGlmICh1cmwuaW5kZXhPZih0aGlzLmxvbmdSdW5uaW5nRXhjZXB0aW9uc0xpc3RbaV0pID49IDApIHtcclxuICAgICAgICAgIGxvYWRpbmdSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzQ0RORW5hYmxlZCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy5hdXRvQ0ROU0FTVG9rZW5VcmxzKSB7XHJcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKHRoaXMuYXV0b0NETlNBU1Rva2VuVXJsc1tpXSkgPj0gMCkge1xyXG4gICAgICAgICAgcmVxID0gcmVxLmNsb25lKHsgdXJsOiBvcmlnaW5hbFVybCArIGNkblNhc1Rva2VuIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuZXh0ZXJuYWxTaXRlVXJscykge1xyXG4gICAgICBpZiAodXJsLmluZGV4T2YodGhpcy5leHRlcm5hbFNpdGVVcmxzW2ldKSA+PSAwKSB7XHJcbiAgICAgICAgaXNFeHRlcm5hbFNpdGUgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFkaW1PUzogSUUxMS1maXhcclxuICAgIGlmICh1cmwuaW5kZXhPZignL2FwaS8nKSA+IC0xKSB7XHJcbiAgICAgIGxldCBuZXdVcmwgPSAnJztcclxuICAgICAgY29uc3QgdCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICBpZiAodXJsLmluZGV4T2YoJz8nKSA+IC0xKSB7XHJcbiAgICAgICAgbmV3VXJsID0gb3JpZ2luYWxVcmwgKyAnJnQ9JyArIHQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3VXJsID0gb3JpZ2luYWxVcmwgKyAnP3Q9JyArIHQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7IHVybDogbmV3VXJsIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcSA9IHJlcS5jbG9uZSh7IGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKSB9KTtcclxuICAgIHJlcSA9IHJlcS5jbG9uZSh7IGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL3RleHQnKSB9KTtcclxuXHJcbiAgICB0aGlzLm9uUmVxdWVzdFN0YXJ0KGxvYWRpbmdSZXF1aXJlZCk7XHJcblxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShcclxuICAgICAgdGFwKFxyXG4gICAgICAgIChldmVudDogSHR0cEV2ZW50PGFueT4pID0+IHtcclxuICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uUmVxdWVzdEVuZChsb2FkaW5nUmVxdWlyZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uUmVxdWVzdEVuZChsb2FkaW5nUmVxdWlyZWQpO1xyXG4gICAgICAgICAgdGhpcy5sb2dnaW5nU2VydmljZS5sb2dFcnJvcihlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uUmVxdWVzdFN0YXJ0KGxvYWRpbmdSZXF1aXJlZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGxvYWRpbmdSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNob3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmVxdWVzdEVuZChsb2FkaW5nUmVxdWlyZWQ6IGJvb2xlYW4pIHtcclxuICAgIGlmIChsb2FkaW5nUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
162
|
+
}], function () { return [{ type: i1.AuthService }, { type: i2.LoadingService }, { type: i3.LoggingService }]; }, null); })();
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2h0dHBJbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQXVELFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3hHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTztBQUNQLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFcEMsS0FBSztBQUNMLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFNckQsTUFBTSxPQUFPLHNCQUFzQjtJQW9CckI7SUFDQTtJQUNBO0lBckJGLHFCQUFxQixHQUFHO1FBQ2hDLGFBQWE7S0FDZCxDQUFDO0lBRVEsNEJBQTRCLEdBQUc7UUFDdkMsT0FBTztRQUNQLE1BQU07S0FDUCxDQUFDO0lBRVEsbUJBQW1CLEdBQUc7UUFDOUIsUUFBUTtRQUNSLE1BQU07S0FDUCxDQUFDO0lBRVEsZ0JBQWdCLEdBQUc7UUFDM0IsbUJBQW1CO0tBQ3BCLENBQUM7SUFFRixZQUNZLFdBQXdCLEVBQ3hCLGNBQThCLEVBQzlCLGNBQThCO1FBRjlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDMUMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEdBQXFCLEVBQUUsSUFBaUIsRUFBRSxlQUF3QjtRQUMxRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENB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QUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO2FBQ0k7WUFDSCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQUVELFFBQVE7SUFDUixjQUFjLENBQUMsZUFBd0I7UUFDckMsSUFBSSxlQUFlLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsZUFBd0I7UUFDbkMsSUFBSSxlQUFlLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7Z0ZBcEpVLHNCQUFzQjtnRUFBdEIsc0JBQXNCLFdBQXRCLHNCQUFzQjs7dUZBQXRCLHNCQUFzQjtjQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI1IE1hcmNoIDIwMjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8vIFJ4SlNcclxuaW1wb3J0IHtjYXRjaEVycm9yLCBtZXJnZU1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgQXBwQ29yZVNldHRpbmdzIH0gZnJvbSAnLi4vY29uc3RzL3NldHRpbmdzJztcclxuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sb2FkaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dnaW5nU2VydmljZSB9IGZyb20gJy4uL2xvZ2dpbmcvbG9nZ2luZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9pYW0nO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQW5hdG9seUh0dHBJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgcHJvdGVjdGVkIGxvbmdSdW5uaW5nRXhjZXB0aW9ucyA9IFtcclxuICAgICdjaHVua3VwbG9hZCcsXHJcbiAgXTtcclxuXHJcbiAgcHJvdGVjdGVkIGF1dGhvcml6YXRpb25Ub2tlbkV4Y2VwdGlvbnMgPSBbXHJcbiAgICAnanNvbnMnLFxyXG4gICAgJ2wxMG4nXHJcbiAgXTtcclxuXHJcbiAgcHJvdGVjdGVkIGF1dG9DRE5TQVNUb2tlblVybHMgPSBbXHJcbiAgICAnY2h1bmtzJyxcclxuICAgICdsMTBuJ1xyXG4gIF07XHJcblxyXG4gIHByb3RlY3RlZCBleHRlcm5hbFNpdGVVcmxzID0gW1xyXG4gICAgJ2F6dXJld2Vic2l0ZXMubmV0J1xyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgbG9nZ2luZ1NlcnZpY2U6IExvZ2dpbmdTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUh0dHBSZXF1ZXN0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIsIGxvYWRpbmdSZXF1aXJlZDogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+e1xyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZSh0YXAoe1xyXG4gICAgICBuZXh0OiAoZXZlbnQ6IEh0dHBFdmVudDxhbnk+KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICB0aGlzLm9uUmVxdWVzdEVuZChsb2FkaW5nUmVxdWlyZWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMub25SZXF1ZXN0RW5kKGxvYWRpbmdSZXF1aXJlZCk7XHJcbiAgICAgICAgdGhpcy5sb2dnaW5nU2VydmljZS5sb2dFcnJvcihlcnIpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgIGxldCBpc0NETkVuYWJsZWQgPSBBcHBDb3JlU2V0dGluZ3MuSXNDRE5FbmFibGVkO1xyXG4gICAgbGV0IGNkblNhc1Rva2VuID0gQXBwQ29yZVNldHRpbmdzLkNETlNBU1Rva2VuO1xyXG4gICAgbGV0IGlzTG9hZGluZ0ZyZWV6ZWQgPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLmlzRnJlZXplZDtcclxuICAgIGxldCBsb2FkaW5nUmVxdWlyZWQgPSAhaXNMb2FkaW5nRnJlZXplZDtcclxuICAgIGxldCB1cmwgPSByZXEudXJsLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBsZXQgb3JpZ2luYWxVcmwgPSByZXEudXJsO1xyXG4gICAgbGV0IGlzRXh0ZXJuYWxTaXRlID0gZmFsc2U7XHJcbiAgICBsZXQgYXV0aG9yaXphdGlvblRva2VuUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgIC8vMS4gbG9uZ1J1bm5pbmcgdGFza3NcclxuICAgIGlmICghaXNMb2FkaW5nRnJlZXplZCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy5sb25nUnVubmluZ0V4Y2VwdGlvbnMpIHtcclxuICAgICAgICBpZiAodXJsLmluZGV4T2YodGhpcy5sb25nUnVubmluZ0V4Y2VwdGlvbnNbaV0pID49IDApIHtcclxuICAgICAgICAgIGxvYWRpbmdSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8yLiBDaGVjayBzaG91bGQgd2UgYWRkIENETiBTQVMgdG9rZW5zXHJcbiAgICBpZiAoaXNDRE5FbmFibGVkKSB7XHJcbiAgICAgIGZvciAoY29uc3QgaSBvZiB0aGlzLmF1dG9DRE5TQVNUb2tlblVybHMpIHtcclxuICAgICAgICBpZiAodXJsLmluZGV4T2YodGhpcy5hdXRvQ0ROU0FTVG9rZW5VcmxzW2ldKSA+PSAwKSB7XHJcbiAgICAgICAgICByZXEgPSByZXEuY2xvbmUoeyB1cmw6IG9yaWdpbmFsVXJsICsgY2RuU2FzVG9rZW4gfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLzMuIENoZWNrIGlzIHNpdGUgRXh0ZXJuYWw/XHJcbiAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy5leHRlcm5hbFNpdGVVcmxzKSB7XHJcbiAgICAgIGlmICh1cmwuaW5kZXhPZih0aGlzLmV4dGVybmFsU2l0ZVVybHNbaV0pID49IDApIHtcclxuICAgICAgICBpc0V4dGVybmFsU2l0ZSA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLzQuIElzIEF1dGhvcml6YXRpb24gVG9rZW4gUmVxdWlyZWRcclxuICAgIGlmIChpc0V4dGVybmFsU2l0ZSkge1xyXG4gICAgICBhdXRob3JpemF0aW9uVG9rZW5SZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hdXRob3JpemF0aW9uVG9rZW5FeGNlcHRpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKHRoaXMuYXV0aG9yaXphdGlvblRva2VuRXhjZXB0aW9uc1tpXSkgPj0gMCkge1xyXG4gICAgICAgICAgYXV0aG9yaXphdGlvblRva2VuUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhZGltT1M6IG5vIGNhc2hpbmcgZm9yIEFQSSBjYWxsc1xyXG4gICAgaWYgKHVybC5pbmRleE9mKCcvYXBpLycpID4gLTEpIHtcclxuICAgICAgbGV0IG5ld1VybCA9ICcnO1xyXG4gICAgICBjb25zdCB0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgIGlmICh1cmwuaW5kZXhPZignPycpID4gLTEpIHtcclxuICAgICAgICBuZXdVcmwgPSBvcmlnaW5hbFVybCArICcmdD0nICsgdDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBuZXdVcmwgPSBvcmlnaW5hbFVybCArICc/dD0nICsgdDtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmVxID0gcmVxLmNsb25lKHsgdXJsOiBuZXdVcmwgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVxID0gcmVxLmNsb25lKHsgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpIH0pO1xyXG4gICAgcmVxID0gcmVxLmNsb25lKHsgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vdGV4dCcpIH0pO1xyXG5cclxuICAgIHRoaXMub25SZXF1ZXN0U3RhcnQobG9hZGluZ1JlcXVpcmVkKTtcclxuXHJcbiAgICBpZiAoYXV0aG9yaXphdGlvblRva2VuUmVxdWlyZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4ocmVxLnVybCkucGlwZShcclxuICAgICAgICBtZXJnZU1hcCgodG9rZW46IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgLypcclxuICAgICAgICAgIGxldCB1c2VyRW1haWwgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJFbWFpbCgpO1xyXG5cclxuICAgICAgICAgIHJlcSA9IHJlcS5jbG9uZSh7IGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgnY2xpX3Nlc3Npb25ndWlkJywgTWljZUFwcENvcmVTZXR0aW5ncy5TRVJWSUNFU19DT05GLkNMSV9TZXNzaW9uR1VJRCkgfSk7XHJcbiAgICAgICAgICByZXEgPSByZXEuY2xvbmUoeyBoZWFkZXJzOiByZXEuaGVhZGVycy5zZXQoJ2Nza2lpJywgTWljZUFwcENvcmVTZXR0aW5ncy5TRVJWSUNFU19DT05GLnNlbGVjdGVkQ2xpZW50SUQpIH0pO1xyXG4gICAgICAgICAgcmVxID0gcmVxLmNsb25lKHsgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdjc2tpaV91cG4nLCB1c2VyRW1haWwpIH0pO1xyXG4gICAgICAgICAgKi9cclxuXHJcbiAgICAgICAgICBpZiAodG9rZW4pIHtcclxuICAgICAgICAgICAgcmVxID0gcmVxLmNsb25lKHsgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgdG9rZW4pIH0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUh0dHBSZXF1ZXN0KHJlcSwgbmV4dCwgbG9hZGluZ1JlcXVpcmVkKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVIdHRwUmVxdWVzdChyZXEsIG5leHQsIGxvYWRpbmdSZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0V2ZW50c1xyXG4gIG9uUmVxdWVzdFN0YXJ0KGxvYWRpbmdSZXF1aXJlZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGxvYWRpbmdSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNob3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmVxdWVzdEVuZChsb2FkaW5nUmVxdWlyZWQ6IGJvb2xlYW4pIHtcclxuICAgIGlmIChsb2FkaW5nUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|