@sd-angular/core 1.1.9 → 1.1.12

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.
Files changed (87) hide show
  1. package/api/src/lib/api.model.d.ts +3 -1
  2. package/api/src/lib/token.service.d.ts +3 -1
  3. package/autocomplete/sd-angular-core-autocomplete.metadata.json +1 -1
  4. package/autocomplete/src/lib/autocomplete.component.d.ts +5 -2
  5. package/bundles/sd-angular-core-api.umd.js +37 -19
  6. package/bundles/sd-angular-core-api.umd.js.map +1 -1
  7. package/bundles/sd-angular-core-api.umd.min.js +1 -1
  8. package/bundles/sd-angular-core-api.umd.min.js.map +1 -1
  9. package/bundles/sd-angular-core-autocomplete.umd.js +8 -4
  10. package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
  11. package/bundles/sd-angular-core-autocomplete.umd.min.js +1 -1
  12. package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
  13. package/bundles/sd-angular-core-common.umd.js +4 -1
  14. package/bundles/sd-angular-core-common.umd.js.map +1 -1
  15. package/bundles/sd-angular-core-common.umd.min.js +1 -1
  16. package/bundles/sd-angular-core-common.umd.min.js.map +1 -1
  17. package/bundles/sd-angular-core-date-time.umd.js +9 -5
  18. package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
  19. package/bundles/sd-angular-core-date-time.umd.min.js +2 -2
  20. package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
  21. package/bundles/sd-angular-core-grid-material.umd.js +2 -2
  22. package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
  23. package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
  24. package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
  25. package/bundles/sd-angular-core-input-currency.umd.js +8 -4
  26. package/bundles/sd-angular-core-input-currency.umd.js.map +1 -1
  27. package/bundles/sd-angular-core-input-currency.umd.min.js +2 -2
  28. package/bundles/sd-angular-core-input-currency.umd.min.js.map +1 -1
  29. package/bundles/sd-angular-core-input.umd.js +7 -2
  30. package/bundles/sd-angular-core-input.umd.js.map +1 -1
  31. package/bundles/sd-angular-core-input.umd.min.js +1 -1
  32. package/bundles/sd-angular-core-input.umd.min.js.map +1 -1
  33. package/bundles/sd-angular-core-json-editor.umd.js +9 -5
  34. package/bundles/sd-angular-core-json-editor.umd.js.map +1 -1
  35. package/bundles/sd-angular-core-json-editor.umd.min.js +2 -2
  36. package/bundles/sd-angular-core-json-editor.umd.min.js.map +1 -1
  37. package/bundles/sd-angular-core-select.umd.js +8 -3
  38. package/bundles/sd-angular-core-select.umd.js.map +1 -1
  39. package/bundles/sd-angular-core-select.umd.min.js +2 -2
  40. package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
  41. package/common/sd-angular-core-common.metadata.json +1 -1
  42. package/common/src/lib/configurations/form.configuration.d.ts +6 -0
  43. package/common/src/public-api.d.ts +1 -0
  44. package/date-time/sd-angular-core-date-time.metadata.json +1 -1
  45. package/date-time/src/lib/date-time.component.d.ts +5 -2
  46. package/esm2015/api/src/lib/api.model.js +1 -1
  47. package/esm2015/api/src/lib/api.service.js +19 -7
  48. package/esm2015/api/src/lib/http.service.js +16 -6
  49. package/esm2015/api/src/lib/token.service.js +5 -5
  50. package/esm2015/autocomplete/src/lib/autocomplete.component.js +11 -7
  51. package/esm2015/common/src/lib/configurations/firebase.configuration.js +2 -2
  52. package/esm2015/common/src/lib/configurations/form.configuration.js +3 -0
  53. package/esm2015/common/src/public-api.js +2 -1
  54. package/esm2015/date-time/src/lib/date-time.component.js +12 -8
  55. package/esm2015/grid-material/src/lib/grid-material.component.js +3 -3
  56. package/esm2015/input/src/lib/input.component.js +10 -4
  57. package/esm2015/input-currency/src/lib/input-currency.component.js +11 -7
  58. package/esm2015/json-editor/src/lib/json-editor.component.js +10 -6
  59. package/esm2015/select/src/lib/select.component.js +11 -6
  60. package/fesm2015/sd-angular-core-api.js +37 -15
  61. package/fesm2015/sd-angular-core-api.js.map +1 -1
  62. package/fesm2015/sd-angular-core-autocomplete.js +10 -6
  63. package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
  64. package/fesm2015/sd-angular-core-common.js +4 -2
  65. package/fesm2015/sd-angular-core-common.js.map +1 -1
  66. package/fesm2015/sd-angular-core-date-time.js +11 -7
  67. package/fesm2015/sd-angular-core-date-time.js.map +1 -1
  68. package/fesm2015/sd-angular-core-grid-material.js +2 -2
  69. package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
  70. package/fesm2015/sd-angular-core-input-currency.js +10 -6
  71. package/fesm2015/sd-angular-core-input-currency.js.map +1 -1
  72. package/fesm2015/sd-angular-core-input.js +9 -4
  73. package/fesm2015/sd-angular-core-input.js.map +1 -1
  74. package/fesm2015/sd-angular-core-json-editor.js +9 -5
  75. package/fesm2015/sd-angular-core-json-editor.js.map +1 -1
  76. package/fesm2015/sd-angular-core-select.js +10 -5
  77. package/fesm2015/sd-angular-core-select.js.map +1 -1
  78. package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
  79. package/input/sd-angular-core-input.metadata.json +1 -1
  80. package/input/src/lib/input.component.d.ts +6 -2
  81. package/input-currency/sd-angular-core-input-currency.metadata.json +1 -1
  82. package/input-currency/src/lib/input-currency.component.d.ts +5 -2
  83. package/json-editor/sd-angular-core-json-editor.metadata.json +1 -1
  84. package/package.json +1 -1
  85. package/{sd-angular-core-1.1.9.tgz → sd-angular-core-1.1.12.tgz} +0 -0
  86. package/select/sd-angular-core-select.metadata.json +1 -1
  87. package/select/src/lib/select.component.d.ts +5 -2
@@ -31,7 +31,9 @@ export class SdApiService {
31
31
  };
32
32
  this.post = (url, body, headers, options) => __awaiter(this, void 0, void 0, function* () {
33
33
  var _a, _b;
34
- headers = headers || this.tokenService.customHeaders;
34
+ headers = headers || this.tokenService.customHeaders({
35
+ url
36
+ });
35
37
  let hashKey = uuid.v4();
36
38
  if (!(body instanceof FormData)) {
37
39
  hashKey = hash({
@@ -101,7 +103,9 @@ export class SdApiService {
101
103
  return __classPrivateFieldGet(this, _cache)[hashKey].subject.pipe(take(1)).toPromise();
102
104
  });
103
105
  this.postCache = (url, body, options) => __awaiter(this, void 0, void 0, function* () {
104
- const headers = (options === null || options === void 0 ? void 0 : options.headers) || this.tokenService.customHeaders;
106
+ const headers = (options === null || options === void 0 ? void 0 : options.headers) || this.tokenService.customHeaders({
107
+ url
108
+ });
105
109
  const { get, set, has } = this.cacheService.create({
106
110
  url,
107
111
  headers,
@@ -134,7 +138,9 @@ export class SdApiService {
134
138
  };
135
139
  this.get = (url, headers, options) => {
136
140
  var _a, _b;
137
- headers = headers || this.tokenService.customHeaders;
141
+ headers = headers || this.tokenService.customHeaders({
142
+ url
143
+ });
138
144
  const encodedUrl = (options === null || options === void 0 ? void 0 : options.encodeURI) === false ? url : encodeURI(url);
139
145
  // const hashKey = hash({
140
146
  // encodedUrl,
@@ -200,7 +206,9 @@ export class SdApiService {
200
206
  return __classPrivateFieldGet(this, _cache)[hashKey].subject.pipe(take(1)).toPromise();
201
207
  };
202
208
  this.getCache = (url, options) => __awaiter(this, void 0, void 0, function* () {
203
- const headers = (options === null || options === void 0 ? void 0 : options.headers) || this.tokenService.customHeaders;
209
+ const headers = (options === null || options === void 0 ? void 0 : options.headers) || this.tokenService.customHeaders({
210
+ url
211
+ });
204
212
  const encodedUrl = (options === null || options === void 0 ? void 0 : options.encodeURI) === false ? url : encodeURI(url);
205
213
  const { get, set, has } = this.cacheService.create({
206
214
  encodedUrl,
@@ -263,7 +271,9 @@ export class SdApiService {
263
271
  });
264
272
  }
265
273
  put(url, body, headers) {
266
- headers = headers || this.tokenService.customHeaders;
274
+ headers = headers || this.tokenService.customHeaders({
275
+ url
276
+ });
267
277
  return new Promise((resolve, reject) => {
268
278
  this.httpClient.put(encodeURI(url), body, {
269
279
  observe: 'response',
@@ -281,7 +291,9 @@ export class SdApiService {
281
291
  });
282
292
  }
283
293
  delete(url, headers) {
284
- headers = headers || this.tokenService.customHeaders;
294
+ headers = headers || this.tokenService.customHeaders({
295
+ url
296
+ });
285
297
  return new Promise((resolve, reject) => {
286
298
  this.httpClient.delete(encodeURI(url), { observe: 'response', headers })
287
299
  .pipe(timeout(__classPrivateFieldGet(this, _timeout)))
@@ -311,4 +323,4 @@ SdApiService.ctorParameters = () => [
311
323
  { type: SdCacheService },
312
324
  { type: SdTokenService }
313
325
  ];
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2FwaS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFLN0IsTUFBTSxPQUFPLFlBQVk7SUFxQnZCLFlBQ1UsVUFBc0IsRUFDVSxhQUFnQyxFQUNoRSxZQUE0QixFQUM1QixZQUE0QjtRQUg1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1Usa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hFLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUF4QjlCLGFBQVEsR0FBRyx1Q0FBdUMsQ0FBQztRQUUzRCxtQkFBVyxNQUFNLEVBQUMsQ0FBQyxPQUFPO1FBRTFCLHlCQUFpQixJQUFJLEVBQUMsQ0FBQyxLQUFLO1FBQzVCLGlC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LENBQUMsQ0FBQyxpQkFBb0MsRUFBRSxFQUFFO2dCQUNoRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQTRIRCxNQUFNLENBQVUsR0FBVyxFQUFFLE9BQXFCO1FBQ2hELE9BQU8sR0FBRyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7UUFDckQsT0FBTyxJQUFJLE9BQU8sQ0FBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO2lCQUNyRSxJQUFJLENBQUMsT0FBTyx3Q0FBZSxDQUFDO2lCQUM1QixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRTtvQkFDYixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN0QjtxQkFBTTtvQkFDTCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNyQjtZQUNILENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLGlCQUFvQyxFQUFFLEVBQUU7Z0JBQ2hELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7OztZQXZSRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVpRLFVBQVU7NENBb0NkLE1BQU0sU0FBQyxVQUFVLGNBQUcsUUFBUTtZQWhDeEIsY0FBYztZQUNkLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgdGFrZSwgdGltZW91dCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0IHsgSUFwaUNvbmZpZ3VyYXRpb24sIEFQSV9DT05GSUcgfSBmcm9tICcuL2FwaS5tb2RlbCc7XHJcbmltcG9ydCB7IFNkQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jYWNoZSc7XHJcbmltcG9ydCB7IFNkVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi90b2tlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgaGFzaCBmcm9tICdvYmplY3QtaGFzaCc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZEFwaVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgdXBsb2FkSWQgPSAnVTExOGZlZmIxLTMwODUtNDY0MS04Y2I4LWY3ZmU1YzI4ZjUwOSc7XHJcblxyXG4gICN0aW1lb3V0ID0gMTIwMDAwOyAvLyAxMjBzXHJcblxyXG4gICNjYWNoZUR1cmF0aW9uID0gMjAwMDsgLy8gMnNcclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IHtcclxuICAgICAgY3JlYXRlZERhdGU6IERhdGU7XHJcbiAgICAgIHN1YmplY3Q6IFN1YmplY3Q8YW55PjtcclxuICAgICAgcmVzcG9uc2U/OiB7XHJcbiAgICAgICAgc3RhdHVzPzogJ3N1Y2Nlc3MnIHwgJ2Vycm9yJztcclxuICAgICAgICByZXN1bHQ6IGFueSxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gPSB7fTtcclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uPy50cmFuc2xhdGUodmFsdWUpIHx8IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KEFQSV9DT05GSUcpIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlndXJhdGlvbjogSUFwaUNvbmZpZ3VyYXRpb24sXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogU2RDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogU2RUb2tlblNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHBvc3QgPSBhc3luYyA8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIGhlYWRlcnM/OiBIdHRwSGVhZGVycywgb3B0aW9ucz86IHtcclxuICAgIHJlc3BvbnNlVHlwZT86ICdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCc7XHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgaGVhZGVycyA9IGhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycztcclxuICAgIGxldCBoYXNoS2V5ID0gdXVpZC52NCgpO1xyXG4gICAgaWYgKCEoYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhKSkge1xyXG4gICAgICBoYXNoS2V5ID0gaGFzaCh7XHJcbiAgICAgICAgdXJsLFxyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgYm9keVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy4jY2FjaGVbaGFzaEtleV0gfHwgRGF0ZS5hZGRNaWxpc2Vjb25kcyh0aGlzLiNjYWNoZVtoYXNoS2V5XS5jcmVhdGVkRGF0ZSwgdGhpcy4jY2FjaGVEdXJhdGlvbikgPCBuZXcgRGF0ZSgpKSB7XHJcbiAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldID0ge1xyXG4gICAgICAgIGNyZWF0ZWREYXRlOiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgIHN1YmplY3Q6IG5ldyBTdWJqZWN0KCksXHJcbiAgICAgIH07XHJcbiAgICAgIGlmIChvcHRpb25zPy5yZXNwb25zZVR5cGUgJiYgb3B0aW9ucy5yZXNwb25zZVR5cGUgIT09ICdqc29uJykge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KGVuY29kZVVSSSh1cmwpLCBib2R5LCB7XHJcbiAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICBoZWFkZXJzLFxyXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiBvcHRpb25zPy5yZXNwb25zZVR5cGUgYXMgYW55XHJcbiAgICAgICAgfSkucGlwZSh0aW1lb3V0KHRoaXMuI3RpbWVvdXQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICByZXN1bHQ6IHJlc1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QubmV4dChyZXMpO1xyXG4gICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICByZXN1bHQ6IGVyclxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmh0dHBDbGllbnQucG9zdChlbmNvZGVVUkkodXJsKSwgYm9keSwge1xyXG4gICAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuICAgICAgICAgIGhlYWRlcnNcclxuICAgICAgICB9KS5waXBlKHRpbWVvdXQodGhpcy4jdGltZW91dCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzLm9rKSB7XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogcmVzLmJvZHlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5uZXh0KHJlcy5ib2R5KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICByZXN1bHQ6IHJlcy5ib2R5XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IocmVzLmJvZHkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICByZXN1bHQ6IGVyclxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgaWYgKHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlPy5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhyb3cgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UucmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIHBvc3RDYWNoZSA9IGFzeW5jIDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSwgb3B0aW9ucz86IHtcclxuICAgIGNhY2hlVHlwZT86ICdkZWZhdWx0JyB8ICdzZXNzaW9uJyB8ICdsb2NhbCc7XHJcbiAgICBjYWNoZUhvdXJzPzogbnVtYmVyO1xyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xyXG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBvcHRpb25zPy5oZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnM7XHJcbiAgICBjb25zdCB7IGdldCwgc2V0LCBoYXMgfSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmNyZWF0ZSh7XHJcbiAgICAgIHVybCxcclxuICAgICAgaGVhZGVycyxcclxuICAgICAgYm9keVxyXG4gICAgfSwge1xyXG4gICAgICB0eXBlOiBvcHRpb25zPy5jYWNoZVR5cGUsXHJcbiAgICAgIGhvdXJzOiBvcHRpb25zPy5jYWNoZUhvdXJzXHJcbiAgICB9KTtcclxuICAgIGlmICghaGFzKCkpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3N0KHVybCwgYm9keSwgb3B0aW9ucz8uaGVhZGVycyk7XHJcbiAgICAgIHNldChyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdldCgpO1xyXG4gIH1cclxuXHJcbiAgcHV0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBoZWFkZXJzPzogSHR0cEhlYWRlcnMpOiBQcm9taXNlPFQ+IHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnM7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wdXQoZW5jb2RlVVJJKHVybCksIGJvZHksIHtcclxuICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgfSkucGlwZSh0aW1lb3V0KHRoaXMuI3RpbWVvdXQpKS50b1Byb21pc2UoKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5vaykge1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KS5jYXRjaCgoaHR0cEVycm9yUmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgcmVqZWN0KGh0dHBFcnJvclJlc3BvbnNlKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gICNkZWZpbmVQYXJhbXMgPSAocmVxdWVzdDogYW55KSA9PiB7XHJcbiAgICBjb25zdCBycSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVxdWVzdCkpIHtcclxuICAgICAgaWYgKHZhbHVlIHx8IHZhbHVlID09PSAwKSB7XHJcbiAgICAgICAgcnEucHVzaChcclxuICAgICAgICAgIGAke2VuY29kZVVSSUNvbXBvbmVudChrZXkgYXMgc3RyaW5nKX09JHtlbmNvZGVVUklDb21wb25lbnQoXHJcbiAgICAgICAgICAgIHZhbHVlIGFzIHN0cmluZ1xyXG4gICAgICAgICAgKX1gXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGA/JHtycT8uam9pbignJicpfWA7XHJcbiAgfVxyXG5cclxuICBnZXRXaXRoUGFyYW1zID0gPFQgPSBhbnk+KHVybDogc3RyaW5nLCBwYXJhbXM6IGFueSwgb3B0aW9ucz86IHtcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcclxuICAgIHJlc3BvbnNlVHlwZT86ICdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCc7XHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0KGAke3VybH0ke3RoaXMuI2RlZmluZVBhcmFtcyhwYXJhbXMpfWAsIG9wdGlvbnM/LmhlYWRlcnMsIHsgLi4ub3B0aW9ucywgZW5jb2RlVVJJOiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIGdldENhY2hlV2l0aFBhcmFtcyA9IDxUID0gYW55Pih1cmw6IHN0cmluZywgcGFyYW1zOiBhbnksIGhlYWRlcnM/OiBIdHRwSGVhZGVycywgb3B0aW9ucz86IHtcclxuICAgIHJlbG9hZD86IGJvb2xlYW4sXHJcbiAgICBjYWNoZVR5cGU/OiAnZGVmYXVsdCcgfCAnc2Vzc2lvbicgfCAnbG9jYWwnO1xyXG4gICAgY2FjaGVIb3Vycz86IG51bWJlcjtcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcclxuICB9KTogUHJvbWlzZTxUPiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDYWNoZShgJHt1cmx9JHt0aGlzLiNkZWZpbmVQYXJhbXMocGFyYW1zKX1gLCB7IC4uLm9wdGlvbnMsIGhlYWRlcnMsIGVuY29kZVVSSTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgPSA8VCA9IGFueT4odXJsOiBzdHJpbmcsIGhlYWRlcnM/OiBIdHRwSGVhZGVycywgb3B0aW9ucz86IHtcclxuICAgIHJlc3BvbnNlVHlwZT86ICdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCc7XHJcbiAgICBlbmNvZGVVUkk/OiBib29sZWFuXHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgaGVhZGVycyA9IGhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycztcclxuICAgIGNvbnN0IGVuY29kZWRVcmwgPSBvcHRpb25zPy5lbmNvZGVVUkkgPT09IGZhbHNlID8gdXJsIDogZW5jb2RlVVJJKHVybCk7XHJcbiAgICAvLyBjb25zdCBoYXNoS2V5ID0gaGFzaCh7XHJcbiAgICAvLyAgIGVuY29kZWRVcmwsXHJcbiAgICAvLyAgIGhlYWRlcnNcclxuICAgIC8vIH0pO1xyXG4gICAgY29uc3QgaGFzaEtleSA9IGhhc2goe1xyXG4gICAgICBlbmNvZGVkVXJsLFxyXG4gICAgICBoZWFkZXJzXHJcbiAgICB9KTtcclxuICAgIGlmICghdGhpcy4jY2FjaGVbaGFzaEtleV0gfHwgRGF0ZS5hZGRNaWxpc2Vjb25kcyh0aGlzLiNjYWNoZVtoYXNoS2V5XS5jcmVhdGVkRGF0ZSwgdGhpcy4jY2FjaGVEdXJhdGlvbikgPCBuZXcgRGF0ZSgpKSB7XHJcbiAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldID0ge1xyXG4gICAgICAgIGNyZWF0ZWREYXRlOiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgIHN1YmplY3Q6IG5ldyBTdWJqZWN0KClcclxuICAgICAgfTtcclxuICAgICAgaWYgKG9wdGlvbnM/LnJlc3BvbnNlVHlwZSAmJiBvcHRpb25zLnJlc3BvbnNlVHlwZSAhPT0gJ2pzb24nKSB7XHJcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LmdldChlbmNvZGVkVXJsLCB7IG9ic2VydmU6ICdib2R5JywgaGVhZGVycywgcmVzcG9uc2VUeXBlOiBvcHRpb25zPy5yZXNwb25zZVR5cGUgYXMgYW55IH0pXHJcbiAgICAgICAgICAucGlwZSh0aW1lb3V0KHRoaXMuI3RpbWVvdXQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICByZXN1bHQ6IHJlc1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0Lm5leHQocmVzKTtcclxuICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICByZXN1bHQ6IGVyclxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LmVycm9yKGVycik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KGVuY29kZWRVcmwsIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJywgaGVhZGVycyB9KVxyXG4gICAgICAgICAgLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlcy5vaykge1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6IHJlcy5ib2R5XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0Lm5leHQocmVzLmJvZHkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgcmVzdWx0OiByZXMuYm9keVxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihyZXMuYm9keSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICByZXN1bHQ6IGVyclxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LmVycm9yKGVycik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgaWYgKHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlPy5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhyb3cgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UucmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIGdldENhY2hlID0gYXN5bmMgPFQgPSBhbnk+KHVybDogc3RyaW5nLCBvcHRpb25zPzoge1xyXG4gICAgcmVsb2FkPzogYm9vbGVhbixcclxuICAgIGNhY2hlVHlwZT86ICdkZWZhdWx0JyB8ICdzZXNzaW9uJyB8ICdsb2NhbCc7XHJcbiAgICBjYWNoZUhvdXJzPzogbnVtYmVyO1xyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xyXG4gICAgZW5jb2RlVVJJPzogYm9vbGVhblxyXG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBvcHRpb25zPy5oZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnM7XHJcbiAgICBjb25zdCBlbmNvZGVkVXJsID0gb3B0aW9ucz8uZW5jb2RlVVJJID09PSBmYWxzZSA/IHVybCA6IGVuY29kZVVSSSh1cmwpO1xyXG4gICAgY29uc3QgeyBnZXQsIHNldCwgaGFzIH0gPSB0aGlzLmNhY2hlU2VydmljZS5jcmVhdGUoe1xyXG4gICAgICBlbmNvZGVkVXJsLFxyXG4gICAgICBoZWFkZXJzXHJcbiAgICB9LCB7XHJcbiAgICAgIHR5cGU6IG9wdGlvbnM/LmNhY2hlVHlwZSxcclxuICAgICAgaG91cnM6IG9wdGlvbnM/LmNhY2hlSG91cnNcclxuICAgIH0pO1xyXG4gICAgaWYgKCFoYXMoKSB8fCBvcHRpb25zPy5yZWxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXQoZW5jb2RlZFVybCwgb3B0aW9ucz8uaGVhZGVycywgeyBlbmNvZGVVUkk6IGZhbHNlIH0pO1xyXG4gICAgICBzZXQocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIHJldHVybiBnZXQoKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZTxUID0gYW55Pih1cmw6IHN0cmluZywgaGVhZGVycz86IEh0dHBIZWFkZXJzKTogUHJvbWlzZTxUPiB7XHJcbiAgICBoZWFkZXJzID0gaGVhZGVycyB8fCB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZGVsZXRlKGVuY29kZVVSSSh1cmwpLCB7IG9ic2VydmU6ICdyZXNwb25zZScsIGhlYWRlcnMgfSlcclxuICAgICAgICAucGlwZSh0aW1lb3V0KHRoaXMuI3RpbWVvdXQpKVxyXG4gICAgICAgIC50b1Byb21pc2UoKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0Lm9rKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0LmJvZHkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVqZWN0KHJlc3VsdC5ib2R5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KS5jYXRjaCgoaHR0cEVycm9yUmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZWplY3QoaHR0cEVycm9yUmVzcG9uc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRTaW5nbGUgPSAodXJsOiBzdHJpbmcsIG9wdGlvbj86IHtcclxuICAgIGV4dGVuc2lvbnM/OiBzdHJpbmdbXSxcclxuICAgIG1heFNpemVJbk1iPzogbnVtYmVyLFxyXG4gICAgdmFsaWRhdG9yPzogKGZpbGVOYW1lOiBzdHJpbmcpID0+IHN0cmluZ1xyXG4gIH0pOiBQcm9taXNlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgaWYgKCQoYCMke3RoaXMudXBsb2FkSWR9YCkubGVuZ3RoKSB7XHJcbiAgICAgICAgJCgnYm9keScpLmNoaWxkcmVuKGAjJHt0aGlzLnVwbG9hZElkfWApLnJlbW92ZSgpO1xyXG4gICAgICB9XHJcbiAgICAgICQoJ2JvZHknKS5hcHBlbmQoYDxpbnB1dCBpZD0nJHt0aGlzLnVwbG9hZElkfScgc3R5bGU9J2Rpc3BsYXk6IG5vbmUnIHR5cGU9J2ZpbGUnIC8+YCk7XHJcbiAgICAgICQoYCMke3RoaXMudXBsb2FkSWR9YCkub24oJ2NoYW5nZScsIChldnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25zdCB0YXJnZXQ6IERhdGFUcmFuc2ZlciA9IGV2dC50YXJnZXQ7XHJcbiAgICAgICAgICBjb25zdCBmaWxlVG9VcGxvYWQgPSB0YXJnZXQuZmlsZXMuaXRlbSgwKTtcclxuICAgICAgICAgIHRoaXMudXBsb2FkKHVybCwgZmlsZVRvVXBsb2FkLCBvcHRpb24pLnRoZW4ocmVzb2x2ZSkuY2F0Y2gocmVqZWN0KTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICAkKGAjJHt0aGlzLnVwbG9hZElkfWApLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwbG9hZCA9IGFzeW5jICh1cmw6IHN0cmluZywgZmlsZTogRmlsZSwgb3B0aW9uPzoge1xyXG4gICAgZXh0ZW5zaW9ucz86IHN0cmluZ1tdLFxyXG4gICAgbWF4U2l6ZUluTWI/OiBudW1iZXIsXHJcbiAgICB2YWxpZGF0b3I/OiAoZmlsZU5hbWU6IHN0cmluZykgPT4gc3RyaW5nXHJcbiAgfSkgPT4ge1xyXG4gICAgY29uc3QgbGFzdERvdCA9IGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpO1xyXG4gICAgaWYgKGxhc3REb3QgPT09IC0xKSB7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZShgSW52YWxpZCBmaWxlIGV4dGVuc2lvbmApO1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlLm5hbWUuc3Vic3RyaW5nKGxhc3REb3QgKyAxKTtcclxuICAgIGlmIChvcHRpb24pIHtcclxuICAgICAgaWYgKG9wdGlvbi5leHRlbnNpb25zPy5sZW5ndGggJiYgIW9wdGlvbi5leHRlbnNpb25zLnNvbWUoZSA9PiBlLnRvVXBwZXJDYXNlKCkgPT09IGV4dGVuc2lvbi50b1VwcGVyQ2FzZSgpKSkge1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgWyR7ZmlsZS5uYW1lfV0gJHt0aGlzLnRyYW5zbGF0ZSgnVXBsb2FkZWQgZmlsZSBpcyBub3QgbWF0Y2ggZXh0ZW5zaW9uJyl9ICR7b3B0aW9uLmV4dGVuc2lvbnMuam9pbignLCAnKX1gO1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob3B0aW9uLm1heFNpemVJbk1iID4gMCAmJiBvcHRpb24ubWF4U2l6ZUluTWIgKiAxMDI0ICogMTAyNCA8IGZpbGUuc2l6ZSkge1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgWyR7ZmlsZS5uYW1lfV0gJHt0aGlzLnRyYW5zbGF0ZSgnTWF4IGZpbGUgc2l6ZScpfSAke29wdGlvbi5tYXhTaXplSW5NYn0gTWJzYDtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9wdGlvbi52YWxpZGF0b3IgJiYgb3B0aW9uLnZhbGlkYXRvcihmaWxlLm5hbWUpKSB7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IG9wdGlvbi52YWxpZGF0b3IoZmlsZS5uYW1lKTtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSwgZmlsZS5uYW1lKTtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLnBvc3QodXJsLCBmb3JtRGF0YSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2FwaS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFLN0IsTUFBTSxPQUFPLFlBQVk7SUFxQnZCLFlBQ1UsVUFBc0IsRUFDVSxhQUFnQyxFQUNoRSxZQUE0QixFQUM1QixZQUE0QjtRQUg1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1Usa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hFLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUF4QjlCLGFBQVEsR0FBRyx1Q0FBdUMsQ0FBQztRQUUzRCxtQkFBVyxNQUFNLEVBQUMsQ0FBQyxPQUFPO1FBRTFCLHlCQUFpQixJQUFJLEVBQUMsQ0FBQyxLQUFLO1FBQzVCLGlC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QUFNO2FBQ25COzs7WUFaUSxVQUFVOzRDQW9DZCxNQUFNLFNBQUMsVUFBVSxjQUFHLFFBQVE7WUFoQ3hCLGNBQWM7WUFDZCxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IHRha2UsIHRpbWVvdXQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7IElBcGlDb25maWd1cmF0aW9uLCBBUElfQ09ORklHIH0gZnJvbSAnLi9hcGkubW9kZWwnO1xyXG5pbXBvcnQgeyBTZENhY2hlU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY2FjaGUnO1xyXG5pbXBvcnQgeyBTZFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RBcGlTZXJ2aWNlIHtcclxuICBwcml2YXRlIHVwbG9hZElkID0gJ1UxMThmZWZiMS0zMDg1LTQ2NDEtOGNiOC1mN2ZlNWMyOGY1MDknO1xyXG5cclxuICAjdGltZW91dCA9IDEyMDAwMDsgLy8gMTIwc1xyXG5cclxuICAjY2FjaGVEdXJhdGlvbiA9IDIwMDA7IC8vIDJzXHJcbiAgI2NhY2hlOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiB7XHJcbiAgICAgIGNyZWF0ZWREYXRlOiBEYXRlO1xyXG4gICAgICBzdWJqZWN0OiBTdWJqZWN0PGFueT47XHJcbiAgICAgIHJlc3BvbnNlPzoge1xyXG4gICAgICAgIHN0YXR1cz86ICdzdWNjZXNzJyB8ICdlcnJvcic7XHJcbiAgICAgICAgcmVzdWx0OiBhbnksXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9ID0ge307XHJcblxyXG4gIHByaXZhdGUgdHJhbnNsYXRlID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbj8udHJhbnNsYXRlKHZhbHVlKSB8fCB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgQEluamVjdChBUElfQ09ORklHKSBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbmZpZ3VyYXRpb246IElBcGlDb25maWd1cmF0aW9uLFxyXG4gICAgcHJpdmF0ZSBjYWNoZVNlcnZpY2U6IFNkQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2tlblNlcnZpY2U6IFNkVG9rZW5TZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwb3N0ID0gYXN5bmMgPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBoZWFkZXJzPzogSHR0cEhlYWRlcnMsIG9wdGlvbnM/OiB7XHJcbiAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xyXG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICB1cmxcclxuICAgIH0pO1xyXG4gICAgbGV0IGhhc2hLZXkgPSB1dWlkLnY0KCk7XHJcbiAgICBpZiAoIShib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpKSB7XHJcbiAgICAgIGhhc2hLZXkgPSBoYXNoKHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgICBib2R5XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLiNjYWNoZVtoYXNoS2V5XSB8fCBEYXRlLmFkZE1pbGlzZWNvbmRzKHRoaXMuI2NhY2hlW2hhc2hLZXldLmNyZWF0ZWREYXRlLCB0aGlzLiNjYWNoZUR1cmF0aW9uKSA8IG5ldyBEYXRlKCkpIHtcclxuICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0gPSB7XHJcbiAgICAgICAgY3JlYXRlZERhdGU6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgc3ViamVjdDogbmV3IFN1YmplY3QoKSxcclxuICAgICAgfTtcclxuICAgICAgaWYgKG9wdGlvbnM/LnJlc3BvbnNlVHlwZSAmJiBvcHRpb25zLnJlc3BvbnNlVHlwZSAhPT0gJ2pzb24nKSB7XHJcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3QoZW5jb2RlVVJJKHVybCksIGJvZHksIHtcclxuICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgICByZXNwb25zZVR5cGU6IG9wdGlvbnM/LnJlc3BvbnNlVHlwZSBhcyBhbnlcclxuICAgICAgICB9KS5waXBlKHRpbWVvdXQodGhpcy4jdGltZW91dCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgIHJlc3VsdDogcmVzXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5uZXh0KHJlcyk7XHJcbiAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgIHJlc3VsdDogZXJyXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihlcnIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KGVuY29kZVVSSSh1cmwpLCBib2R5LCB7XHJcbiAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICAgICAgaGVhZGVyc1xyXG4gICAgICAgIH0pLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMub2spIHtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgICAgcmVzdWx0OiByZXMuYm9keVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0Lm5leHQocmVzLmJvZHkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogcmVzLmJvZHlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihyZXMuYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgIHJlc3VsdDogZXJyXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihlcnIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cykge1xyXG4gICAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgfVxyXG4gICAgICB0aHJvdyB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgcG9zdENhY2hlID0gYXN5bmMgPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBvcHRpb25zPzoge1xyXG4gICAgY2FjaGVUeXBlPzogJ2RlZmF1bHQnIHwgJ3Nlc3Npb24nIHwgJ2xvY2FsJztcclxuICAgIGNhY2hlSG91cnM/OiBudW1iZXI7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG9wdGlvbnM/LmhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgIHVybFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IGdldCwgc2V0LCBoYXMgfSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmNyZWF0ZSh7XHJcbiAgICAgIHVybCxcclxuICAgICAgaGVhZGVycyxcclxuICAgICAgYm9keVxyXG4gICAgfSwge1xyXG4gICAgICB0eXBlOiBvcHRpb25zPy5jYWNoZVR5cGUsXHJcbiAgICAgIGhvdXJzOiBvcHRpb25zPy5jYWNoZUhvdXJzXHJcbiAgICB9KTtcclxuICAgIGlmICghaGFzKCkpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3N0KHVybCwgYm9keSwgb3B0aW9ucz8uaGVhZGVycyk7XHJcbiAgICAgIHNldChyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdldCgpO1xyXG4gIH1cclxuXHJcbiAgcHV0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBoZWFkZXJzPzogSHR0cEhlYWRlcnMpOiBQcm9taXNlPFQ+IHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICB1cmxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmh0dHBDbGllbnQucHV0KGVuY29kZVVSSSh1cmwpLCBib2R5LCB7XHJcbiAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuICAgICAgICBoZWFkZXJzXHJcbiAgICAgIH0pLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSkudG9Qcm9taXNlKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQub2spIHtcclxuICAgICAgICAgIHJlc29sdmUocmVzdWx0LmJvZHkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LmJvZHkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSkuY2F0Y2goKGh0dHBFcnJvclJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHJlamVjdChodHRwRXJyb3JSZXNwb25zZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAjZGVmaW5lUGFyYW1zID0gKHJlcXVlc3Q6IGFueSkgPT4ge1xyXG4gICAgY29uc3QgcnEgPSBbXTtcclxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlcXVlc3QpKSB7XHJcbiAgICAgIGlmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCkge1xyXG4gICAgICAgIHJxLnB1c2goXHJcbiAgICAgICAgICBgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5IGFzIHN0cmluZyl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KFxyXG4gICAgICAgICAgICB2YWx1ZSBhcyBzdHJpbmdcclxuICAgICAgICAgICl9YFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBgPyR7cnE/LmpvaW4oJyYnKX1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2l0aFBhcmFtcyA9IDxUID0gYW55Pih1cmw6IHN0cmluZywgcGFyYW1zOiBhbnksIG9wdGlvbnM/OiB7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnMsXHJcbiAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xyXG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmdldChgJHt1cmx9JHt0aGlzLiNkZWZpbmVQYXJhbXMocGFyYW1zKX1gLCBvcHRpb25zPy5oZWFkZXJzLCB7IC4uLm9wdGlvbnMsIGVuY29kZVVSSTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRDYWNoZVdpdGhQYXJhbXMgPSA8VCA9IGFueT4odXJsOiBzdHJpbmcsIHBhcmFtczogYW55LCBoZWFkZXJzPzogSHR0cEhlYWRlcnMsIG9wdGlvbnM/OiB7XHJcbiAgICByZWxvYWQ/OiBib29sZWFuLFxyXG4gICAgY2FjaGVUeXBlPzogJ2RlZmF1bHQnIHwgJ3Nlc3Npb24nIHwgJ2xvY2FsJztcclxuICAgIGNhY2hlSG91cnM/OiBudW1iZXI7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2FjaGUoYCR7dXJsfSR7dGhpcy4jZGVmaW5lUGFyYW1zKHBhcmFtcyl9YCwgeyAuLi5vcHRpb25zLCBoZWFkZXJzLCBlbmNvZGVVUkk6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0ID0gPFQgPSBhbnk+KHVybDogc3RyaW5nLCBoZWFkZXJzPzogSHR0cEhlYWRlcnMsIG9wdGlvbnM/OiB7XHJcbiAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xyXG4gICAgZW5jb2RlVVJJPzogYm9vbGVhblxyXG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICB1cmxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgZW5jb2RlZFVybCA9IG9wdGlvbnM/LmVuY29kZVVSSSA9PT0gZmFsc2UgPyB1cmwgOiBlbmNvZGVVUkkodXJsKTtcclxuICAgIC8vIGNvbnN0IGhhc2hLZXkgPSBoYXNoKHtcclxuICAgIC8vICAgZW5jb2RlZFVybCxcclxuICAgIC8vICAgaGVhZGVyc1xyXG4gICAgLy8gfSk7XHJcbiAgICBjb25zdCBoYXNoS2V5ID0gaGFzaCh7XHJcbiAgICAgIGVuY29kZWRVcmwsXHJcbiAgICAgIGhlYWRlcnNcclxuICAgIH0pO1xyXG4gICAgaWYgKCF0aGlzLiNjYWNoZVtoYXNoS2V5XSB8fCBEYXRlLmFkZE1pbGlzZWNvbmRzKHRoaXMuI2NhY2hlW2hhc2hLZXldLmNyZWF0ZWREYXRlLCB0aGlzLiNjYWNoZUR1cmF0aW9uKSA8IG5ldyBEYXRlKCkpIHtcclxuICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0gPSB7XHJcbiAgICAgICAgY3JlYXRlZERhdGU6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgc3ViamVjdDogbmV3IFN1YmplY3QoKVxyXG4gICAgICB9O1xyXG4gICAgICBpZiAob3B0aW9ucz8ucmVzcG9uc2VUeXBlICYmIG9wdGlvbnMucmVzcG9uc2VUeXBlICE9PSAnanNvbicpIHtcclxuICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KGVuY29kZWRVcmwsIHsgb2JzZXJ2ZTogJ2JvZHknLCBoZWFkZXJzLCByZXNwb25zZVR5cGU6IG9wdGlvbnM/LnJlc3BvbnNlVHlwZSBhcyBhbnkgfSlcclxuICAgICAgICAgIC5waXBlKHRpbWVvdXQodGhpcy4jdGltZW91dCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogcmVzXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QubmV4dChyZXMpO1xyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogZXJyXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoZW5jb2RlZFVybCwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCBoZWFkZXJzIH0pXHJcbiAgICAgICAgICAucGlwZSh0aW1lb3V0KHRoaXMuI3RpbWVvdXQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzLm9rKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogcmVzLmJvZHlcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QubmV4dChyZXMuYm9keSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6IHJlcy5ib2R5XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LmVycm9yKHJlcy5ib2R5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogZXJyXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cykge1xyXG4gICAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgfVxyXG4gICAgICB0aHJvdyB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2FjaGUgPSBhc3luYyA8VCA9IGFueT4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiB7XHJcbiAgICByZWxvYWQ/OiBib29sZWFuLFxyXG4gICAgY2FjaGVUeXBlPzogJ2RlZmF1bHQnIHwgJ3Nlc3Npb24nIHwgJ2xvY2FsJztcclxuICAgIGNhY2hlSG91cnM/OiBudW1iZXI7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XHJcbiAgICBlbmNvZGVVUkk/OiBib29sZWFuXHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG9wdGlvbnM/LmhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgIHVybFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBlbmNvZGVkVXJsID0gb3B0aW9ucz8uZW5jb2RlVVJJID09PSBmYWxzZSA/IHVybCA6IGVuY29kZVVSSSh1cmwpO1xyXG4gICAgY29uc3QgeyBnZXQsIHNldCwgaGFzIH0gPSB0aGlzLmNhY2hlU2VydmljZS5jcmVhdGUoe1xyXG4gICAgICBlbmNvZGVkVXJsLFxyXG4gICAgICBoZWFkZXJzXHJcbiAgICB9LCB7XHJcbiAgICAgIHR5cGU6IG9wdGlvbnM/LmNhY2hlVHlwZSxcclxuICAgICAgaG91cnM6IG9wdGlvbnM/LmNhY2hlSG91cnNcclxuICAgIH0pO1xyXG4gICAgaWYgKCFoYXMoKSB8fCBvcHRpb25zPy5yZWxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXQoZW5jb2RlZFVybCwgb3B0aW9ucz8uaGVhZGVycywgeyBlbmNvZGVVUkk6IGZhbHNlIH0pO1xyXG4gICAgICBzZXQocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIHJldHVybiBnZXQoKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZTxUID0gYW55Pih1cmw6IHN0cmluZywgaGVhZGVycz86IEh0dHBIZWFkZXJzKTogUHJvbWlzZTxUPiB7XHJcbiAgICBoZWFkZXJzID0gaGVhZGVycyB8fCB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzKHtcclxuICAgICAgdXJsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5odHRwQ2xpZW50LmRlbGV0ZShlbmNvZGVVUkkodXJsKSwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCBoZWFkZXJzIH0pXHJcbiAgICAgICAgLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSlcclxuICAgICAgICAudG9Qcm9taXNlKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5vaykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5ib2R5KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlamVjdChyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkuY2F0Y2goKGh0dHBFcnJvclJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KGh0dHBFcnJvclJlc3BvbnNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkU2luZ2xlID0gKHVybDogc3RyaW5nLCBvcHRpb24/OiB7XHJcbiAgICBleHRlbnNpb25zPzogc3RyaW5nW10sXHJcbiAgICBtYXhTaXplSW5NYj86IG51bWJlcixcclxuICAgIHZhbGlkYXRvcj86IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmdcclxuICB9KTogUHJvbWlzZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGlmICgkKGAjJHt0aGlzLnVwbG9hZElkfWApLmxlbmd0aCkge1xyXG4gICAgICAgICQoJ2JvZHknKS5jaGlsZHJlbihgIyR7dGhpcy51cGxvYWRJZH1gKS5yZW1vdmUoKTtcclxuICAgICAgfVxyXG4gICAgICAkKCdib2R5JykuYXBwZW5kKGA8aW5wdXQgaWQ9JyR7dGhpcy51cGxvYWRJZH0nIHN0eWxlPSdkaXNwbGF5OiBub25lJyB0eXBlPSdmaWxlJyAvPmApO1xyXG4gICAgICAkKGAjJHt0aGlzLnVwbG9hZElkfWApLm9uKCdjaGFuZ2UnLCAoZXZ0OiBhbnkpID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0O1xyXG4gICAgICAgICAgY29uc3QgZmlsZVRvVXBsb2FkID0gdGFyZ2V0LmZpbGVzLml0ZW0oMCk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZCh1cmwsIGZpbGVUb1VwbG9hZCwgb3B0aW9uKS50aGVuKHJlc29sdmUpLmNhdGNoKHJlamVjdCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgJChgIyR7dGhpcy51cGxvYWRJZH1gKS50cmlnZ2VyKCdjbGljaycpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWQgPSBhc3luYyAodXJsOiBzdHJpbmcsIGZpbGU6IEZpbGUsIG9wdGlvbj86IHtcclxuICAgIGV4dGVuc2lvbnM/OiBzdHJpbmdbXSxcclxuICAgIG1heFNpemVJbk1iPzogbnVtYmVyLFxyXG4gICAgdmFsaWRhdG9yPzogKGZpbGVOYW1lOiBzdHJpbmcpID0+IHN0cmluZ1xyXG4gIH0pID0+IHtcclxuICAgIGNvbnN0IGxhc3REb3QgPSBmaWxlLm5hbWUubGFzdEluZGV4T2YoJy4nKTtcclxuICAgIGlmIChsYXN0RG90ID09PSAtMSkge1xyXG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGUoYEludmFsaWQgZmlsZSBleHRlbnNpb25gKTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZS5uYW1lLnN1YnN0cmluZyhsYXN0RG90ICsgMSk7XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIGlmIChvcHRpb24uZXh0ZW5zaW9ucz8ubGVuZ3RoICYmICFvcHRpb24uZXh0ZW5zaW9ucy5zb21lKGUgPT4gZS50b1VwcGVyQ2FzZSgpID09PSBleHRlbnNpb24udG9VcHBlckNhc2UoKSkpIHtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFske2ZpbGUubmFtZX1dICR7dGhpcy50cmFuc2xhdGUoJ1VwbG9hZGVkIGZpbGUgaXMgbm90IG1hdGNoIGV4dGVuc2lvbicpfSAke29wdGlvbi5leHRlbnNpb25zLmpvaW4oJywgJyl9YDtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9wdGlvbi5tYXhTaXplSW5NYiA+IDAgJiYgb3B0aW9uLm1heFNpemVJbk1iICogMTAyNCAqIDEwMjQgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFske2ZpbGUubmFtZX1dICR7dGhpcy50cmFuc2xhdGUoJ01heCBmaWxlIHNpemUnKX0gJHtvcHRpb24ubWF4U2l6ZUluTWJ9IE1ic2A7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvcHRpb24udmFsaWRhdG9yICYmIG9wdGlvbi52YWxpZGF0b3IoZmlsZS5uYW1lKSkge1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBvcHRpb24udmFsaWRhdG9yKGZpbGUubmFtZSk7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wb3N0KHVybCwgZm9ybURhdGEpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -9,23 +9,33 @@ export class SdHttpService {
9
9
  this.httpClient = httpClient;
10
10
  this.tokenService = tokenService;
11
11
  this.get = (url, option) => {
12
- option = Object.assign(Object.assign({}, option), { headers: option.headers || this.tokenService.customHeaders });
12
+ option = Object.assign(Object.assign({}, option), { headers: option.headers || this.tokenService.customHeaders({
13
+ url
14
+ }) });
13
15
  return this.httpClient.get(url, option);
14
16
  };
15
17
  this.post = (url, body, option) => {
16
- option = Object.assign(Object.assign({}, option), { headers: option.headers || this.tokenService.customHeaders });
18
+ option = Object.assign(Object.assign({}, option), { headers: option.headers || this.tokenService.customHeaders({
19
+ url
20
+ }) });
17
21
  return this.httpClient.post(url, body, option);
18
22
  };
19
23
  this.put = (url, body, option) => {
20
- option = Object.assign(Object.assign({}, option), { headers: option.headers || this.tokenService.customHeaders });
24
+ option = Object.assign(Object.assign({}, option), { headers: option.headers || this.tokenService.customHeaders({
25
+ url
26
+ }) });
21
27
  return this.httpClient.put(url, body, option);
22
28
  };
23
29
  this.delete = (url, option) => {
24
- option = Object.assign(Object.assign({}, option), { headers: option.headers || this.tokenService.customHeaders });
30
+ option = Object.assign(Object.assign({}, option), { headers: option.headers || this.tokenService.customHeaders({
31
+ url
32
+ }) });
25
33
  return this.httpClient.delete(url, option);
26
34
  };
27
35
  this.request = (method, url, option) => {
28
- option = Object.assign(Object.assign({}, option), { headers: option.headers || this.tokenService.customHeaders });
36
+ option = Object.assign(Object.assign({}, option), { headers: option.headers || this.tokenService.customHeaders({
37
+ url
38
+ }) });
29
39
  return this.httpClient.request(method, url, option);
30
40
  };
31
41
  }
@@ -40,4 +50,4 @@ SdHttpService.ctorParameters = () => [
40
50
  { type: HttpClient },
41
51
  { type: SdTokenService }
42
52
  ];
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9hcGkvIiwic291cmNlcyI6WyJzcmMvbGliL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQTJCLE1BQU0sc0JBQXNCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBS2pELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsVUFBc0IsRUFDdEIsWUFBNEI7UUFENUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFHdEMsUUFBRyxHQUFFLENBQVUsR0FBVyxFQUFFLE1BQXlCLEVBQWlCLEVBQUU7WUFDdEUsTUFBTSxtQ0FDRCxNQUFNLEtBQ1QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEdBQzNELENBQUE7WUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFJLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUE7UUFFRCxTQUFJLEdBQUcsQ0FBVSxHQUFXLEVBQUUsSUFBVSxFQUFFLE1BQXlCLEVBQWlCLEVBQUU7WUFDcEYsTUFBTSxtQ0FDRCxNQUFNLEtBQ1QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEdBQzNELENBQUE7WUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFBO1FBRUQsUUFBRyxHQUFHLENBQVUsR0FBVyxFQUFFLElBQVUsRUFBRSxNQUF5QixFQUFpQixFQUFFO1lBQ25GLE1BQU0sbUNBQ0QsTUFBTSxLQUNULE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUMzRCxDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQTtRQUVELFdBQU0sR0FBRyxDQUFVLEdBQVcsRUFBRSxNQUF5QixFQUFpQixFQUFFO1lBQzFFLE1BQU0sbUNBQ0QsTUFBTSxLQUNULE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUMzRCxDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBSSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFBO1FBRUQsWUFBTyxHQUFHLENBQVUsTUFBYyxFQUFFLEdBQVcsRUFBRSxNQUF5QixFQUFpQixFQUFFO1lBQzNGLE1BQU0sbUNBQ0QsTUFBTSxLQUNULE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUMzRCxDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBSSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQTtJQXhDRCxDQUFDOzs7O1lBUEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFOUSxVQUFVO1lBRVYsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RIdHRwU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogU2RUb2tlblNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGdldCA9PFQgPSBhbnk+KHVybDogc3RyaW5nLCBvcHRpb24/OiBPYnNlcnZhYmxlT3B0aW9uKTogT2JzZXJ2YWJsZTxUPiA9PiB7XHJcbiAgICBvcHRpb24gPSB7XHJcbiAgICAgIC4uLm9wdGlvbixcclxuICAgICAgaGVhZGVyczogb3B0aW9uLmhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVyc1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8VD4odXJsLCBvcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgcG9zdCA9IDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSwgb3B0aW9uPzogT2JzZXJ2YWJsZU9wdGlvbik6IE9ic2VydmFibGU8VD4gPT4ge1xyXG4gICAgb3B0aW9uID0ge1xyXG4gICAgICAuLi5vcHRpb24sXHJcbiAgICAgIGhlYWRlcnM6IG9wdGlvbi5oZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnNcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxUPih1cmwsIGJvZHksIG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdXQgPSA8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbj86IE9ic2VydmFibGVPcHRpb24pOiBPYnNlcnZhYmxlPFQ+ID0+IHtcclxuICAgIG9wdGlvbiA9IHtcclxuICAgICAgLi4ub3B0aW9uLFxyXG4gICAgICBoZWFkZXJzOiBvcHRpb24uaGVhZGVycyB8fCB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dDxUPih1cmwsIGJvZHksIG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICBkZWxldGUgPSA8VCA9IGFueT4odXJsOiBzdHJpbmcsIG9wdGlvbj86IE9ic2VydmFibGVPcHRpb24pOiBPYnNlcnZhYmxlPFQ+ID0+IHtcclxuICAgIG9wdGlvbiA9IHtcclxuICAgICAgLi4ub3B0aW9uLFxyXG4gICAgICBoZWFkZXJzOiBvcHRpb24uaGVhZGVycyB8fCB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmRlbGV0ZTxUPih1cmwsIG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICByZXF1ZXN0ID0gPFQgPSBhbnk+KG1ldGhvZDogc3RyaW5nLCB1cmw6IHN0cmluZywgb3B0aW9uPzogT2JzZXJ2YWJsZU9wdGlvbik6IE9ic2VydmFibGU8VD4gPT4ge1xyXG4gICAgb3B0aW9uID0ge1xyXG4gICAgICAuLi5vcHRpb24sXHJcbiAgICAgIGhlYWRlcnM6IG9wdGlvbi5oZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnNcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxUPihtZXRob2QsIHVybCwgb3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBPYnNlcnZhYmxlT3B0aW9uIHtcclxuICBib2R5PzogYW55O1xyXG4gIGhlYWRlcnM/OiBIdHRwSGVhZGVycyB8IHtcclxuICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIH07XHJcbiAgb2JzZXJ2ZT86ICdib2R5JztcclxuICBwYXJhbXM/OiBIdHRwUGFyYW1zIHwge1xyXG4gICAgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICB9O1xyXG4gIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcclxuICByZXNwb25zZVR5cGU/OiAnanNvbic7XHJcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcclxufSJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9hcGkvIiwic291cmNlcyI6WyJzcmMvbGliL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQTJCLE1BQU0sc0JBQXNCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBS2pELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsVUFBc0IsRUFDdEIsWUFBNEI7UUFENUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFHdEMsUUFBRyxHQUFFLENBQVUsR0FBVyxFQUFFLE1BQXlCLEVBQWlCLEVBQUU7WUFDdEUsTUFBTSxtQ0FDRCxNQUFNLEtBQ1QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7b0JBQ3pELEdBQUc7aUJBQ0osQ0FBQyxHQUNILENBQUE7WUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFJLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUE7UUFFRCxTQUFJLEdBQUcsQ0FBVSxHQUFXLEVBQUUsSUFBVSxFQUFFLE1BQXlCLEVBQWlCLEVBQUU7WUFDcEYsTUFBTSxtQ0FDRCxNQUFNLEtBQ1QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7b0JBQ3pELEdBQUc7aUJBQ0osQ0FBQyxHQUNILENBQUE7WUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFBO1FBRUQsUUFBRyxHQUFHLENBQVUsR0FBVyxFQUFFLElBQVUsRUFBRSxNQUF5QixFQUFpQixFQUFFO1lBQ25GLE1BQU0sbUNBQ0QsTUFBTSxLQUNULE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO29CQUN6RCxHQUFHO2lCQUNKLENBQUMsR0FDSCxDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQTtRQUVELFdBQU0sR0FBRyxDQUFVLEdBQVcsRUFBRSxNQUF5QixFQUFpQixFQUFFO1lBQzFFLE1BQU0sbUNBQ0QsTUFBTSxLQUNULE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO29CQUN6RCxHQUFHO2lCQUNKLENBQUMsR0FDSCxDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBSSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFBO1FBRUQsWUFBTyxHQUFHLENBQVUsTUFBYyxFQUFFLEdBQVcsRUFBRSxNQUF5QixFQUFpQixFQUFFO1lBQzNGLE1BQU0sbUNBQ0QsTUFBTSxLQUNULE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO29CQUN6RCxHQUFHO2lCQUNKLENBQUMsR0FDSCxDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBSSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQTtJQWxERCxDQUFDOzs7O1lBUEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFOUSxVQUFVO1lBRVYsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RIdHRwU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogU2RUb2tlblNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGdldCA9PFQgPSBhbnk+KHVybDogc3RyaW5nLCBvcHRpb24/OiBPYnNlcnZhYmxlT3B0aW9uKTogT2JzZXJ2YWJsZTxUPiA9PiB7XHJcbiAgICBvcHRpb24gPSB7XHJcbiAgICAgIC4uLm9wdGlvbixcclxuICAgICAgaGVhZGVyczogb3B0aW9uLmhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgICAgdXJsXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUPih1cmwsIG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICBwb3N0ID0gPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBvcHRpb24/OiBPYnNlcnZhYmxlT3B0aW9uKTogT2JzZXJ2YWJsZTxUPiA9PiB7XHJcbiAgICBvcHRpb24gPSB7XHJcbiAgICAgIC4uLm9wdGlvbixcclxuICAgICAgaGVhZGVyczogb3B0aW9uLmhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgICAgdXJsXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8VD4odXJsLCBib2R5LCBvcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHV0ID0gPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBvcHRpb24/OiBPYnNlcnZhYmxlT3B0aW9uKTogT2JzZXJ2YWJsZTxUPiA9PiB7XHJcbiAgICBvcHRpb24gPSB7XHJcbiAgICAgIC4uLm9wdGlvbixcclxuICAgICAgaGVhZGVyczogb3B0aW9uLmhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgICAgdXJsXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dDxUPih1cmwsIGJvZHksIG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICBkZWxldGUgPSA8VCA9IGFueT4odXJsOiBzdHJpbmcsIG9wdGlvbj86IE9ic2VydmFibGVPcHRpb24pOiBPYnNlcnZhYmxlPFQ+ID0+IHtcclxuICAgIG9wdGlvbiA9IHtcclxuICAgICAgLi4ub3B0aW9uLFxyXG4gICAgICBoZWFkZXJzOiBvcHRpb24uaGVhZGVycyB8fCB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzKHtcclxuICAgICAgICB1cmxcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZGVsZXRlPFQ+KHVybCwgb3B0aW9uKTtcclxuICB9XHJcblxyXG4gIHJlcXVlc3QgPSA8VCA9IGFueT4obWV0aG9kOiBzdHJpbmcsIHVybDogc3RyaW5nLCBvcHRpb24/OiBPYnNlcnZhYmxlT3B0aW9uKTogT2JzZXJ2YWJsZTxUPiA9PiB7XHJcbiAgICBvcHRpb24gPSB7XHJcbiAgICAgIC4uLm9wdGlvbixcclxuICAgICAgaGVhZGVyczogb3B0aW9uLmhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgICAgdXJsXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG5pbnRlcmZhY2UgT2JzZXJ2YWJsZU9wdGlvbiB7XHJcbiAgYm9keT86IGFueTtcclxuICBoZWFkZXJzPzogSHR0cEhlYWRlcnMgfCB7XHJcbiAgICBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICB9O1xyXG4gIG9ic2VydmU/OiAnYm9keSc7XHJcbiAgcGFyYW1zPzogSHR0cFBhcmFtcyB8IHtcclxuICAgIFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgfTtcclxuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XHJcbiAgcmVzcG9uc2VUeXBlPzogJ2pzb24nO1xyXG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcbn0iXX0=
@@ -22,6 +22,10 @@ export class SdTokenService {
22
22
  });
23
23
  remove();
24
24
  };
25
+ this.customHeaders = (args) => {
26
+ var _a, _b;
27
+ return ((_b = (_a = this.configuration) === null || _a === void 0 ? void 0 : _a.customHeaders) === null || _b === void 0 ? void 0 : _b.call(_a, args)) || null;
28
+ };
25
29
  }
26
30
  get token() {
27
31
  const { get } = this.cacheService.create(TOKEN, {
@@ -30,10 +34,6 @@ export class SdTokenService {
30
34
  });
31
35
  return get();
32
36
  }
33
- get customHeaders() {
34
- var _a, _b;
35
- return ((_b = (_a = this.configuration) === null || _a === void 0 ? void 0 : _a.customHeaders) === null || _b === void 0 ? void 0 : _b.call(_a)) || null;
36
- }
37
37
  }
38
38
  SdTokenService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SdTokenService_Factory() { return new SdTokenService(i0.ɵɵinject(i1.API_CONFIG, 8), i0.ɵɵinject(i2.SdCacheService)); }, token: SdTokenService, providedIn: "root" });
39
39
  SdTokenService.decorators = [
@@ -45,4 +45,4 @@ SdTokenService.ctorParameters = () => [
45
45
  { type: undefined, decorators: [{ type: Inject, args: [API_CONFIG,] }, { type: Optional }] },
46
46
  { type: SdCacheService }
47
47
  ];
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvYXBpLyIsInNvdXJjZXMiOlsic3JjL2xpYi90b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXFCLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBS3hELE1BQU0sT0FBTyxjQUFjO0lBOEJ6QixZQUMwQyxhQUFnQyxFQUNoRSxZQUE0QjtRQURJLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoRSxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUF0QnRDLFFBQUcsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBUyxLQUFLLEVBQUU7Z0JBQ3RELElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQyxDQUFDO1lBQ0gsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2IsQ0FBQyxDQUFBO1FBRUQsVUFBSyxHQUFHLEdBQUcsRUFBRTtZQUNYLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBUyxLQUFLLEVBQUU7Z0JBQ3pELElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUM7UUFDWCxDQUFDLENBQUE7SUFTRCxDQUFDO0lBL0JELElBQUksS0FBSztRQUNQLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBUyxLQUFLLEVBQUU7WUFDdEQsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsR0FBRztTQUNYLENBQUMsQ0FBQztRQUNILE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDZixDQUFDO0lBa0JELElBQUksYUFBYTs7UUFDZixPQUFPLGFBQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsYUFBYSx1REFBUSxJQUFJLENBQUM7SUFDdkQsQ0FBQzs7OztZQS9CRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs0Q0FnQ0ksTUFBTSxTQUFDLFVBQVUsY0FBRyxRQUFRO1lBcEN4QixjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQXBpQ29uZmlndXJhdGlvbiwgQVBJX0NPTkZJRywgVE9LRU4gfSBmcm9tICcuL2FwaS5tb2RlbCc7XHJcbmltcG9ydCB7IFNkQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jYWNoZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZFRva2VuU2VydmljZSB7XHJcblxyXG4gIGdldCB0b2tlbigpIHtcclxuICAgIGNvbnN0IHsgZ2V0IH0gPSB0aGlzLmNhY2hlU2VydmljZS5jcmVhdGU8c3RyaW5nPihUT0tFTiwge1xyXG4gICAgICB0eXBlOiAnbG9jYWwnLFxyXG4gICAgICBob3VyczogMjQwXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBnZXQoKTtcclxuICB9XHJcblxyXG4gIHNldCA9ICh0b2tlbjogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB7IHNldCB9ID0gdGhpcy5jYWNoZVNlcnZpY2UuY3JlYXRlPHN0cmluZz4oVE9LRU4sIHtcclxuICAgICAgdHlwZTogJ2xvY2FsJyxcclxuICAgICAgaG91cnM6IDI0MFxyXG4gICAgfSk7XHJcbiAgICBzZXQodG9rZW4pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB7IHJlbW92ZSB9ID0gdGhpcy5jYWNoZVNlcnZpY2UuY3JlYXRlPHN0cmluZz4oVE9LRU4sIHtcclxuICAgICAgdHlwZTogJ2xvY2FsJyxcclxuICAgICAgaG91cnM6IDI0MFxyXG4gICAgfSk7XHJcbiAgICByZW1vdmUoKTtcclxuICB9XHJcblxyXG4gIGdldCBjdXN0b21IZWFkZXJzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbj8uY3VzdG9tSGVhZGVycz8uKCkgfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChBUElfQ09ORklHKSBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbmZpZ3VyYXRpb246IElBcGlDb25maWd1cmF0aW9uLFxyXG4gICAgcHJpdmF0ZSBjYWNoZVNlcnZpY2U6IFNkQ2FjaGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvYXBpLyIsInNvdXJjZXMiOlsic3JjL2xpYi90b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXFCLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBS3hELE1BQU0sT0FBTyxjQUFjO0lBOEJ6QixZQUMwQyxhQUFnQyxFQUNoRSxZQUE0QjtRQURJLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoRSxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUF0QnRDLFFBQUcsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBUyxLQUFLLEVBQUU7Z0JBQ3RELElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQyxDQUFDO1lBQ0gsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2IsQ0FBQyxDQUFBO1FBRUQsVUFBSyxHQUFHLEdBQUcsRUFBRTtZQUNYLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBUyxLQUFLLEVBQUU7Z0JBQ3pELElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUM7UUFDWCxDQUFDLENBQUE7UUFFRCxrQkFBYSxHQUFHLENBQUMsSUFBdUIsRUFBRSxFQUFFOztZQUMxQyxPQUFPLGFBQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsYUFBYSxtREFBRyxJQUFJLE1BQUssSUFBSSxDQUFDO1FBQzNELENBQUMsQ0FBQTtJQUtELENBQUM7SUEvQkQsSUFBSSxLQUFLO1FBQ1AsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFTLEtBQUssRUFBRTtZQUN0RCxJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSxHQUFHO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUM7Ozs7WUFYRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs0Q0FnQ0ksTUFBTSxTQUFDLFVBQVUsY0FBRyxRQUFRO1lBcEN4QixjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQXBpQ29uZmlndXJhdGlvbiwgQVBJX0NPTkZJRywgVE9LRU4gfSBmcm9tICcuL2FwaS5tb2RlbCc7XHJcbmltcG9ydCB7IFNkQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jYWNoZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZFRva2VuU2VydmljZSB7XHJcblxyXG4gIGdldCB0b2tlbigpIHtcclxuICAgIGNvbnN0IHsgZ2V0IH0gPSB0aGlzLmNhY2hlU2VydmljZS5jcmVhdGU8c3RyaW5nPihUT0tFTiwge1xyXG4gICAgICB0eXBlOiAnbG9jYWwnLFxyXG4gICAgICBob3VyczogMjQwXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBnZXQoKTtcclxuICB9XHJcblxyXG4gIHNldCA9ICh0b2tlbjogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB7IHNldCB9ID0gdGhpcy5jYWNoZVNlcnZpY2UuY3JlYXRlPHN0cmluZz4oVE9LRU4sIHtcclxuICAgICAgdHlwZTogJ2xvY2FsJyxcclxuICAgICAgaG91cnM6IDI0MFxyXG4gICAgfSk7XHJcbiAgICBzZXQodG9rZW4pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB7IHJlbW92ZSB9ID0gdGhpcy5jYWNoZVNlcnZpY2UuY3JlYXRlPHN0cmluZz4oVE9LRU4sIHtcclxuICAgICAgdHlwZTogJ2xvY2FsJyxcclxuICAgICAgaG91cnM6IDI0MFxyXG4gICAgfSk7XHJcbiAgICByZW1vdmUoKTtcclxuICB9XHJcblxyXG4gIGN1c3RvbUhlYWRlcnMgPSAoYXJncz86IHsgdXJsPzogc3RyaW5nIH0pID0+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24/LmN1c3RvbUhlYWRlcnM/LihhcmdzKSB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KEFQSV9DT05GSUcpIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlndXJhdGlvbjogSUFwaUNvbmZpZ3VyYXRpb24sXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogU2RDYWNoZVNlcnZpY2UpIHtcclxuICB9XHJcbn1cclxuIl19
@@ -1,13 +1,13 @@
1
1
  var _model, _delay, _name, _form, _itemsChanges, _subscription, _cache, _item, _updateValidator;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Component, Input, ViewChild, Output, EventEmitter, ChangeDetectorRef, ContentChild, ChangeDetectionStrategy } from '@angular/core';
3
+ import { Component, Input, ViewChild, Output, EventEmitter, ChangeDetectorRef, ContentChild, ChangeDetectionStrategy, Inject, Optional } from '@angular/core';
4
4
  import { startWith, switchMap, debounceTime, map, finalize } from 'rxjs/operators';
5
5
  import * as uuid from 'uuid';
6
6
  import { NgForm, Validators } from '@angular/forms';
7
7
  import { BehaviorSubject, combineLatest, defer, from, of, Subscription } from 'rxjs';
8
8
  import { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';
9
9
  import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
10
- import { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';
10
+ import { FORM_CONFIG, SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';
11
11
  class SdAutocompleteErrotStateMatcher {
12
12
  constructor(formControl) {
13
13
  this.formControl = formControl;
@@ -19,8 +19,9 @@ class SdAutocompleteErrotStateMatcher {
19
19
  }
20
20
  }
21
21
  export class SdAutocomplete {
22
- constructor(ref) {
22
+ constructor(ref, formConfig) {
23
23
  this.ref = ref;
24
+ this.formConfig = formConfig;
24
25
  this.id = `I${uuid.v4()}`;
25
26
  _model.set(this, void 0);
26
27
  _delay.set(this, 0); // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm
@@ -186,8 +187,9 @@ export class SdAutocomplete {
186
187
  val = (val === '') || val;
187
188
  }
188
189
  ngOnInit() {
190
+ var _a;
191
+ this.appearance = this.appearance || ((_a = this.formConfig) === null || _a === void 0 ? void 0 : _a.appearance);
189
192
  __classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
190
- // this.formControl.updateValueAndValidity();
191
193
  this.ref.markForCheck();
192
194
  }));
193
195
  __classPrivateFieldGet(this, _subscription).add(this.inputControl.sdChanges.subscribe(() => {
@@ -274,18 +276,20 @@ _model = new WeakMap(), _delay = new WeakMap(), _name = new WeakMap(), _form = n
274
276
  SdAutocomplete.decorators = [
275
277
  { type: Component, args: [{
276
278
  selector: 'sd-autocomplete',
277
- template: "<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n[class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !autocompleteTrigger?.panelOpen && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value, selectedItem: selected | async }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\" [ngClass]=\"{'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n [floatLabel]=\"size === 'sm' || formControl.value ? 'always':'auto'\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\r\n <input [id]=\"id\" #autocompleteTrigger [formControl]=\"inputControl\" [placeholder]=\"controlPlaceHolder | async\"\r\n [ngClass]=\"{'c-selected': formControl?.value}\" [matAutocomplete]=\"auto\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\r\n matInput [autocomplete]=\"id\" autocorrect=\"off\" [errorStateMatcher]=\"matcher\" [required]=\"isRequired\" #input />\r\n <mat-icon *ngIf=\"!loading && formControl?.value && !inputControl.disabled\" class=\"pointer sd-suffix-icon\"\r\n (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n <mat-icon *ngIf=\"actionIcon && !loading && !formControl?.value && !inputControl.disabled\"\r\n class=\"pointer sd-suffix-icon\" (click)=\"onAction($event)\" matSuffix>{{actionIcon}}\r\n </mat-icon>\r\n <mat-spinner *ngIf=\"loading\" strokeWidth=\"2\" mode=\"indeterminate\" diameter=\"18\" value=\"100\" matSuffix>\r\n </mat-spinner>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onSelect($event.option.value)\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"displayField ? item[displayField] : item\">\r\n <ng-container *ngIf=\"autocompleteDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"autocompleteDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!autocompleteDisplayDef?.templateRef\">\r\n {{ displayField ? item[displayField] : item }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"formControl?.errors?.required && !disableErrorMessage\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>",
279
+ template: "<label *ngIf=\"!appearance && label\" class=\"d-block pb-0 T14M\">{{label}} <span class=\"text-danger mb-2\"\r\n *ngIf=\"required\">*</span></label>\r\n<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !autocompleteTrigger?.panelOpen && !isFocused; else default\">\r\n <ng-container\r\n *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value, selectedItem: selected | async }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\" [ngClass]=\"{'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n [floatLabel]=\"size === 'sm' || formControl.value ? 'always':'auto'\" [appearance]=\"appearance || 'outline'\">\r\n <mat-label *ngIf=\"appearance && label\">{{ label }}</mat-label>\r\n <input [id]=\"id\" #autocompleteTrigger [formControl]=\"inputControl\" [placeholder]=\"controlPlaceHolder | async\"\r\n [ngClass]=\"{'c-selected': formControl?.value}\" [matAutocomplete]=\"auto\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\r\n matInput [autocomplete]=\"id\" autocorrect=\"off\" [errorStateMatcher]=\"matcher\" [required]=\"isRequired\" #input />\r\n <mat-icon *ngIf=\"!loading && formControl?.value && !inputControl.disabled\" class=\"pointer sd-suffix-icon\"\r\n (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n <mat-icon *ngIf=\"actionIcon && !loading && !formControl?.value && !inputControl.disabled\"\r\n class=\"pointer sd-suffix-icon\" (click)=\"onAction($event)\" matSuffix>{{actionIcon}}\r\n </mat-icon>\r\n <mat-spinner *ngIf=\"loading\" strokeWidth=\"2\" mode=\"indeterminate\" diameter=\"18\" value=\"100\" matSuffix>\r\n </mat-spinner>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onSelect($event.option.value)\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"displayField ? item[displayField] : item\">\r\n <ng-container *ngIf=\"autocompleteDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"autocompleteDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!autocompleteDisplayDef?.templateRef\">\r\n {{ displayField ? item[displayField] : item }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"formControl?.errors?.required && !disableErrorMessage\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>",
278
280
  changeDetection: ChangeDetectionStrategy.OnPush,
279
281
  styles: [":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.c-selected::-moz-placeholder{color:#000;opacity:1}:host ::ng-deep .mat-form-field input.c-selected::placeholder{color:#000;opacity:1}:host ::ng-deep .mat-form-field input.c-selected:-ms-input-placeholder{color:#000}:host ::ng-deep .mat-form-field input.c-selected::-ms-input-placeholder{color:#000}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::-moz-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected:-ms-input-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::-ms-input-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}"]
280
282
  },] }
281
283
  ];
282
284
  SdAutocomplete.ctorParameters = () => [
283
- { type: ChangeDetectorRef }
285
+ { type: ChangeDetectorRef },
286
+ { type: undefined, decorators: [{ type: Inject, args: [FORM_CONFIG,] }, { type: Optional }] }
284
287
  ];
285
288
  SdAutocomplete.propDecorators = {
286
289
  key: [{ type: Input }],
287
290
  autocompleteTrigger: [{ type: ViewChild, args: [MatAutocompleteTrigger, { read: MatAutocompleteTrigger },] }],
288
291
  name: [{ type: Input }],
292
+ appearance: [{ type: Input }],
289
293
  size: [{ type: Input }],
290
294
  form: [{ type: Input }],
291
295
  label: [{ type: Input }],
@@ -306,4 +310,4 @@ SdAutocomplete.propDecorators = {
306
310
  input: [{ type: ViewChild, args: ['input',] }],
307
311
  sdView: [{ type: ContentChild, args: [SdViewDefDirective,] }]
308
312
  };
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvYXV0b2NvbXBsZXRlLyIsInNvdXJjZXMiOlsic3JjL2xpYi9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBSVosaUJBQWlCLEVBQ2pCLFlBQVksRUFDWix1QkFBdUIsRUFFeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQWUsTUFBTSxFQUFFLFVBQVUsRUFBZ0UsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvSCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVFLE1BQU0sK0JBQStCO0lBQ25DLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUksQ0FBQztJQUNqRCxZQUFZLENBQUMsT0FBMkIsRUFBRSxJQUF3Qzs7UUFDaEYsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLE9BQU8sS0FBSSxDQUFDLE9BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsS0FBSyxZQUFJLElBQUksQ0FBQyxXQUFXLDBDQUFFLE9BQU8sQ0FBQSxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztDQUNGO0FBUUQsTUFBTSxPQUFPLGNBQWM7SUFrR3pCLFlBQ1UsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE3RmhDLE9BQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3JCLHlCQUF3QjtRQUV4QixpQkFBUyxDQUFDLEVBQUMsQ0FBQyx5RkFBeUY7UUFDckcsZ0JBQVEsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDO1FBTWxCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsaUJBQVksR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQyxZQUFPLEdBQUcsSUFBSSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEUsd0JBQWlCO1FBZWpCLHdCQUFnQixJQUFJLGVBQWUsQ0FBcUIsRUFBRSxDQUFDLEVBQUM7UUFhbkQsVUFBSyxHQUFHLEdBQUcsQ0FBQztRQVlYLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWF4QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBS25CLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUs1Qix3QkFBZ0IsSUFBSSxZQUFZLEVBQUUsRUFBQztRQUduQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2xCLGlCQUVJLEVBQUUsRUFBQztRQUNQLGdCQUVJLEVBQUUsRUFBQztRQXlGUCxhQUFRLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN2QixJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsRUFBRTtvQkFDNUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7d0JBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQzFCO2lCQUNGO3FCQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUMvQyxNQUFNLEdBQUcsR0FBRyxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRyxJQUFJLENBQUMsVUFBVSxNQUFLLElBQUksQ0FBQztvQkFDNUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxHQUFHLEVBQUU7d0JBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQzFCO2lCQUNGO2dCQUNELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtvQkFDN0IsU0FBUyxFQUFFLEtBQUs7aUJBQ2pCLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsWUFBTyxHQUFHLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLDhDQUE4QztRQUNoRCxDQUFDLENBQUE7UUFFRCxXQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO2dCQUM3QixTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUE7UUFFRCxZQUFPLEdBQUcsR0FBRyxFQUFFOztZQUNiLFVBQUksSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxFQUFFO2dCQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ2Q7YUFDRjtRQUNILENBQUMsQ0FBQTtRQUVELFNBQUksR0FBRyxHQUFHLEVBQUU7O1lBQ1YsWUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxhQUFhLDBDQUFFLElBQUksR0FBRztRQUNwQyxDQUFDLENBQUE7UUFFRCxVQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTs7Z0JBQ2QsTUFBQSxJQUFJLENBQUMsbUJBQW1CLDBDQUFFLFNBQVMsR0FBRztnQkFDdEMsWUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxhQUFhLDBDQUFFLEtBQUssR0FBRztZQUNyQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUE7UUFFRCxVQUFLLEdBQUcsQ0FBQyxNQUFZLEVBQUUsRUFBRTs7WUFDdkIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGVBQWUsR0FBRztZQUMxQixNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsMENBQWlCO2dCQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUE7UUFFRCxhQUFRLEdBQUcsQ0FBQyxNQUFhLEVBQUUsRUFBRTs7WUFDM0IsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGVBQWUsR0FBRztZQUMxQixNQUFBLElBQUksQ0FBQyxtQkFBbUIsMENBQUUsVUFBVSxHQUFHO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFBO1FBRUQsZUFBVSxHQUFHLEdBQUcsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFBO1FBRUQsMkJBQW1CLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFVBQVUsR0FBa0IsRUFBRSxDQUFDO1lBQ3JDLGtEQUFrRDtZQUNsRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDO1lBQ0QseUJBQXlCO1lBQ3pCLGtFQUFrRTtZQUNsRSxJQUFJO1lBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0Msd0RBQXdEO1lBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM1QyxDQUFDLEVBQUE7SUEvS0QsQ0FBQztJQW5HRCxJQUFhLEdBQUcsQ0FBQyxLQUFVO1FBQ3pCLHVCQUFBLElBQUksVUFBVSxFQUFFLEVBQUM7UUFDakIsdUJBQUEsSUFBSSxTQUFTLEVBQUUsRUFBQztJQUNsQixDQUFDO0lBT0QsSUFBYSxJQUFJLENBQUMsR0FBVztRQUMzQixJQUFJLEdBQUcsRUFBRTtZQUNQLHVCQUFBLElBQUksU0FBUyxHQUFHLEVBQUM7U0FDbEI7SUFDSCxDQUFDO0lBT0QsSUFBYSxJQUFJLENBQUMsR0FBdUI7UUFDdkMsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLEdBQUcsWUFBWSxNQUFNLEVBQUU7Z0JBQ3pCLHVCQUFBLElBQUksU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLHVCQUFBLElBQUksU0FBUyxHQUFHLEVBQUM7YUFDbEI7U0FDRjtJQUNILENBQUM7SUFPRCxJQUFhLEtBQUssQ0FBQyxLQUFxQztRQUN0RCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsNENBQW1CLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM3QjthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQiw0Q0FBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzNFO2FBQU07WUFDTCw0Q0FBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLHVCQUFBLElBQUksVUFBVSxHQUFHLEVBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDNUMsQ0FBQztJQU9ELElBQWEsS0FBSyxDQUFDLEtBQWtDO1FBQ25ELHVCQUFBLElBQUksVUFBVSxLQUFLLEVBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQVFELFdBQVc7SUFDWCxJQUFhLFFBQVEsQ0FBQyxHQUFpQjtRQUNyQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQzFCLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsR0FBaUI7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDdEMsb0RBQUEsSUFBSSxDQUFtQixDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFrQyxvQkFBb0IsQ0FBQyxHQUFpQjtRQUN0RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQy9DLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQWlCRCxRQUFRO1FBQ04sNENBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9ELDZDQUE2QztZQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSiw0Q0FBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDakMsNENBQW1CLFlBQVksRUFBRTtZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxzQ0FBYSxDQUFDO1NBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkUsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUNoQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUM5QixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxVQUFVLEVBQUU7Z0JBQ2pDLElBQUkscUNBQVksVUFBVSxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUN6QyxPQUFPLHFDQUFZLFVBQVUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO2lCQUMvQztnQkFDRCxJQUFJLEdBQXNCLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksSUFBSSxZQUFZLE9BQU8sRUFBRTtvQkFDM0IsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDL0I7cUJBQU07b0JBQ0wsR0FBRyxHQUFHLElBQUksQ0FBQTtpQkFDWDtnQkFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDcEIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDekIscUNBQVksVUFBVSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDckMsTUFBTSxDQUFDLE1BQU0sc0NBQWEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxxQ0FBWSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDcEYsT0FBTyxxQ0FBWSxVQUFVLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUMzQztZQUNELE9BQU8sS0FBSztpQkFDVCxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2lCQUNsQixZQUFZLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUM7WUFDNUIsNENBQW1CLFlBQVksRUFBRTtZQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FBQyxDQUFDO2FBQ3RFLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ3pCLDZHQUE2RztZQUM3Ryw4RkFBOEY7WUFDOUYsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNoQjtZQUNELElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLFVBQVUsRUFBRTtvQkFDakMsSUFBSSxvQ0FBVyxHQUFHLENBQUMsRUFBRTt3QkFDbkIsT0FBTyxFQUFFLENBQUMsb0NBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDNUI7b0JBQ0QsSUFBSSxHQUFzQixDQUFDO29CQUMzQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUM5QixJQUFJLElBQUksWUFBWSxPQUFPLEVBQUU7d0JBQzNCLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQy9CO3lCQUFNO3dCQUNMLEdBQUcsR0FBRyxJQUFJLENBQUM7cUJBQ1o7b0JBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDekIsTUFBTSxDQUFDLE1BQU0sc0NBQWEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQ2pFLE9BQU8sb0NBQVcsR0FBRyxDQUFDLElBQUk7NEJBQ3hCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUc7NEJBQ3RCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUc7eUJBQ3pCLENBQUM7b0JBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDTDtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3hEO1lBQ0QsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsc0RBQUMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFHLElBQUksQ0FBQyxZQUFZLG9DQUFLLElBQUksbUNBQUksSUFBSSxDQUFDLFdBQVcsbUNBQUksSUFBSSxDQUFDLEtBQUssbUNBQUksRUFBRSxHQUFBLENBQUMsQ0FBQyxDQUFDO0lBQ3ZJLENBQUM7SUFFRCxlQUFlOztRQUNiLG1GQUFZLFVBQVUsc0NBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRTtJQUN2RCxDQUFDO0lBRUQsV0FBVzs7UUFDVCw0Q0FBbUIsV0FBVyxFQUFFLENBQUM7UUFDakMsbUZBQVksYUFBYSxzQ0FBYTtJQUN4QyxDQUFDOzs7O1lBL0xGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQix5cEZBQTRDO2dCQUU1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQTVCQyxpQkFBaUI7OztrQkE4QmhCLEtBQUs7a0NBSUwsU0FBUyxTQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO21CQU1sRSxLQUFLO21CQVNMLEtBQUs7bUJBRUwsS0FBSztvQkFTTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLO29CQUdMLEtBQUs7b0JBWUwsS0FBSztvQkFLTCxLQUFLO3FDQUtMLFlBQVksU0FBQyxpQ0FBaUM7eUJBQzlDLEtBQUs7cUJBQ0wsTUFBTTswQkFDTixNQUFNO3VCQUNOLE1BQU07dUJBR04sS0FBSzt1QkFXTCxLQUFLO21DQUtMLEtBQUssU0FBQyxxQkFBcUI7b0JBSzNCLFNBQVMsU0FBQyxPQUFPO3FCQUNqQixZQUFZLFNBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBFbGVtZW50UmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCBkZWJvdW5jZVRpbWUsIG1hcCwgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTmdGb3JtLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXBEaXJlY3RpdmUsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4sIEFzeW5jVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVmZXIsIGZyb20sIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9hdXRvY29tcGxldGUtZGlzcGxheS1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFNkRm9ybUNvbnRyb2wsIFNkVmlld0RlZkRpcmVjdGl2ZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuXHJcbmNsYXNzIFNkQXV0b2NvbXBsZXRlRXJyb3RTdGF0ZU1hdGNoZXIgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHsgfVxyXG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzU3VibWl0dGVkID0gZm9ybSAmJiBmb3JtLnN1Ym1pdHRlZDtcclxuICAgIHJldHVybiAhISh0aGlzLmZvcm1Db250cm9sPy5pbnZhbGlkICYmICh0aGlzLmZvcm1Db250cm9sPy5kaXJ0eSB8fCB0aGlzLmZvcm1Db250cm9sPy50b3VjaGVkIHx8IGlzU3VibWl0dGVkKSk7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQXV0b2NvbXBsZXRlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIHNldCBrZXkodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy4jY2FjaGUgPSB7fTtcclxuICAgIHRoaXMuI2l0ZW0gPSB7fTtcclxuICB9XHJcbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSkgYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBpZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICAjbW9kZWw6IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgI2RlbGF5ID0gMDsgLy8gU2F1IGtob+G6o25nIHRo4budaSBnaWFuIGRlbGF5IG7hur91IGtow7RuZyBjw7MgdGhheSDEkeG7lWkgdGjDrCB0aMOsIG3hu5tpIGLhuq90IMSR4bqndSB0aOG7sWMgaGnhu4duIGfhu41pIGjDoG1cclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgaW5wdXRDb250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgbWF0Y2hlciA9IG5ldyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyKHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gICNpdGVtc0NoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdIHwgU2VhcmNoRnVuYz4oW10pO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCBTZWFyY2hGdW5jKSB7XHJcbiAgICBpZiAoIWl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KFtdKTtcclxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpdGVtcykpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoaXRlbXMuZmlsdGVyKGUgPT4gZSAhPT0gbnVsbCAmJiBlICE9PSB1bmRlZmluZWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KGl0ZW1zKTtcclxuICAgICAgdGhpcy4jZGVsYXkgPSA1MDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGxpbWl0ID0gMTAwO1xyXG5cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXI6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXIyOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj47XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiB1bmRlZmluZWQgfCBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlKSBhdXRvY29tcGxldGVEaXNwbGF5RGVmOiBTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgYWN0aW9uSWNvbjogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gT3B0aW9uYWxcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5lbmFibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueVtdXHJcbiAgfSA9IHt9O1xyXG4gICNpdGVtOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcclxuICB9ID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnNkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAvLyB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuaW5wdXRDb250cm9sLnNkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aGlzLiNkZWxheSkpXSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKFtpdGVtcywgc2VhcmNoVGV4dF0pID0+IHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0IHx8ICcnO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiAoaXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXMoc2VhcmNoVGV4dCwgZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICBvYnMgPSBkZWZlcigoKSA9PiBmcm9tKGZ1bmMpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBvYnMgPSBmdW5jXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIG9icy5waXBlKG1hcChkYXRhID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSA9IGRhdGEgfHwgW107XHJcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiNpdGVtLCBBcnJheS50b09iamVjdCh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSwgdGhpcy52YWx1ZUZpZWxkKSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdO1xyXG4gICAgICAgICAgICB9KSwgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBpdGVtc1xyXG4gICAgICAgICAgICAuc2VhcmNoKHNlYXJjaFRleHQsIFt0aGlzLnZhbHVlRmllbGQsIHRoaXMuZGlzcGxheUZpZWxkXSlcclxuICAgICAgICAgICAgLnBhZ2luZyh0aGlzLmxpbWl0KVxyXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLFxyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSldKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKFtpdGVtcywgdmFsXSkgPT4ge1xyXG4gICAgICAgICAgLy8gVsOsIG3hu5l0IHPhu5EgbMO9IGRvIGNoxrBhIHjDoWMgxJHhu4tuaCBtw6Aga2hpIHPhu60gZOG7pW5nIHNkVmlld0RlZiB0aMOsIGtoaSBjaHV54buDbiBzYW5nIGThuqFuZyB2aWV3IHPhur0gdHJpZ2dlciB2YWwgPSBudWxsXHJcbiAgICAgICAgICAvLyBOaMawbmcgZm9ybUNvbnRyb2wudmFsdWUgduG6q24gY8OzIGdpw6EgdHLhu4sgxJHDum5nIG7Dqm4gdGjhu7FjIGhp4buHbiBnw6FuIHZhbCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICB2YWwgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHZhbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodmFsIHx8IHZhbCA9PT0gMCkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIChpdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy4jaXRlbVt2YWxdKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy4jaXRlbVt2YWxdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgICAgICAgICAgICAgY29uc3QgZnVuYyA9IGl0ZW1zKHZhbCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZ1bmMgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICAgICAgICBvYnMgPSBkZWZlcigoKSA9PiBmcm9tKGZ1bmMpKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgb2JzID0gZnVuYztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9icy5waXBlKG1hcChkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy4jaXRlbSwgQXJyYXkudG9PYmplY3QoZGF0YSwgdGhpcy52YWx1ZUZpZWxkKSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jaXRlbVt2YWxdIHx8IHtcclxuICAgICAgICAgICAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IHZhbCxcclxuICAgICAgICAgICAgICAgICAgW3RoaXMuZGlzcGxheUZpZWxkXTogdmFsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gb2YoaXRlbXMuZmluZChlID0+IGVbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdmFsKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YoJycpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmNvbnRyb2xQbGFjZUhvbGRlciA9IHRoaXMuc2VsZWN0ZWQucGlwZShtYXAoaXRlbSA9PiBpdGVtPy5bdGhpcy5kaXNwbGF5RmllbGRdID8/IGl0ZW0gPz8gdGhpcy5wbGFjZWhvbGRlciA/PyB0aGlzLmxhYmVsID8/ICcnKSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgfVxyXG4gIG9uU2VsZWN0ID0gKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgaWYgKHR5cGVvZiAoaXRlbSkgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiAoaXRlbSkgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IGl0ZW0pIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IGl0ZW0/Llt0aGlzLnZhbHVlRmllbGRdIHx8IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWwpO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICAgICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnLCB7XHJcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJyk7XHJcbiAgICAvLyB0aGlzLmlucHV0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycsIHtcclxuICAgICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuc2RWaWV3Py50ZW1wbGF0ZVJlZikge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZWQgJiYgIXRoaXMuaXNGb2N1c2VkKSB7XHJcbiAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBibHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudD8uYmx1cigpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyPy5vcGVuUGFuZWwoKTtcclxuICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ/OiBhbnkpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbD8uc2V0VmFsdWUoJycpO1xyXG4gICAgaWYgKHRoaXMuI21vZGVsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BY3Rpb24gPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlcj8uY2xvc2VQYW5lbCgpO1xyXG4gICAgdGhpcy5hY3Rpb24uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVWYWxpZGF0ZSA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIC8vIGNvbnN0IGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIC8vIGlmICh0aGlzLiN2YWxpZGF0b3IpIHtcclxuICAgIC8vICAgYXN5bmNWYWxpZGF0b3JzLnB1c2godGhpcy4jY3VzdG9tVmFsaWRhdG9yKHRoaXMuI3ZhbGlkYXRvcikpO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgLy8gdGhpcy5mb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBTZWFyY2hGdW5jID0gKHNlYXJjaFRleHQ/OiBzdHJpbmcgfCBudW1iZXIsIGlzRm9ybVZhbHVlPzogYm9vbGVhbikgPT4gUHJvbWlzZTxhbnlbXT4gfCBPYnNlcnZhYmxlPGFueVtdPjsiXX0=
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvYXV0b2NvbXBsZXRlLyIsInNvdXJjZXMiOlsic3JjL2xpYi9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBSVosaUJBQWlCLEVBQ2pCLFlBQVksRUFDWix1QkFBdUIsRUFFdkIsTUFBTSxFQUNOLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5GLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBZSxNQUFNLEVBQUUsVUFBVSxFQUFnRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ILE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFzQixhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc3RyxNQUFNLCtCQUErQjtJQUNuQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFJLENBQUM7SUFDakQsWUFBWSxDQUFDLE9BQTJCLEVBQUUsSUFBd0M7O1FBQ2hGLE1BQU0sV0FBVyxHQUFH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LENBQUMsQ0FBQyxDQUFDO0lBQ3ZJLENBQUM7SUFFRCxlQUFlOztRQUNiLG1GQUFZLFVBQVUsc0NBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRTtJQUN2RCxDQUFDO0lBRUQsV0FBVzs7UUFDVCw0Q0FBbUIsV0FBVyxFQUFFLENBQUM7UUFDakMsbUZBQVksYUFBYSxzQ0FBYTtJQUN4QyxDQUFDOzs7O1lBak1GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQiwrMUZBQTRDO2dCQUU1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQS9CQyxpQkFBaUI7NENBcUlkLE1BQU0sU0FBQyxXQUFXLGNBQUcsUUFBUTs7O2tCQXBHL0IsS0FBSztrQ0FJTCxTQUFTLFNBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7bUJBTWxFLEtBQUs7eUJBS0wsS0FBSzttQkFLTCxLQUFLO21CQUVMLEtBQUs7b0JBU0wsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFHTCxLQUFLO29CQVlMLEtBQUs7b0JBS0wsS0FBSztxQ0FLTCxZQUFZLFNBQUMsaUNBQWlDO3lCQUM5QyxLQUFLO3FCQUNMLE1BQU07MEJBQ04sTUFBTTt1QkFDTixNQUFNO3VCQUdOLEtBQUs7dUJBV0wsS0FBSzttQ0FLTCxLQUFLLFNBQUMscUJBQXFCO29CQUszQixTQUFTLFNBQUMsT0FBTztxQkFDakIsWUFBWSxTQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBJbmplY3QsXHJcbiAgT3B0aW9uYWxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIGRlYm91bmNlVGltZSwgbWFwLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOZ0Zvcm0sIFZhbGlkYXRvcnMsIEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgQXN5bmNWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWZlciwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmUgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS1kaXNwbGF5LWRlZi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgRk9STV9DT05GSUcsIElGb3JtQ29uZmlndXJhdGlvbiwgU2RGb3JtQ29udHJvbCwgU2RWaWV3RGVmRGlyZWN0aXZlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcblxyXG5jbGFzcyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKSB7IH1cclxuICBpc0Vycm9yU3RhdGUoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQ7XHJcbiAgICByZXR1cm4gISEodGhpcy5mb3JtQ29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5mb3JtQ29udHJvbD8uZGlydHkgfHwgdGhpcy5mb3JtQ29udHJvbD8udG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1hdXRvY29tcGxldGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZEF1dG9jb21wbGV0ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBzZXQga2V5KHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuI2NhY2hlID0ge307XHJcbiAgICB0aGlzLiNpdGVtID0ge307XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgeyByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0pIGF1dG9jb21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgaWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgI21vZGVsOiBzdHJpbmcgfCBudW1iZXI7XHJcblxyXG4gICNkZWxheSA9IDA7IC8vIFNhdSBraG/huqNuZyB0aOG7nWkgZ2lhbiBkZWxheSBu4bq/dSBraMO0bmcgY8OzIHRoYXkgxJHhu5VpIHRow6wgdGjDrCBt4bubaSBi4bqvdCDEkeG6p3UgdGjhu7FjIGhp4buHbiBn4buNaSBow6BtXHJcbiAgI25hbWUgPSB1dWlkLnY0KCk7XHJcbiAgQElucHV0KCkgc2V0IG5hbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy4jbmFtZSA9IHZhbDtcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgaW5wdXRDb250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgbWF0Y2hlciA9IG5ldyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyKHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gICNpdGVtc0NoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdIHwgU2VhcmNoRnVuYz4oW10pO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCBTZWFyY2hGdW5jKSB7XHJcbiAgICBpZiAoIWl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KFtdKTtcclxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpdGVtcykpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoaXRlbXMuZmlsdGVyKGUgPT4gZSAhPT0gbnVsbCAmJiBlICE9PSB1bmRlZmluZWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KGl0ZW1zKTtcclxuICAgICAgdGhpcy4jZGVsYXkgPSA1MDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGxpbWl0ID0gMTAwO1xyXG5cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXI6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXIyOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj47XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiB1bmRlZmluZWQgfCBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlKSBhdXRvY29tcGxldGVEaXNwbGF5RGVmOiBTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgYWN0aW9uSWNvbjogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gT3B0aW9uYWxcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5lbmFibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueVtdXHJcbiAgfSA9IHt9O1xyXG4gICNpdGVtOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcclxuICB9ID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBASW5qZWN0KEZPUk1fQ09ORklHKSBAT3B0aW9uYWwoKSBwcml2YXRlIGZvcm1Db25maWc6IElGb3JtQ29uZmlndXJhdGlvbikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFwcGVhcmFuY2UgPSB0aGlzLmFwcGVhcmFuY2UgfHwgdGhpcy5mb3JtQ29uZmlnPy5hcHBlYXJhbmNlO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnNkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5pbnB1dENvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5hc09ic2VydmFibGUoKSxcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuI2RlbGF5KSldKS5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW2l0ZW1zLCBzZWFyY2hUZXh0XSkgPT4ge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQgfHwgJyc7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIChpdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF0uYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBpdGVtcyhzZWFyY2hUZXh0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChmdW5jIGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9icyA9IGZ1bmNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdID0gZGF0YSB8fCBbXTtcclxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLCB0aGlzLnZhbHVlRmllbGQpKTtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF07XHJcbiAgICAgICAgICAgIH0pLCBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zXHJcbiAgICAgICAgICAgIC5zZWFyY2goc2VhcmNoVGV4dCwgW3RoaXMudmFsdWVGaWVsZCwgdGhpcy5kaXNwbGF5RmllbGRdKVxyXG4gICAgICAgICAgICAucGFnaW5nKHRoaXMubGltaXQpXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW2l0ZW1zLCB2YWxdKSA9PiB7XHJcbiAgICAgICAgICAvLyBWw6wgbeG7mXQgc+G7kSBsw70gZG8gY2jGsGEgeMOhYyDEkeG7i25oIG3DoCBraGkgc+G7rSBk4bulbmcgc2RWaWV3RGVmIHRow6wga2hpIGNodXnhu4NuIHNhbmcgZOG6oW5nIHZpZXcgc+G6vSB0cmlnZ2VyIHZhbCA9IG51bGxcclxuICAgICAgICAgIC8vIE5oxrBuZyBmb3JtQ29udHJvbC52YWx1ZSB24bqrbiBjw7MgZ2nDoSB0cuG7iyDEkcO6bmcgbsOqbiB0aOG7sWMgaGnhu4duIGfDoW4gdmFsID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcclxuICAgICAgICAgIHZhbCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICBpZiAoIXRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodmFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2YWwgfHwgdmFsID09PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKGl0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLiNpdGVtW3ZhbF0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLiNpdGVtW3ZhbF0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXModmFsLCB0cnVlKTtcclxuICAgICAgICAgICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBvYnMgPSBmdW5jO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gb2JzLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiNpdGVtLCBBcnJheS50b09iamVjdChkYXRhLCB0aGlzLnZhbHVlRmllbGQpKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiNpdGVtW3ZhbF0gfHwge1xyXG4gICAgICAgICAgICAgICAgICBbdGhpcy52YWx1ZUZpZWxkXTogdmFsLFxyXG4gICAgICAgICAgICAgICAgICBbdGhpcy5kaXNwbGF5RmllbGRdOiB2YWxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBvZihpdGVtcy5maW5kKGUgPT4gZVt0aGlzLnZhbHVlRmllbGRdID09PSB2YWwpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBvZignJyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIHRoaXMuY29udHJvbFBsYWNlSG9sZGVyID0gdGhpcy5zZWxlY3RlZC5waXBlKG1hcChpdGVtID0+IGl0ZW0/Llt0aGlzLmRpc3BsYXlGaWVsZF0gPz8gaXRlbSA/PyB0aGlzLnBsYWNlaG9sZGVyID8/IHRoaXMubGFiZWwgPz8gJycpKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICB9XHJcbiAgb25TZWxlY3QgPSAoaXRlbTogYW55KSA9PiB7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICBpZiAodHlwZW9mIChpdGVtKSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIChpdGVtKSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSAhPT0gaXRlbSkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShpdGVtKTtcclxuICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZUZpZWxkICYmIHRoaXMuZGlzcGxheUZpZWxkKSB7XHJcbiAgICAgICAgY29uc3QgdmFsID0gaXRlbT8uW3RoaXMudmFsdWVGaWVsZF0gfHwgbnVsbDtcclxuICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSAhPT0gdmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbCk7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgICAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycsIHtcclxuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcclxuICAgIC8vIHRoaXMuaW5wdXRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIG9uQmx1ciA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJywge1xyXG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZFZpZXc/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhdGhpcy5pc0ZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5ibHVyKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXI/Lm9wZW5QYW5lbCgpO1xyXG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIGNsZWFyID0gKCRldmVudD86IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICBpZiAodGhpcy4jbW9kZWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbiA9ICgkZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyPy5jbG9zZVBhbmVsKCk7XHJcbiAgICB0aGlzLmFjdGlvbi5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICB9XHJcblxyXG4gICN1cGRhdGVWYWxpZGF0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhckFzeW5jVmFsaWRhdG9ycygpO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgLy8gY29uc3QgYXN5bmNWYWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKHRoaXMuI3ZhbGlkYXRvcikge1xyXG4gICAgLy8gICBhc3luY1ZhbGlkYXRvcnMucHVzaCh0aGlzLiNjdXN0b21WYWxpZGF0b3IodGhpcy4jdmFsaWRhdG9yKSk7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICAvLyB0aGlzLmZvcm1Db250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIFNlYXJjaEZ1bmMgPSAoc2VhcmNoVGV4dD86IHN0cmluZyB8IG51bWJlciwgaXNGb3JtVmFsdWU/OiBib29sZWFuKSA9PiBQcm9taXNlPGFueVtdPiB8IE9ic2VydmFibGU8YW55W10+OyJdfQ==
@@ -1,3 +1,3 @@
1
1
  import { InjectionToken } from "@angular/core";
2
- export const FIREBASE_CONFIG = new InjectionToken('firebase.configuration');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvY29tbW9uLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb25maWd1cmF0aW9ucy9maXJlYmFzZS5jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRL0MsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUF5Qix3QkFBd0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRmlyZWJhc2VDb25maWd1cmF0aW9uIHtcclxuICBmdW5jdGlvblVybDogc3RyaW5nO1xyXG4gIHByb2plY3Q6IHN0cmluZztcclxuICBlbnY6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEZJUkVCQVNFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRmlyZWJhc2VDb25maWd1cmF0aW9uPignZmlyZWJhc2UuY29uZmlndXJhdGlvbicpOyJdfQ==
2
+ export const FIREBASE_CONFIG = new InjectionToken('sd.firebase.configuration');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvY29tbW9uLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb25maWd1cmF0aW9ucy9maXJlYmFzZS5jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRL0MsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUF5QiwyQkFBMkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRmlyZWJhc2VDb25maWd1cmF0aW9uIHtcclxuICBmdW5jdGlvblVybDogc3RyaW5nO1xyXG4gIHByb2plY3Q6IHN0cmluZztcclxuICBlbnY6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEZJUkVCQVNFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRmlyZWJhc2VDb25maWd1cmF0aW9uPignc2QuZmlyZWJhc2UuY29uZmlndXJhdGlvbicpOyJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export const FORM_CONFIG = new InjectionToken('sd.form.configuration');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tb24vIiwic291cmNlcyI6WyJzcmMvbGliL2NvbmZpZ3VyYXRpb25zL2Zvcm0uY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTy9DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtQ29uZmlndXJhdGlvbiB7XHJcbiAgYXBwZWFyYW5jZT86IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7IFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgRk9STV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUZvcm1Db25maWd1cmF0aW9uPignc2QuZm9ybS5jb25maWd1cmF0aW9uJyk7Il19
@@ -3,6 +3,7 @@ import './lib/typings/date.extension';
3
3
  import './lib/typings/number.extension';
4
4
  import './lib/typings/string.extension';
5
5
  export * from './lib/configurations/firebase.configuration';
6
+ export * from './lib/configurations/form.configuration';
6
7
  export * from './lib/models/sd-form-control';
7
8
  export * from './lib/services/browser.service';
8
9
  export * from './lib/directives/view-def.directive';
@@ -10,4 +11,4 @@ export * from './lib/directives/sd-let.directive';
10
11
  export * from './lib/directives/sd-scroll.directive';
11
12
  export * from './lib/directives/sd-suffix.directive';
12
13
  export * from './lib/common.module';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvY29tbW9uLyIsInNvdXJjZXMiOlsic3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTywrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxnQ0FBZ0MsQ0FBQztBQUV4QyxjQUFjLDZDQUE2QyxDQUFDO0FBRTVELGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4vbGliL3R5cGluZ3MvYXJyYXkuZXh0ZW5zaW9uJztcclxuaW1wb3J0ICcuL2xpYi90eXBpbmdzL2RhdGUuZXh0ZW5zaW9uJztcclxuaW1wb3J0ICcuL2xpYi90eXBpbmdzL251bWJlci5leHRlbnNpb24nO1xyXG5pbXBvcnQgJy4vbGliL3R5cGluZ3Mvc3RyaW5nLmV4dGVuc2lvbic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWd1cmF0aW9ucy9maXJlYmFzZS5jb25maWd1cmF0aW9uJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zZC1mb3JtLWNvbnRyb2wnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYnJvd3Nlci5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvdmlldy1kZWYuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zZC1sZXQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zZC1zY3JvbGwuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zZC1zdWZmaXguZGlyZWN0aXZlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi5tb2R1bGUnO1xyXG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvY29tbW9uLyIsInNvdXJjZXMiOlsic3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTywrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxnQ0FBZ0MsQ0FBQztBQUV4QyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMseUNBQXlDLENBQUM7QUFFeEQsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsc0NBQXNDLENBQUM7QUFFckQsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9saWIvdHlwaW5ncy9hcnJheS5leHRlbnNpb24nO1xyXG5pbXBvcnQgJy4vbGliL3R5cGluZ3MvZGF0ZS5leHRlbnNpb24nO1xyXG5pbXBvcnQgJy4vbGliL3R5cGluZ3MvbnVtYmVyLmV4dGVuc2lvbic7XHJcbmltcG9ydCAnLi9saWIvdHlwaW5ncy9zdHJpbmcuZXh0ZW5zaW9uJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZ3VyYXRpb25zL2ZpcmViYXNlLmNvbmZpZ3VyYXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWd1cmF0aW9ucy9mb3JtLmNvbmZpZ3VyYXRpb24nO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NkLWZvcm0tY29udHJvbCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9icm93c2VyLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy92aWV3LWRlZi5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3NkLWxldC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3NkLXNjcm9sbC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3NkLXN1ZmZpeC5kaXJlY3RpdmUnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uLm1vZHVsZSc7XHJcbiJdfQ==