ets-fe-ng-sdk 1.0.54 → 1.0.57

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.
@@ -1,6 +1,7 @@
1
1
  import { Inject, Injectable, InjectionToken } from '@angular/core';
2
2
  import { timeout } from 'rxjs/operators';
3
3
  import { ETSenvironment } from '../../../environments/environment';
4
+ import { Config } from '../../configs/index.config';
4
5
  import * as i0 from "@angular/core";
5
6
  export const DEFAULT_TIMEOUT = new InjectionToken('defaultTimeout');
6
7
  export class RequestTimeoutInterceptorService {
@@ -24,7 +25,9 @@ export class RequestTimeoutInterceptorService {
24
25
  ETSenvironment.requestTimeout ||
25
26
  this.defaultTimeout;
26
27
  // console.log('timeout period',tout);
27
- return next.handle(req).pipe(timeout(tout));
28
+ return next
29
+ .handle(req)
30
+ .pipe(timeout(new Date(Config.TimeStampDay * 365 + Date.now())));
28
31
  }
29
32
  }
30
33
  RequestTimeoutInterceptorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: RequestTimeoutInterceptorService, deps: [{ token: DEFAULT_TIMEOUT }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -38,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
38
41
  type: Inject,
39
42
  args: [DEFAULT_TIMEOUT]
40
43
  }] }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC10aW1lb3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2VydmljZXMvSW50ZXJjZXB0b3JzL3JlcXVlc3QtdGltZW91dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVFuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUVuRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQVMsZ0JBQWdCLENBQUMsQ0FBQztBQUs1RSxNQUFNLE9BQU8sZ0NBQWdDO0lBQzNDLFlBQStDLGNBQXNCO1FBQXRCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO0lBQUcsQ0FBQztJQUV6RSxTQUFTLENBQ1AsR0FBcUIsRUFDckIsSUFBaUI7UUFFakIsaUVBQWlFO1FBQ2pFLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsb0NBQW9DO1FBQ3BDLHFDQUFxQztRQUNyQyw0QkFBNEI7UUFDNUIsT0FBTztRQUNQLGVBQWU7UUFDZixrQ0FBa0M7UUFDbEMsbUNBQW1DO1FBQ25DLDBCQUEwQjtRQUMxQixLQUFLO1FBQ0wsTUFBTSxJQUFJLEdBQ1IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDM0IsY0FBYyxDQUFDLGNBQWM7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN0QixzQ0FBc0M7UUFDdEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDOzs2SEF6QlUsZ0NBQWdDLGtCQUN2QixlQUFlO2lJQUR4QixnQ0FBZ0MsY0FGL0IsTUFBTTsyRkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFFYyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSW50ZXJjZXB0b3IsXG4gIEh0dHBSZXF1ZXN0LFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0aW1lb3V0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRVRTZW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FT1VUID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ2RlZmF1bHRUaW1lb3V0Jyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0VGltZW91dEludGVyY2VwdG9yU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoREVGQVVMVF9USU1FT1VUKSBwcm90ZWN0ZWQgZGVmYXVsdFRpbWVvdXQ6IG51bWJlcikge31cblxuICBpbnRlcmNlcHQoXG4gICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxuICAgIG5leHQ6IEh0dHBIYW5kbGVyXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAvLyBpZiAoK3JlcS5oZWFkZXJzLmdldCgndGltZW91dCcpIHx8IGVudmlyb25tZW50LnJlcXVlc3RUaW1lb3V0KVxuICAgIC8vICAgY29uc29sZS5sb2coXG4gICAgLy8gICAgICd0aW1lb3V0JyxcbiAgICAvLyAgICAgK3JlcS5oZWFkZXJzLmdldCgndGltZW91dCcpICxcbiAgICAvLyAgICAgICBlbnZpcm9ubWVudC5yZXF1ZXN0VGltZW91dCAsXG4gICAgLy8gICAgICAgdGhpcy5kZWZhdWx0VGltZW91dFxuICAgIC8vICAgKTtcbiAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAvLyAgICtyZXEuaGVhZGVycy5nZXQoJ3RpbWVvdXQnKSAsXG4gICAgLy8gICAgIGVudmlyb25tZW50LnJlcXVlc3RUaW1lb3V0ICxcbiAgICAvLyAgICAgdGhpcy5kZWZhdWx0VGltZW91dFxuICAgIC8vICk7XG4gICAgY29uc3QgdG91dCA9XG4gICAgICArcmVxLmhlYWRlcnMuZ2V0KCd0aW1lb3V0JykgfHxcbiAgICAgIEVUU2Vudmlyb25tZW50LnJlcXVlc3RUaW1lb3V0IHx8XG4gICAgICB0aGlzLmRlZmF1bHRUaW1lb3V0O1xuICAgIC8vIGNvbnNvbGUubG9nKCd0aW1lb3V0IHBlcmlvZCcsdG91dCk7XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZSh0aW1lb3V0KHRvdXQpKTtcbiAgfVxufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC10aW1lb3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2VydmljZXMvSW50ZXJjZXB0b3JzL3JlcXVlc3QtdGltZW91dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVFuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFcEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFTLGdCQUFnQixDQUFDLENBQUM7QUFLNUUsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUErQyxjQUFzQjtRQUF0QixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtJQUFHLENBQUM7SUFFekUsU0FBUyxDQUNQLEdBQXFCLEVBQ3JCLElBQWlCO1FBRWpCLGlFQUFpRTtRQUNqRSxpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLG9DQUFvQztRQUNwQyxxQ0FBcUM7UUFDckMsNEJBQTRCO1FBQzVCLE9BQU87UUFDUCxlQUFlO1FBQ2Ysa0NBQWtDO1FBQ2xDLG1DQUFtQztRQUNuQywwQkFBMEI7UUFDMUIsS0FBSztRQUNMLE1BQU0sSUFBSSxHQUNSLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQzNCLGNBQWMsQ0FBQyxjQUFjO1lBQzdCLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDdEIsc0NBQXNDO1FBQ3RDLE9BQU8sSUFBSTthQUNSLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDOzs2SEEzQlUsZ0NBQWdDLGtCQUN2QixlQUFlO2lJQUR4QixnQ0FBZ0MsY0FGL0IsTUFBTTsyRkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFFYyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSW50ZXJjZXB0b3IsXG4gIEh0dHBSZXF1ZXN0LFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0aW1lb3V0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRVRTZW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlncy9pbmRleC5jb25maWcnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FT1VUID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ2RlZmF1bHRUaW1lb3V0Jyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0VGltZW91dEludGVyY2VwdG9yU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoREVGQVVMVF9USU1FT1VUKSBwcm90ZWN0ZWQgZGVmYXVsdFRpbWVvdXQ6IG51bWJlcikge31cblxuICBpbnRlcmNlcHQoXG4gICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxuICAgIG5leHQ6IEh0dHBIYW5kbGVyXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAvLyBpZiAoK3JlcS5oZWFkZXJzLmdldCgndGltZW91dCcpIHx8IGVudmlyb25tZW50LnJlcXVlc3RUaW1lb3V0KVxuICAgIC8vICAgY29uc29sZS5sb2coXG4gICAgLy8gICAgICd0aW1lb3V0JyxcbiAgICAvLyAgICAgK3JlcS5oZWFkZXJzLmdldCgndGltZW91dCcpICxcbiAgICAvLyAgICAgICBlbnZpcm9ubWVudC5yZXF1ZXN0VGltZW91dCAsXG4gICAgLy8gICAgICAgdGhpcy5kZWZhdWx0VGltZW91dFxuICAgIC8vICAgKTtcbiAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAvLyAgICtyZXEuaGVhZGVycy5nZXQoJ3RpbWVvdXQnKSAsXG4gICAgLy8gICAgIGVudmlyb25tZW50LnJlcXVlc3RUaW1lb3V0ICxcbiAgICAvLyAgICAgdGhpcy5kZWZhdWx0VGltZW91dFxuICAgIC8vICk7XG4gICAgY29uc3QgdG91dCA9XG4gICAgICArcmVxLmhlYWRlcnMuZ2V0KCd0aW1lb3V0JykgfHxcbiAgICAgIEVUU2Vudmlyb25tZW50LnJlcXVlc3RUaW1lb3V0IHx8XG4gICAgICB0aGlzLmRlZmF1bHRUaW1lb3V0O1xuICAgIC8vIGNvbnNvbGUubG9nKCd0aW1lb3V0IHBlcmlvZCcsdG91dCk7XG4gICAgcmV0dXJuIG5leHRcbiAgICAgIC5oYW5kbGUocmVxKVxuICAgICAgLnBpcGUodGltZW91dChuZXcgRGF0ZShDb25maWcuVGltZVN0YW1wRGF5ICogMzY1ICsgRGF0ZS5ub3coKSkpKTtcbiAgfVxufVxuIl19
@@ -193,6 +193,16 @@ export class ApiService {
193
193
  })
194
194
  .pipe(catchError(this.handleRequestError));
195
195
  }
196
+ postWithEndorsment(route, body, extras) {
197
+ this.logRoutes('post', route, body);
198
+ console.log(body);
199
+ return this.http
200
+ .post(encodeURI(route), body, {
201
+ headers: new HttpHeaders(this.headers).set('useEndorsement', 'true'),
202
+ responseType: 'json',
203
+ })
204
+ .pipe(catchError(this.handleRequestError));
205
+ }
196
206
  postFile(route, body, extras) {
197
207
  return this.post(route, body, {
198
208
  options: {
@@ -276,6 +286,21 @@ export class ApiService {
276
286
  })
277
287
  .pipe(catchError(this.handleRequestError));
278
288
  }
289
+ putWithEndorsement(route, body, extras) {
290
+ this.logRoutes('put', route, body);
291
+ let query = route + '', nbody = body;
292
+ if (extras?.requestType == 'queryParams') {
293
+ query += this.getRequestParse(body);
294
+ nbody = null;
295
+ }
296
+ return this.http
297
+ .put(query, nbody, {
298
+ headers: new HttpHeaders(this.headers).set('useEndorsement', 'true'),
299
+ responseType: 'json',
300
+ ...extras?.options,
301
+ })
302
+ .pipe(catchError(this.handleRequestError));
303
+ }
279
304
  }
280
305
  ApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ApiService, deps: [{ token: i1.HttpClient }, { token: i2.CacheService }, { token: i3.LocalCacheService }], target: i0.ɵɵFactoryTarget.Injectable });
281
306
  ApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ApiService, providedIn: 'root' });
@@ -285,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
285
310
  providedIn: 'root',
286
311
  }]
287
312
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.CacheService }, { type: i3.LocalCacheService }]; } });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBR0wsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBTyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBWWhFLE1BQU0sT0FBTyxVQUFVO0lBYXJCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBb0IsRUFDcEIsT0FBMEI7UUFGMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBZjNCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFXZixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBZ0JmLHVCQUFrQixHQUFHLENBQUMsR0FBc0IsRUFBRSxFQUFFO1lBQ3RELElBQUksT0FBTyxDQUFDO1lBQ1osSUFBSSxHQUFHLEVBQUUsS0FBSyxZQUFZLFdBQVc7Z0JBQ25DLE9BQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDeEUsT0FBTyxVQUFVLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDO1FBOEVG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QUFHLElBQUksQ0FBQztRQUNmLElBQUksTUFBTSxFQUFFLFdBQVcsSUFBSSxhQUFhLEVBQUU7WUFDeEMsS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3RDLFlBQVksRUFBRSxNQUFNO1lBQ3BCLEdBQUcsTUFBTSxFQUFFLE9BQU87U0FDbkIsQ0FBQzthQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQW9CLENBQUM7SUFDbEUsQ0FBQzs7dUdBNVJVLFVBQVU7MkdBQVYsVUFBVSxjQUZULE1BQU07MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwQ2xpZW50LFxuICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgSHR0cEhlYWRlcnMsXG4gIEh0dHBSZXF1ZXN0LFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpaWYsIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgcmV0cnksIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElDb2RlRGVzY3JpcHRpb24sIElDb2RlVGl0bGUgfSBmcm9tICcuLi9TaGFyZWQvbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IEVUU2Vudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IENhY2hlU2VydmljZSB9IGZyb20gJy4vY2FjaGUvY2FjaGUuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbENhY2hlU2VydmljZSB9IGZyb20gJy4vY2FjaGUvbG9jYWwtY2FjaGUuc2VydmljZSc7XG5leHBvcnQgaW50ZXJmYWNlIElSZXNwb25zZSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgcmVzdWx0OiBhbnk7XG4gIHN0YXR1czogJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICdmYWlsdXJlJztcbiAgc3RhdHVzQ29kZTogJ1NNMDAwJyB8ICdTTTAwMScgfCAnU00wMDInIHwgJ1NNMDAzJztcbn1cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBcGlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzaG93Um91dGVzID0gMDtcbiAgcHJpdmF0ZSBnZXQgaGVhZGVycygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICB9O1xuICB9XG4gIHByaXZhdGUgZ2V0IGZpbGVIZWFkZXJzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBlbmN0eXBlOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsXG4gICAgfTtcbiAgfVxuICBwcml2YXRlIHJldHJ5Q291bnQgPSAwO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcbiAgICBwdWJsaWMgY2FjaGVTOiBDYWNoZVNlcnZpY2UsXG4gICAgcHVibGljIGxDYWNoZVM6IExvY2FsQ2FjaGVTZXJ2aWNlXG4gICkge31cblxuICBwcml2YXRlIGxvZ1JvdXRlcyhcbiAgICBtZXRob2Q6ICdnZXQnIHwgJ3Bvc3QnIHwgJ3B1dCcgfCAnZGVsZXRlJyxcbiAgICByb3V0ZSxcbiAgICAuLi5leHRyYXNcbiAgKSB7XG4gICAgaWYgKHRoaXMuc2hvd1JvdXRlcykge1xuICAgICAgY29uc29sZS5sb2cobWV0aG9kLCByb3V0ZSwgLi4uZXh0cmFzKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBoYW5kbGVSZXF1ZXN0RXJyb3IgPSAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgIGxldCBtZXNzYWdlO1xuICAgIGlmIChlcnI/LmVycm9yIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpXG4gICAgICBtZXNzYWdlID0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDhBcnJheShlcnI/LmVycm9yKSk7XG4gICAgcmV0dXJuIHRocm93RXJyb3IobWVzc2FnZSB8fCBlcnI/LmVycm9yPy5tZXNzYWdlKTtcbiAgfTtcblxuICAvLyNyZWdpb24gUEFUQ0hcbiAgcGF0Y2g8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT8sIG9wdGlvbnM/OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygncG9zdCcsIHJvdXRlLCBib2R5KTtcbiAgICBjb25zb2xlLmxvZyhib2R5KTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucGF0Y2goZW5jb2RlVVJJKHJvdXRlKSwgYm9keSwge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfVxuICAvLyNlbmRyZWdpb25cbiAgLy8jcmVnaW9uIFBPU1RcbiAgcG9zdDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5PywgZXh0cmFzPzogSUV4dHJhcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdwb3N0Jywgcm91dGUsIGJvZHkpO1xuICAgIGNvbnNvbGUubG9nKGJvZHkpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KGVuY29kZVVSSShyb3V0ZSksIGJvZHksIHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAuLi5leHRyYXM/Lm9wdGlvbnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfVxuICBwb3N0RmlsZTxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5OiBGb3JtRGF0YSwgZXh0cmFzPzogSUV4dHJhcykge1xuICAgIHJldHVybiB0aGlzLnBvc3Q8VD4ocm91dGUsIGJvZHksIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuZmlsZUhlYWRlcnMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwb3N0RmlsZVdpdGhFbmRvcnNlbWVudDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5OiBGb3JtRGF0YSkge1xuICAgIHJldHVybiB0aGlzLnBvc3Q8VD4ocm91dGUsIGJvZHksIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuZmlsZUhlYWRlcnMpLnNldChcbiAgICAgICAgICAndXNlRW5kb3JzZW1lbnQnLFxuICAgICAgICAgICd0cnVlJ1xuICAgICAgICApLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcG9zdFN0cmluZyhyb3V0ZTogc3RyaW5nLCBib2R5Pykge1xuICAgIGNvbnNvbGUubG9nKCdyZXF1ZXN0Q291bnQnLCArK0VUU2Vudmlyb25tZW50LnJlcXVlc3RDb3VudCk7XG4gICAgcmV0dXJuIHRoaXMucG9zdDxzdHJpbmc+KHJvdXRlLCBib2R5LCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgfSksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwb3N0U3RyaW5nV2l0aExvY2FsQ2FjaGUocm91dGU6IHN0cmluZywgYm9keTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKHJlcykgPT4ge1xuICAgICAgY29uc3QgYmR5ID0gYm9keT8udHJpbSgpO1xuICAgICAgLy8gZGVidWdnZXJcbiAgICAgIGlmICh0aGlzLmxDYWNoZVMuaGFzKHJvdXRlICsgJ18nICsgYmR5KSkge1xuICAgICAgICByZXMubmV4dCh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxzdHJpbmc+KHJvdXRlICsgJ18nICsgYmR5KSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucG9zdFN0cmluZyhyb3V0ZSwgYmR5KVxuICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICByZXMubmV4dChyKTtcbiAgICAgICAgICB0aGlzLmxDYWNoZVMuc2V0SXRlbShyb3V0ZSArICdfJyArIGJkeSwgcik7XG4gICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIHJlcy5lcnJvcihlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIEdFVFxuICAvKipcbiAgICogUGVyZm9ybSBhIEdFVCByZXF1ZXN0XG4gICAqIEBwYXJhbSByb3V0ZSBBUEkgZW5kcG9pbnRcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgT2JqZWN0IHRvIGNvbnZlcnQgaW50byBxdWVyeXBhcmFtc1xuICAgKiBAcGFyYW0gZXh0cmFzIEV4dHJhIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgcmVxdWVzdFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0ID0gPFQgPSBhbnk+KFxuICAgIHJvdXRlOiBzdHJpbmcsXG4gICAgcGFyYW1ldGVycz86IHsgW2ZpZWxkOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0sXG4gICAgZXh0cmFzPzogSUV4dHJhc1xuICApOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygnZ2V0Jywgcm91dGUsIHBhcmFtZXRlcnMpO1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPigocmVzKSA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IHJvdXRlICsgdGhpcy5nZXRSZXF1ZXN0UGFyc2UocGFyYW1ldGVycyk7XG4gICAgICAvLyBpZiAodGhpcy5jYWNoZVMuaGFzKHF1ZXJ5KSkge1xuICAgICAgLy8gICByZXMubmV4dCh0aGlzLmNhY2hlUy5nZXRJdGVtPFQ+KHJvdXRlKSk7XG4gICAgICAvLyB9XG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldChxdWVyeSwge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAgIC4uLmV4dHJhcz8ub3B0aW9ucyxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgcmV0cnkodGhpcy5yZXRyeUNvdW50KSxcbiAgICAgICAgICB0YXAoKHgpID0+ICh0aGlzLnNob3dSb3V0ZXMgPyBjb25zb2xlLmxvZyh4KSA6IG51bGwpKSxcbiAgICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMpKVxuICAgICAgICAgICAgICBpZiAocmVzWzBdPy5jb2RlKSByZXR1cm4gcmVzLnNvcnQoKS5zb3J0MignY29kZScsIHRydWUpO1xuICAgICAgICAgICAgICBlbHNlIGlmIChyZXNbMF0/LmNvbHVtbk5hbWUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zb3J0KCkuc29ydDIoJ2NvbHVtbk5hbWUnLCB0cnVlKTtcbiAgICAgICAgICAgICAgZWxzZSByZXR1cm4gcmVzLnNvcnQoKTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcilcbiAgICAgICAgKVxuICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICByZXMubmV4dChyKTtcbiAgICAgICAgICB0aGlzLmNhY2hlUy5zZXRJdGVtKHF1ZXJ5LCByKTtcbiAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHJlcy5lcnJvcihlcnIpKTtcbiAgICB9KTtcbiAgfTtcblxuICBnZXRDb2RlcyA9IDxUID0gSUNvZGVUaXRsZSAmIElDb2RlRGVzY3JpcHRpb24+KHJvdXRlOiBzdHJpbmcpID0+XG4gICAgdGhpcy5nZXQ8VFtdPihyb3V0ZSkucGlwZShtYXAoKHJlcykgPT4gdGhpcy5zb3J0Q29kZXMocmVzKSkpO1xuXG4gIGdldFRleHQgPSA8VCA9IHN0cmluZz4oXG4gICAgcm91dGU6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzPzogeyBbZmllbGQ6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfVxuICApID0+XG4gICAgdGhpcy5nZXQ8VD4ocm91dGUsIHBhcmFtZXRlcnMsIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgZ2V0RmlsZSA9IDxUID0gc3RyaW5nPihcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM/OiB7IFtmaWVsZDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB9XG4gICkgPT5cbiAgICB0aGlzLmdldDxUPihyb3V0ZSwgcGFyYW1ldGVycywge1xuICAgICAgb3B0aW9uczoge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlCdWZmZXInLFxuICAgICAgfSxcbiAgICB9KTtcbiAgZ2V0V2l0aEJvZHkgPSA8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT86IGFueSwgZXh0cmFzPzogSUV4dHJhcykgPT4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdnZXQnLCByb3V0ZSk7XG4gICAgLy8gZGVidWdnZXJcbiAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoXG4gICAgICAnR0VUJyxcbiAgICAgIHJvdXRlLFxuICAgICAgYm9keSxcbiAgICAgIGV4dHJhcz8ub3B0aW9ucyB8fCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5yZXF1ZXN0PFQ+KHJlcSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9O1xuXG4gIGdldEZyb21sb2NhbCA9IDxUID0gYW55PihcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM/OiBPYmplY3QsXG4gICAgb3B0aW9ucz86IGFueVxuICApID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oKHJlcykgPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSByb3V0ZSArIHRoaXMuZ2V0UmVxdWVzdFBhcnNlKHBhcmFtZXRlcnMpO1xuICAgICAgaWYgKHRoaXMubENhY2hlUy5oYXMocXVlcnkpKSB7XG4gICAgICAgIHJlcy5uZXh0KHRoaXMubENhY2hlUy5nZXRJdGVtPFQ+KHF1ZXJ5KSk7XG4gICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgfSBlbHNlXG4gICAgICAgIHRoaXMuZ2V0KHF1ZXJ5LCBudWxsLCBvcHRpb25zKVxuICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAgIC50aGVuKChyKSA9PiB7XG4gICAgICAgICAgICAvLyBpZiAoIXRoaXMuY1MuaGFzKHJvdXRlKSlcbiAgICAgICAgICAgIHJlcy5uZXh0KHIpO1xuICAgICAgICAgICAgdGhpcy5sQ2FjaGVTLnNldEl0ZW0ocXVlcnksIHIpO1xuICAgICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG4gIGdldFdpdGhMb2NhbENhY2hlID0gPFQgPSBhbnk+KFxuICAgIHJvdXRlOiBzdHJpbmcsXG4gICAgcGFyYW1ldGVycz86IE9iamVjdCxcbiAgICBvcHRpb25zPzogYW55XG4gICkgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPigocmVzKSA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IHJvdXRlICsgdGhpcy5nZXRSZXF1ZXN0UGFyc2UocGFyYW1ldGVycyk7XG4gICAgICBpZiAodGhpcy5sQ2FjaGVTLmhhcyhxdWVyeSkpIHtcbiAgICAgICAgcmVzLm5leHQodGhpcy5sQ2FjaGVTLmdldEl0ZW08VD4ocXVlcnkpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0KHF1ZXJ5LCBudWxsLCBvcHRpb25zKVxuICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICAvLyBpZiAoIXRoaXMuY1MuaGFzKHJvdXRlKSlcbiAgICAgICAgICByZXMubmV4dChyKTtcbiAgICAgICAgICB0aGlzLmxDYWNoZVMuc2V0SXRlbShxdWVyeSwgcik7XG4gICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIHJlcy5lcnJvcihlKTtcbiAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG4gIGdldFJlcXVlc3RQYXJzZShwYXJhbWV0ZXJzPzogT2JqZWN0KSB7XG4gICAgLy8gY29uc3QgbmJvZHkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgLy8gZm9yIChjb25zdCBrZXkgaW4gcGFyYW1ldGVycykge1xuICAgIC8vICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJhbWV0ZXJzLCBrZXkpKSB7XG4gICAgLy8gICAgIGNvbnN0IGVsZW1lbnQgPSBwYXJhbWV0ZXJzW2tleV07XG4gICAgLy8gICAgIGlmIChlbGVtZW50ICE9IG51bGwpIG5ib2R5LnNldChrZXksIGVsZW1lbnQgKyAnJyk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIC8vIGNvbnN0IHN0ciA9IG5ib2R5LnRvU3RyaW5nKCk7XG4gICAgLy8gaWYocGFyYW1ldGVycylcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAoIXBhcmFtZXRlcnMpIHJldHVybiAnJztcbiAgICByZXR1cm4gKFxuICAgICAgJz8nICtcbiAgICAgIE9iamVjdC5rZXlzKHBhcmFtZXRlcnMpXG4gICAgICAgIC5maWx0ZXIoKGtleSkgPT4gcGFyYW1ldGVyc1trZXldPy50b1N0cmluZygpPy50cmltKCkgIT0gbnVsbClcbiAgICAgICAgLm1hcCgoa2V5KSA9PiBgJHtrZXl9PSR7cGFyYW1ldGVyc1trZXldPy50b1N0cmluZygpPy50cmltKCl9YClcbiAgICAgICAgLmpvaW4oJyYnKVxuICAgICk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFBVVFxuICBwdXQ8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT8sIGV4dHJhcz86IElFeHRyYXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygncHV0Jywgcm91dGUsIGJvZHkpO1xuICAgIGxldCBxdWVyeSA9IHJvdXRlICsgJycsXG4gICAgICBuYm9keSA9IGJvZHk7XG4gICAgaWYgKGV4dHJhcz8ucmVxdWVzdFR5cGUgPT0gJ3F1ZXJ5UGFyYW1zJykge1xuICAgICAgcXVlcnkgKz0gdGhpcy5nZXRSZXF1ZXN0UGFyc2UoYm9keSk7XG4gICAgICBuYm9keSA9IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wdXQocXVlcnksIG5ib2R5LCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPGFueT47XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIERFTEVURVxuICBkZWxldGUgPSA8VCA9IGFueT4ocm91dGU6IHN0cmluZywgb3B0aW9ucz8pID0+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygnZGVsZXRlJywgcm91dGUpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5kZWxldGU8VD4oXG4gICAgICAgIHJvdXRlLFxuICAgICAgICBvcHRpb25zIHx8IHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfTtcbiAgZGVsZXRlV2l0aEJvZHkgPSA8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT86IGFueSwgb3B0aW9ucz8pID0+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygnZGVsZXRlJywgcm91dGUpO1xuICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdChcbiAgICAgICdERUxFVEUnLFxuICAgICAgcm91dGUsXG4gICAgICBib2R5LFxuICAgICAgb3B0aW9ucyB8fCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5yZXF1ZXN0PFQ+KHJlcSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPGFueT47XG4gIH07XG4gIGRlbGV0ZVRleHQgPSAocm91dGU6IHN0cmluZykgPT5cbiAgICB0aGlzLmRlbGV0ZTxzdHJpbmc+KHJvdXRlLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pO1xuICAvLyNlbmRyZWdpb25cblxuICBzb3J0Q29kZXMgPSA8VD4oZGF0YTogVFtdKSA9PiB7XG4gICAgcmV0dXJuIGRhdGE/LnNvcnQyKCdjb2RlJywgdHJ1ZSk/LnNvcnQyKCdjb2RlJykgYXMgYW55IGFzIFRbXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIElFeHRyYXMge1xuICBub0Zvcm1hdD86IGJvb2xlYW47XG4gIG9wdGlvbnM/OiBhbnk7XG4gIHJlcXVlc3RUeXBlPzogJ3F1ZXJ5UGFyYW1zJztcbn1cbiJdfQ==
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBR0wsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBTyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBWWhFLE1BQU0sT0FBTyxVQUFVO0lBYXJCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBb0IsRUFDcEIsT0FBMEI7UUFGMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBZjNCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFXZixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBZ0JmLHVCQUFrQixHQUFHLENBQUMsR0FBc0IsRUFBRSxFQUFFO1lBQ3RELElBQUksT0FBTyxDQUFDO1lBQ1osSUFBSSxHQUFHLEVBQUUsS0FBSyxZQUFZLFdBQVc7Z0JBQ25DLE9BQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDeEUsT0FBTyxVQUFVLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDO1FBd0ZG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QUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsRUFDcEIsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNmLElBQUksTUFBTSxFQUFFLFdBQVcsSUFBSSxhQUFhLEVBQUU7WUFDeEMsS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztZQUNwRSxZQUFZLEVBQUUsTUFBTTtZQUNwQixHQUFHLE1BQU0sRUFBRSxPQUFPO1NBQ25CLENBQUM7YUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFvQixDQUFDO0lBQ2xFLENBQUM7O3VHQXRUVSxVQUFVOzJHQUFWLFVBQVUsY0FGVCxNQUFNOzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSHR0cENsaWVudCxcbiAgSHR0cEVycm9yUmVzcG9uc2UsXG4gIEh0dHBIZWFkZXJzLFxuICBIdHRwUmVxdWVzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaWlmLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJQ29kZURlc2NyaXB0aW9uLCBJQ29kZVRpdGxlIH0gZnJvbSAnLi4vU2hhcmVkL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBFVFNlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlL2NhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlL2xvY2FsLWNhY2hlLnNlcnZpY2UnO1xuZXhwb3J0IGludGVyZmFjZSBJUmVzcG9uc2Uge1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJlc3VsdDogYW55O1xuICBzdGF0dXM6ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnZmFpbHVyZSc7XG4gIHN0YXR1c0NvZGU6ICdTTTAwMCcgfCAnU00wMDEnIHwgJ1NNMDAyJyB8ICdTTTAwMyc7XG59XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBpU2VydmljZSB7XG4gIHByaXZhdGUgc2hvd1JvdXRlcyA9IDA7XG4gIHByaXZhdGUgZ2V0IGhlYWRlcnMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfTtcbiAgfVxuICBwcml2YXRlIGdldCBmaWxlSGVhZGVycygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZW5jdHlwZTogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSByZXRyeUNvdW50ID0gMDtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHVibGljIGNhY2hlUzogQ2FjaGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBsQ2FjaGVTOiBMb2NhbENhY2hlU2VydmljZVxuICApIHt9XG5cbiAgcHJpdmF0ZSBsb2dSb3V0ZXMoXG4gICAgbWV0aG9kOiAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZScsXG4gICAgcm91dGUsXG4gICAgLi4uZXh0cmFzXG4gICkge1xuICAgIGlmICh0aGlzLnNob3dSb3V0ZXMpIHtcbiAgICAgIGNvbnNvbGUubG9nKG1ldGhvZCwgcm91dGUsIC4uLmV4dHJhcyk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaGFuZGxlUmVxdWVzdEVycm9yID0gKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICBsZXQgbWVzc2FnZTtcbiAgICBpZiAoZXJyPy5lcnJvciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKVxuICAgICAgbWVzc2FnZSA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgbmV3IFVpbnQ4QXJyYXkoZXJyPy5lcnJvcikpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKG1lc3NhZ2UgfHwgZXJyPy5lcnJvcj8ubWVzc2FnZSk7XG4gIH07XG5cbiAgLy8jcmVnaW9uIFBBVENIXG4gIHBhdGNoPFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk/LCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ3Bvc3QnLCByb3V0ZSwgYm9keSk7XG4gICAgY29uc29sZS5sb2coYm9keSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBhdGNoKGVuY29kZVVSSShyb3V0ZSksIGJvZHksIHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPGFueT47XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG4gIC8vI3JlZ2lvbiBQT1NUXG4gIHBvc3Q8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT8sIGV4dHJhcz86IElFeHRyYXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygncG9zdCcsIHJvdXRlLCBib2R5KTtcbiAgICBjb25zb2xlLmxvZyhib2R5KTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChlbmNvZGVVUkkocm91dGUpLCBib2R5LCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPGFueT47XG4gIH1cbiAgcG9zdFdpdGhFbmRvcnNtZW50PFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk/LCBleHRyYXM/OiBJRXh0cmFzKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ3Bvc3QnLCByb3V0ZSwgYm9keSk7XG4gICAgY29uc29sZS5sb2coYm9keSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoZW5jb2RlVVJJKHJvdXRlKSwgYm9keSwge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKS5zZXQoJ3VzZUVuZG9yc2VtZW50JywgJ3RydWUnKSxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfVxuICBwb3N0RmlsZTxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5OiBGb3JtRGF0YSwgZXh0cmFzPzogSUV4dHJhcykge1xuICAgIHJldHVybiB0aGlzLnBvc3Q8VD4ocm91dGUsIGJvZHksIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuZmlsZUhlYWRlcnMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwb3N0RmlsZVdpdGhFbmRvcnNlbWVudDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5OiBGb3JtRGF0YSkge1xuICAgIHJldHVybiB0aGlzLnBvc3Q8VD4ocm91dGUsIGJvZHksIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuZmlsZUhlYWRlcnMpLnNldChcbiAgICAgICAgICAndXNlRW5kb3JzZW1lbnQnLFxuICAgICAgICAgICd0cnVlJ1xuICAgICAgICApLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcG9zdFN0cmluZyhyb3V0ZTogc3RyaW5nLCBib2R5Pykge1xuICAgIGNvbnNvbGUubG9nKCdyZXF1ZXN0Q291bnQnLCArK0VUU2Vudmlyb25tZW50LnJlcXVlc3RDb3VudCk7XG4gICAgcmV0dXJuIHRoaXMucG9zdDxzdHJpbmc+KHJvdXRlLCBib2R5LCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgfSksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwb3N0U3RyaW5nV2l0aExvY2FsQ2FjaGUocm91dGU6IHN0cmluZywgYm9keTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKHJlcykgPT4ge1xuICAgICAgY29uc3QgYmR5ID0gYm9keT8udHJpbSgpO1xuICAgICAgLy8gZGVidWdnZXJcbiAgICAgIGlmICh0aGlzLmxDYWNoZVMuaGFzKHJvdXRlICsgJ18nICsgYmR5KSkge1xuICAgICAgICByZXMubmV4dCh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxzdHJpbmc+KHJvdXRlICsgJ18nICsgYmR5KSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucG9zdFN0cmluZyhyb3V0ZSwgYmR5KVxuICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICByZXMubmV4dChyKTtcbiAgICAgICAgICB0aGlzLmxDYWNoZVMuc2V0SXRlbShyb3V0ZSArICdfJyArIGJkeSwgcik7XG4gICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIHJlcy5lcnJvcihlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIEdFVFxuICAvKipcbiAgICogUGVyZm9ybSBhIEdFVCByZXF1ZXN0XG4gICAqIEBwYXJhbSByb3V0ZSBBUEkgZW5kcG9pbnRcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgT2JqZWN0IHRvIGNvbnZlcnQgaW50byBxdWVyeXBhcmFtc1xuICAgKiBAcGFyYW0gZXh0cmFzIEV4dHJhIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgcmVxdWVzdFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0ID0gPFQgPSBhbnk+KFxuICAgIHJvdXRlOiBzdHJpbmcsXG4gICAgcGFyYW1ldGVycz86IHsgW2ZpZWxkOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0sXG4gICAgZXh0cmFzPzogSUV4dHJhc1xuICApOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygnZ2V0Jywgcm91dGUsIHBhcmFtZXRlcnMpO1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPigocmVzKSA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IHJvdXRlICsgdGhpcy5nZXRSZXF1ZXN0UGFyc2UocGFyYW1ldGVycyk7XG4gICAgICAvLyBpZiAodGhpcy5jYWNoZVMuaGFzKHF1ZXJ5KSkge1xuICAgICAgLy8gICByZXMubmV4dCh0aGlzLmNhY2hlUy5nZXRJdGVtPFQ+KHJvdXRlKSk7XG4gICAgICAvLyB9XG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldChxdWVyeSwge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAgIC4uLmV4dHJhcz8ub3B0aW9ucyxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgcmV0cnkodGhpcy5yZXRyeUNvdW50KSxcbiAgICAgICAgICB0YXAoKHgpID0+ICh0aGlzLnNob3dSb3V0ZXMgPyBjb25zb2xlLmxvZyh4KSA6IG51bGwpKSxcbiAgICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMpKVxuICAgICAgICAgICAgICBpZiAocmVzWzBdPy5jb2RlKSByZXR1cm4gcmVzLnNvcnQoKS5zb3J0MignY29kZScsIHRydWUpO1xuICAgICAgICAgICAgICBlbHNlIGlmIChyZXNbMF0/LmNvbHVtbk5hbWUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zb3J0KCkuc29ydDIoJ2NvbHVtbk5hbWUnLCB0cnVlKTtcbiAgICAgICAgICAgICAgZWxzZSByZXR1cm4gcmVzLnNvcnQoKTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcilcbiAgICAgICAgKVxuICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICByZXMubmV4dChyKTtcbiAgICAgICAgICB0aGlzLmNhY2hlUy5zZXRJdGVtKHF1ZXJ5LCByKTtcbiAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHJlcy5lcnJvcihlcnIpKTtcbiAgICB9KTtcbiAgfTtcblxuICBnZXRDb2RlcyA9IDxUID0gSUNvZGVUaXRsZSAmIElDb2RlRGVzY3JpcHRpb24+KHJvdXRlOiBzdHJpbmcpID0+XG4gICAgdGhpcy5nZXQ8VFtdPihyb3V0ZSkucGlwZShtYXAoKHJlcykgPT4gdGhpcy5zb3J0Q29kZXMocmVzKSkpO1xuXG4gIGdldFRleHQgPSA8VCA9IHN0cmluZz4oXG4gICAgcm91dGU6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzPzogeyBbZmllbGQ6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfVxuICApID0+XG4gICAgdGhpcy5nZXQ8VD4ocm91dGUsIHBhcmFtZXRlcnMsIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgZ2V0RmlsZSA9IDxUID0gc3RyaW5nPihcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM/OiB7IFtmaWVsZDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB9XG4gICkgPT5cbiAgICB0aGlzLmdldDxUPihyb3V0ZSwgcGFyYW1ldGVycywge1xuICAgICAgb3B0aW9uczoge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlCdWZmZXInLFxuICAgICAgfSxcbiAgICB9KTtcbiAgZ2V0V2l0aEJvZHkgPSA8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT86IGFueSwgZXh0cmFzPzogSUV4dHJhcykgPT4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdnZXQnLCByb3V0ZSk7XG4gICAgLy8gZGVidWdnZXJcbiAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoXG4gICAgICAnR0VUJyxcbiAgICAgIHJvdXRlLFxuICAgICAgYm9keSxcbiAgICAgIGV4dHJhcz8ub3B0aW9ucyB8fCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5yZXF1ZXN0PFQ+KHJlcSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9O1xuXG4gIGdldEZyb21sb2NhbCA9IDxUID0gYW55PihcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM/OiBPYmplY3QsXG4gICAgb3B0aW9ucz86IGFueVxuICApID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oKHJlcykgPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSByb3V0ZSArIHRoaXMuZ2V0UmVxdWVzdFBhcnNlKHBhcmFtZXRlcnMpO1xuICAgICAgaWYgKHRoaXMubENhY2hlUy5oYXMocXVlcnkpKSB7XG4gICAgICAgIHJlcy5uZXh0KHRoaXMubENhY2hlUy5nZXRJdGVtPFQ+KHF1ZXJ5KSk7XG4gICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgfSBlbHNlXG4gICAgICAgIHRoaXMuZ2V0KHF1ZXJ5LCBudWxsLCBvcHRpb25zKVxuICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAgIC50aGVuKChyKSA9PiB7XG4gICAgICAgICAgICAvLyBpZiAoIXRoaXMuY1MuaGFzKHJvdXRlKSlcbiAgICAgICAgICAgIHJlcy5uZXh0KHIpO1xuICAgICAgICAgICAgdGhpcy5sQ2FjaGVTLnNldEl0ZW0ocXVlcnksIHIpO1xuICAgICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG4gIGdldFdpdGhMb2NhbENhY2hlID0gPFQgPSBhbnk+KFxuICAgIHJvdXRlOiBzdHJpbmcsXG4gICAgcGFyYW1ldGVycz86IE9iamVjdCxcbiAgICBvcHRpb25zPzogYW55XG4gICkgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPigocmVzKSA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IHJvdXRlICsgdGhpcy5nZXRSZXF1ZXN0UGFyc2UocGFyYW1ldGVycyk7XG4gICAgICBpZiAodGhpcy5sQ2FjaGVTLmhhcyhxdWVyeSkpIHtcbiAgICAgICAgcmVzLm5leHQodGhpcy5sQ2FjaGVTLmdldEl0ZW08VD4ocXVlcnkpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0KHF1ZXJ5LCBudWxsLCBvcHRpb25zKVxuICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICAvLyBpZiAoIXRoaXMuY1MuaGFzKHJvdXRlKSlcbiAgICAgICAgICByZXMubmV4dChyKTtcbiAgICAgICAgICB0aGlzLmxDYWNoZVMuc2V0SXRlbShxdWVyeSwgcik7XG4gICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIHJlcy5lcnJvcihlKTtcbiAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG4gIGdldFJlcXVlc3RQYXJzZShwYXJhbWV0ZXJzPzogT2JqZWN0KSB7XG4gICAgLy8gY29uc3QgbmJvZHkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgLy8gZm9yIChjb25zdCBrZXkgaW4gcGFyYW1ldGVycykge1xuICAgIC8vICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJhbWV0ZXJzLCBrZXkpKSB7XG4gICAgLy8gICAgIGNvbnN0IGVsZW1lbnQgPSBwYXJhbWV0ZXJzW2tleV07XG4gICAgLy8gICAgIGlmIChlbGVtZW50ICE9IG51bGwpIG5ib2R5LnNldChrZXksIGVsZW1lbnQgKyAnJyk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIC8vIGNvbnN0IHN0ciA9IG5ib2R5LnRvU3RyaW5nKCk7XG4gICAgLy8gaWYocGFyYW1ldGVycylcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAoIXBhcmFtZXRlcnMpIHJldHVybiAnJztcbiAgICByZXR1cm4gKFxuICAgICAgJz8nICtcbiAgICAgIE9iamVjdC5rZXlzKHBhcmFtZXRlcnMpXG4gICAgICAgIC5maWx0ZXIoKGtleSkgPT4gcGFyYW1ldGVyc1trZXldPy50b1N0cmluZygpPy50cmltKCkgIT0gbnVsbClcbiAgICAgICAgLm1hcCgoa2V5KSA9PiBgJHtrZXl9PSR7cGFyYW1ldGVyc1trZXldPy50b1N0cmluZygpPy50cmltKCl9YClcbiAgICAgICAgLmpvaW4oJyYnKVxuICAgICk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFBVVFxuICBwdXQ8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT8sIGV4dHJhcz86IElFeHRyYXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygncHV0Jywgcm91dGUsIGJvZHkpO1xuICAgIGxldCBxdWVyeSA9IHJvdXRlICsgJycsXG4gICAgICBuYm9keSA9IGJvZHk7XG4gICAgaWYgKGV4dHJhcz8ucmVxdWVzdFR5cGUgPT0gJ3F1ZXJ5UGFyYW1zJykge1xuICAgICAgcXVlcnkgKz0gdGhpcy5nZXRSZXF1ZXN0UGFyc2UoYm9keSk7XG4gICAgICBuYm9keSA9IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wdXQocXVlcnksIG5ib2R5LCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPGFueT47XG4gIH1cbiAgcHV0V2l0aEVuZG9yc2VtZW50PFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk/LCBleHRyYXM/OiBJRXh0cmFzKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ3B1dCcsIHJvdXRlLCBib2R5KTtcbiAgICBsZXQgcXVlcnkgPSByb3V0ZSArICcnLFxuICAgICAgbmJvZHkgPSBib2R5O1xuICAgIGlmIChleHRyYXM/LnJlcXVlc3RUeXBlID09ICdxdWVyeVBhcmFtcycpIHtcbiAgICAgIHF1ZXJ5ICs9IHRoaXMuZ2V0UmVxdWVzdFBhcnNlKGJvZHkpO1xuICAgICAgbmJvZHkgPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucHV0KHF1ZXJ5LCBuYm9keSwge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKS5zZXQoJ3VzZUVuZG9yc2VtZW50JywgJ3RydWUnKSxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIC4uLmV4dHJhcz8ub3B0aW9ucyxcbiAgICAgIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlUmVxdWVzdEVycm9yKSkgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBERUxFVEVcbiAgZGVsZXRlID0gPFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIG9wdGlvbnM/KSA9PiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ2RlbGV0ZScsIHJvdXRlKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZGVsZXRlPFQ+KFxuICAgICAgICByb3V0ZSxcbiAgICAgICAgb3B0aW9ucyB8fCB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPGFueT47XG4gIH07XG4gIGRlbGV0ZVdpdGhCb2R5ID0gPFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/KSA9PiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ2RlbGV0ZScsIHJvdXRlKTtcbiAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoXG4gICAgICAnREVMRVRFJyxcbiAgICAgIHJvdXRlLFxuICAgICAgYm9keSxcbiAgICAgIG9wdGlvbnMgfHwge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucmVxdWVzdDxUPihyZXEpXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlUmVxdWVzdEVycm9yKSkgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICB9O1xuICBkZWxldGVUZXh0ID0gKHJvdXRlOiBzdHJpbmcpID0+XG4gICAgdGhpcy5kZWxldGU8c3RyaW5nPihyb3V0ZSwge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICB9KTtcbiAgLy8jZW5kcmVnaW9uXG5cbiAgc29ydENvZGVzID0gPFQ+KGRhdGE6IFRbXSkgPT4ge1xuICAgIHJldHVybiBkYXRhPy5zb3J0MignY29kZScsIHRydWUpPy5zb3J0MignY29kZScpIGFzIGFueSBhcyBUW107XG4gIH07XG59XG5cbmludGVyZmFjZSBJRXh0cmFzIHtcbiAgbm9Gb3JtYXQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogYW55O1xuICByZXF1ZXN0VHlwZT86ICdxdWVyeVBhcmFtcyc7XG59XG4iXX0=
@@ -65,27 +65,29 @@ export class TranslationService {
65
65
  });
66
66
  };
67
67
  this.translateHTMLPromise = (text, sourceLanguage = ETSenvironment.sourceLanguage, targetLanguage = ETSenvironment.targetLanguage, debug = false) => this.translateHTML(text, sourceLanguage, targetLanguage, debug)?.toPromise();
68
- setInterval(async () => {
68
+ const interval = setInterval(async () => {
69
69
  const body = clone(this.translationRequestMatrix);
70
70
  this.translationRequestMatrix = {};
71
71
  if (Object.keys(body)?.length) {
72
72
  // debugger;
73
- const transGlossary = this.transGlossary ||
74
- (await this.getGlossary().toPromise());
75
- this.apiService
76
- .postString(this.baseURL +
77
- (this.transGlossary?.code
78
- ? `language?glossaryCode=${this.transGlossary?.code}&sourceLang=${this.sourceLanguage}&targetLang=${this.targetLanguage}`
79
- : `language/${this.targetLanguage}`), Object.keys(body)
80
- .map((id) => this.tagger(+id, body[id]))
81
- .join(this.seperator))
82
- .toPromise()
83
- .then((r) => {
84
- this.translationResponseMatrix.next(this.detagger(r));
85
- })
86
- .catch((e) => {
87
- console.error(e);
88
- });
73
+ const transGlossary = this.transGlossary || (await this.getGlossary().toPromise());
74
+ if (this.sourceLanguage != this.targetLanguage)
75
+ this.apiService
76
+ .postString(this.baseURL +
77
+ (this.transGlossary?.code
78
+ ? `language?glossaryCode=${this.transGlossary?.code}&sourceLang=${this.sourceLanguage}&targetLang=${this.targetLanguage}`
79
+ : `language/${this.targetLanguage}`), Object.keys(body)
80
+ .map((id) => this.tagger(+id, body[id]))
81
+ .join(this.seperator))
82
+ .toPromise()
83
+ .then((r) => {
84
+ this.translationResponseMatrix.next(this.detagger(r));
85
+ })
86
+ .catch((e) => {
87
+ console.error(e);
88
+ });
89
+ else
90
+ clearInterval(interval);
89
91
  }
90
92
  }, 1000);
91
93
  }
@@ -139,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
139
141
  providedIn: 'root',
140
142
  }]
141
143
  }], ctorParameters: function () { return [{ type: i1.ApiService }, { type: i2.StorageService }, { type: i3.LocalCacheService }]; } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBU2hFLE1BQU0sT0FBTyxrQkFBa0I7SUFVN0IsWUFDUyxVQUFzQixFQUN0QixRQUF3QixFQUN4QixPQUEwQjtRQUYxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBWjNCLFlBQU8sR0FBRyxjQUFjLENBQUMsVUFBVSxHQUFHLG9CQUFvQixDQUFDO1FBQzNELDZCQUF3QixHQUE0QixFQUFFLENBQUM7UUFDdkQsOEJBQXlCLEdBQy9CLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQWtHbEIsa0JBQWEsR0FBRyxDQUNkLFVBQWtCLEVBQ2xCLGNBQWMsR0FBRyxjQUFjLENBQUMsY0FBYyxFQUM5QyxjQUFjLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFDOUMsS0FBSyxHQUFHLEtBQUssRUFDYixFQUFFO1lBQ0YsT0FBTyxJQUFJLFVBQVUsQ0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dC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QVksY0FBYyxDQUFDLGNBQWMsRUFBRSxFQUMxRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNkLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUN4QjthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQVcsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs7K0dBdkdVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVUU2Vudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEVMYW5ndWFnZSB9IGZyb20gJy4uL1NoYXJlZC9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlL2xvY2FsLWNhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblNlcnZpY2U8VHJhbnNsYXRpb25HbG9zc2FyeVJlc3BvbnNlID0gYW55PiB7XG4gIHByaXZhdGUgYmFzZVVSTCA9IEVUU2Vudmlyb25tZW50LmFwaUJhc2VVcmwgKyAnL3Jlc3QvdHJhbnNsYXRpb24vJztcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblJlcXVlc3RNYXRyaXg6IHsgW3g6IG51bWJlcl06IHN0cmluZyB9ID0ge307XG4gIHByaXZhdGUgdHJhbnNsYXRpb25SZXNwb25zZU1hdHJpeDogQmVoYXZpb3JTdWJqZWN0PHsgW3g6IG51bWJlcl06IHN0cmluZyB9PiA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIHJlYWRvbmx5IHNlcGVyYXRvciA9ICd+fn4nO1xuICBuYW1lID0gJ2dsb3NzYXJ5JztcbiAgc291cmNlTGFuZ3VhZ2U6IEVMYW5ndWFnZTtcbiAgdGFyZ2V0TGFuZ3VhZ2U6IEVMYW5ndWFnZTtcbiAgdHJhbnNHbG9zc2FyeTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXG4gICAgcHVibGljIHN0b3JhZ2VTOiBTdG9yYWdlU2VydmljZSxcbiAgICBwdWJsaWMgbENhY2hlUzogTG9jYWxDYWNoZVNlcnZpY2VcbiAgKSB7XG4gICAgc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYm9keSA9IGNsb25lKHRoaXMudHJhbnNsYXRpb25SZXF1ZXN0TWF0cml4KTtcbiAgICAgIHRoaXMudHJhbnNsYXRpb25SZXF1ZXN0TWF0cml4ID0ge307XG4gICAgICBpZiAoT2JqZWN0LmtleXMoYm9keSk/Lmxlbmd0aCkge1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgY29uc3QgdHJhbnNHbG9zc2FyeSA9XG4gICAgICAgICAgdGhpcy50cmFuc0dsb3NzYXJ5IHx8XG4gICAgICAgICAgKGF3YWl0IHRoaXMuZ2V0R2xvc3NhcnkoKS50b1Byb21pc2UoKSk7XG4gICAgICAgIHRoaXMuYXBpU2VydmljZVxuICAgICAgICAgIC5wb3N0U3RyaW5nKFxuICAgICAgICAgICAgdGhpcy5iYXNlVVJMICtcbiAgICAgICAgICAgICAgKHRoaXMudHJhbnNHbG9zc2FyeT8uY29kZVxuICAgICAgICAgICAgICAgID8gYGxhbmd1YWdlP2dsb3NzYXJ5Q29kZT0ke3RoaXMudHJhbnNHbG9zc2FyeT8uY29kZX0mc291cmNlTGFuZz0ke3RoaXMuc291cmNlTGFuZ3VhZ2V9JnRhcmdldExhbmc9JHt0aGlzLnRhcmdldExhbmd1YWdlfWBcbiAgICAgICAgICAgICAgICA6IGBsYW5ndWFnZS8ke3RoaXMudGFyZ2V0TGFuZ3VhZ2V9YCksXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhib2R5KVxuICAgICAgICAgICAgICAubWFwKChpZCkgPT4gdGhpcy50YWdnZXIoK2lkLCBib2R5W2lkXSkpXG4gICAgICAgICAgICAgIC5qb2luKHRoaXMuc2VwZXJhdG9yKVxuICAgICAgICAgIClcbiAgICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgICAudGhlbigocikgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvblJlc3BvbnNlTWF0cml4Lm5leHQodGhpcy5kZXRhZ2dlcihyKSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICB0YWdnZXIoaWQ6IG51bWJlciwgc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYDxkaXYgaWQ9XCIke2lkfVwiPiR7c3RyfTwvZGl2PmA7XG4gIH1cbiAgZ2V0R2xvc3NhcnkoXG4gICAgc291cmNlTGFuZ3VhZ2U6IEVMYW5ndWFnZSA9IEVUU2Vudmlyb25tZW50LnNvdXJjZUxhbmd1YWdlLFxuICAgIHRhcmdldExhbmd1YWdlOiBFTGFuZ3VhZ2UgPSBFVFNlbnZpcm9ubWVudC50YXJnZXRMYW5ndWFnZVxuICApIHtcbiAgICB0aGlzLnNvdXJjZUxhbmd1YWdlID0gc291cmNlTGFuZ3VhZ2UgfHwgdGhpcy5zb3VyY2VMYW5ndWFnZTtcbiAgICB0aGlzLnRhcmdldExhbmd1YWdlID0gdGFyZ2V0TGFuZ3VhZ2UgfHwgdGhpcy50YXJnZXRMYW5ndWFnZTtcblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcblxuICAgICAgLmdldDxUcmFuc2xhdGlvbkdsb3NzYXJ5UmVzcG9uc2VbXT4oYCR7dGhpcy5iYXNlVVJMfWdsb3NzYXJ5L2ApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyOiBhbnlbXSkgPT4ge1xuICAgICAgICAgIGRlYnVnZ2VyO1xuICAgICAgICAgIGNvbnN0IGdsb3NzYXJ5ID0gcj8uZmluZChcbiAgICAgICAgICAgICh4KSA9PlxuICAgICAgICAgICAgICB4LnNvdXJjZUxhbmcgPT0gdGhpcy5zb3VyY2VMYW5ndWFnZSAmJlxuICAgICAgICAgICAgICB4LnRhcmdldExhbmcgPT0gdGhpcy50YXJnZXRMYW5ndWFnZSAmJlxuICAgICAgICAgICAgICB4Lm5hbWUgPT0gdGhpcy5uYW1lXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZ2xvc3NhcnkgPyBnbG9zc2FyeSA6IG51bGw7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKGdsb3NzYXJ5KSA9PiB7XG4gICAgICAgICAgaWYgKCFnbG9zc2FyeSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgdGhpcy50cmFuc0dsb3NzYXJ5ID0gRVRTZW52aXJvbm1lbnQudHJhbnNHbG9zc2FyeSA9IGdsb3NzYXJ5O1xuICAgICAgICAgIHRoaXMuc3RvcmFnZVMuc2F2ZUl0ZW0oXG4gICAgICAgICAgICBFVFNlbnZpcm9ubWVudC50cmFuc0dsb3NzYXJ5S2V5LFxuICAgICAgICAgICAgdGhpcy50cmFuc0dsb3NzYXJ5XG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZ2xvc3Nhcnk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG4gIGRldGFnZ2VyKHN0cjogc3RyaW5nKSB7XG4gICAgY29uc3QgaXRlbXMgPSBzdHI/LnNwbGl0KHRoaXMuc2VwZXJhdG9yKTtcbiAgICBjb25zdCByZXNvYmogPSB7fTtcbiAgICBmb3IgKGNvbnN0IHN0ciBvZiBpdGVtcykge1xuICAgICAgcmVzb2JqW3N0cj8uc3BsaXQoJ1wiJylbMV1dID0gc3RyPy5zcGxpdCgnPicpWzFdPy5zcGxpdCgnPC9kaXYnKVswXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29iajtcbiAgfVxuXG4gIHRybmFzbGF0ZU9sZCh0ZXh0OiBzdHJpbmcpIHtcbiAgICBjb25zdCBpZCA9IDMyMzIzMjM7XG4gICAgY29uc3QgYm9keSA9IHsgW2lkXTogdGV4dCB9O1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0U3RyaW5nKFxuICAgICAgICB0aGlzLmJhc2VVUkwgKyBgbGFuZ3VhZ2UvJHtFVFNlbnZpcm9ubWVudC50YXJnZXRMYW5ndWFnZX1gLFxuICAgICAgICBPYmplY3Qua2V5cyhib2R5KVxuICAgICAgICAgIC5tYXAoKGlkKSA9PiB0aGlzLnRhZ2dlcigraWQsIGJvZHlbaWRdKSlcbiAgICAgICAgICAuam9pbih0aGlzLnNlcGVyYXRvcilcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHIpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5kZXRhZ2dlcihyKVtpZF0gYXMgc3RyaW5nO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuICB0cmFuc2xhdGVIVE1MID0gKFxuICAgIEhUTUxTdHJpbmc6IHN0cmluZyxcbiAgICBzb3VyY2VMYW5ndWFnZSA9IEVUU2Vudmlyb25tZW50LnNvdXJjZUxhbmd1YWdlLFxuICAgIHRhcmdldExhbmd1YWdlID0gRVRTZW52aXJvbm1lbnQudGFyZ2V0TGFuZ3VhZ2UsXG4gICAgZGVidWcgPSBmYWxzZVxuICApID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigocmVzKSA9PiB7XG4gICAgICBpZiAoZGVidWcpIGRlYnVnZ2VyO1xuXG4gICAgICBjb25zdCB0ZXh0ID0gSFRNTFN0cmluZz8udHJpbSgpLFxuICAgICAgICByb3V0ZSA9IHRoaXMuYmFzZVVSTCArIGBsYW5ndWFnZWA7XG5cbiAgICAgIGlmICghdGV4dCkge1xuICAgICAgICByZXMubmV4dChIVE1MU3RyaW5nKTtcbiAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubENhY2hlUy5oYXMocm91dGUgKyAnXycgKyB0ZXh0KSkge1xuICAgICAgICByZXMubmV4dCh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxzdHJpbmc+KHJvdXRlICsgJ18nICsgdGV4dCkpO1xuICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlkID0gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDAwMDAwMDAwMCk7XG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25SZXF1ZXN0TWF0cml4W2lkXSA9IHRleHQ7XG4gICAgICAgIGNvbnN0IHN1YjogU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGlvblJlc3BvbnNlTWF0cml4LnN1YnNjcmliZShcbiAgICAgICAgICAocikgPT4ge1xuICAgICAgICAgICAgaWYgKGRlYnVnKSBkZWJ1Z2dlcjtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zVmFsID0gcltpZC50b1N0cmluZygpXTtcbiAgICAgICAgICAgIGlmICh0cmFuc1ZhbCkge1xuICAgICAgICAgICAgICByZXMubmV4dCh0cmFuc1ZhbCk7XG4gICAgICAgICAgICAgIHRoaXMubENhY2hlUy5zZXRJdGVtKHJvdXRlICsgJ18nICsgdGV4dCwgdHJhbnNWYWwpO1xuICAgICAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgcmVzLmVycm9yKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgcGxhaW5UcmFuc2xhdGUgPSAoXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHNvdXJjZUxhbmd1YWdlID0gRVRTZW52aXJvbm1lbnQuc291cmNlTGFuZ3VhZ2UsXG4gICAgdGFyZ2V0TGFuZ3VhZ2UgPSBFVFNlbnZpcm9ubWVudC50YXJnZXRMYW5ndWFnZVxuICApID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPihhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgICAgdGV4dCA9IHRleHQ/LnRyaW0oKTtcbiAgICAgIGNvbnN0IHJvdXRlID0gdGhpcy5iYXNlVVJMICsgYGxhbmd1YWdlYDtcblxuICAgICAgaWYgKCF0ZXh0KSByZXNvbHZlKG51bGwpO1xuICAgICAgZWxzZSBpZiAodGhpcy5sQ2FjaGVTLmhhcyhyb3V0ZSArICdfJyArIHRleHQpKVxuICAgICAgICByZXNvbHZlKHRoaXMubENhY2hlUy5nZXRJdGVtPHN0cmluZz4ocm91dGUgKyAnXycgKyB0ZXh0KSk7XG4gICAgICBlbHNlXG4gICAgICAgIHJlc29sdmUoXG4gICAgICAgICAgYXdhaXQgdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAgICAgICAucG9zdFN0cmluZyhyb3V0ZSwgdGV4dClcbiAgICAgICAgICAgIC5waXBlKHRhcCgocikgPT4gdGhpcy5sQ2FjaGVTLnNldEl0ZW0ocm91dGUgKyAnXycgKyB0ZXh0LCByKSkpXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgfTtcbiAgdHJhbnNsYXRlSFRNTFByb21pc2UgPSAoXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHNvdXJjZUxhbmd1YWdlID0gRVRTZW52aXJvbm1lbnQuc291cmNlTGFuZ3VhZ2UsXG4gICAgdGFyZ2V0TGFuZ3VhZ2UgPSBFVFNlbnZpcm9ubWVudC50YXJnZXRMYW5ndWFnZSxcbiAgICBkZWJ1ZyA9IGZhbHNlXG4gICkgPT5cbiAgICB0aGlzLnRyYW5zbGF0ZUhUTUwoXG4gICAgICB0ZXh0LFxuICAgICAgc291cmNlTGFuZ3VhZ2UsXG4gICAgICB0YXJnZXRMYW5ndWFnZSxcbiAgICAgIGRlYnVnXG4gICAgKT8udG9Qcm9taXNlKCk7XG59XG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBU2hFLE1BQU0sT0FBTyxrQkFBa0I7SUFVN0IsWUFDUyxVQUFzQixFQUN0QixRQUF3QixFQUN4QixPQUEwQjtRQUYxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBWjNCLFlBQU8sR0FBRyxjQUFjLENBQUMsVUFBVSxHQUFHLG9CQUFvQixDQUFDO1FBQzNELDZCQUF3QixHQUE0QixFQUFFLENBQUM7UUFDdkQsOEJBQXlCLEdBQy9CLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQW1HbEIsa0JBQWEsR0FBRyxDQUNkLFVBQWtCLEVBQ2xCLGNBQWMsR0FBRyxjQUFjLENBQUMsY0FBYyxFQUM5QyxjQUFjLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFDOUMsS0FBSyxHQUFHLEtBQUssRUFDYixFQUFFO1lBQ0YsT0FBTyxJQUFJLFVBQVUsQ0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dC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QUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLFVBQVUsQ0FDVCxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksY0FBYyxDQUFDLGNBQWMsRUFBRSxFQUMxRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNkLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUN4QjthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQVcsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs7K0dBeEdVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVUU2Vudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEVMYW5ndWFnZSB9IGZyb20gJy4uL1NoYXJlZC9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlL2xvY2FsLWNhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblNlcnZpY2U8VHJhbnNsYXRpb25HbG9zc2FyeVJlc3BvbnNlID0gYW55PiB7XG4gIHByaXZhdGUgYmFzZVVSTCA9IEVUU2Vudmlyb25tZW50LmFwaUJhc2VVcmwgKyAnL3Jlc3QvdHJhbnNsYXRpb24vJztcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblJlcXVlc3RNYXRyaXg6IHsgW3g6IG51bWJlcl06IHN0cmluZyB9ID0ge307XG4gIHByaXZhdGUgdHJhbnNsYXRpb25SZXNwb25zZU1hdHJpeDogQmVoYXZpb3JTdWJqZWN0PHsgW3g6IG51bWJlcl06IHN0cmluZyB9PiA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIHJlYWRvbmx5IHNlcGVyYXRvciA9ICd+fn4nO1xuICBuYW1lID0gJ2dsb3NzYXJ5JztcbiAgc291cmNlTGFuZ3VhZ2U6IEVMYW5ndWFnZTtcbiAgdGFyZ2V0TGFuZ3VhZ2U6IEVMYW5ndWFnZTtcbiAgdHJhbnNHbG9zc2FyeTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXG4gICAgcHVibGljIHN0b3JhZ2VTOiBTdG9yYWdlU2VydmljZSxcbiAgICBwdWJsaWMgbENhY2hlUzogTG9jYWxDYWNoZVNlcnZpY2VcbiAgKSB7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBib2R5ID0gY2xvbmUodGhpcy50cmFuc2xhdGlvblJlcXVlc3RNYXRyaXgpO1xuICAgICAgdGhpcy50cmFuc2xhdGlvblJlcXVlc3RNYXRyaXggPSB7fTtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhib2R5KT8ubGVuZ3RoKSB7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBjb25zdCB0cmFuc0dsb3NzYXJ5ID1cbiAgICAgICAgICB0aGlzLnRyYW5zR2xvc3NhcnkgfHwgKGF3YWl0IHRoaXMuZ2V0R2xvc3NhcnkoKS50b1Byb21pc2UoKSk7XG4gICAgICAgIGlmICh0aGlzLnNvdXJjZUxhbmd1YWdlICE9IHRoaXMudGFyZ2V0TGFuZ3VhZ2UpXG4gICAgICAgICAgdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAgICAgICAucG9zdFN0cmluZyhcbiAgICAgICAgICAgICAgdGhpcy5iYXNlVVJMICtcbiAgICAgICAgICAgICAgICAodGhpcy50cmFuc0dsb3NzYXJ5Py5jb2RlXG4gICAgICAgICAgICAgICAgICA/IGBsYW5ndWFnZT9nbG9zc2FyeUNvZGU9JHt0aGlzLnRyYW5zR2xvc3Nhcnk/LmNvZGV9JnNvdXJjZUxhbmc9JHt0aGlzLnNvdXJjZUxhbmd1YWdlfSZ0YXJnZXRMYW5nPSR7dGhpcy50YXJnZXRMYW5ndWFnZX1gXG4gICAgICAgICAgICAgICAgICA6IGBsYW5ndWFnZS8ke3RoaXMudGFyZ2V0TGFuZ3VhZ2V9YCksXG4gICAgICAgICAgICAgIE9iamVjdC5rZXlzKGJvZHkpXG4gICAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IHRoaXMudGFnZ2VyKCtpZCwgYm9keVtpZF0pKVxuICAgICAgICAgICAgICAgIC5qb2luKHRoaXMuc2VwZXJhdG9yKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgICAgICAudGhlbigocikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uUmVzcG9uc2VNYXRyaXgubmV4dCh0aGlzLmRldGFnZ2VyKHIpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBlbHNlIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgfVxuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgdGFnZ2VyKGlkOiBudW1iZXIsIHN0cjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGA8ZGl2IGlkPVwiJHtpZH1cIj4ke3N0cn08L2Rpdj5gO1xuICB9XG4gIGdldEdsb3NzYXJ5KFxuICAgIHNvdXJjZUxhbmd1YWdlOiBFTGFuZ3VhZ2UgPSBFVFNlbnZpcm9ubWVudC5zb3VyY2VMYW5ndWFnZSxcbiAgICB0YXJnZXRMYW5ndWFnZTogRUxhbmd1YWdlID0gRVRTZW52aXJvbm1lbnQudGFyZ2V0TGFuZ3VhZ2VcbiAgKSB7XG4gICAgdGhpcy5zb3VyY2VMYW5ndWFnZSA9IHNvdXJjZUxhbmd1YWdlIHx8IHRoaXMuc291cmNlTGFuZ3VhZ2U7XG4gICAgdGhpcy50YXJnZXRMYW5ndWFnZSA9IHRhcmdldExhbmd1YWdlIHx8IHRoaXMudGFyZ2V0TGFuZ3VhZ2U7XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG5cbiAgICAgIC5nZXQ8VHJhbnNsYXRpb25HbG9zc2FyeVJlc3BvbnNlW10+KGAke3RoaXMuYmFzZVVSTH1nbG9zc2FyeS9gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocjogYW55W10pID0+IHtcbiAgICAgICAgICBkZWJ1Z2dlcjtcbiAgICAgICAgICBjb25zdCBnbG9zc2FyeSA9IHI/LmZpbmQoXG4gICAgICAgICAgICAoeCkgPT5cbiAgICAgICAgICAgICAgeC5zb3VyY2VMYW5nID09IHRoaXMuc291cmNlTGFuZ3VhZ2UgJiZcbiAgICAgICAgICAgICAgeC50YXJnZXRMYW5nID09IHRoaXMudGFyZ2V0TGFuZ3VhZ2UgJiZcbiAgICAgICAgICAgICAgeC5uYW1lID09IHRoaXMubmFtZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGdsb3NzYXJ5ID8gZ2xvc3NhcnkgOiBudWxsO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChnbG9zc2FyeSkgPT4ge1xuICAgICAgICAgIGlmICghZ2xvc3NhcnkpIHJldHVybiBudWxsO1xuICAgICAgICAgIHRoaXMudHJhbnNHbG9zc2FyeSA9IEVUU2Vudmlyb25tZW50LnRyYW5zR2xvc3NhcnkgPSBnbG9zc2FyeTtcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTLnNhdmVJdGVtKFxuICAgICAgICAgICAgRVRTZW52aXJvbm1lbnQudHJhbnNHbG9zc2FyeUtleSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNHbG9zc2FyeVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGdsb3NzYXJ5O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuICBkZXRhZ2dlcihzdHI6IHN0cmluZykge1xuICAgIGNvbnN0IGl0ZW1zID0gc3RyPy5zcGxpdCh0aGlzLnNlcGVyYXRvcik7XG4gICAgY29uc3QgcmVzb2JqID0ge307XG4gICAgZm9yIChjb25zdCBzdHIgb2YgaXRlbXMpIHtcbiAgICAgIHJlc29ialtzdHI/LnNwbGl0KCdcIicpWzFdXSA9IHN0cj8uc3BsaXQoJz4nKVsxXT8uc3BsaXQoJzwvZGl2JylbMF07XG4gICAgfVxuICAgIHJldHVybiByZXNvYmo7XG4gIH1cblxuICB0cm5hc2xhdGVPbGQodGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgaWQgPSAzMjMyMzIzO1xuICAgIGNvbnN0IGJvZHkgPSB7IFtpZF06IHRleHQgfTtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFN0cmluZyhcbiAgICAgICAgdGhpcy5iYXNlVVJMICsgYGxhbmd1YWdlLyR7RVRTZW52aXJvbm1lbnQudGFyZ2V0TGFuZ3VhZ2V9YCxcbiAgICAgICAgT2JqZWN0LmtleXMoYm9keSlcbiAgICAgICAgICAubWFwKChpZCkgPT4gdGhpcy50YWdnZXIoK2lkLCBib2R5W2lkXSkpXG4gICAgICAgICAgLmpvaW4odGhpcy5zZXBlcmF0b3IpXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGV0YWdnZXIocilbaWRdIGFzIHN0cmluZztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbiAgdHJhbnNsYXRlSFRNTCA9IChcbiAgICBIVE1MU3RyaW5nOiBzdHJpbmcsXG4gICAgc291cmNlTGFuZ3VhZ2UgPSBFVFNlbnZpcm9ubWVudC5zb3VyY2VMYW5ndWFnZSxcbiAgICB0YXJnZXRMYW5ndWFnZSA9IEVUU2Vudmlyb25tZW50LnRhcmdldExhbmd1YWdlLFxuICAgIGRlYnVnID0gZmFsc2VcbiAgKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKHJlcykgPT4ge1xuICAgICAgaWYgKGRlYnVnKSBkZWJ1Z2dlcjtcblxuICAgICAgY29uc3QgdGV4dCA9IEhUTUxTdHJpbmc/LnRyaW0oKSxcbiAgICAgICAgcm91dGUgPSB0aGlzLmJhc2VVUkwgKyBgbGFuZ3VhZ2VgO1xuXG4gICAgICBpZiAoIXRleHQpIHtcbiAgICAgICAgcmVzLm5leHQoSFRNTFN0cmluZyk7XG4gICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmxDYWNoZVMuaGFzKHJvdXRlICsgJ18nICsgdGV4dCkpIHtcbiAgICAgICAgcmVzLm5leHQodGhpcy5sQ2FjaGVTLmdldEl0ZW08c3RyaW5nPihyb3V0ZSArICdfJyArIHRleHQpKTtcbiAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpZCA9IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDAwMDAwMDAwMDApO1xuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uUmVxdWVzdE1hdHJpeFtpZF0gPSB0ZXh0O1xuICAgICAgICBjb25zdCBzdWI6IFN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRpb25SZXNwb25zZU1hdHJpeC5zdWJzY3JpYmUoXG4gICAgICAgICAgKHIpID0+IHtcbiAgICAgICAgICAgIGlmIChkZWJ1ZykgZGVidWdnZXI7XG4gICAgICAgICAgICBjb25zdCB0cmFuc1ZhbCA9IHJbaWQudG9TdHJpbmcoKV07XG4gICAgICAgICAgICBpZiAodHJhbnNWYWwpIHtcbiAgICAgICAgICAgICAgcmVzLm5leHQodHJhbnNWYWwpO1xuICAgICAgICAgICAgICB0aGlzLmxDYWNoZVMuc2V0SXRlbShyb3V0ZSArICdfJyArIHRleHQsIHRyYW5zVmFsKTtcbiAgICAgICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgIHJlcy5lcnJvcihlKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4gIHBsYWluVHJhbnNsYXRlID0gKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICBzb3VyY2VMYW5ndWFnZSA9IEVUU2Vudmlyb25tZW50LnNvdXJjZUxhbmd1YWdlLFxuICAgIHRhcmdldExhbmd1YWdlID0gRVRTZW52aXJvbm1lbnQudGFyZ2V0TGFuZ3VhZ2VcbiAgKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgIHRleHQgPSB0ZXh0Py50cmltKCk7XG4gICAgICBjb25zdCByb3V0ZSA9IHRoaXMuYmFzZVVSTCArIGBsYW5ndWFnZWA7XG5cbiAgICAgIGlmICghdGV4dCkgcmVzb2x2ZShudWxsKTtcbiAgICAgIGVsc2UgaWYgKHRoaXMubENhY2hlUy5oYXMocm91dGUgKyAnXycgKyB0ZXh0KSlcbiAgICAgICAgcmVzb2x2ZSh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxzdHJpbmc+KHJvdXRlICsgJ18nICsgdGV4dCkpO1xuICAgICAgZWxzZVxuICAgICAgICByZXNvbHZlKFxuICAgICAgICAgIGF3YWl0IHRoaXMuYXBpU2VydmljZVxuICAgICAgICAgICAgLnBvc3RTdHJpbmcocm91dGUsIHRleHQpXG4gICAgICAgICAgICAucGlwZSh0YXAoKHIpID0+IHRoaXMubENhY2hlUy5zZXRJdGVtKHJvdXRlICsgJ18nICsgdGV4dCwgcikpKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgICk7XG4gICAgfSk7XG4gIH07XG4gIHRyYW5zbGF0ZUhUTUxQcm9taXNlID0gKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICBzb3VyY2VMYW5ndWFnZSA9IEVUU2Vudmlyb25tZW50LnNvdXJjZUxhbmd1YWdlLFxuICAgIHRhcmdldExhbmd1YWdlID0gRVRTZW52aXJvbm1lbnQudGFyZ2V0TGFuZ3VhZ2UsXG4gICAgZGVidWcgPSBmYWxzZVxuICApID0+XG4gICAgdGhpcy50cmFuc2xhdGVIVE1MKFxuICAgICAgdGV4dCxcbiAgICAgIHNvdXJjZUxhbmd1YWdlLFxuICAgICAgdGFyZ2V0TGFuZ3VhZ2UsXG4gICAgICBkZWJ1Z1xuICAgICk/LnRvUHJvbWlzZSgpO1xufVxuIl19
@@ -18,6 +18,8 @@ export class ETSInfoDialogService {
18
18
  },
19
19
  height: 'auto',
20
20
  minWidth: '450px',
21
+ maxWidth: '80%',
22
+ maxHeight: '90%',
21
23
  autoFocus: false,
22
24
  disableClose,
23
25
  })
@@ -42,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
42
44
  providedIn: 'root',
43
45
  }]
44
46
  }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1kaWFsb2cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbmZvLWRpYWxvZy9pbmZvLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUs5RCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW1CLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDcEMsU0FBSSxHQUFHLENBQ0wsSUFBWSxFQUNaLFNBQW9CLENBQUMsRUFDckIsT0FBZ0IsRUFDaEIsSUFBYSxFQUNiLFlBQVksR0FBRyxLQUFLLEVBQ3BCLEVBQUU7WUFDRixJQUFJO2dCQUNGLE9BQU8sSUFBSSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFFLE9BQU8sSUFBSSxDQUFDLE1BQU07aUJBQ2YsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUN6QixJQUFJLEVBQUU7b0JBQ0osSUFBSTtvQkFDSixNQUFNLEVBQUUsQ0FBQyxNQUFNO29CQUNmLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO29CQUNuRCxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUM3QjtnQkFDRCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxRQUFRLEVBQUUsT0FBTztnQkFDakIsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLFlBQVk7YUFDYixDQUFDO2lCQUNELFdBQVcsRUFBRTtpQkFDYixTQUFTLEVBQUU7aUJBQ1gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLEVBQUU7b0JBQ0wsT0FBTyxJQUFJLENBQUM7aUJBQ2I7cUJBQU07b0JBQ0wsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztJQWhDcUMsQ0FBQzs7aUhBRDdCLG9CQUFvQjtxSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7IFxuaW1wb3J0IHsgSUJ0biB9IGZyb20gJy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBJbmZvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9pbmZvLWRpYWxvZy5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRVRTSW5mb0RpYWxvZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2cpIHt9XG4gIGluZm8gPSAoXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHN0YXR1czogMSB8IDAgfCAyID0gMSxcbiAgICBoZWFkaW5nPzogc3RyaW5nLFxuICAgIGJ0bnM/OiBJQnRuW10sXG4gICAgZGlzYWJsZUNsb3NlID0gZmFsc2VcbiAgKSA9PiB7XG4gICAgdGV4dCA9XG4gICAgICB0eXBlb2YgdGV4dCA9PSAnc3RyaW5nJyA/IHRleHQgOiBzdGF0dXMgPT0gMCA/ICdBbiBlcnJvciBvY2N1cnJlZCcgOiAnJztcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dcbiAgICAgIC5vcGVuKEluZm9EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQsXG4gICAgICAgICAgc3RhdHVzOiArc3RhdHVzLFxuICAgICAgICAgIGhlYWRpbmc6IGhlYWRpbmcgfHwgKHN0YXR1cyA/ICdTdWNjZXNzIScgOiAnT29wcyEnKSxcbiAgICAgICAgICBidG5zOiBidG5zPy5maWx0ZXIoKGIpID0+IGIpLFxuICAgICAgICB9LFxuICAgICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgICAgbWluV2lkdGg6ICc0NTBweCcsXG4gICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgIGRpc2FibGVDbG9zZSxcbiAgICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAudGhlbigocikgPT4ge1xuICAgICAgICBpZiAocikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH07XG59XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1kaWFsb2cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbmZvLWRpYWxvZy9pbmZvLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUs5RCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW1CLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDcEMsU0FBSSxHQUFHLENBQ0wsSUFBWSxFQUNaLFNBQW9CLENBQUMsRUFDckIsT0FBZ0IsRUFDaEIsSUFBYSxFQUNiLFlBQVksR0FBRyxLQUFLLEVBQ3BCLEVBQUU7WUFDRixJQUFJO2dCQUNGLE9BQU8sSUFBSSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFFLE9BQU8sSUFBSSxDQUFDLE1BQU07aUJBQ2YsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUN6QixJQUFJLEVBQUU7b0JBQ0osSUFBSTtvQkFDSixNQUFNLEVBQUUsQ0FBQyxNQUFNO29CQUNmLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO29CQUNuRCxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUM3QjtnQkFDRCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixZQUFZO2FBQ2IsQ0FBQztpQkFDRCxXQUFXLEVBQUU7aUJBQ2IsU0FBUyxFQUFFO2lCQUNYLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNWLElBQUksQ0FBQyxFQUFFO29CQUNMLE9BQU8sSUFBSSxDQUFDO2lCQUNiO3FCQUFNO29CQUNMLE9BQU8sS0FBSyxDQUFDO2lCQUNkO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7SUFsQ3FDLENBQUM7O2lIQUQ3QixvQkFBb0I7cUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnOyBcbmltcG9ydCB7IElCdG4gfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgSW5mb0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaW5mby1kaWFsb2cuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVUU0luZm9EaWFsb2dTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7fVxuICBpbmZvID0gKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICBzdGF0dXM6IDEgfCAwIHwgMiA9IDEsXG4gICAgaGVhZGluZz86IHN0cmluZyxcbiAgICBidG5zPzogSUJ0bltdLFxuICAgIGRpc2FibGVDbG9zZSA9IGZhbHNlXG4gICkgPT4ge1xuICAgIHRleHQgPVxuICAgICAgdHlwZW9mIHRleHQgPT0gJ3N0cmluZycgPyB0ZXh0IDogc3RhdHVzID09IDAgPyAnQW4gZXJyb3Igb2NjdXJyZWQnIDogJyc7XG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nXG4gICAgICAub3BlbihJbmZvRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0LFxuICAgICAgICAgIHN0YXR1czogK3N0YXR1cyxcbiAgICAgICAgICBoZWFkaW5nOiBoZWFkaW5nIHx8IChzdGF0dXMgPyAnU3VjY2VzcyEnIDogJ09vcHMhJyksXG4gICAgICAgICAgYnRuczogYnRucz8uZmlsdGVyKChiKSA9PiBiKSxcbiAgICAgICAgfSxcbiAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgIG1pbldpZHRoOiAnNDUwcHgnLFxuICAgICAgICBtYXhXaWR0aDogJzgwJScsXG4gICAgICAgIG1heEhlaWdodDogJzkwJScsXG4gICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgIGRpc2FibGVDbG9zZSxcbiAgICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAudGhlbigocikgPT4ge1xuICAgICAgICBpZiAocikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH07XG59XG4iXX0=
@@ -3861,6 +3861,16 @@ class ApiService {
3861
3861
  .post(encodeURI(route), body, Object.assign({ headers: new HttpHeaders(this.headers), responseType: 'json' }, extras === null || extras === void 0 ? void 0 : extras.options))
3862
3862
  .pipe(catchError(this.handleRequestError));
3863
3863
  }
3864
+ postWithEndorsment(route, body, extras) {
3865
+ this.logRoutes('post', route, body);
3866
+ console.log(body);
3867
+ return this.http
3868
+ .post(encodeURI(route), body, {
3869
+ headers: new HttpHeaders(this.headers).set('useEndorsement', 'true'),
3870
+ responseType: 'json',
3871
+ })
3872
+ .pipe(catchError(this.handleRequestError));
3873
+ }
3864
3874
  postFile(route, body, extras) {
3865
3875
  return this.post(route, body, {
3866
3876
  options: Object.assign({ headers: new HttpHeaders(this.fileHeaders), responseType: 'json' }, extras === null || extras === void 0 ? void 0 : extras.options),
@@ -3936,6 +3946,17 @@ class ApiService {
3936
3946
  .put(query, nbody, Object.assign({ headers: new HttpHeaders(this.headers), responseType: 'json' }, extras === null || extras === void 0 ? void 0 : extras.options))
3937
3947
  .pipe(catchError(this.handleRequestError));
3938
3948
  }
3949
+ putWithEndorsement(route, body, extras) {
3950
+ this.logRoutes('put', route, body);
3951
+ let query = route + '', nbody = body;
3952
+ if ((extras === null || extras === void 0 ? void 0 : extras.requestType) == 'queryParams') {
3953
+ query += this.getRequestParse(body);
3954
+ nbody = null;
3955
+ }
3956
+ return this.http
3957
+ .put(query, nbody, Object.assign({ headers: new HttpHeaders(this.headers).set('useEndorsement', 'true'), responseType: 'json' }, extras === null || extras === void 0 ? void 0 : extras.options))
3958
+ .pipe(catchError(this.handleRequestError));
3959
+ }
3939
3960
  }
3940
3961
  ApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ApiService, deps: [{ token: i1$2.HttpClient }, { token: CacheService }, { token: LocalCacheService }], target: i0.ɵɵFactoryTarget.Injectable });
3941
3962
  ApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ApiService, providedIn: 'root' });
@@ -4004,28 +4025,30 @@ class TranslationService {
4004
4025
  }));
4005
4026
  };
4006
4027
  this.translateHTMLPromise = (text, sourceLanguage = ETSenvironment.sourceLanguage, targetLanguage = ETSenvironment.targetLanguage, debug = false) => { var _a; return (_a = this.translateHTML(text, sourceLanguage, targetLanguage, debug)) === null || _a === void 0 ? void 0 : _a.toPromise(); };
4007
- setInterval(() => __awaiter(this, void 0, void 0, function* () {
4028
+ const interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
4008
4029
  var _a, _b, _c;
4009
4030
  const body = clone(this.translationRequestMatrix);
4010
4031
  this.translationRequestMatrix = {};
4011
4032
  if ((_a = Object.keys(body)) === null || _a === void 0 ? void 0 : _a.length) {
4012
4033
  // debugger;
4013
- const transGlossary = this.transGlossary ||
4014
- (yield this.getGlossary().toPromise());
4015
- this.apiService
4016
- .postString(this.baseURL +
4017
- (((_b = this.transGlossary) === null || _b === void 0 ? void 0 : _b.code)
4018
- ? `language?glossaryCode=${(_c = this.transGlossary) === null || _c === void 0 ? void 0 : _c.code}&sourceLang=${this.sourceLanguage}&targetLang=${this.targetLanguage}`
4019
- : `language/${this.targetLanguage}`), Object.keys(body)
4020
- .map((id) => this.tagger(+id, body[id]))
4021
- .join(this.seperator))
4022
- .toPromise()
4023
- .then((r) => {
4024
- this.translationResponseMatrix.next(this.detagger(r));
4025
- })
4026
- .catch((e) => {
4027
- console.error(e);
4028
- });
4034
+ const transGlossary = this.transGlossary || (yield this.getGlossary().toPromise());
4035
+ if (this.sourceLanguage != this.targetLanguage)
4036
+ this.apiService
4037
+ .postString(this.baseURL +
4038
+ (((_b = this.transGlossary) === null || _b === void 0 ? void 0 : _b.code)
4039
+ ? `language?glossaryCode=${(_c = this.transGlossary) === null || _c === void 0 ? void 0 : _c.code}&sourceLang=${this.sourceLanguage}&targetLang=${this.targetLanguage}`
4040
+ : `language/${this.targetLanguage}`), Object.keys(body)
4041
+ .map((id) => this.tagger(+id, body[id]))
4042
+ .join(this.seperator))
4043
+ .toPromise()
4044
+ .then((r) => {
4045
+ this.translationResponseMatrix.next(this.detagger(r));
4046
+ })
4047
+ .catch((e) => {
4048
+ console.error(e);
4049
+ });
4050
+ else
4051
+ clearInterval(interval);
4029
4052
  }
4030
4053
  }), 1000);
4031
4054
  }
@@ -5728,6 +5751,8 @@ class ETSInfoDialogService {
5728
5751
  },
5729
5752
  height: 'auto',
5730
5753
  minWidth: '450px',
5754
+ maxWidth: '80%',
5755
+ maxHeight: '90%',
5731
5756
  autoFocus: false,
5732
5757
  disableClose,
5733
5758
  })
@@ -12971,7 +12996,9 @@ class RequestTimeoutInterceptorService {
12971
12996
  ETSenvironment.requestTimeout ||
12972
12997
  this.defaultTimeout;
12973
12998
  // console.log('timeout period',tout);
12974
- return next.handle(req).pipe(timeout(tout));
12999
+ return next
13000
+ .handle(req)
13001
+ .pipe(timeout(new Date(Config.TimeStampDay * 365 + Date.now())));
12975
13002
  }
12976
13003
  }
12977
13004
  RequestTimeoutInterceptorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: RequestTimeoutInterceptorService, deps: [{ token: DEFAULT_TIMEOUT }], target: i0.ɵɵFactoryTarget.Injectable });