@techextensor/tab-core-utility 2.2.168 → 2.2.172

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 (43) hide show
  1. package/esm2022/index.mjs +1 -1
  2. package/esm2022/lib/tab-core-utility/app/constants/app-object-constants.mjs +1 -1
  3. package/esm2022/lib/tab-core-utility/app/crud/tab-blueprint.service.mjs +1 -1
  4. package/esm2022/lib/tab-core-utility/app/crud/tab-crud.service.mjs +1 -1
  5. package/esm2022/lib/tab-core-utility/app/crud/tab-formio.service.mjs +1 -1
  6. package/esm2022/lib/tab-core-utility/app/crud/tab-get.service.mjs +8 -5
  7. package/esm2022/lib/tab-core-utility/app/crud/tab-release.service.mjs +1 -1
  8. package/esm2022/lib/tab-core-utility/app/enums/common.enum.mjs +1 -1
  9. package/esm2022/lib/tab-core-utility/app/helpers/common/meta-data.helpers.mjs +35 -10
  10. package/esm2022/lib/tab-core-utility/app/helpers/common/user-personalization.helper.mjs +19 -9
  11. package/esm2022/lib/tab-core-utility/app/interfaces/auth.interface.mjs +1 -1
  12. package/esm2022/lib/tab-core-utility/app/interfaces/common.interface.mjs +1 -1
  13. package/esm2022/lib/tab-core-utility/app/interfaces/grid.interface.mjs +1 -1
  14. package/esm2022/lib/tab-core-utility/app/interfaces/orgInfo.interface.mjs +1 -1
  15. package/esm2022/lib/tab-core-utility/app/interfaces/schema.interface.mjs +1 -1
  16. package/esm2022/lib/tab-core-utility/app/interfaces/user.interface.mjs +1 -1
  17. package/esm2022/lib/tab-core-utility/app/models/app-field.model.mjs +1 -1
  18. package/esm2022/lib/tab-core-utility/app/models/app-menu.model.mjs +1 -1
  19. package/esm2022/lib/tab-core-utility/app/models/app-object.model.mjs +2 -1
  20. package/esm2022/lib/tab-core-utility/app/models/app-screen.model.mjs +1 -1
  21. package/esm2022/lib/tab-core-utility/app/models/data-source-query.model.mjs +1 -1
  22. package/esm2022/lib/tab-core-utility/app/models/filter.model.mjs +1 -1
  23. package/esm2022/lib/tab-core-utility/app/models/orgInfo.model.mjs +1 -1
  24. package/esm2022/lib/tab-core-utility/app/models/parameter.model.mjs +1 -1
  25. package/esm2022/lib/tab-core-utility/app/models/sort.model.mjs +1 -1
  26. package/esm2022/lib/tab-core-utility/auth/auth.service.mjs +1 -1
  27. package/esm2022/lib/tab-core-utility/auth/idb-storage.service.mjs +1 -1
  28. package/esm2022/lib/tab-core-utility/auth/local-storage.service.mjs +1 -1
  29. package/esm2022/lib/tab-core-utility/auth/session-storage.service.mjs +1 -1
  30. package/esm2022/lib/tab-core-utility/core/http-client/api-url.token.mjs +1 -1
  31. package/esm2022/lib/tab-core-utility/core/http-client/api.service.mjs +1 -1
  32. package/esm2022/lib/tab-core-utility/core/pipe/translate.pipe.mjs +1 -1
  33. package/esm2022/lib/tab-core-utility/core/provider/notification.provider.mjs +1 -1
  34. package/esm2022/lib/tab-core-utility/core/provider/translation.provider.mjs +1 -1
  35. package/esm2022/lib/tab-core-utility/core/service/confirmation.service.mjs +1 -1
  36. package/esm2022/lib/tab-core-utility/core/service/encryption.service.mjs +1 -1
  37. package/esm2022/lib/tab-core-utility/core/service/notification.service.mjs +1 -1
  38. package/esm2022/lib/tab-core-utility/core/service/translation.service.mjs +1 -1
  39. package/lib/tab-core-utility/app/crud/tab-get.service.d.ts +2 -2
  40. package/lib/tab-core-utility/app/helpers/common/meta-data.helpers.d.ts +9 -3
  41. package/lib/tab-core-utility/app/helpers/common/user-personalization.helper.d.ts +2 -2
  42. package/lib/tab-core-utility/app/models/app-object.model.d.ts +1 -0
  43. package/package.json +1 -1
@@ -1,10 +1,12 @@
1
- import { Injectable } from "@angular/core";
1
+ import { inject, Injectable } from "@angular/core";
2
2
  import { Common } from "../../constants/common";
3
3
  import { AppObjectModel } from "../../models/app-object.model";
4
4
  import { MetadataEntityType } from "../../interfaces/schema.interface";
5
5
  import { AppScreenModel } from "../../models/app-screen.model";
6
6
  import { OrgInfoModel } from "../../models/orgInfo.model";
7
7
  import { AppMenuModel } from "../../models/app-menu.model";
8
+ import { SessionStorageService } from "../../../auth/session-storage.service";
9
+ import { StorageConstants } from "../../constants/storage-constants";
8
10
  import * as i0 from "@angular/core";
9
11
  export class MetadataHelper {
10
12
  constructor() {
@@ -16,6 +18,22 @@ export class MetadataHelper {
16
18
  this.allOrgInfos = null;
17
19
  this.appMenuMap = new Map();
18
20
  this.allAppMenus = null;
21
+ this.sessionStorageService = inject(SessionStorageService);
22
+ }
23
+ /**
24
+ * Helper method to get current app ID from session
25
+ * @returns Current app ID or null if not available
26
+ */
27
+ getCurrentAppId() {
28
+ try {
29
+ const appInfo = this.sessionStorageService.getSessionStorage(StorageConstants.appInfo);
30
+ const parsedAppInfo = appInfo ? JSON.parse(appInfo) : null;
31
+ return parsedAppInfo?.Id || null;
32
+ }
33
+ catch (error) {
34
+ console.warn('Failed to get current app ID from session:', error);
35
+ return null;
36
+ }
19
37
  }
20
38
  /**
21
39
  * Returns the value associated with the given key from the given map.
@@ -80,11 +98,18 @@ export class MetadataHelper {
80
98
  * @param filterFn The filter function to apply to the app objects.
81
99
  * @returns The list of app objects.
82
100
  */
83
- getAllAppObjects(filterFn) {
101
+ getAllAppObjects(filterFn, includeSystemData = false) {
84
102
  // Initialize the list of app objects lazily.
85
103
  const list = this.lazyInitList(this.allAppObjects, val => (this.allAppObjects = val), Common.tabJson.AppObjects, this.appObjectMap, (obj) => [obj.ID?.toLowerCase(), obj.ObjectName], obj => new AppObjectModel(obj, this));
104
+ let filteredList = list;
105
+ if (!includeSystemData) {
106
+ const currentAppId = this.getCurrentAppId()?.toLowerCase();
107
+ filteredList = list.filter(obj => !obj.AppId || // Global data (app = null)
108
+ obj.AppId === currentAppId // Current app data
109
+ );
110
+ }
86
111
  // If a filter function is given, apply it to the list of app objects.
87
- return filterFn ? list.filter(filterFn) : list;
112
+ return filterFn ? filteredList.filter(filterFn) : filteredList;
88
113
  }
89
114
  /**
90
115
  * Returns a list of fields in the metadata.
@@ -92,9 +117,9 @@ export class MetadataHelper {
92
117
  * @param filterFn The filter function to apply to the fields.
93
118
  * @returns The list of fields.
94
119
  */
95
- getAllFields(filterFn) {
120
+ getAllFields(filterFn, includeSystemData = false) {
96
121
  // Get a list of all fields from all app objects.
97
- const allFields = this.getAllAppObjects().flatMap(obj => obj.fields());
122
+ const allFields = this.getAllAppObjects(undefined, includeSystemData).flatMap(obj => obj.fields());
98
123
  // If a filter function is given, apply it to the list of fields.
99
124
  return filterFn ? allFields.filter(filterFn) : allFields;
100
125
  }
@@ -107,7 +132,7 @@ export class MetadataHelper {
107
132
  if (!nameOrId)
108
133
  return null;
109
134
  return this.getAllFields(field => field.ID?.toLowerCase() === nameOrId?.toLowerCase() ||
110
- field.FieldName === nameOrId)[0] || null;
135
+ field.FieldName === nameOrId, true)[0] || null;
111
136
  }
112
137
  /**
113
138
  * Returns a list of data source queries in the metadata.
@@ -115,9 +140,9 @@ export class MetadataHelper {
115
140
  * @param filterFn The filter function to apply to the data source queries.
116
141
  * @returns The list of data source queries.
117
142
  */
118
- getAllDataSourceQueries(filterFn) {
143
+ getAllDataSourceQueries(filterFn, includeSystemData = false) {
119
144
  // Get a list of all data source queries from all app objects.
120
- const allDSQs = this.getAllAppObjects().flatMap(obj => obj.dataSourceQueries());
145
+ const allDSQs = this.getAllAppObjects(undefined, includeSystemData).flatMap(obj => obj.dataSourceQueries());
121
146
  // If a filter function is given, apply it to the list of data source queries.
122
147
  return filterFn ? allDSQs.filter(filterFn) : allDSQs;
123
148
  }
@@ -130,7 +155,7 @@ export class MetadataHelper {
130
155
  */
131
156
  getDataSourceQueryByIdOrName(nameOrId) {
132
157
  // Search for the data source query by ID, QueryName, or DisplayName
133
- return this.getAllDataSourceQueries().find(dsq => dsq?.ID?.toLowerCase() === nameOrId?.toLowerCase() || dsq?.QueryName === nameOrId || dsq?.DisplayName === nameOrId) || null;
158
+ return this.getAllDataSourceQueries(undefined, true).find(dsq => dsq?.ID?.toLowerCase() === nameOrId?.toLowerCase() || dsq?.QueryName === nameOrId || dsq?.DisplayName === nameOrId) || null;
134
159
  }
135
160
  /**
136
161
  * Retrieves an app screen by its ID, Name, or DisplayName.
@@ -252,4 +277,4 @@ export class MetadataHelper {
252
277
  type: Injectable,
253
278
  args: [{ providedIn: 'root' }]
254
279
  }], null, null); })();
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS1kYXRhLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vbWV0YS1kYXRhLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUczRCxNQUFNLE9BQU8sY0FBYztJQUQzQjtRQUVVLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFDeEQsa0JBQWEsR0FBNEIsSUFBSSxDQUFDO1FBRTlDLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFDeEQsa0JBQWEsR0FBNEIsSUFBSSxDQUFDO1FBRTlDLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztRQUNwRCxnQkFBVyxHQUEwQixJQUFJLENBQUM7UUFFMUMsZUFBVSxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO1FBQ3BELGdCQUFXLEdBQTBCLElBQUksQ0FBQztLQW1VbkQ7SUFqVUM7Ozs7Ozs7Ozs7T0FVRztJQUNLLGtCQUFrQixDQUN4QixHQUEwQixFQUMxQixHQUFXLEVBQ1gsVUFBZSxFQUNmLE9BQTZCLEVBQzdCLFlBQTRCO1FBRTVCLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdEIsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7UUFFOUMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9DLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ssWUFBWSxDQUNsQixPQUFtQixFQUNuQixNQUEyQixFQUMzQixVQUFlLEVBQ2YsR0FBMEIsRUFDMUIsT0FBOEIsRUFDOUIsWUFBNEI7UUFFNUIsaURBQWlEO1FBQ2pELElBQUksT0FBTztZQUFFLE9BQU8sT0FBTyxDQUFDO1FBRTVCLDZFQUE2RTtRQUM3RSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBTyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7UUFFSCw4Q0FBOEM7UUFDOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWYsNkJBQTZCO1FBQzdCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFDLFFBQWdCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUM1QixJQUFJLENBQUMsWUFBWSxFQUNqQixRQUFRLEVBQ1IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQ3pCLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxRQUFRLEVBQUUsV0FBVyxFQUFFLEVBQ3ZGLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUMsUUFBMkM7UUFDMUQsNkNBQTZDO1FBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQzVCLElBQUksQ0FBQyxhQUFhLEVBQ2xCLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxFQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFDekIsSUFBSSxDQUFDLFlBQVksRUFDakIsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUNyQyxDQUFDO1FBRUYsc0VBQXNFO1FBQ3RFLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLFFBQTRDO1FBQ3ZELGlEQUFpRDtRQUNqRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUV2RSxpRUFBaUU7UUFDakUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLFFBQWdCO1FBQ2pDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQy9CLEtBQUssQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFLFdBQVcsRUFBRTtZQUNuRCxLQUFLLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FDN0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCx1QkFBdUIsQ0FBQyxRQUFpRDtRQUN2RSw4REFBOEQ7UUFDOUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUVoRiw4RUFBOEU7UUFDOUUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsNEJBQTRCLENBQUMsUUFBZ0I7UUFDM0Msb0VBQW9FO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUN4QyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFLFdBQVcsRUFBRSxJQUFJLEdBQUcsRUFBRSxTQUFTLEtBQUssUUFBUSxJQUFJLEdBQUcsRUFBRSxXQUFXLEtBQUssUUFBUSxDQUMxSCxJQUFJLElBQUksQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxzQkFBc0IsQ0FBQyxRQUFnQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FDNUIsSUFBSSxDQUFDLFlBQVksRUFDakIsUUFBUSxFQUNSLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUN6QixNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFLFdBQVcsRUFBRSxJQUFJLE1BQU0sRUFBRSxJQUFJLEtBQUssUUFBUSxFQUM1RixNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGdCQUFnQixDQUFDLFFBQThDO1FBQzdELDZDQUE2QztRQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUM1QixJQUFJLENBQUMsYUFBYSxFQUNsQixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsRUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQ2pCLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUMzQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUMzQixDQUFDO1FBRUYsc0VBQXNFO1FBQ3RFLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILDBCQUEwQixDQUFDLGdCQUF3QjtRQUNqRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FDNUIsSUFBSSxDQUFDLFVBQVUsRUFDZixnQkFBZ0IsRUFDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1FBQ3ZCLHVEQUF1RDtRQUN2RCxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxnQkFBZ0I7UUFDdkcsOERBQThEO1FBQzlELEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQzdCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsY0FBYyxDQUFDLFFBQXlDO1FBQ3RELG1EQUFtRDtRQUNuRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUM1QixJQUFJLENBQUMsV0FBVyxFQUNoQixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsRUFDL0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQ3ZCLElBQUksQ0FBQyxVQUFVLEVBQ2YsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEVBQ3ZELEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQzdCLENBQUM7UUFFRiw0RUFBNEU7UUFDNUUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGNBQWMsQ0FBQyxJQUFZLEVBQUUsV0FBa0M7UUFDN0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUEwQixFQUFFLENBQUM7UUFFekM7Ozs7V0FJRztRQUNILE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBd0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5RixJQUFJLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pELDhFQUE4RTtZQUM5RSxNQUFNLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ25FLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLGlCQUFpQixDQUFDO2lCQUNqRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssVUFBVSxJQUFJLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDOUUsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2hELG1EQUFtRDtZQUNuRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsSUFBSSxZQUFZLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ3pELDREQUE0RDtZQUM1RCxNQUFNLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0csQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDakQsb0RBQW9EO1lBQ3BELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdEcsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxvQkFBb0IsQ0FBQyxRQUFnQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FDNUIsSUFBSSxDQUFDLFVBQVUsRUFDZixRQUFRLEVBQ1IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFLFdBQVcsRUFBRSxJQUFJLElBQUksRUFBRSxRQUFRLEtBQUssUUFBUTtRQUMxRixxREFBcUQ7UUFDckQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxjQUFjLENBQUMsUUFBMEM7UUFDdkQsNkNBQTZDO1FBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQzVCLElBQUksQ0FBQyxXQUFXLEVBQ2hCLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxFQUMvQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFDZixDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDM0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FDekIsQ0FBQztRQUVGLHNFQUFzRTtRQUN0RSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7K0VBN1VVLGNBQWM7dUVBQWQsY0FBYyxXQUFkLGNBQWMsbUJBREQsTUFBTTs7aUZBQ25CLGNBQWM7Y0FEMUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9jb21tb25cIjtcbmltcG9ydCB7IEFwcE9iamVjdE1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hcHAtb2JqZWN0Lm1vZGVsXCI7XG5pbXBvcnQgeyBBcHBGaWVsZE1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hcHAtZmllbGQubW9kZWxcIjtcbmltcG9ydCB7IERhdGFTb3VyY2VRdWVyeU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgTWV0YWRhdGFFbnRpdHlUeXBlIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvc2NoZW1hLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgQXBwU2NyZWVuTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2FwcC1zY3JlZW4ubW9kZWxcIjtcbmltcG9ydCB7IE9yZ0luZm9Nb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvb3JnSW5mby5tb2RlbFwiO1xuaW1wb3J0IHsgQXBwTWVudU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hcHAtbWVudS5tb2RlbFwiO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhSGVscGVyIHtcbiAgcHJpdmF0ZSBhcHBPYmplY3RNYXAgPSBuZXcgTWFwPHN0cmluZywgQXBwT2JqZWN0TW9kZWwgfCBudWxsPigpO1xuICBwcml2YXRlIGFsbEFwcE9iamVjdHM6IEFwcE9iamVjdE1vZGVsW10gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGFwcFNjcmVlbk1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBcHBTY3JlZW5Nb2RlbCB8IG51bGw+KCk7XG4gIHByaXZhdGUgYWxsQXBwU2NyZWVuczogQXBwU2NyZWVuTW9kZWxbXSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgb3JnSW5mb01hcCA9IG5ldyBNYXA8c3RyaW5nLCBPcmdJbmZvTW9kZWwgfCBudWxsPigpO1xuICBwcml2YXRlIGFsbE9yZ0luZm9zOiBPcmdJbmZvTW9kZWxbXSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgYXBwTWVudU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBcHBNZW51TW9kZWwgfCBudWxsPigpO1xuICBwcml2YXRlIGFsbEFwcE1lbnVzOiBBcHBNZW51TW9kZWxbXSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGtleSBmcm9tIHRoZSBnaXZlbiBtYXAuXG4gICAqIElmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1hcCwgYW5kIHRoZSBzb3VyY2UgbGlzdCBjb250YWlucyBhbiBpdGVtIHRoYXQgbWF0Y2hlc1xuICAgKiB0aGUgZ2l2ZW4gY29uZGl0aW9uLCBpdCBjcmVhdGVzIGEgbmV3IG1vZGVsIHVzaW5nIHRoZSBnaXZlbiBtb2RlbCBmYWN0b3J5IGFuZCBhZGRzIGl0IHRvIHRoZSBtYXAuXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byBzZWFyY2ggaW4uXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcGFyYW0gc291cmNlTGlzdCBUaGUgbGlzdCBvZiBpdGVtcyB0byBzZWFyY2ggaW4uXG4gICAqIEBwYXJhbSBtYXRjaEZuIFRoZSBjb25kaXRpb24gdG8gbWF0Y2guXG4gICAqIEBwYXJhbSBtb2RlbEZhY3RvcnkgVGhlIGZhY3RvcnkgdG8gY3JlYXRlIGEgbmV3IG1vZGVsIGlmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGtleSwgb3IgbnVsbCBpZiBubyBtYXRjaCBpcyBmb3VuZC5cbiAgICovXG4gIHByaXZhdGUgZ2V0RnJvbU1hcE9yQ3JlYXRlPFQ+KFxuICAgIG1hcDogTWFwPHN0cmluZywgVCB8IG51bGw+LFxuICAgIGtleTogc3RyaW5nLFxuICAgIHNvdXJjZUxpc3Q6IFRbXSxcbiAgICBtYXRjaEZuOiAoaXRlbTogVCkgPT4gYm9vbGVhbixcbiAgICBtb2RlbEZhY3Rvcnk6IChpdGVtOiBUKSA9PiBUXG4gICk6IFQgfCBudWxsIHtcbiAgICBpZiAoIWtleSkgcmV0dXJuIG51bGw7XG4gICAgaWYgKG1hcC5oYXMoa2V5KSkgcmV0dXJuIG1hcC5nZXQoa2V5KSB8fCBudWxsO1xuXG4gICAgY29uc3QgaXRlbSA9IHNvdXJjZUxpc3QuZmluZChtYXRjaEZuKTtcbiAgICBjb25zdCBtb2RlbCA9IGl0ZW0gPyBtb2RlbEZhY3RvcnkoaXRlbSkgOiBudWxsO1xuICAgIG1hcC5zZXQoa2V5LCBtb2RlbCk7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgLyoqXG4gICAqIExhemlseSBpbml0aWFsaXplcyBhIGxpc3Qgb2YgbW9kZWxzIGZyb20gYSBzb3VyY2UgbGlzdC5cbiAgICogSXQgY3JlYXRlcyBhIG5ldyBtb2RlbCBmb3IgZWFjaCBpdGVtIGluIHRoZSBzb3VyY2UgbGlzdCBhbmQgYWRkcyBpdCB0byB0aGUgZ2l2ZW4gbWFwLlxuICAgKiBJdCBhbHNvIHNldHMgdGhlIGxpc3Qgb2YgbW9kZWxzIHRvIHRoZSBnaXZlbiBzZXR0ZXIuXG4gICAqIEBwYXJhbSBsaXN0UmVmIFRoZSByZWZlcmVuY2UgdG8gdGhlIGxpc3Qgb2YgbW9kZWxzLlxuICAgKiBAcGFyYW0gc2V0dGVyIFRoZSBzZXR0ZXIgdG8gc2V0IHRoZSBsaXN0IG9mIG1vZGVscy5cbiAgICogQHBhcmFtIHNvdXJjZUxpc3QgVGhlIHNvdXJjZSBsaXN0IG9mIGl0ZW1zLlxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgdG8gc3RvcmUgdGhlIG1vZGVscy5cbiAgICogQHBhcmFtIGdldEtleXMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBmb3IgdGhlIGdpdmVuIGl0ZW0uXG4gICAqIEBwYXJhbSBtb2RlbEZhY3RvcnkgVGhlIGZhY3RvcnkgdG8gY3JlYXRlIGEgbmV3IG1vZGVsIGZvciB0aGUgZ2l2ZW4gaXRlbS5cbiAgICogQHJldHVybnMgVGhlIGxpc3Qgb2YgbW9kZWxzLlxuICAgKi9cbiAgcHJpdmF0ZSBsYXp5SW5pdExpc3Q8VCwgTT4oXG4gICAgbGlzdFJlZjogTVtdIHwgbnVsbCxcbiAgICBzZXR0ZXI6IChsaXN0OiBNW10pID0+IHZvaWQsXG4gICAgc291cmNlTGlzdDogVFtdLFxuICAgIG1hcDogTWFwPHN0cmluZywgTSB8IG51bGw+LFxuICAgIGdldEtleXM6IChpdGVtOiBUKSA9PiBzdHJpbmdbXSxcbiAgICBtb2RlbEZhY3Rvcnk6IChpdGVtOiBUKSA9PiBNXG4gICk6IE1bXSB7XG4gICAgLy8gSWYgdGhlIGxpc3QgaXMgYWxyZWFkeSBpbml0aWFsaXplZCwgcmV0dXJuIGl0LlxuICAgIGlmIChsaXN0UmVmKSByZXR1cm4gbGlzdFJlZjtcblxuICAgIC8vIENyZWF0ZSBhIG5ldyBtb2RlbCBmb3IgZWFjaCBpdGVtIGluIHRoZSBzb3VyY2UgbGlzdCBhbmQgYWRkIGl0IHRvIHRoZSBtYXAuXG4gICAgY29uc3QgbW9kZWxzID0gc291cmNlTGlzdC5tYXAoKGl0ZW06IFQpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsID0gbW9kZWxGYWN0b3J5KGl0ZW0pO1xuICAgICAgZ2V0S2V5cyhpdGVtKS5mb3JFYWNoKGtleSA9PiBtYXAuc2V0KGtleSwgbW9kZWwpKTtcbiAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9KTtcblxuICAgIC8vIFNldCB0aGUgbGlzdCBvZiBtb2RlbHMgdG8gdGhlIGdpdmVuIHNldHRlci5cbiAgICBzZXR0ZXIobW9kZWxzKTtcblxuICAgIC8vIFJldHVybiB0aGUgbGlzdCBvZiBtb2RlbHMuXG4gICAgcmV0dXJuIG1vZGVscztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyBhbiBhcHAgb2JqZWN0IGluIHRoZSBtYXAgYnkgaXRzIG5hbWUgb3IgaWQuXG4gICAqIElmIHRoZSBhcHAgb2JqZWN0IGlzIG5vdCBmb3VuZCwgaXQgY3JlYXRlcyBhIG5ldyBvbmUgYW5kIGFkZHMgaXQgdG8gdGhlIG1hcC5cbiAgICogQHBhcmFtIG5hbWVPcklkIFRoZSBuYW1lIG9yIGlkIG9mIHRoZSBhcHAgb2JqZWN0IHRvIGZpbmQuXG4gICAqIEByZXR1cm5zIFRoZSBhcHAgb2JqZWN0IGlmIGZvdW5kLCBvciBudWxsIGlmIG5vdCBmb3VuZC5cbiAgICovXG4gIGdldEFwcE9iamVjdEJ5SWRPck5hbWUobmFtZU9ySWQ6IHN0cmluZyk6IEFwcE9iamVjdE1vZGVsIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RnJvbU1hcE9yQ3JlYXRlKFxuICAgICAgdGhpcy5hcHBPYmplY3RNYXAsXG4gICAgICBuYW1lT3JJZCxcbiAgICAgIENvbW1vbi50YWJKc29uLkFwcE9iamVjdHMsXG4gICAgICBvYmogPT4gb2JqLk9iamVjdE5hbWUgPT09IG5hbWVPcklkIHx8IG9iai5JRD8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZU9ySWQ/LnRvTG93ZXJDYXNlKCksXG4gICAgICBvYmogPT4gbmV3IEFwcE9iamVjdE1vZGVsKG9iaiwgdGhpcylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFwcCBvYmplY3RzIGluIHRoZSBtZXRhZGF0YS5cbiAgICogSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGl0IGlzIGFwcGxpZWQgdG8gZWFjaCBhcHAgb2JqZWN0LlxuICAgKiBAcGFyYW0gZmlsdGVyRm4gVGhlIGZpbHRlciBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgYXBwIG9iamVjdHMuXG4gICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIGFwcCBvYmplY3RzLlxuICAgKi9cbiAgZ2V0QWxsQXBwT2JqZWN0cyhmaWx0ZXJGbj86IChvYmo6IEFwcE9iamVjdE1vZGVsKSA9PiBib29sZWFuKTogQXBwT2JqZWN0TW9kZWxbXSB7XG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgbGlzdCBvZiBhcHAgb2JqZWN0cyBsYXppbHkuXG4gICAgY29uc3QgbGlzdCA9IHRoaXMubGF6eUluaXRMaXN0KFxuICAgICAgdGhpcy5hbGxBcHBPYmplY3RzLFxuICAgICAgdmFsID0+ICh0aGlzLmFsbEFwcE9iamVjdHMgPSB2YWwpLFxuICAgICAgQ29tbW9uLnRhYkpzb24uQXBwT2JqZWN0cyxcbiAgICAgIHRoaXMuYXBwT2JqZWN0TWFwLFxuICAgICAgKG9iajogYW55KSA9PiBbb2JqLklEPy50b0xvd2VyQ2FzZSgpLCBvYmouT2JqZWN0TmFtZV0sXG4gICAgICBvYmogPT4gbmV3IEFwcE9iamVjdE1vZGVsKG9iaiwgdGhpcylcbiAgICApO1xuXG4gICAgLy8gSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGFwcGx5IGl0IHRvIHRoZSBsaXN0IG9mIGFwcCBvYmplY3RzLlxuICAgIHJldHVybiBmaWx0ZXJGbiA/IGxpc3QuZmlsdGVyKGZpbHRlckZuKSA6IGxpc3Q7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgZmllbGRzIGluIHRoZSBtZXRhZGF0YS5cbiAgICogSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGl0IGlzIGFwcGxpZWQgdG8gZWFjaCBmaWVsZC5cbiAgICogQHBhcmFtIGZpbHRlckZuIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIGZpZWxkcy5cbiAgICogQHJldHVybnMgVGhlIGxpc3Qgb2YgZmllbGRzLlxuICAgKi9cbiAgZ2V0QWxsRmllbGRzKGZpbHRlckZuPzogKGZpZWxkOiBBcHBGaWVsZE1vZGVsKSA9PiBib29sZWFuKTogQXBwRmllbGRNb2RlbFtdIHtcbiAgICAvLyBHZXQgYSBsaXN0IG9mIGFsbCBmaWVsZHMgZnJvbSBhbGwgYXBwIG9iamVjdHMuXG4gICAgY29uc3QgYWxsRmllbGRzID0gdGhpcy5nZXRBbGxBcHBPYmplY3RzKCkuZmxhdE1hcChvYmogPT4gb2JqLmZpZWxkcygpKTtcblxuICAgIC8vIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBhcHBseSBpdCB0byB0aGUgbGlzdCBvZiBmaWVsZHMuXG4gICAgcmV0dXJuIGZpbHRlckZuID8gYWxsRmllbGRzLmZpbHRlcihmaWx0ZXJGbikgOiBhbGxGaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYSBmaWVsZCBieSBpdHMgSUQgYWNyb3NzIGFsbCBhcHAgb2JqZWN0c1xuICAgKiBAcGFyYW0gZmllbGRJZCBUaGUgSUQgb2YgdGhlIGZpZWxkIHRvIGZpbmRcbiAgICogQHJldHVybnMgVGhlIGZpZWxkIGlmIGZvdW5kLCBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgZ2V0RmllbGRCeUlkT3JOYW1lKG5hbWVPcklkOiBzdHJpbmcpOiBBcHBGaWVsZE1vZGVsIHwgbnVsbCB7XG4gICAgaWYgKCFuYW1lT3JJZCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsRmllbGRzKGZpZWxkID0+IFxuICAgICAgZmllbGQuSUQ/LnRvTG93ZXJDYXNlKCkgPT09IG5hbWVPcklkPy50b0xvd2VyQ2FzZSgpIHx8IFxuICAgICAgZmllbGQuRmllbGROYW1lID09PSBuYW1lT3JJZFxuICAgIClbMF0gfHwgbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBkYXRhIHNvdXJjZSBxdWVyaWVzIGluIHRoZSBtZXRhZGF0YS5cbiAgICogSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGl0IGlzIGFwcGxpZWQgdG8gZWFjaCBkYXRhIHNvdXJjZSBxdWVyeS5cbiAgICogQHBhcmFtIGZpbHRlckZuIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIGRhdGEgc291cmNlIHF1ZXJpZXMuXG4gICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIGRhdGEgc291cmNlIHF1ZXJpZXMuXG4gICAqL1xuICBnZXRBbGxEYXRhU291cmNlUXVlcmllcyhmaWx0ZXJGbj86IChkc3E6IERhdGFTb3VyY2VRdWVyeU1vZGVsKSA9PiBib29sZWFuKTogRGF0YVNvdXJjZVF1ZXJ5TW9kZWxbXSB7XG4gICAgLy8gR2V0IGEgbGlzdCBvZiBhbGwgZGF0YSBzb3VyY2UgcXVlcmllcyBmcm9tIGFsbCBhcHAgb2JqZWN0cy5cbiAgICBjb25zdCBhbGxEU1FzID0gdGhpcy5nZXRBbGxBcHBPYmplY3RzKCkuZmxhdE1hcChvYmogPT4gb2JqLmRhdGFTb3VyY2VRdWVyaWVzKCkpO1xuXG4gICAgLy8gSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGFwcGx5IGl0IHRvIHRoZSBsaXN0IG9mIGRhdGEgc291cmNlIHF1ZXJpZXMuXG4gICAgcmV0dXJuIGZpbHRlckZuID8gYWxsRFNRcy5maWx0ZXIoZmlsdGVyRm4pIDogYWxsRFNRcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBkYXRhIHNvdXJjZSBxdWVyeSBieSBpdHMgSUQsIFF1ZXJ5TmFtZSwgb3IgRGlzcGxheU5hbWUuXG4gICAqIFNlYXJjaGVzIHRocm91Z2ggYWxsIGRhdGEgc291cmNlIHF1ZXJpZXMgYW5kIHJldHVybnMgdGhlIGZpcnN0IG1hdGNoLlxuICAgKiBcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVPcklkIC0gVGhlIElELCBRdWVyeU5hbWUsIG9yIERpc3BsYXlOYW1lIG9mIHRoZSBkYXRhIHNvdXJjZSBxdWVyeSB0byByZXRyaWV2ZS5cbiAgICogQHJldHVybnMge0RhdGFTb3VyY2VRdWVyeU1vZGVsIHwgbnVsbH0gLSBUaGUgZGF0YSBzb3VyY2UgcXVlcnkgbW9kZWwgaWYgZm91bmQsIG90aGVyd2lzZSBudWxsLlxuICAgKi9cbiAgZ2V0RGF0YVNvdXJjZVF1ZXJ5QnlJZE9yTmFtZShuYW1lT3JJZDogc3RyaW5nKTogRGF0YVNvdXJjZVF1ZXJ5TW9kZWwgfCBudWxsIHtcbiAgICAvLyBTZWFyY2ggZm9yIHRoZSBkYXRhIHNvdXJjZSBxdWVyeSBieSBJRCwgUXVlcnlOYW1lLCBvciBEaXNwbGF5TmFtZVxuICAgIHJldHVybiB0aGlzLmdldEFsbERhdGFTb3VyY2VRdWVyaWVzKCkuZmluZChcbiAgICAgIGRzcSA9PiBkc3E/LklEPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lT3JJZD8udG9Mb3dlckNhc2UoKSB8fCBkc3E/LlF1ZXJ5TmFtZSA9PT0gbmFtZU9ySWQgfHwgZHNxPy5EaXNwbGF5TmFtZSA9PT0gbmFtZU9ySWRcbiAgICApIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGFuIGFwcCBzY3JlZW4gYnkgaXRzIElELCBOYW1lLCBvciBEaXNwbGF5TmFtZS5cbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgYXBwIHNjcmVlbnMgYW5kIHJldHVybnMgdGhlIGZpcnN0IG1hdGNoLlxuICAgKiBcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVPcklkIC0gVGhlIElELCBOYW1lLCBvciBEaXNwbGF5TmFtZSBvZiB0aGUgYXBwIHNjcmVlbiB0byByZXRyaWV2ZS5cbiAgICogQHJldHVybnMge0FwcFNjcmVlbk1vZGVsIHwgbnVsbH0gLSBUaGUgYXBwIHNjcmVlbiBtb2RlbCBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXG4gICAqL1xuICBnZXRBcHBTY3JlZW5CeUlkT3JOYW1lKG5hbWVPcklkOiBzdHJpbmcpOiBBcHBTY3JlZW5Nb2RlbCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmdldEZyb21NYXBPckNyZWF0ZShcbiAgICAgIHRoaXMuYXBwU2NyZWVuTWFwLFxuICAgICAgbmFtZU9ySWQsXG4gICAgICBDb21tb24udGFiSnNvbi5BcHBTY3JlZW5zLFxuICAgICAgc2NyZWVuID0+IHNjcmVlbj8uSUQ/LnRvTG93ZXJDYXNlKCkgPT09IG5hbWVPcklkPy50b0xvd2VyQ2FzZSgpIHx8IHNjcmVlbj8uTmFtZSA9PT0gbmFtZU9ySWQsXG4gICAgICBzY3JlZW4gPT4gbmV3IEFwcFNjcmVlbk1vZGVsKHNjcmVlbilcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIGFwcCBzY3JlZW5zLlxuICAgKiBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgaXQgaXMgYXBwbGllZCB0byB0aGUgbGlzdCBvZiBhcHAgc2NyZWVucy5cbiAgICogXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZpbHRlckZuIC0gVGhlIGZpbHRlciBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgYXBwIHNjcmVlbnMuXG4gICAqIEByZXR1cm5zIHtBcHBTY3JlZW5Nb2RlbFtdfSAtIFRoZSBsaXN0IG9mIGFwcCBzY3JlZW5zLlxuICAgKi9cbiAgZ2V0QWxsQXBwU2NyZWVucyhmaWx0ZXJGbj86IChzY3JlZW46IEFwcFNjcmVlbk1vZGVsKSA9PiBib29sZWFuKTogQXBwU2NyZWVuTW9kZWxbXSB7XG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgbGlzdCBvZiBhcHAgc2NyZWVucyBsYXppbHkuXG4gICAgY29uc3QgbGlzdCA9IHRoaXMubGF6eUluaXRMaXN0KFxuICAgICAgdGhpcy5hbGxBcHBTY3JlZW5zLFxuICAgICAgdmFsID0+ICh0aGlzLmFsbEFwcFNjcmVlbnMgPSB2YWwpLFxuICAgICAgQ29tbW9uLnRhYkpzb24uQXBwU2NyZWVucyxcbiAgICAgIHRoaXMuYXBwU2NyZWVuTWFwLFxuICAgICAgKHM6IGFueSkgPT4gW3M/LklEPy50b0xvd2VyQ2FzZSgpLCBzPy5OYW1lXSxcbiAgICAgIHMgPT4gbmV3IEFwcFNjcmVlbk1vZGVsKHMpXG4gICAgKTtcblxuICAgIC8vIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBhcHBseSBpdCB0byB0aGUgbGlzdCBvZiBhcHAgc2NyZWVucy5cbiAgICByZXR1cm4gZmlsdGVyRm4gPyBsaXN0LmZpbHRlcihmaWx0ZXJGbikgOiBsaXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbiBvcmdhbml6YXRpb24gaW5mbyBieSBpdHMgSUQgb3IgVGVuYW50Q29kZS5cbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgb3JnYW5pemF0aW9uIGluZm8gYW5kIHJldHVybnMgdGhlIGZpcnN0IG1hdGNoLlxuICAgKiBcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVPclRlbmFudENvZGUgLSBUaGUgSUQgb3IgVGVuYW50Q29kZSBvZiB0aGUgb3JnYW5pemF0aW9uIGluZm8gdG8gcmV0cmlldmUuXG4gICAqIEByZXR1cm5zIHtPcmdJbmZvTW9kZWwgfCBudWxsfSAtIFRoZSBvcmdhbml6YXRpb24gaW5mbyBtb2RlbCBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXG4gICAqL1xuICBnZXRPcmdJbmZvQnlJZE9yVGVuYW50Q29kZShuYW1lT3JUZW5hbnRDb2RlOiBzdHJpbmcpOiBPcmdJbmZvTW9kZWwgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGcm9tTWFwT3JDcmVhdGUoXG4gICAgICB0aGlzLm9yZ0luZm9NYXAsXG4gICAgICBuYW1lT3JUZW5hbnRDb2RlLFxuICAgICAgQ29tbW9uLnRhYkpzb24uT3JnSW5mb3MsXG4gICAgICAvLyBTZWFyY2ggZm9yIHRoZSBvcmdhbml6YXRpb24gaW5mbyBieSBJRCBvciBUZW5hbnRDb2RlXG4gICAgICBvcmcgPT4gb3JnLklEPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lT3JUZW5hbnRDb2RlPy50b0xvd2VyQ2FzZSgpIHx8IG9yZy5UZW5hbnRDb2RlID09PSBuYW1lT3JUZW5hbnRDb2RlLFxuICAgICAgLy8gQ3JlYXRlIGEgbmV3IE9yZ0luZm9Nb2RlbCBpZiB0aGUgb3JnYW5pemF0aW9uIGluZm8gaXMgZm91bmRcbiAgICAgIG9yZyA9PiBuZXcgT3JnSW5mb01vZGVsKG9yZylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIG9yZ2FuaXphdGlvbiBpbmZvLlxuICAgKiBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgaXQgaXMgYXBwbGllZCB0byB0aGUgbGlzdCBvZiBvcmdhbml6YXRpb24gaW5mby5cbiAgICogXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZpbHRlckZuIC0gVGhlIGZpbHRlciBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgb3JnYW5pemF0aW9uIGluZm8uXG4gICAqIEByZXR1cm5zIHtPcmdJbmZvTW9kZWxbXX0gLSBUaGUgbGlzdCBvZiBvcmdhbml6YXRpb24gaW5mby5cbiAgICovXG4gIGdldEFsbE9yZ0luZm9zKGZpbHRlckZuPzogKG9yZzogT3JnSW5mb01vZGVsKSA9PiBib29sZWFuKTogT3JnSW5mb01vZGVsW10ge1xuICAgIC8vIEluaXRpYWxpemUgdGhlIGxpc3Qgb2Ygb3JnYW5pemF0aW9uIGluZm8gbGF6aWx5LlxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxhenlJbml0TGlzdChcbiAgICAgIHRoaXMuYWxsT3JnSW5mb3MsXG4gICAgICB2YWwgPT4gKHRoaXMuYWxsT3JnSW5mb3MgPSB2YWwpLFxuICAgICAgQ29tbW9uLnRhYkpzb24uT3JnSW5mb3MsXG4gICAgICB0aGlzLm9yZ0luZm9NYXAsXG4gICAgICAob3JnOiBhbnkpID0+IFtvcmc/LklEPy50b0xvd2VyQ2FzZSgpLCBvcmc/LlRlbmFudENvZGVdLFxuICAgICAgb3JnID0+IG5ldyBPcmdJbmZvTW9kZWwob3JnKVxuICAgICk7XG5cbiAgICAvLyBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgYXBwbHkgaXQgdG8gdGhlIGxpc3Qgb2Ygb3JnYW5pemF0aW9uIGluZm8uXG4gICAgcmV0dXJuIGZpbHRlckZuID8gbGlzdC5maWx0ZXIoZmlsdGVyRm4pIDogbGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIGdsb2JhbCBzZWFyY2ggYWNyb3NzIGFsbCBtZXRhZGF0YSBmb3IgYSBnaXZlbiBzZWFyY2ggdGVybS5cbiAgICogWW91IGNhbiBuYXJyb3cgdGhlIHNlYXJjaCBieSBwcm92aWRpbmcgYSBsaXN0IG9mIGVudGl0eSB0eXBlcyB0byBzZWFyY2ggd2l0aGluLlxuICAgKiBcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRlcm0gLSBUaGUgc2VhcmNoIHRlcm0gdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtNZXRhZGF0YUVudGl0eVR5cGVbXX0gZW50aXR5VHlwZXMgLSBUaGUgbGlzdCBvZiBlbnRpdHkgdHlwZXMgdG8gc2VhcmNoIHdpdGhpbi4gSWYgb21pdHRlZCwgYWxsIGVudGl0eSB0eXBlcyBhcmUgc2VhcmNoZWQuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBhbnlbXT59IC0gQSBkaWN0aW9uYXJ5IHdpdGggcmVzdWx0cyBncm91cGVkIGJ5IGVudGl0eSB0eXBlLlxuICAgKi9cbiAgc2VhcmNoTWV0YWRhdGEodGVybTogc3RyaW5nLCBlbnRpdHlUeXBlcz86IE1ldGFkYXRhRW50aXR5VHlwZVtdKTogUmVjb3JkPHN0cmluZywgYW55W10+IHtcbiAgICBjb25zdCBzZWFyY2hUZXJtID0gdGVybS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55W10+ID0ge307XG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGlmIGEgZ2l2ZW4gZW50aXR5IHR5cGUgc2hvdWxkIGJlIHNlYXJjaGVkLlxuICAgICAqIEBwYXJhbSB7TWV0YWRhdGFFbnRpdHlUeXBlfSB0eXBlIC0gVGhlIGVudGl0eSB0eXBlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGVudGl0eSB0eXBlIHNob3VsZCBiZSBzZWFyY2hlZC5cbiAgICAgKi9cbiAgICBjb25zdCBzaG91bGRTZWFyY2ggPSAodHlwZTogTWV0YWRhdGFFbnRpdHlUeXBlKSA9PiAhZW50aXR5VHlwZXMgfHwgZW50aXR5VHlwZXMuaW5jbHVkZXModHlwZSk7XG5cbiAgICBpZiAoc2hvdWxkU2VhcmNoKE1ldGFkYXRhRW50aXR5VHlwZS5BUFBfT0JKRUNUUykpIHtcbiAgICAgIC8vIFNlYXJjaCBmb3IgYXBwIG9iamVjdHMgYnkgSUQsIE9iamVjdE5hbWUsIERpc3BsYXlOYW1lLCBvciBTeXN0ZW1EQlRhYmxlTmFtZVxuICAgICAgcmVzdWx0W01ldGFkYXRhRW50aXR5VHlwZS5BUFBfT0JKRUNUU10gPSB0aGlzLmdldEFsbEFwcE9iamVjdHMob2JqID0+XG4gICAgICAgIFtvYmo/LklELCBvYmo/Lk9iamVjdE5hbWUsIG9iaj8uRGlzcGxheU5hbWUsIG9iaj8uU3lzdGVtREJUYWJsZU5hbWVdXG4gICAgICAgICAgLnNvbWUodmFsID0+IHZhbCA9PT0gc2VhcmNoVGVybSB8fCB2YWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChzaG91bGRTZWFyY2goTWV0YWRhdGFFbnRpdHlUeXBlLkFQUF9GSUVMRFMpKSB7XG4gICAgICAvLyBTZWFyY2ggZm9yIGFwcCBmaWVsZHMgYnkgdXNpbmcgdGhlIHNlYXJjaCBtZXRob2RcbiAgICAgIHJlc3VsdFtNZXRhZGF0YUVudGl0eVR5cGUuQVBQX0ZJRUxEU10gPSB0aGlzLmdldEFsbEZpZWxkcyhmaWVsZCA9PiBmaWVsZC5zZWFyY2goc2VhcmNoVGVybSkpO1xuICAgIH1cblxuICAgIGlmIChzaG91bGRTZWFyY2goTWV0YWRhdGFFbnRpdHlUeXBlLkRBVEFfU09VUkNFX1FVRVJJRVMpKSB7XG4gICAgICAvLyBTZWFyY2ggZm9yIGRhdGEgc291cmNlIHF1ZXJpZXMgYnkgdXNpbmcgdGhlIHNlYXJjaCBtZXRob2RcbiAgICAgIHJlc3VsdFtNZXRhZGF0YUVudGl0eVR5cGUuREFUQV9TT1VSQ0VfUVVFUklFU10gPSB0aGlzLmdldEFsbERhdGFTb3VyY2VRdWVyaWVzKGRzcSA9PiBkc3Euc2VhcmNoKHNlYXJjaFRlcm0pKTtcbiAgICB9XG5cbiAgICBpZiAoc2hvdWxkU2VhcmNoKE1ldGFkYXRhRW50aXR5VHlwZS5BUFBfU0NSRUVOUykpIHtcbiAgICAgIC8vIFNlYXJjaCBmb3IgYXBwIHNjcmVlbnMgYnkgdXNpbmcgdGhlIHNlYXJjaCBtZXRob2RcbiAgICAgIHJlc3VsdFtNZXRhZGF0YUVudGl0eVR5cGUuQVBQX1NDUkVFTlNdID0gdGhpcy5nZXRBbGxBcHBTY3JlZW5zKHNjcmVlbiA9PiBzY3JlZW4uc2VhcmNoKHNlYXJjaFRlcm0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbiBhcHAgbWVudSBieSBpdHMgSUQgb3IgbmFtZS5cbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgYXBwIG1lbnVzIGFuZCByZXR1cm5zIHRoZSBmaXJzdCBtYXRjaC5cbiAgICogXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lT3JJZCAtIFRoZSBJRCBvciBuYW1lIG9mIHRoZSBhcHAgbWVudSB0byByZXRyaWV2ZS5cbiAgICogQHJldHVybnMge0FwcE1lbnVNb2RlbCB8IG51bGx9IC0gVGhlIGFwcCBtZW51IG1vZGVsIGlmIGZvdW5kLCBvdGhlcndpc2UgbnVsbC5cbiAgICovXG4gIGdldEFwcE1lbnVCeUlkT3JOYW1lKG5hbWVPcklkOiBzdHJpbmcpOiBBcHBNZW51TW9kZWwgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGcm9tTWFwT3JDcmVhdGUoXG4gICAgICB0aGlzLmFwcE1lbnVNYXAsXG4gICAgICBuYW1lT3JJZCxcbiAgICAgIENvbW1vbi50YWJKc29uLk1lbnVzLFxuICAgICAgLy8gU2VhcmNoIGZvciB0aGUgYXBwIG1lbnUgYnkgSUQgb3IgbmFtZVxuICAgICAgbWVudSA9PiBtZW51Py5JZD8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZU9ySWQ/LnRvTG93ZXJDYXNlKCkgfHwgbWVudT8uTWVudU5hbWUgPT09IG5hbWVPcklkLFxuICAgICAgLy8gQ3JlYXRlIGEgbmV3IEFwcE1lbnVNb2RlbCBpZiB0aGUgYXBwIG1lbnUgaXMgZm91bmRcbiAgICAgIG1lbnUgPT4gbmV3IEFwcE1lbnVNb2RlbChtZW51KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBhbGwgYXBwIG1lbnVzLlxuICAgKiBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgaXQgaXMgYXBwbGllZCB0byB0aGUgbGlzdCBvZiBhcHAgbWVudXMuXG4gICAqIFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmaWx0ZXJGbiAtIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIGFwcCBtZW51cy5cbiAgICogQHJldHVybnMge0FwcE1lbnVNb2RlbFtdfSAtIFRoZSBsaXN0IG9mIGFwcCBtZW51cy5cbiAgICovXG4gIGdldEFsbEFwcE1lbnVzKGZpbHRlckZuPzogKG1lbnU6IEFwcE1lbnVNb2RlbCkgPT4gYm9vbGVhbik6IEFwcE1lbnVNb2RlbFtdIHtcbiAgICAvLyBJbml0aWFsaXplIHRoZSBsaXN0IG9mIGFwcCBzY3JlZW5zIGxhemlseS5cbiAgICBjb25zdCBsaXN0ID0gdGhpcy5sYXp5SW5pdExpc3QoXG4gICAgICB0aGlzLmFsbEFwcE1lbnVzLFxuICAgICAgdmFsID0+ICh0aGlzLmFsbEFwcE1lbnVzID0gdmFsKSxcbiAgICAgIENvbW1vbi50YWJKc29uLk1lbnVzLFxuICAgICAgdGhpcy5hcHBNZW51TWFwLFxuICAgICAgKG06IGFueSkgPT4gW20/LklkPy50b0xvd2VyQ2FzZSgpLCBtPy5OYW1lXSxcbiAgICAgIHMgPT4gbmV3IEFwcE1lbnVNb2RlbChzKVxuICAgICk7XG5cbiAgICAvLyBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgYXBwbHkgaXQgdG8gdGhlIGxpc3Qgb2YgYXBwIHNjcmVlbnMuXG4gICAgcmV0dXJuIGZpbHRlckZuID8gbGlzdC5maWx0ZXIoZmlsdGVyRm4pIDogbGlzdDtcbiAgfVxufSJdfQ==
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS1kYXRhLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vbWV0YS1kYXRhLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUcvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFHckUsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFVSxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3hELGtCQUFhLEdBQTRCLElBQUksQ0FBQztRQUU5QyxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3hELGtCQUFhLEdBQTRCLElBQUksQ0FBQztRQUU5QyxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7UUFDcEQsZ0JBQVcsR0FBMEIsSUFBSSxDQUFDO1FBRTFDLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztRQUNwRCxnQkFBVyxHQUEwQixJQUFJLENBQUM7UUFFakMs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LEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FDekIsQ0FBQztRQUVGLHNFQUFzRTtRQUN0RSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7K0VBeFdVLGNBQWM7dUVBQWQsY0FBYyxXQUFkLGNBQWMsbUJBREQsTUFBTTs7aUZBQ25CLGNBQWM7Y0FEMUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gXCIuLi8uLi9jb25zdGFudHMvY29tbW9uXCI7XHJcbmltcG9ydCB7IEFwcE9iamVjdE1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hcHAtb2JqZWN0Lm1vZGVsXCI7XHJcbmltcG9ydCB7IEFwcEZpZWxkTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2FwcC1maWVsZC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlUXVlcnlNb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZGF0YS1zb3VyY2UtcXVlcnkubW9kZWxcIjtcclxuaW1wb3J0IHsgTWV0YWRhdGFFbnRpdHlUeXBlIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvc2NoZW1hLmludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBBcHBTY3JlZW5Nb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXBwLXNjcmVlbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBPcmdJbmZvTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL29yZ0luZm8ubW9kZWxcIjtcclxuaW1wb3J0IHsgQXBwTWVudU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hcHAtbWVudS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vYXV0aC9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTdG9yYWdlQ29uc3RhbnRzIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9zdG9yYWdlLWNvbnN0YW50c1wiO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhSGVscGVyIHtcclxuICBwcml2YXRlIGFwcE9iamVjdE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBcHBPYmplY3RNb2RlbCB8IG51bGw+KCk7XHJcbiAgcHJpdmF0ZSBhbGxBcHBPYmplY3RzOiBBcHBPYmplY3RNb2RlbFtdIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgYXBwU2NyZWVuTWFwID0gbmV3IE1hcDxzdHJpbmcsIEFwcFNjcmVlbk1vZGVsIHwgbnVsbD4oKTtcclxuICBwcml2YXRlIGFsbEFwcFNjcmVlbnM6IEFwcFNjcmVlbk1vZGVsW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBvcmdJbmZvTWFwID0gbmV3IE1hcDxzdHJpbmcsIE9yZ0luZm9Nb2RlbCB8IG51bGw+KCk7XHJcbiAgcHJpdmF0ZSBhbGxPcmdJbmZvczogT3JnSW5mb01vZGVsW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBhcHBNZW51TWFwID0gbmV3IE1hcDxzdHJpbmcsIEFwcE1lbnVNb2RlbCB8IG51bGw+KCk7XHJcbiAgcHJpdmF0ZSBhbGxBcHBNZW51czogQXBwTWVudU1vZGVsW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSA9IGluamVjdChTZXNzaW9uU3RvcmFnZVNlcnZpY2UpO1xyXG5cclxuICAvKipcclxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGdldCBjdXJyZW50IGFwcCBJRCBmcm9tIHNlc3Npb25cclxuICAgKiBAcmV0dXJucyBDdXJyZW50IGFwcCBJRCBvciBudWxsIGlmIG5vdCBhdmFpbGFibGVcclxuICAgKi9cclxuICBwcml2YXRlIGdldEN1cnJlbnRBcHBJZCgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGFwcEluZm8gPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRTZXNzaW9uU3RvcmFnZShTdG9yYWdlQ29uc3RhbnRzLmFwcEluZm8pO1xyXG4gICAgICBjb25zdCBwYXJzZWRBcHBJbmZvID0gYXBwSW5mbyA/IEpTT04ucGFyc2UoYXBwSW5mbykgOiBudWxsO1xyXG4gICAgICByZXR1cm4gcGFyc2VkQXBwSW5mbz8uSWQgfHwgbnVsbDtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIGdldCBjdXJyZW50IGFwcCBJRCBmcm9tIHNlc3Npb246JywgZXJyb3IpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4ga2V5IGZyb20gdGhlIGdpdmVuIG1hcC5cclxuICAgKiBJZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAsIGFuZCB0aGUgc291cmNlIGxpc3QgY29udGFpbnMgYW4gaXRlbSB0aGF0IG1hdGNoZXNcclxuICAgKiB0aGUgZ2l2ZW4gY29uZGl0aW9uLCBpdCBjcmVhdGVzIGEgbmV3IG1vZGVsIHVzaW5nIHRoZSBnaXZlbiBtb2RlbCBmYWN0b3J5IGFuZCBhZGRzIGl0IHRvIHRoZSBtYXAuXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIHNlYXJjaCBpbi5cclxuICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cclxuICAgKiBAcGFyYW0gc291cmNlTGlzdCBUaGUgbGlzdCBvZiBpdGVtcyB0byBzZWFyY2ggaW4uXHJcbiAgICogQHBhcmFtIG1hdGNoRm4gVGhlIGNvbmRpdGlvbiB0byBtYXRjaC5cclxuICAgKiBAcGFyYW0gbW9kZWxGYWN0b3J5IFRoZSBmYWN0b3J5IHRvIGNyZWF0ZSBhIG5ldyBtb2RlbCBpZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0LlxyXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGtleSwgb3IgbnVsbCBpZiBubyBtYXRjaCBpcyBmb3VuZC5cclxuICAgKi9cclxuICBwcml2YXRlIGdldEZyb21NYXBPckNyZWF0ZTxUPihcclxuICAgIG1hcDogTWFwPHN0cmluZywgVCB8IG51bGw+LFxyXG4gICAga2V5OiBzdHJpbmcsXHJcbiAgICBzb3VyY2VMaXN0OiBUW10sXHJcbiAgICBtYXRjaEZuOiAoaXRlbTogVCkgPT4gYm9vbGVhbixcclxuICAgIG1vZGVsRmFjdG9yeTogKGl0ZW06IFQpID0+IFRcclxuICApOiBUIHwgbnVsbCB7XHJcbiAgICBpZiAoIWtleSkgcmV0dXJuIG51bGw7XHJcbiAgICBpZiAobWFwLmhhcyhrZXkpKSByZXR1cm4gbWFwLmdldChrZXkpIHx8IG51bGw7XHJcblxyXG4gICAgY29uc3QgaXRlbSA9IHNvdXJjZUxpc3QuZmluZChtYXRjaEZuKTtcclxuICAgIGNvbnN0IG1vZGVsID0gaXRlbSA/IG1vZGVsRmFjdG9yeShpdGVtKSA6IG51bGw7XHJcbiAgICBtYXAuc2V0KGtleSwgbW9kZWwpO1xyXG4gICAgcmV0dXJuIG1vZGVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTGF6aWx5IGluaXRpYWxpemVzIGEgbGlzdCBvZiBtb2RlbHMgZnJvbSBhIHNvdXJjZSBsaXN0LlxyXG4gICAqIEl0IGNyZWF0ZXMgYSBuZXcgbW9kZWwgZm9yIGVhY2ggaXRlbSBpbiB0aGUgc291cmNlIGxpc3QgYW5kIGFkZHMgaXQgdG8gdGhlIGdpdmVuIG1hcC5cclxuICAgKiBJdCBhbHNvIHNldHMgdGhlIGxpc3Qgb2YgbW9kZWxzIHRvIHRoZSBnaXZlbiBzZXR0ZXIuXHJcbiAgICogQHBhcmFtIGxpc3RSZWYgVGhlIHJlZmVyZW5jZSB0byB0aGUgbGlzdCBvZiBtb2RlbHMuXHJcbiAgICogQHBhcmFtIHNldHRlciBUaGUgc2V0dGVyIHRvIHNldCB0aGUgbGlzdCBvZiBtb2RlbHMuXHJcbiAgICogQHBhcmFtIHNvdXJjZUxpc3QgVGhlIHNvdXJjZSBsaXN0IG9mIGl0ZW1zLlxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byBzdG9yZSB0aGUgbW9kZWxzLlxyXG4gICAqIEBwYXJhbSBnZXRLZXlzIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgZm9yIHRoZSBnaXZlbiBpdGVtLlxyXG4gICAqIEBwYXJhbSBtb2RlbEZhY3RvcnkgVGhlIGZhY3RvcnkgdG8gY3JlYXRlIGEgbmV3IG1vZGVsIGZvciB0aGUgZ2l2ZW4gaXRlbS5cclxuICAgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiBtb2RlbHMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBsYXp5SW5pdExpc3Q8VCwgTT4oXHJcbiAgICBsaXN0UmVmOiBNW10gfCBudWxsLFxyXG4gICAgc2V0dGVyOiAobGlzdDogTVtdKSA9PiB2b2lkLFxyXG4gICAgc291cmNlTGlzdDogVFtdLFxyXG4gICAgbWFwOiBNYXA8c3RyaW5nLCBNIHwgbnVsbD4sXHJcbiAgICBnZXRLZXlzOiAoaXRlbTogVCkgPT4gc3RyaW5nW10sXHJcbiAgICBtb2RlbEZhY3Rvcnk6IChpdGVtOiBUKSA9PiBNXHJcbiAgKTogTVtdIHtcclxuICAgIC8vIElmIHRoZSBsaXN0IGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQsIHJldHVybiBpdC5cclxuICAgIGlmIChsaXN0UmVmKSByZXR1cm4gbGlzdFJlZjtcclxuXHJcbiAgICAvLyBDcmVhdGUgYSBuZXcgbW9kZWwgZm9yIGVhY2ggaXRlbSBpbiB0aGUgc291cmNlIGxpc3QgYW5kIGFkZCBpdCB0byB0aGUgbWFwLlxyXG4gICAgY29uc3QgbW9kZWxzID0gc291cmNlTGlzdC5tYXAoKGl0ZW06IFQpID0+IHtcclxuICAgICAgY29uc3QgbW9kZWwgPSBtb2RlbEZhY3RvcnkoaXRlbSk7XHJcbiAgICAgIGdldEtleXMoaXRlbSkuZm9yRWFjaChrZXkgPT4gbWFwLnNldChrZXksIG1vZGVsKSk7XHJcbiAgICAgIHJldHVybiBtb2RlbDtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIFNldCB0aGUgbGlzdCBvZiBtb2RlbHMgdG8gdGhlIGdpdmVuIHNldHRlci5cclxuICAgIHNldHRlcihtb2RlbHMpO1xyXG5cclxuICAgIC8vIFJldHVybiB0aGUgbGlzdCBvZiBtb2RlbHMuXHJcbiAgICByZXR1cm4gbW9kZWxzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmluZHMgYW4gYXBwIG9iamVjdCBpbiB0aGUgbWFwIGJ5IGl0cyBuYW1lIG9yIGlkLlxyXG4gICAqIElmIHRoZSBhcHAgb2JqZWN0IGlzIG5vdCBmb3VuZCwgaXQgY3JlYXRlcyBhIG5ldyBvbmUgYW5kIGFkZHMgaXQgdG8gdGhlIG1hcC5cclxuICAgKiBAcGFyYW0gbmFtZU9ySWQgVGhlIG5hbWUgb3IgaWQgb2YgdGhlIGFwcCBvYmplY3QgdG8gZmluZC5cclxuICAgKiBAcmV0dXJucyBUaGUgYXBwIG9iamVjdCBpZiBmb3VuZCwgb3IgbnVsbCBpZiBub3QgZm91bmQuXHJcbiAgICovXHJcbiAgZ2V0QXBwT2JqZWN0QnlJZE9yTmFtZShuYW1lT3JJZDogc3RyaW5nKTogQXBwT2JqZWN0TW9kZWwgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmdldEZyb21NYXBPckNyZWF0ZShcclxuICAgICAgdGhpcy5hcHBPYmplY3RNYXAsXHJcbiAgICAgIG5hbWVPcklkLFxyXG4gICAgICBDb21tb24udGFiSnNvbi5BcHBPYmplY3RzLFxyXG4gICAgICBvYmogPT4gb2JqLk9iamVjdE5hbWUgPT09IG5hbWVPcklkIHx8IG9iai5JRD8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZU9ySWQ/LnRvTG93ZXJDYXNlKCksXHJcbiAgICAgIG9iaiA9PiBuZXcgQXBwT2JqZWN0TW9kZWwob2JqLCB0aGlzKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFwcCBvYmplY3RzIGluIHRoZSBtZXRhZGF0YS5cclxuICAgKiBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgaXQgaXMgYXBwbGllZCB0byBlYWNoIGFwcCBvYmplY3QuXHJcbiAgICogQHBhcmFtIGZpbHRlckZuIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIGFwcCBvYmplY3RzLlxyXG4gICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIGFwcCBvYmplY3RzLlxyXG4gICAqL1xyXG4gIGdldEFsbEFwcE9iamVjdHMoZmlsdGVyRm4/OiAob2JqOiBBcHBPYmplY3RNb2RlbCkgPT4gYm9vbGVhbiwgaW5jbHVkZVN5c3RlbURhdGEgPSBmYWxzZSk6IEFwcE9iamVjdE1vZGVsW10ge1xyXG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgbGlzdCBvZiBhcHAgb2JqZWN0cyBsYXppbHkuXHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5sYXp5SW5pdExpc3QoXHJcbiAgICAgIHRoaXMuYWxsQXBwT2JqZWN0cyxcclxuICAgICAgdmFsID0+ICh0aGlzLmFsbEFwcE9iamVjdHMgPSB2YWwpLFxyXG4gICAgICBDb21tb24udGFiSnNvbi5BcHBPYmplY3RzLFxyXG4gICAgICB0aGlzLmFwcE9iamVjdE1hcCxcclxuICAgICAgKG9iajogYW55KSA9PiBbb2JqLklEPy50b0xvd2VyQ2FzZSgpLCBvYmouT2JqZWN0TmFtZV0sXHJcbiAgICAgIG9iaiA9PiBuZXcgQXBwT2JqZWN0TW9kZWwob2JqLCB0aGlzKVxyXG4gICAgKTtcclxuXHJcbiAgICBsZXQgZmlsdGVyZWRMaXN0OiBBcHBPYmplY3RNb2RlbFtdID0gbGlzdDtcclxuICAgIGlmICghaW5jbHVkZVN5c3RlbURhdGEpIHtcclxuICAgICAgY29uc3QgY3VycmVudEFwcElkID0gdGhpcy5nZXRDdXJyZW50QXBwSWQoKT8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgZmlsdGVyZWRMaXN0ID0gbGlzdC5maWx0ZXIob2JqID0+IFxyXG4gICAgICAgICFvYmouQXBwSWQgfHwgICAgICAgICAgICAgICAgICAgIC8vIEdsb2JhbCBkYXRhIChhcHAgPSBudWxsKVxyXG4gICAgICAgIG9iai5BcHBJZCA9PT0gY3VycmVudEFwcElkICAgICAgIC8vIEN1cnJlbnQgYXBwIGRhdGFcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgYXBwbHkgaXQgdG8gdGhlIGxpc3Qgb2YgYXBwIG9iamVjdHMuXHJcbiAgICByZXR1cm4gZmlsdGVyRm4gPyBmaWx0ZXJlZExpc3QuZmlsdGVyKGZpbHRlckZuKSA6IGZpbHRlcmVkTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGZpZWxkcyBpbiB0aGUgbWV0YWRhdGEuXHJcbiAgICogSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGl0IGlzIGFwcGxpZWQgdG8gZWFjaCBmaWVsZC5cclxuICAgKiBAcGFyYW0gZmlsdGVyRm4gVGhlIGZpbHRlciBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgZmllbGRzLlxyXG4gICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIGZpZWxkcy5cclxuICAgKi9cclxuICBnZXRBbGxGaWVsZHMoZmlsdGVyRm4/OiAoZmllbGQ6IEFwcEZpZWxkTW9kZWwpID0+IGJvb2xlYW4sIGluY2x1ZGVTeXN0ZW1EYXRhID0gZmFsc2UpOiBBcHBGaWVsZE1vZGVsW10ge1xyXG4gICAgLy8gR2V0IGEgbGlzdCBvZiBhbGwgZmllbGRzIGZyb20gYWxsIGFwcCBvYmplY3RzLlxyXG4gICAgY29uc3QgYWxsRmllbGRzID0gdGhpcy5nZXRBbGxBcHBPYmplY3RzKHVuZGVmaW5lZCwgaW5jbHVkZVN5c3RlbURhdGEpLmZsYXRNYXAob2JqID0+IG9iai5maWVsZHMoKSk7XHJcblxyXG4gICAgLy8gSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGFwcGx5IGl0IHRvIHRoZSBsaXN0IG9mIGZpZWxkcy5cclxuICAgIHJldHVybiBmaWx0ZXJGbiA/IGFsbEZpZWxkcy5maWx0ZXIoZmlsdGVyRm4pIDogYWxsRmllbGRzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmluZHMgYSBmaWVsZCBieSBpdHMgSUQgYWNyb3NzIGFsbCBhcHAgb2JqZWN0c1xyXG4gICAqIEBwYXJhbSBmaWVsZElkIFRoZSBJRCBvZiB0aGUgZmllbGQgdG8gZmluZFxyXG4gICAqIEByZXR1cm5zIFRoZSBmaWVsZCBpZiBmb3VuZCwgb3IgbnVsbCBpZiBub3QgZm91bmRcclxuICAgKi9cclxuICBnZXRGaWVsZEJ5SWRPck5hbWUobmFtZU9ySWQ6IHN0cmluZyk6IEFwcEZpZWxkTW9kZWwgfCBudWxsIHtcclxuICAgIGlmICghbmFtZU9ySWQpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsRmllbGRzKGZpZWxkID0+IFxyXG4gICAgICBmaWVsZC5JRD8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZU9ySWQ/LnRvTG93ZXJDYXNlKCkgfHwgXHJcbiAgICAgIGZpZWxkLkZpZWxkTmFtZSA9PT0gbmFtZU9ySWQsXHJcbiAgICAgIHRydWVcclxuICAgIClbMF0gfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGRhdGEgc291cmNlIHF1ZXJpZXMgaW4gdGhlIG1ldGFkYXRhLlxyXG4gICAqIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBpdCBpcyBhcHBsaWVkIHRvIGVhY2ggZGF0YSBzb3VyY2UgcXVlcnkuXHJcbiAgICogQHBhcmFtIGZpbHRlckZuIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIGRhdGEgc291cmNlIHF1ZXJpZXMuXHJcbiAgICogQHJldHVybnMgVGhlIGxpc3Qgb2YgZGF0YSBzb3VyY2UgcXVlcmllcy5cclxuICAgKi9cclxuICBnZXRBbGxEYXRhU291cmNlUXVlcmllcyhmaWx0ZXJGbj86IChkc3E6IERhdGFTb3VyY2VRdWVyeU1vZGVsKSA9PiBib29sZWFuLGluY2x1ZGVTeXN0ZW1EYXRhID0gZmFsc2UpOiBEYXRhU291cmNlUXVlcnlNb2RlbFtdIHtcclxuICAgIC8vIEdldCBhIGxpc3Qgb2YgYWxsIGRhdGEgc291cmNlIHF1ZXJpZXMgZnJvbSBhbGwgYXBwIG9iamVjdHMuXHJcbiAgICBjb25zdCBhbGxEU1FzID0gdGhpcy5nZXRBbGxBcHBPYmplY3RzKHVuZGVmaW5lZCwgaW5jbHVkZVN5c3RlbURhdGEpLmZsYXRNYXAob2JqID0+IG9iai5kYXRhU291cmNlUXVlcmllcygpKTtcclxuXHJcbiAgICAvLyBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgYXBwbHkgaXQgdG8gdGhlIGxpc3Qgb2YgZGF0YSBzb3VyY2UgcXVlcmllcy5cclxuICAgIHJldHVybiBmaWx0ZXJGbiA/IGFsbERTUXMuZmlsdGVyKGZpbHRlckZuKSA6IGFsbERTUXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBkYXRhIHNvdXJjZSBxdWVyeSBieSBpdHMgSUQsIFF1ZXJ5TmFtZSwgb3IgRGlzcGxheU5hbWUuXHJcbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgZGF0YSBzb3VyY2UgcXVlcmllcyBhbmQgcmV0dXJucyB0aGUgZmlyc3QgbWF0Y2guXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVPcklkIC0gVGhlIElELCBRdWVyeU5hbWUsIG9yIERpc3BsYXlOYW1lIG9mIHRoZSBkYXRhIHNvdXJjZSBxdWVyeSB0byByZXRyaWV2ZS5cclxuICAgKiBAcmV0dXJucyB7RGF0YVNvdXJjZVF1ZXJ5TW9kZWwgfCBudWxsfSAtIFRoZSBkYXRhIHNvdXJjZSBxdWVyeSBtb2RlbCBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXHJcbiAgICovXHJcbiAgZ2V0RGF0YVNvdXJjZVF1ZXJ5QnlJZE9yTmFtZShuYW1lT3JJZDogc3RyaW5nKTogRGF0YVNvdXJjZVF1ZXJ5TW9kZWwgfCBudWxsIHtcclxuICAgIC8vIFNlYXJjaCBmb3IgdGhlIGRhdGEgc291cmNlIHF1ZXJ5IGJ5IElELCBRdWVyeU5hbWUsIG9yIERpc3BsYXlOYW1lXHJcbiAgICByZXR1cm4gdGhpcy5nZXRBbGxEYXRhU291cmNlUXVlcmllcyh1bmRlZmluZWQsdHJ1ZSkuZmluZChcclxuICAgICAgZHNxID0+IGRzcT8uSUQ/LnRvTG93ZXJDYXNlKCkgPT09IG5hbWVPcklkPy50b0xvd2VyQ2FzZSgpIHx8IGRzcT8uUXVlcnlOYW1lID09PSBuYW1lT3JJZCB8fCBkc3E/LkRpc3BsYXlOYW1lID09PSBuYW1lT3JJZFxyXG4gICAgKSB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGFuIGFwcCBzY3JlZW4gYnkgaXRzIElELCBOYW1lLCBvciBEaXNwbGF5TmFtZS5cclxuICAgKiBTZWFyY2hlcyB0aHJvdWdoIGFsbCBhcHAgc2NyZWVucyBhbmQgcmV0dXJucyB0aGUgZmlyc3QgbWF0Y2guXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVPcklkIC0gVGhlIElELCBOYW1lLCBvciBEaXNwbGF5TmFtZSBvZiB0aGUgYXBwIHNjcmVlbiB0byByZXRyaWV2ZS5cclxuICAgKiBAcmV0dXJucyB7QXBwU2NyZWVuTW9kZWwgfCBudWxsfSAtIFRoZSBhcHAgc2NyZWVuIG1vZGVsIGlmIGZvdW5kLCBvdGhlcndpc2UgbnVsbC5cclxuICAgKi9cclxuICBnZXRBcHBTY3JlZW5CeUlkT3JOYW1lKG5hbWVPcklkOiBzdHJpbmcpOiBBcHBTY3JlZW5Nb2RlbCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RnJvbU1hcE9yQ3JlYXRlKFxyXG4gICAgICB0aGlzLmFwcFNjcmVlbk1hcCxcclxuICAgICAgbmFtZU9ySWQsXHJcbiAgICAgIENvbW1vbi50YWJKc29uLkFwcFNjcmVlbnMsXHJcbiAgICAgIHNjcmVlbiA9PiBzY3JlZW4/LklEPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lT3JJZD8udG9Mb3dlckNhc2UoKSB8fCBzY3JlZW4/Lk5hbWUgPT09IG5hbWVPcklkLFxyXG4gICAgICBzY3JlZW4gPT4gbmV3IEFwcFNjcmVlbk1vZGVsKHNjcmVlbilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCBhcHAgc2NyZWVucy5cclxuICAgKiBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgaXQgaXMgYXBwbGllZCB0byB0aGUgbGlzdCBvZiBhcHAgc2NyZWVucy5cclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmaWx0ZXJGbiAtIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIGFwcCBzY3JlZW5zLlxyXG4gICAqIEByZXR1cm5zIHtBcHBTY3JlZW5Nb2RlbFtdfSAtIFRoZSBsaXN0IG9mIGFwcCBzY3JlZW5zLlxyXG4gICAqL1xyXG4gIGdldEFsbEFwcFNjcmVlbnMoZmlsdGVyRm4/OiAoc2NyZWVuOiBBcHBTY3JlZW5Nb2RlbCkgPT4gYm9vbGVhbik6IEFwcFNjcmVlbk1vZGVsW10ge1xyXG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgbGlzdCBvZiBhcHAgc2NyZWVucyBsYXppbHkuXHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5sYXp5SW5pdExpc3QoXHJcbiAgICAgIHRoaXMuYWxsQXBwU2NyZWVucyxcclxuICAgICAgdmFsID0+ICh0aGlzLmFsbEFwcFNjcmVlbnMgPSB2YWwpLFxyXG4gICAgICBDb21tb24udGFiSnNvbi5BcHBTY3JlZW5zLFxyXG4gICAgICB0aGlzLmFwcFNjcmVlbk1hcCxcclxuICAgICAgKHM6IGFueSkgPT4gW3M/LklEPy50b0xvd2VyQ2FzZSgpLCBzPy5OYW1lXSxcclxuICAgICAgcyA9PiBuZXcgQXBwU2NyZWVuTW9kZWwocylcclxuICAgICk7XHJcblxyXG4gICAgLy8gSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGFwcGx5IGl0IHRvIHRoZSBsaXN0IG9mIGFwcCBzY3JlZW5zLlxyXG4gICAgcmV0dXJuIGZpbHRlckZuID8gbGlzdC5maWx0ZXIoZmlsdGVyRm4pIDogbGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhbiBvcmdhbml6YXRpb24gaW5mbyBieSBpdHMgSUQgb3IgVGVuYW50Q29kZS5cclxuICAgKiBTZWFyY2hlcyB0aHJvdWdoIGFsbCBvcmdhbml6YXRpb24gaW5mbyBhbmQgcmV0dXJucyB0aGUgZmlyc3QgbWF0Y2guXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVPclRlbmFudENvZGUgLSBUaGUgSUQgb3IgVGVuYW50Q29kZSBvZiB0aGUgb3JnYW5pemF0aW9uIGluZm8gdG8gcmV0cmlldmUuXHJcbiAgICogQHJldHVybnMge09yZ0luZm9Nb2RlbCB8IG51bGx9IC0gVGhlIG9yZ2FuaXphdGlvbiBpbmZvIG1vZGVsIGlmIGZvdW5kLCBvdGhlcndpc2UgbnVsbC5cclxuICAgKi9cclxuICBnZXRPcmdJbmZvQnlJZE9yVGVuYW50Q29kZShuYW1lT3JUZW5hbnRDb2RlOiBzdHJpbmcpOiBPcmdJbmZvTW9kZWwgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmdldEZyb21NYXBPckNyZWF0ZShcclxuICAgICAgdGhpcy5vcmdJbmZvTWFwLFxyXG4gICAgICBuYW1lT3JUZW5hbnRDb2RlLFxyXG4gICAgICBDb21tb24udGFiSnNvbi5PcmdJbmZvcyxcclxuICAgICAgLy8gU2VhcmNoIGZvciB0aGUgb3JnYW5pemF0aW9uIGluZm8gYnkgSUQgb3IgVGVuYW50Q29kZVxyXG4gICAgICBvcmcgPT4gb3JnLklEPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lT3JUZW5hbnRDb2RlPy50b0xvd2VyQ2FzZSgpIHx8IG9yZy5UZW5hbnRDb2RlID09PSBuYW1lT3JUZW5hbnRDb2RlLFxyXG4gICAgICAvLyBDcmVhdGUgYSBuZXcgT3JnSW5mb01vZGVsIGlmIHRoZSBvcmdhbml6YXRpb24gaW5mbyBpcyBmb3VuZFxyXG4gICAgICBvcmcgPT4gbmV3IE9yZ0luZm9Nb2RlbChvcmcpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBhbGwgb3JnYW5pemF0aW9uIGluZm8uXHJcbiAgICogSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGl0IGlzIGFwcGxpZWQgdG8gdGhlIGxpc3Qgb2Ygb3JnYW5pemF0aW9uIGluZm8uXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZmlsdGVyRm4gLSBUaGUgZmlsdGVyIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBvcmdhbml6YXRpb24gaW5mby5cclxuICAgKiBAcmV0dXJucyB7T3JnSW5mb01vZGVsW119IC0gVGhlIGxpc3Qgb2Ygb3JnYW5pemF0aW9uIGluZm8uXHJcbiAgICovXHJcbiAgZ2V0QWxsT3JnSW5mb3MoZmlsdGVyRm4/OiAob3JnOiBPcmdJbmZvTW9kZWwpID0+IGJvb2xlYW4pOiBPcmdJbmZvTW9kZWxbXSB7XHJcbiAgICAvLyBJbml0aWFsaXplIHRoZSBsaXN0IG9mIG9yZ2FuaXphdGlvbiBpbmZvIGxhemlseS5cclxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxhenlJbml0TGlzdChcclxuICAgICAgdGhpcy5hbGxPcmdJbmZvcyxcclxuICAgICAgdmFsID0+ICh0aGlzLmFsbE9yZ0luZm9zID0gdmFsKSxcclxuICAgICAgQ29tbW9uLnRhYkpzb24uT3JnSW5mb3MsXHJcbiAgICAgIHRoaXMub3JnSW5mb01hcCxcclxuICAgICAgKG9yZzogYW55KSA9PiBbb3JnPy5JRD8udG9Mb3dlckNhc2UoKSwgb3JnPy5UZW5hbnRDb2RlXSxcclxuICAgICAgb3JnID0+IG5ldyBPcmdJbmZvTW9kZWwob3JnKVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgYXBwbHkgaXQgdG8gdGhlIGxpc3Qgb2Ygb3JnYW5pemF0aW9uIGluZm8uXHJcbiAgICByZXR1cm4gZmlsdGVyRm4gPyBsaXN0LmZpbHRlcihmaWx0ZXJGbikgOiBsaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyZm9ybXMgYSBnbG9iYWwgc2VhcmNoIGFjcm9zcyBhbGwgbWV0YWRhdGEgZm9yIGEgZ2l2ZW4gc2VhcmNoIHRlcm0uXHJcbiAgICogWW91IGNhbiBuYXJyb3cgdGhlIHNlYXJjaCBieSBwcm92aWRpbmcgYSBsaXN0IG9mIGVudGl0eSB0eXBlcyB0byBzZWFyY2ggd2l0aGluLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXJtIC0gVGhlIHNlYXJjaCB0ZXJtIHRvIHNlYXJjaCBmb3IuXHJcbiAgICogQHBhcmFtIHtNZXRhZGF0YUVudGl0eVR5cGVbXX0gZW50aXR5VHlwZXMgLSBUaGUgbGlzdCBvZiBlbnRpdHkgdHlwZXMgdG8gc2VhcmNoIHdpdGhpbi4gSWYgb21pdHRlZCwgYWxsIGVudGl0eSB0eXBlcyBhcmUgc2VhcmNoZWQuXHJcbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIGFueVtdPn0gLSBBIGRpY3Rpb25hcnkgd2l0aCByZXN1bHRzIGdyb3VwZWQgYnkgZW50aXR5IHR5cGUuXHJcbiAgICovXHJcbiAgc2VhcmNoTWV0YWRhdGEodGVybTogc3RyaW5nLCBlbnRpdHlUeXBlcz86IE1ldGFkYXRhRW50aXR5VHlwZVtdKTogUmVjb3JkPHN0cmluZywgYW55W10+IHtcclxuICAgIGNvbnN0IHNlYXJjaFRlcm0gPSB0ZXJtLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueVtdPiA9IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiBhIGdpdmVuIGVudGl0eSB0eXBlIHNob3VsZCBiZSBzZWFyY2hlZC5cclxuICAgICAqIEBwYXJhbSB7TWV0YWRhdGFFbnRpdHlUeXBlfSB0eXBlIC0gVGhlIGVudGl0eSB0eXBlIHRvIGNoZWNrLlxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciB0aGUgZW50aXR5IHR5cGUgc2hvdWxkIGJlIHNlYXJjaGVkLlxyXG4gICAgICovXHJcbiAgICBjb25zdCBzaG91bGRTZWFyY2ggPSAodHlwZTogTWV0YWRhdGFFbnRpdHlUeXBlKSA9PiAhZW50aXR5VHlwZXMgfHwgZW50aXR5VHlwZXMuaW5jbHVkZXModHlwZSk7XHJcblxyXG4gICAgaWYgKHNob3VsZFNlYXJjaChNZXRhZGF0YUVudGl0eVR5cGUuQVBQX09CSkVDVFMpKSB7XHJcbiAgICAgIC8vIFNlYXJjaCBmb3IgYXBwIG9iamVjdHMgYnkgSUQsIE9iamVjdE5hbWUsIERpc3BsYXlOYW1lLCBvciBTeXN0ZW1EQlRhYmxlTmFtZVxyXG4gICAgICByZXN1bHRbTWV0YWRhdGFFbnRpdHlUeXBlLkFQUF9PQkpFQ1RTXSA9IHRoaXMuZ2V0QWxsQXBwT2JqZWN0cyhvYmogPT5cclxuICAgICAgICBbb2JqPy5JRCwgb2JqPy5PYmplY3ROYW1lLCBvYmo/LkRpc3BsYXlOYW1lLCBvYmo/LlN5c3RlbURCVGFibGVOYW1lXVxyXG4gICAgICAgICAgLnNvbWUodmFsID0+IHZhbCA9PT0gc2VhcmNoVGVybSB8fCB2YWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNob3VsZFNlYXJjaChNZXRhZGF0YUVudGl0eVR5cGUuQVBQX0ZJRUxEUykpIHtcclxuICAgICAgLy8gU2VhcmNoIGZvciBhcHAgZmllbGRzIGJ5IHVzaW5nIHRoZSBzZWFyY2ggbWV0aG9kXHJcbiAgICAgIHJlc3VsdFtNZXRhZGF0YUVudGl0eVR5cGUuQVBQX0ZJRUxEU10gPSB0aGlzLmdldEFsbEZpZWxkcyhmaWVsZCA9PiBmaWVsZC5zZWFyY2goc2VhcmNoVGVybSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaG91bGRTZWFyY2goTWV0YWRhdGFFbnRpdHlUeXBlLkRBVEFfU09VUkNFX1FVRVJJRVMpKSB7XHJcbiAgICAgIC8vIFNlYXJjaCBmb3IgZGF0YSBzb3VyY2UgcXVlcmllcyBieSB1c2luZyB0aGUgc2VhcmNoIG1ldGhvZFxyXG4gICAgICByZXN1bHRbTWV0YWRhdGFFbnRpdHlUeXBlLkRBVEFfU09VUkNFX1FVRVJJRVNdID0gdGhpcy5nZXRBbGxEYXRhU291cmNlUXVlcmllcyhkc3EgPT4gZHNxLnNlYXJjaChzZWFyY2hUZXJtKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNob3VsZFNlYXJjaChNZXRhZGF0YUVudGl0eVR5cGUuQVBQX1NDUkVFTlMpKSB7XHJcbiAgICAgIC8vIFNlYXJjaCBmb3IgYXBwIHNjcmVlbnMgYnkgdXNpbmcgdGhlIHNlYXJjaCBtZXRob2RcclxuICAgICAgcmVzdWx0W01ldGFkYXRhRW50aXR5VHlwZS5BUFBfU0NSRUVOU10gPSB0aGlzLmdldEFsbEFwcFNjcmVlbnMoc2NyZWVuID0+IHNjcmVlbi5zZWFyY2goc2VhcmNoVGVybSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYW4gYXBwIG1lbnUgYnkgaXRzIElEIG9yIG5hbWUuXHJcbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgYXBwIG1lbnVzIGFuZCByZXR1cm5zIHRoZSBmaXJzdCBtYXRjaC5cclxuICAgKiBcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZU9ySWQgLSBUaGUgSUQgb3IgbmFtZSBvZiB0aGUgYXBwIG1lbnUgdG8gcmV0cmlldmUuXHJcbiAgICogQHJldHVybnMge0FwcE1lbnVNb2RlbCB8IG51bGx9IC0gVGhlIGFwcCBtZW51IG1vZGVsIGlmIGZvdW5kLCBvdGhlcndpc2UgbnVsbC5cclxuICAgKi9cclxuICBnZXRBcHBNZW51QnlJZE9yTmFtZShuYW1lT3JJZDogc3RyaW5nKTogQXBwTWVudU1vZGVsIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRGcm9tTWFwT3JDcmVhdGUoXHJcbiAgICAgIHRoaXMuYXBwTWVudU1hcCxcclxuICAgICAgbmFtZU9ySWQsXHJcbiAgICAgIENvbW1vbi50YWJKc29uLk1lbnVzLFxyXG4gICAgICAvLyBTZWFyY2ggZm9yIHRoZSBhcHAgbWVudSBieSBJRCBvciBuYW1lXHJcbiAgICAgIG1lbnUgPT4gbWVudT8uSWQ/LnRvTG93ZXJDYXNlKCkgPT09IG5hbWVPcklkPy50b0xvd2VyQ2FzZSgpIHx8IG1lbnU/Lk1lbnVOYW1lID09PSBuYW1lT3JJZCxcclxuICAgICAgLy8gQ3JlYXRlIGEgbmV3IEFwcE1lbnVNb2RlbCBpZiB0aGUgYXBwIG1lbnUgaXMgZm91bmRcclxuICAgICAgbWVudSA9PiBuZXcgQXBwTWVudU1vZGVsKG1lbnUpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBhbGwgYXBwIG1lbnVzLlxyXG4gICAqIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBpdCBpcyBhcHBsaWVkIHRvIHRoZSBsaXN0IG9mIGFwcCBtZW51cy5cclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmaWx0ZXJGbiAtIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIGFwcCBtZW51cy5cclxuICAgKiBAcmV0dXJucyB7QXBwTWVudU1vZGVsW119IC0gVGhlIGxpc3Qgb2YgYXBwIG1lbnVzLlxyXG4gICAqL1xyXG4gIGdldEFsbEFwcE1lbnVzKGZpbHRlckZuPzogKG1lbnU6IEFwcE1lbnVNb2RlbCkgPT4gYm9vbGVhbik6IEFwcE1lbnVNb2RlbFtdIHtcclxuICAgIC8vIEluaXRpYWxpemUgdGhlIGxpc3Qgb2YgYXBwIHNjcmVlbnMgbGF6aWx5LlxyXG4gICAgY29uc3QgbGlzdCA9IHRoaXMubGF6eUluaXRMaXN0KFxyXG4gICAgICB0aGlzLmFsbEFwcE1lbnVzLFxyXG4gICAgICB2YWwgPT4gKHRoaXMuYWxsQXBwTWVudXMgPSB2YWwpLFxyXG4gICAgICBDb21tb24udGFiSnNvbi5NZW51cyxcclxuICAgICAgdGhpcy5hcHBNZW51TWFwLFxyXG4gICAgICAobTogYW55KSA9PiBbbT8uSWQ/LnRvTG93ZXJDYXNlKCksIG0/Lk5hbWVdLFxyXG4gICAgICBzID0+IG5ldyBBcHBNZW51TW9kZWwocylcclxuICAgICk7XHJcblxyXG4gICAgLy8gSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGFwcGx5IGl0IHRvIHRoZSBsaXN0IG9mIGFwcCBzY3JlZW5zLlxyXG4gICAgcmV0dXJuIGZpbHRlckZuID8gbGlzdC5maWx0ZXIoZmlsdGVyRm4pIDogbGlzdDtcclxuICB9XHJcbn0iXX0=
@@ -12,21 +12,31 @@ export class UserPersonalizationHelper {
12
12
  Common.tabUserPersonalizedData = data;
13
13
  this.idbService.setItem(StorageConstants.tabUserPersonalizedData, data);
14
14
  }
15
- getUserPersonalizedData(screenId, componentId, type, userId, key) {
16
- return this.filterUserPersonalizedData(Common?.tabUserPersonalizedData, screenId, componentId, type, userId, key);
15
+ getUserPersonalizedData(screenId, componentId, type, userId, key, tenantId) {
16
+ return this.filterUserPersonalizedData(Common?.tabUserPersonalizedData, screenId, componentId, type, userId, key, tenantId);
17
17
  }
18
- filterUserPersonalizedData(data, screenId, componentId, type, userId, key) {
18
+ filterUserPersonalizedData(data, screenId, componentId, type, userId, key, tenantId) {
19
19
  let filteredData = data?.filter((item) => item?.ScreenId?.toLowerCase() === screenId?.toLowerCase() && item?.ComponentId === componentId && item?.Type === type);
20
20
  const keyFilteredData = filteredData?.filter((item) => item?.Key?.toLowerCase() === key?.toLowerCase());
21
- if (keyFilteredData?.length > 0)
21
+ if (keyFilteredData?.length > 0) {
22
22
  filteredData = keyFilteredData;
23
- else
23
+ }
24
+ else {
24
25
  filteredData = filteredData?.filter((item) => item?.Key === null);
26
+ }
25
27
  const userFilteredData = filteredData?.filter((item) => item?.UserId?.toLowerCase() === userId?.toLowerCase());
26
- if (userFilteredData?.length > 0)
28
+ if (userFilteredData?.length > 0) {
27
29
  filteredData = userFilteredData;
28
- else
29
- filteredData = filteredData?.filter((item) => item?.UserId === null);
30
+ }
31
+ else {
32
+ const tenantDefaultData = filteredData?.filter((item) => item?.UserId === null && item?.RecordInfo?.TenantId?.toLowerCase() === tenantId?.toLowerCase());
33
+ if (tenantId && tenantDefaultData?.length > 0) {
34
+ filteredData = tenantDefaultData;
35
+ }
36
+ else {
37
+ filteredData = filteredData?.filter((item) => item?.UserId === null);
38
+ }
39
+ }
30
40
  return filteredData;
31
41
  }
32
42
  /**
@@ -63,4 +73,4 @@ export class UserPersonalizationHelper {
63
73
  type: Injectable,
64
74
  args: [{ providedIn: 'root' }]
65
75
  }], null, null); })();
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wZXJzb25hbGl6YXRpb24uaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3VzZXItcGVyc29uYWxpemF0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFHckUsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUdtQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBaUVsRDtJQS9EQyx1QkFBdUIsQ0FBQyxJQUFRO1FBQzlCLE1BQU0sQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQWdCLEVBQUUsV0FBa0IsRUFBRSxJQUFZLEVBQUUsTUFBYSxFQUFFLEdBQVk7UUFDckcsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsSUFBUSxFQUFFLFFBQWdCLEVBQUUsV0FBa0IsRUFBRSxJQUFZLEVBQUUsTUFBYSxFQUFFLEdBQVk7UUFDbEgsSUFBSSxZQUFZLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksSUFBSSxFQUFFLFdBQVcsS0FBSyxXQUFXLElBQUksSUFBSSxFQUFFLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUV0SyxNQUFNLGVBQWUsR0FBRyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLElBQUksZUFBZSxFQUFFLE1BQU0sR0FBRyxDQUFDO1lBQzdCLFlBQVksR0FBRyxlQUFlLENBQUM7O1lBRy9CLFlBQVksR0FBRyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBRXpFLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwSCxJQUFJLGdCQUFnQixFQUFFLE1BQU0sR0FBRyxDQUFDO1lBQzlCLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQzs7WUFHaEMsWUFBWSxHQUFHLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUM7UUFFNUUsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILDhCQUE4QixDQUFDLEdBQVcsRUFBRSxJQUFZLEVBQUUsTUFBYztRQUN0RSxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsSUFBSSxFQUFFLENBQUM7YUFDakQsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQzthQUMxQyxJQUFJLENBQ0gsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUUsQ0FDakIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2hFO2FBQ0EsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FDcEIsSUFBSSxFQUFFLE1BQU07WUFDVixDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxNQUFNLEVBQUUsV0FBVyxFQUFFO1lBQ3ZELENBQUMsQ0FBQyxJQUFJLENBQ1Q7YUFDQSxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFeEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzBGQWpFVSx5QkFBeUI7dUVBQXpCLHlCQUF5QixXQUF6Qix5QkFBeUIsbUJBRFosTUFBTTs7aUZBQ25CLHlCQUF5QjtjQURyQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElkYlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hdXRoL2lkYi1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBTdG9yYWdlQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3N0b3JhZ2UtY29uc3RhbnRzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBVc2VyUGVyc29uYWxpemF0aW9uSGVscGVyIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlkYlNlcnZpY2UgPSBpbmplY3QoSWRiU2VydmljZSk7XG5cbiAgc2V0VXNlclBlcnNvbmFsaXplZERhdGEoZGF0YTphbnkpIHtcbiAgICBDb21tb24udGFiVXNlclBlcnNvbmFsaXplZERhdGEgPSBkYXRhO1xuICAgIHRoaXMuaWRiU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VDb25zdGFudHMudGFiVXNlclBlcnNvbmFsaXplZERhdGEsIGRhdGEpO1xuICB9XG5cbiAgZ2V0VXNlclBlcnNvbmFsaXplZERhdGEoc2NyZWVuSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6c3RyaW5nLCB0eXBlOiBudW1iZXIsIHVzZXJJZDpzdHJpbmcsIGtleT86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZpbHRlclVzZXJQZXJzb25hbGl6ZWREYXRhKENvbW1vbj8udGFiVXNlclBlcnNvbmFsaXplZERhdGEsIHNjcmVlbklkLCBjb21wb25lbnRJZCwgdHlwZSwgdXNlcklkLCBrZXkpO1xuICB9XG5cbiAgZmlsdGVyVXNlclBlcnNvbmFsaXplZERhdGEoZGF0YTphbnksIHNjcmVlbklkOiBzdHJpbmcsIGNvbXBvbmVudElkOnN0cmluZywgdHlwZTogbnVtYmVyLCB1c2VySWQ6c3RyaW5nLCBrZXk/OiBzdHJpbmcpIHtcbiAgICBsZXQgZmlsdGVyZWREYXRhID0gZGF0YT8uZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0/LlNjcmVlbklkPy50b0xvd2VyQ2FzZSgpID09PSBzY3JlZW5JZD8udG9Mb3dlckNhc2UoKSAmJiBpdGVtPy5Db21wb25lbnRJZCA9PT0gY29tcG9uZW50SWQgJiYgaXRlbT8uVHlwZSA9PT0gdHlwZSk7XG4gICAgXG4gICAgY29uc3Qga2V5RmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uS2V5Py50b0xvd2VyQ2FzZSgpID09PSBrZXk/LnRvTG93ZXJDYXNlKCkpO1xuICAgIGlmIChrZXlGaWx0ZXJlZERhdGE/Lmxlbmd0aCA+IDApXG4gICAgICBmaWx0ZXJlZERhdGEgPSBrZXlGaWx0ZXJlZERhdGE7IFxuICAgIFxuICAgIGVsc2VcbiAgICAgIGZpbHRlcmVkRGF0YSA9IGZpbHRlcmVkRGF0YT8uZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0/LktleSA9PT0gbnVsbCk7XG5cbiAgICBjb25zdCB1c2VyRmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uVXNlcklkPy50b0xvd2VyQ2FzZSgpID09PSB1c2VySWQ/LnRvTG93ZXJDYXNlKCkpO1xuICAgIGlmICh1c2VyRmlsdGVyZWREYXRhPy5sZW5ndGggPiAwKSBcbiAgICAgIGZpbHRlcmVkRGF0YSA9IHVzZXJGaWx0ZXJlZERhdGE7XG4gICAgXG4gICAgZWxzZVxuICAgICAgZmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uVXNlcklkID09PSBudWxsKTsgICBcblxuICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYSB1c2VyJ3MgcGVyc29uYWxpemVkIGRhdGEgZm9yIGEgZ2l2ZW4ga2V5IGFuZCB0eXBlLlxuICAgKiBFeGVjdXRlcyB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuICAgKiAxLiBGaWx0ZXJzIG91dCByZWNvcmRzIHdoZXJlIHRoZSBUeXBlIGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjaWZpZWQgdHlwZS5cbiAgICogMi4gU29ydHMgdGhlIGRhdGEgaW4gZGVzY2VuZGluZyBvcmRlciBiYXNlZCBvbiB0aGUgVXNlcklkIGZpZWxkLiBJZiB0aGUgVXNlcklkXG4gICAqICAgIGlzIG51bGwsIGl0IGlzIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHRoZSBzb3J0ZWQgYXJyYXkuXG4gICAqIDMuIEZpbHRlcnMgb3V0IHJlY29yZHMgd2hlcmUgdGhlIFVzZXJJZCBkb2VzIG5vdCBtYXRjaCB0aGUgc3BlY2lmaWVkIHVzZXJJZC5cbiAgICogICAgSWYgdGhlIFVzZXJJZCBpcyBudWxsLCB0aGUgcmVjb3JkIGlzIG5vdCBmaWx0ZXJlZCBvdXQuXG4gICAqIDQuIEZpbmRzIHRoZSBmaXJzdCByZWNvcmQgd2hlcmUgdGhlIEtleSBtYXRjaGVzIHRoZSBzcGVjaWZpZWQga2V5LlxuICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgZGF0YSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSBJRCBvZiB0aGUgdXNlciB0byBzZWFyY2ggZm9yLlxuICAgKiBAcmV0dXJucyBUaGUgdXNlcidzIHBlcnNvbmFsaXplZCBkYXRhLCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kLlxuICAgKiBAYXV0aG9yIFBhcnRoIEIgVGhha2thclxuICAgKiBAZGF0ZSAyMDIzLTExLTI4XG4gICAqL1xuICBnZXRVc2VyUGVyc29uYWxpemVkRGF0YUZyb21LZXkoa2V5OiBzdHJpbmcsIHR5cGU6IG51bWJlciwgdXNlcklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkYXRhID0gKENvbW1vbj8udGFiVXNlclBlcnNvbmFsaXplZERhdGEgfHwgW10pXG4gICAgICAuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0/LlR5cGUgPT09IHR5cGUpXG4gICAgICAuc29ydChcbiAgICAgICAgKGE6IGFueSwgYjogYW55KSA9PlxuICAgICAgICAgIChhPy5Vc2VySWQgPT09IG51bGwgPyAxIDogMCkgLSAoYj8uVXNlcklkID09PSBudWxsID8gMSA6IDApIHx8XG4gICAgICAgICAgKGE/LlVzZXJJZD8udG9Mb3dlckNhc2UoKSA9PT0gdXNlcklkPy50b0xvd2VyQ2FzZSgpID8gLTEgOiAxKVxuICAgICAgKVxuICAgICAgLmZpbHRlcigoaXRlbTogYW55KSA9PlxuICAgICAgICBpdGVtPy5Vc2VySWRcbiAgICAgICAgICA/IGl0ZW0/LlVzZXJJZD8udG9Mb3dlckNhc2UoKSA9PT0gdXNlcklkPy50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgOiB0cnVlXG4gICAgICApXG4gICAgICAuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtPy5LZXk/LnRvTG93ZXJDYXNlKCkgPT09IGtleT8udG9Mb3dlckNhc2UoKSk7XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG59Il19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wZXJzb25hbGl6YXRpb24uaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3VzZXItcGVyc29uYWxpemF0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFHckUsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUdtQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBc0VsRDtJQXBFQyx1QkFBdUIsQ0FBQyxJQUFTO1FBQy9CLE1BQU0sQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQWdCLEVBQUUsV0FBbUIsRUFBRSxJQUFZLEVBQUUsTUFBcUIsRUFBRSxHQUFtQixFQUFFLFFBQXdCO1FBQy9JLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxXQUFtQixFQUFF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Q1YsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFLFdBQVcsRUFBRTtZQUN2RCxDQUFDLENBQUMsSUFBSSxDQUNUO2FBQ0EsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzswRkF0RVUseUJBQXlCO3VFQUF6Qix5QkFBeUIsV0FBekIseUJBQXlCLG1CQURaLE1BQU07O2lGQUNuQix5QkFBeUI7Y0FEckMsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJZGJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXV0aC9pZGItc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IFN0b3JhZ2VDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvc3RvcmFnZS1jb25zdGFudHMnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFVzZXJQZXJzb25hbGl6YXRpb25IZWxwZXIge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGlkYlNlcnZpY2UgPSBpbmplY3QoSWRiU2VydmljZSk7XHJcblxyXG4gIHNldFVzZXJQZXJzb25hbGl6ZWREYXRhKGRhdGE6IGFueSkge1xyXG4gICAgQ29tbW9uLnRhYlVzZXJQZXJzb25hbGl6ZWREYXRhID0gZGF0YTtcclxuICAgIHRoaXMuaWRiU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VDb25zdGFudHMudGFiVXNlclBlcnNvbmFsaXplZERhdGEsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlclBlcnNvbmFsaXplZERhdGEoc2NyZWVuSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZywgdHlwZTogbnVtYmVyLCB1c2VySWQ6IHN0cmluZyB8IG51bGwsIGtleT86IHN0cmluZyB8IG51bGwsIHRlbmFudElkPzogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyVXNlclBlcnNvbmFsaXplZERhdGEoQ29tbW9uPy50YWJVc2VyUGVyc29uYWxpemVkRGF0YSwgc2NyZWVuSWQsIGNvbXBvbmVudElkLCB0eXBlLCB1c2VySWQsIGtleSwgdGVuYW50SWQpO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyVXNlclBlcnNvbmFsaXplZERhdGEoZGF0YTogYW55LCBzY3JlZW5JZDogc3RyaW5nLCBjb21wb25lbnRJZDogc3RyaW5nLCB0eXBlOiBudW1iZXIsIHVzZXJJZDogc3RyaW5nIHwgbnVsbCwga2V5Pzogc3RyaW5nIHwgbnVsbCwgdGVuYW50SWQ/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBsZXQgZmlsdGVyZWREYXRhID0gZGF0YT8uZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0/LlNjcmVlbklkPy50b0xvd2VyQ2FzZSgpID09PSBzY3JlZW5JZD8udG9Mb3dlckNhc2UoKSAmJiBpdGVtPy5Db21wb25lbnRJZCA9PT0gY29tcG9uZW50SWQgJiYgaXRlbT8uVHlwZSA9PT0gdHlwZSk7XHJcblxyXG4gICAgY29uc3Qga2V5RmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uS2V5Py50b0xvd2VyQ2FzZSgpID09PSBrZXk/LnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgaWYgKGtleUZpbHRlcmVkRGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBmaWx0ZXJlZERhdGEgPSBrZXlGaWx0ZXJlZERhdGE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWx0ZXJlZERhdGEgPSBmaWx0ZXJlZERhdGE/LmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtPy5LZXkgPT09IG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHVzZXJGaWx0ZXJlZERhdGEgPSBmaWx0ZXJlZERhdGE/LmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtPy5Vc2VySWQ/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXJJZD8udG9Mb3dlckNhc2UoKSk7XHJcbiAgICBpZiAodXNlckZpbHRlcmVkRGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBmaWx0ZXJlZERhdGEgPSB1c2VyRmlsdGVyZWREYXRhO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdGVuYW50RGVmYXVsdERhdGEgPSBmaWx0ZXJlZERhdGE/LmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtPy5Vc2VySWQgPT09IG51bGwgJiYgaXRlbT8uUmVjb3JkSW5mbz8uVGVuYW50SWQ/LnRvTG93ZXJDYXNlKCkgPT09IHRlbmFudElkPy50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgaWYgKHRlbmFudElkICYmIHRlbmFudERlZmF1bHREYXRhPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZmlsdGVyZWREYXRhID0gdGVuYW50RGVmYXVsdERhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uVXNlcklkID09PSBudWxsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaW5kcyBhIHVzZXIncyBwZXJzb25hbGl6ZWQgZGF0YSBmb3IgYSBnaXZlbiBrZXkgYW5kIHR5cGUuXHJcbiAgICogRXhlY3V0ZXMgdGhlIGZvbGxvd2luZyBzdGVwczpcclxuICAgKiAxLiBGaWx0ZXJzIG91dCByZWNvcmRzIHdoZXJlIHRoZSBUeXBlIGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjaWZpZWQgdHlwZS5cclxuICAgKiAyLiBTb3J0cyB0aGUgZGF0YSBpbiBkZXNjZW5kaW5nIG9yZGVyIGJhc2VkIG9uIHRoZSBVc2VySWQgZmllbGQuIElmIHRoZSBVc2VySWRcclxuICAgKiAgICBpcyBudWxsLCBpdCBpcyBwbGFjZWQgYXQgdGhlIGVuZCBvZiB0aGUgc29ydGVkIGFycmF5LlxyXG4gICAqIDMuIEZpbHRlcnMgb3V0IHJlY29yZHMgd2hlcmUgdGhlIFVzZXJJZCBkb2VzIG5vdCBtYXRjaCB0aGUgc3BlY2lmaWVkIHVzZXJJZC5cclxuICAgKiAgICBJZiB0aGUgVXNlcklkIGlzIG51bGwsIHRoZSByZWNvcmQgaXMgbm90IGZpbHRlcmVkIG91dC5cclxuICAgKiA0LiBGaW5kcyB0aGUgZmlyc3QgcmVjb3JkIHdoZXJlIHRoZSBLZXkgbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIGtleS5cclxuICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cclxuICAgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiBkYXRhIHRvIHNlYXJjaCBmb3IuXHJcbiAgICogQHBhcmFtIHVzZXJJZCBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gc2VhcmNoIGZvci5cclxuICAgKiBAcmV0dXJucyBUaGUgdXNlcidzIHBlcnNvbmFsaXplZCBkYXRhLCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kLlxyXG4gICAqIEBhdXRob3IgUGFydGggQiBUaGFra2FyXHJcbiAgICogQGRhdGUgMjAyMy0xMS0yOFxyXG4gICAqL1xyXG4gIGdldFVzZXJQZXJzb25hbGl6ZWREYXRhRnJvbUtleShrZXk6IHN0cmluZywgdHlwZTogbnVtYmVyLCB1c2VySWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGF0YSA9IChDb21tb24/LnRhYlVzZXJQZXJzb25hbGl6ZWREYXRhIHx8IFtdKVxyXG4gICAgICAuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0/LlR5cGUgPT09IHR5cGUpXHJcbiAgICAgIC5zb3J0KFxyXG4gICAgICAgIChhOiBhbnksIGI6IGFueSkgPT5cclxuICAgICAgICAgIChhPy5Vc2VySWQgPT09IG51bGwgPyAxIDogMCkgLSAoYj8uVXNlcklkID09PSBudWxsID8gMSA6IDApIHx8XHJcbiAgICAgICAgICAoYT8uVXNlcklkPy50b0xvd2VyQ2FzZSgpID09PSB1c2VySWQ/LnRvTG93ZXJDYXNlKCkgPyAtMSA6IDEpXHJcbiAgICAgIClcclxuICAgICAgLmZpbHRlcigoaXRlbTogYW55KSA9PlxyXG4gICAgICAgIGl0ZW0/LlVzZXJJZFxyXG4gICAgICAgICAgPyBpdGVtPy5Vc2VySWQ/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXJJZD8udG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgOiB0cnVlXHJcbiAgICAgIClcclxuICAgICAgLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbT8uS2V5Py50b0xvd2VyQ2FzZSgpID09PSBrZXk/LnRvTG93ZXJDYXNlKCkpO1xyXG5cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbn0iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9hdXRoLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOZXdVc2VyUmVxdWVzdCB7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luVXNlclJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG4vLyBleHBvcnQgaW50ZXJmYWNlIEZvcmdvdFBhc3N3b3JkVXNlclJlcXVlc3Qge1xuLy8gICBlbWFpbDogc3RyaW5nO1xuLy8gfVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2V0UGFzc3dvcmRVc2VyUmVxdWVzdCB7XG4gIEVtYWlsOiBzdHJpbmcsXG4gIE5ld1Bhc3N3b3JkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VQYXNzd29yZFVzZXJSZXF1ZXN0IHtcbiAgRW1haWw6IHN0cmluZyxcbiAgTmV3UGFzc3dvcmQ6IHN0cmluZztcbiAgQ3VycmVudFBhc3N3b3JkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlclRlbmFudCB7XG4gIEFkbWluRmlyc3ROYW1lOiBzdHJpbmcsXG4gIEFkbWluTGFzdE5hbWU6IHN0cmluZyxcbiAgQWRtaW5FbWFpbDogc3RyaW5nLFxuICBQYXNzd29yZDogc3RyaW5nLFxuICBUZW5hbnROYW1lOiBzdHJpbmcsXG4gIHRlcm1zOiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaFRva2VuUmVxdWVzdCB7XG4gIFRva2VuOiBzdHJpbmc7XG4gIFJlZnJlc2hUb2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJEZXRhaWxzUmVxdWVzdCB7XG4gIFVzZXJuYW1lPzogc3RyaW5nOyBcbiAgVXNlcklkPzogc3RyaW5nXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9hdXRoLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOZXdVc2VyUmVxdWVzdCB7XHJcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XHJcbiAgZW1haWw6IHN0cmluZztcclxuICBwYXNzd29yZDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luVXNlclJlcXVlc3Qge1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgcGFzc3dvcmQ6IHN0cmluZztcclxufVxyXG5cclxuLy8gZXhwb3J0IGludGVyZmFjZSBGb3Jnb3RQYXNzd29yZFVzZXJSZXF1ZXN0IHtcclxuLy8gICBlbWFpbDogc3RyaW5nO1xyXG4vLyB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlc2V0UGFzc3dvcmRVc2VyUmVxdWVzdCB7XHJcbiAgRW1haWw6IHN0cmluZyxcclxuICBOZXdQYXNzd29yZDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlUGFzc3dvcmRVc2VyUmVxdWVzdCB7XHJcbiAgRW1haWw6IHN0cmluZyxcclxuICBOZXdQYXNzd29yZDogc3RyaW5nO1xyXG4gIEN1cnJlbnRQYXNzd29yZDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJUZW5hbnQge1xyXG4gIEFkbWluRmlyc3ROYW1lOiBzdHJpbmcsXHJcbiAgQWRtaW5MYXN0TmFtZTogc3RyaW5nLFxyXG4gIEFkbWluRW1haWw6IHN0cmluZyxcclxuICBQYXNzd29yZDogc3RyaW5nLFxyXG4gIFRlbmFudE5hbWU6IHN0cmluZyxcclxuICB0ZXJtczogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlZnJlc2hUb2tlblJlcXVlc3Qge1xyXG4gIFRva2VuOiBzdHJpbmc7XHJcbiAgUmVmcmVzaFRva2VuOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlckRldGFpbHNSZXF1ZXN0IHtcclxuICBVc2VybmFtZT86IHN0cmluZzsgXHJcbiAgVXNlcklkPzogc3RyaW5nXHJcbn0iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluZGl2aWR1YWxDb25maWcgfSBmcm9tIFwibmd4LXRvYXN0clwiO1xuaW1wb3J0IHsgSHR0cFJlcXVlc3RUeXBlLCBKc29uVHlwZSwgTm90aWZpY2F0aW9uVHlwZSwgUHJvY2VkdXJlT2JqZWN0VHlwZSB9IGZyb20gXCIuLi9lbnVtcy9jb21tb24uZW51bVwiO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlc3BvbnNlIHtcbiAgcmVxdWVzdElkOiBzdHJpbmc7XG4gIGlzU3VjY2VzczogYm9vbGVhbjtcbiAgcmVzdWx0OiBhbnk7XG4gIGVycm9yczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkSW5mbyB7XG4gIGlzU3lzdGVtUmVjb3JkOiBib29sZWFuIHwgbnVsbDtcbiAgYmx1ZXByaW50SWQ6IHN0cmluZyB8IG51bGw7XG4gIGJsdWVwcmludFN0YXR1c0lkOiBzdHJpbmcgfCBudWxsO1xuICByZWNvcmRJZDogc3RyaW5nO1xuICBwcmltYXJ5S2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uQXBpUmVzcG9uc2Uge1xuICBSZXF1ZXN0SWQ6IHN0cmluZ1xuICBJc1N1Y2Nlc3M6IGJvb2xlYW5cbiAgUmVzdWx0OiBhbnlcbiAgU3RhdHVzQ29kZTogc3RyaW5nXG4gIFJlY29yZEFmZmVjdHRlZDogbnVtYmVyXG4gIFRvdGFsUmVjb3JkczogbnVtYmVyXG4gIFRvdGFsRXhlY3V0aW9uVGltZTogbnVtYmVyXG4gIExvZzogYW55W11cbiAgRXJyb3JzOiBhbnlbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFNjcmVlbkNvbmZpZyB7XG4gIGxheW91dElkPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1JlcXVlc3RQYXlsb2FkIHtcbiAgU2NyZWVuSWQ6IHN0cmluZyxcbiAgRGF0YTogYW55XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVQYXJzZVBheWxvYWQge1xuICBEYXRhU291cmNlTW9kZTogbnVtYmVyLFxuICBWYWx1ZTogc3RyaW5nLFxuICBUZW1wbGF0ZXZhcmlhYmxlczogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dFN0YXR1c1BheWxvYWQge1xuICByZWNvcmRJZDogc3RyaW5nLFxuICBhcHBPYmplY3RJZD86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVN0YXR1c1BheWxvYWQgZXh0ZW5kcyBOZXh0U3RhdHVzUGF5bG9hZCB7XG4gIG5leHRQb3NzaWJsZVN0YXR1c0lkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlckFwcE9iamVjdHNQYXlsb2FkIHtcbiAgQ29ubmVjdGlvbklkOiBzdHJpbmcsXG4gIFRhYmxlczogc3RyaW5nW10sXG4gIFZpZXdzOiBzdHJpbmdbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb25lRHNxUGF5bG9hZCB7XG4gIERTUUlkOiBzdHJpbmcsXG4gIFF1ZXJ5TmFtZTogc3RyaW5nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldERhdGFKc29uQnlUeXBlUGF5bG9hZCB7XG4gIEpzb25UeXBlOiBKc29uVHlwZSxcbiAgUmVxdG9rZW5zPzogYW55XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3luY0FwcEZpZWxkc1BheWxvYWQge1xuICBDb25uZWN0aW9uSWQ6IHN0cmluZztcbiAgQXBwT2JqZWN0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoR2xvYmFsU2VhcmNoRGF0YVBheWxvYWQge1xuICBRdWVyeU9iamVjdElEOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaFJlY29yZEluZm9EYXRhUGF5bG9hZCB7XG4gIFF1ZXJ5T2JqZWN0SUQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRNZWRpYUZpbGVQYXlsb2FkIHtcbiAgQmFzZTY0U3RyaW5nOiBzdHJpbmc7XG4gIEZpbGVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkTWVkaWFGaWxlc1BheWxvYWQge1xuICBVcGxvYWRGaWxlczogVXBsb2FkTWVkaWFGaWxlUGF5bG9hZFtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0UGF5bG9hZCB7XG4gIERhdGFSZXBvcnRJZDogc3RyaW5nLFxuICBSZXF0b2tlbnM6IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcmZvcm1hbmNlQW5hbHl0aWNzUGF5bG9hZCB7XG4gIHR5cGU6IHN0cmluZyxcbiAgdmFsdWU6IHN0cmluZyxcbiAgZnJvbURhdGU6IHN0cmluZyxcbiAgdG9EYXRlOiBzdHJpbmcsXG4gIGxpbWl0PzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyZWVuUGVyZm9ybWFuY2VQYXlsb2FkIHtcbiAgdmFsdWU6IHN0cmluZyxcbiAgbG9hZFRpbWU6IG51bWJlcixcbiAgdGFnczoge1xuICAgIGRzcUlkczogc3RyaW5nW10sXG4gICAgYXBwT2JqZWN0SWRzOiBzdHJpbmdbXVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgdHJhbnNsYXRlUGF5bG9hZCB7XG4gIGxhbmd1YWdlOiBzdHJpbmc7XG4gIGxhbmd1YWdlQ29kZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VOb3RpZmljYXRpb25PcHRpb25zIHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgY29uZmlndXJhdGlvbj86IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZzxhbnk+PiB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25PcHRpb25zIGV4dGVuZHMgQmFzZU5vdGlmaWNhdGlvbk9wdGlvbnMge1xuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1hdGlvbk9wdGlvbnMge1xuICB0aXRsZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHByaW1hcnlPcHRpb24/OiBzdHJpbmc7XG4gIHNlY29uZGFyeU9wdGlvbj86IHN0cmluZztcbiAgZGlzcGxheUhlYWRlcj86IGJvb2xlYW47XG4gIGRpc3BsYXlGb290ZXI/OiBib29sZWFuO1xuICBkaXNwbGF5Qm9keT86IGJvb2xlYW47XG4gIGRpc3BsYXlQcmltYXJ5QnV0dG9uPzogYm9vbGVhbjtcbiAgZGlzcGxheVNlY29uZGFyeUJ1dHRvbj86IGJvb2xlYW47XG4gIGRpc3BsYXlDbG9zZUJ1dHRvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3J1ZEJhc2VQYXlsb2FkIHtcbiAgYXBwT2JqZWN0SWRPck5hbWU/OiBzdHJpbmc7XG4gIGRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluc2VydFBheWxvYWQgZXh0ZW5kcyBDcnVkQmFzZVBheWxvYWQge1xuICBkYXRhOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUGF5bG9hZCBleHRlbmRzIEluc2VydFBheWxvYWQge1xuICBjcml0ZXJpYTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZVBheWxvYWQgZXh0ZW5kcyBDcnVkQmFzZVBheWxvYWQge1xuICBjcml0ZXJpYTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFBheWxvYWQge1xuICBkYXRhU291cmNlUXVlcnlJZE9yTmFtZTogc3RyaW5nO1xuICBjcml0ZXJpYTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEltcHJvdERhdGFQYXlsb2FkIHtcbiAgSW1wb3J0T2JqZWN0TWFwcGluZ0lkOiBzdHJpbmc7XG4gIEZpbGU6IHN0cmluZztcbiAgSW1wb3J0VHlwZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaERhdGFQYXlsb2FkIHtcbiAgc2VhcmNoUXVlcnk6IHN0cmluZztcbiAgbGltaXQ6IG51bWJlcjtcbiAgYXBwT2JqZWN0SWQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSY29yZEhpc3RvcnlQYXlsb2FkIHtcbiAgYXBwT2JqZWN0SWQ6IHN0cmluZztcbiAgcmVjb3JkSWRzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwRXhlY3V0ZVJlcXVlc3RQYXlsb2FkIHtcbiAgZnVsbFVybDogc3RyaW5nLFxuICBtZXRob2Q6IEh0dHBSZXF1ZXN0VHlwZSxcbiAgaGVhZGVycz86IGFueSxcbiAgYm9keT86IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIGV4ZWN1dGVTdG9yZWRQcm9jZWR1cmVQYXlsb2FkIHtcbiAgT2JqZWN0TmFtZTogc3RyaW5nO1xuICBPYmplY3RUeXBlOiBQcm9jZWR1cmVPYmplY3RUeXBlXG4gIFBhcmFtZXRlcnM/OiBhbnk7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluZGl2aWR1YWxDb25maWcgfSBmcm9tIFwibmd4LXRvYXN0clwiO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdFR5cGUsIEpzb25UeXBlLCBOb3RpZmljYXRpb25UeXBlLCBQcm9jZWR1cmVPYmplY3RUeXBlIH0gZnJvbSBcIi4uL2VudW1zL2NvbW1vbi5lbnVtXCI7XHJcblxyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBpUmVzcG9uc2Uge1xyXG4gIHJlcXVlc3RJZDogc3RyaW5nO1xyXG4gIGlzU3VjY2VzczogYm9vbGVhbjtcclxuICByZXN1bHQ6IGFueTtcclxuICBlcnJvcnM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZEluZm8ge1xyXG4gIGlzU3lzdGVtUmVjb3JkOiBib29sZWFuIHwgbnVsbDtcclxuICBibHVlcHJpbnRJZDogc3RyaW5nIHwgbnVsbDtcclxuICBibHVlcHJpbnRTdGF0dXNJZDogc3RyaW5nIHwgbnVsbDtcclxuICByZWNvcmRJZDogc3RyaW5nO1xyXG4gIHByaW1hcnlLZXk6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb21tb25BcGlSZXNwb25zZSB7XHJcbiAgUmVxdWVzdElkOiBzdHJpbmdcclxuICBJc1N1Y2Nlc3M6IGJvb2xlYW5cclxuICBSZXN1bHQ6IGFueVxyXG4gIFN0YXR1c0NvZGU6IHN0cmluZ1xyXG4gIFJlY29yZEFmZmVjdHRlZDogbnVtYmVyXHJcbiAgVG90YWxSZWNvcmRzOiBudW1iZXJcclxuICBUb3RhbEV4ZWN1dGlvblRpbWU6IG51bWJlclxyXG4gIExvZzogYW55W11cclxuICBFcnJvcnM6IGFueVtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2V0U2NyZWVuQ29uZmlnIHtcclxuICBsYXlvdXRJZD86IHN0cmluZztcclxuICB2ZXJzaW9uPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1JlcXVlc3RQYXlsb2FkIHtcclxuICBTY3JlZW5JZDogc3RyaW5nLFxyXG4gIERhdGE6IGFueVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlUGFyc2VQYXlsb2FkIHtcclxuICBEYXRhU291cmNlTW9kZTogbnVtYmVyLFxyXG4gIFZhbHVlOiBzdHJpbmcsXHJcbiAgVGVtcGxhdGV2YXJpYWJsZXM6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE5leHRTdGF0dXNQYXlsb2FkIHtcclxuICByZWNvcmRJZDogc3RyaW5nLFxyXG4gIGFwcE9iamVjdElkPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlU3RhdHVzUGF5bG9hZCBleHRlbmRzIE5leHRTdGF0dXNQYXlsb2FkIHtcclxuICBuZXh0UG9zc2libGVTdGF0dXNJZDogc3RyaW5nLFxyXG4gIG9wdGlvbnM/OiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlckFwcE9iamVjdHNQYXlsb2FkIHtcclxuICBDb25uZWN0aW9uSWQ6IHN0cmluZyxcclxuICBUYWJsZXM6IHN0cmluZ1tdLFxyXG4gIFZpZXdzOiBzdHJpbmdbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsb25lRHNxUGF5bG9hZCB7XHJcbiAgRFNRSWQ6IHN0cmluZyxcclxuICBRdWVyeU5hbWU6IHN0cmluZyxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHZXREYXRhSnNvbkJ5VHlwZVBheWxvYWQge1xyXG4gIEpzb25UeXBlOiBKc29uVHlwZSxcclxuICBSZXF0b2tlbnM/OiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTeW5jQXBwRmllbGRzUGF5bG9hZCB7XHJcbiAgQ29ubmVjdGlvbklkOiBzdHJpbmc7XHJcbiAgQXBwT2JqZWN0SWQ6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoR2xvYmFsU2VhcmNoRGF0YVBheWxvYWQge1xyXG4gIFF1ZXJ5T2JqZWN0SUQ6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoUmVjb3JkSW5mb0RhdGFQYXlsb2FkIHtcclxuICBRdWVyeU9iamVjdElEOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkTWVkaWFGaWxlUGF5bG9hZCB7XHJcbiAgQmFzZTY0U3RyaW5nOiBzdHJpbmc7XHJcbiAgRmlsZU5hbWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRNZWRpYUZpbGVzUGF5bG9hZCB7XHJcbiAgVXBsb2FkRmlsZXM6IFVwbG9hZE1lZGlhRmlsZVBheWxvYWRbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFBheWxvYWQge1xyXG4gIERhdGFSZXBvcnRJZDogc3RyaW5nLFxyXG4gIFJlcXRva2VuczogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGVyZm9ybWFuY2VBbmFseXRpY3NQYXlsb2FkIHtcclxuICB0eXBlOiBzdHJpbmcsXHJcbiAgdmFsdWU6IHN0cmluZyxcclxuICBmcm9tRGF0ZTogc3RyaW5nLFxyXG4gIHRvRGF0ZTogc3RyaW5nLFxyXG4gIGxpbWl0PzogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2NyZWVuUGVyZm9ybWFuY2VQYXlsb2FkIHtcclxuICB2YWx1ZTogc3RyaW5nLFxyXG4gIGxvYWRUaW1lOiBudW1iZXIsXHJcbiAgdGFnczoge1xyXG4gICAgZHNxSWRzOiBzdHJpbmdbXSxcclxuICAgIGFwcE9iamVjdElkczogc3RyaW5nW11cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgdHJhbnNsYXRlUGF5bG9hZCB7XHJcbiAgbGFuZ3VhZ2U6IHN0cmluZztcclxuICBsYW5ndWFnZUNvZGU6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCYXNlTm90aWZpY2F0aW9uT3B0aW9ucyB7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGNvbmZpZ3VyYXRpb24/OiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc8YW55Pj4gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uT3B0aW9ucyBleHRlbmRzIEJhc2VOb3RpZmljYXRpb25PcHRpb25zIHtcclxuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1hdGlvbk9wdGlvbnMge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIHByaW1hcnlPcHRpb24/OiBzdHJpbmc7XHJcbiAgc2Vjb25kYXJ5T3B0aW9uPzogc3RyaW5nO1xyXG4gIGRpc3BsYXlIZWFkZXI/OiBib29sZWFuO1xyXG4gIGRpc3BsYXlGb290ZXI/OiBib29sZWFuO1xyXG4gIGRpc3BsYXlCb2R5PzogYm9vbGVhbjtcclxuICBkaXNwbGF5UHJpbWFyeUJ1dHRvbj86IGJvb2xlYW47XHJcbiAgZGlzcGxheVNlY29uZGFyeUJ1dHRvbj86IGJvb2xlYW47XHJcbiAgZGlzcGxheUNsb3NlQnV0dG9uPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcnVkQmFzZVBheWxvYWQge1xyXG4gIGFwcE9iamVjdElkT3JOYW1lPzogc3RyaW5nO1xyXG4gIGRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEluc2VydFBheWxvYWQgZXh0ZW5kcyBDcnVkQmFzZVBheWxvYWQge1xyXG4gIGRhdGE6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVQYXlsb2FkIGV4dGVuZHMgSW5zZXJ0UGF5bG9hZCB7XHJcbiAgY3JpdGVyaWE6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVQYXlsb2FkIGV4dGVuZHMgQ3J1ZEJhc2VQYXlsb2FkIHtcclxuICBjcml0ZXJpYTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdldFBheWxvYWQge1xyXG4gIGRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lOiBzdHJpbmc7XHJcbiAgY3JpdGVyaWE6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbXByb3REYXRhUGF5bG9hZCB7XHJcbiAgSW1wb3J0T2JqZWN0TWFwcGluZ0lkOiBzdHJpbmc7XHJcbiAgRmlsZTogc3RyaW5nO1xyXG4gIEltcG9ydFR5cGU6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hEYXRhUGF5bG9hZCB7XHJcbiAgc2VhcmNoUXVlcnk6IHN0cmluZztcclxuICBsaW1pdDogbnVtYmVyO1xyXG4gIGFwcE9iamVjdElkPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmNvcmRIaXN0b3J5UGF5bG9hZCB7XHJcbiAgYXBwT2JqZWN0SWQ6IHN0cmluZztcclxuICByZWNvcmRJZHM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBFeGVjdXRlUmVxdWVzdFBheWxvYWQge1xyXG4gIGZ1bGxVcmw6IHN0cmluZyxcclxuICBtZXRob2Q6IEh0dHBSZXF1ZXN0VHlwZSxcclxuICBoZWFkZXJzPzogYW55LFxyXG4gIGJvZHk/OiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBleGVjdXRlU3RvcmVkUHJvY2VkdXJlUGF5bG9hZCB7XHJcbiAgT2JqZWN0TmFtZTogc3RyaW5nO1xyXG4gIE9iamVjdFR5cGU6IFByb2NlZHVyZU9iamVjdFR5cGVcclxuICBQYXJhbWV0ZXJzPzogYW55O1xyXG59XHJcbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9ncmlkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5cbmltcG9ydCB7IExvb2tVcERldGFpbHMgfSBmcm9tIFwiLi4vbW9kZWxzL2RhdGEtc291cmNlLXF1ZXJpZXMuY2xhc3NcIjtcblxuZXhwb3J0IGludGVyZmFjZSBKcVdpZGdodE1vZGVsIHtcbiAgd2lkdGg/OiBudW1iZXIgfCBhbnk7XG4gIGhlaWdodD86IG51bWJlciB8IGFueTtcbiAgc291cmNlPzogU291cmNlTW9kZWw7XG4gIGNvbHVtbnM/OiBBcnJheTxDb2x1bW5EZXRhaWxNb2RlbD47XG4gIGlzUGFnZWFibGU/OiBib29sZWFuO1xuICBpc0F1dG9oZWlnaHQ/OiBib29sZWFuO1xuICBpc1NvcnRhYmxlPzogYm9vbGVhbjtcbiAgc2VsZWN0aW9ubW9kZT86IHN0cmluZztcbiAgY29sdW1uZ3JvdXBzPzogQXJyYXk8Q29sdW1uZ3JvdXBNb2RlbD47XG4gIGlzQWx0Um93PzogYm9vbGVhbjtcbiAgaXNlbmFibGV0b29sdGlwcz86IGJvb2xlYW47XG4gIGlzZWRpdGFibGU/OiBib29sZWFuO1xuICBzb3VyY2VJZD86IHN0cmluZztcbiAgdHlwZU9mRGF0YT86IHN0cmluZztcbiAgYWN0dWFsRGF0YT86IEFycmF5PGFueT47XG4gIGRhdGFGaWVsZD86IEFycmF5PERhdGFGaWVsZHNNb2RlbD47XG4gIGFjdGlvbkFycmF5PzogQXJyYXk8QWN0aW9uTW9kZWw+O1xuICBpc1Nob3dUb29sYmFyPzogYm9vbGVhbjtcbiAgaXNTaG93U3RhdHVzQmFyPzogYm9vbGVhbjtcbiAgYWN0aW9uc0luPzogc3RyaW5nO1xuICBpc0ZpbHRlcmFibGU/OiBib29sZWFuO1xuICBpc1NvcnRiYWNrR3JvdW5nQ29sb3I/OiBib29sZWFuO1xuICBpc2F1dG9zaG93ZmlsdGVyaWNvbj86IGJvb2xlYW47XG4gIGlzc2hvd2ZpbHRlcnJvdz86IGJvb2xlYW47XG4gIHBhZ2VybW9kZT86IHN0cmluZztcbiAgaXNHcm91cGFibGU/OiBib29sZWFuO1xuICBpc1Jvd2xldmVsRWRpdD86IGJvb2xlYW47XG4gIGlzUm93bGV2ZWxEZWxldGU/OiBib29sZWFuO1xuICBpc1Jvd2xldmVsVmlldz86IGJvb2xlYW47XG4gIHByaW1hcnlLZXljb2x1bW5OYW1lPzogc3RyaW5nO1xuICBncmlkSWQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBncm91cHM/OiBhbnk7XG4gIGdyb3VwQ29sdW1ucz86IHN0cmluZztcbiAgZ3JpZENvbHVtbkFycj86IEFycmF5PHN0cmluZz4gfCBhbnk7XG4gIHRoZW1lPzogc3RyaW5nO1xuICBwYWdlc2l6ZW9wdGlvbnM/OiBzdHJpbmc7XG4gIGRlZmF1bHRQYWdlU2l6ZT86IHN0cmluZztcbiAgY3VycmVudFNjcmVlbklkPzogc3RyaW5nO1xuICBjdXN0b21OYXZpZ2F0ZT86IHN0cmluZztcbiAgZ3JpZE5hbWU/OiBzdHJpbmc7XG4gIGdyaWRTdGF0ZT86IHN0cmluZyB8IGFueTtcbiAgaXNjb2x1bW5zcmVvcmRlcj86IGJvb2xlYW47XG4gIGlzU3RhdGVCPzogYm9vbGVhbjtcbiAgYWRkU2NyZWVuSWQ/OiBzdHJpbmc7XG4gIGVkaXRTY3JlZW5JZD86IHN0cmluZztcbiAgdmlld1NjcmVlbklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZU1vZGVsIHtcbiAgZGF0YXR5cGU/OiBzdHJpbmc7XG4gIGRhdGFmaWVsZHM/OiBBcnJheTxEYXRhRmllbGRzTW9kZWw+O1xuICBpZD86IHN0cmluZztcbiAgbG9jYWxkYXRhPzogYW55O1xuICBwYWdlc2l6ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhRmllbGRzTW9kZWwge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBzZXE/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRGV0YWlsTW9kZWwge1xuICB0ZXh0Pzogc3RyaW5nO1xuICBkYXRhRmllbGQ/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICBjZWxsc2FsaWduPzogc3RyaW5nO1xuICBjZWxsc2Zvcm1hdD86IHN0cmluZztcbiAgY29sdW1uVHlwZT86IHN0cmluZztcbiAgY29sdW1uR3JvdXA/OiBzdHJpbmc7XG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcbiAgYnV0dG9uY2xpY2s/OiBhbnk7XG4gIHJlbmRlcmVyPzogYW55O1xuICBjb2x1bW50eXBlPzogc3RyaW5nO1xuICBmaWx0ZXJ0eXBlPzogc3RyaW5nO1xuICBzZXE/OiBudW1iZXI7XG4gIGFsaWduPzogc3RyaW5nO1xuICBzb3J0YWJsZT86IGJvb2xlYW47XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGZpbHRlcmFibGU/OiBib29sZWFuO1xuICBjZWxsc3JlbmRlcmVyPzogYW55O1xuICBmaWx0ZXJQYXJhbWV0ZXI/OiBzdHJpbmc7XG4gIGFkZFNjcmVlbklkPzogc3RyaW5nO1xuICBlZGl0U2NyZWVuSWQ/OiBzdHJpbmc7XG4gIHZpZXdTY3JlZW5JZD86IHN0cmluZztcbiAgYXBwRmllbGRJZD86IHN0cmluZztcbiAgaXNQcmltYXJ5S2V5PzogYm9vbGVhbjtcbiAgTG9va1VwRGV0YWlscz86IGFueTtcbiAgZHJvcERvd25Mb29rdXA/OiBhbnk7XG4gIFN5c3RlbURCRmllbGROYW1lPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbmdyb3VwTW9kZWwge1xuICB0ZXh0Pzogc3RyaW5nO1xuICBhbGlnbj86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25Nb2RlbCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGltZ1NyYz86IHN0cmluZztcbiAgYnV0dG9uV2lkdGg/OiBudW1iZXI7XG4gIGJ1dHRvbkhlaWdodD86IG51bWJlcjtcbiAgYnV0dG9uVmFsdWU/OiBzdHJpbmc7XG4gIGltZ1Bvc2l0aW9uPzogc3RyaW5nO1xuICB0ZXh0UG9zaXRpb24/OiBzdHJpbmc7XG4gIHRleHRJbWFnZVJlbGF0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkxldmVsQWN0aW9ucyB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHJvd0lkPzogbnVtYmVyO1xuICB2YWx1ZVRvU2hvdz86IHN0cmluZztcbn1cblxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgYSBjbGFzcyBDb2x1bW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTeW5jZnVzaW9uR3JpZENvbHVtbk1vZGVsIHtcbiAgLy8gZm9yIGVkaXQgdGFtcGxhdGVzXG4gIGVkaXQ/OiBhbnk7XG5cbiAgTG9va1VwRGV0YWlscz86IExvb2tVcERldGFpbHM7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBmaWVsZCBuYW1lIG9mIGNvbHVtbiB3aGljaCBpcyBtYXBwZWQgd2l0aCBtYXBwaW5nIG5hbWUgb2YgRGF0YVNvdXJjZS5cbiAgICogVGhlIGJvdW5kZWQgY29sdW1ucyBjYW4gYmUgc29ydCwgZmlsdGVyIGFuZCBncm91cCBldGMuLFxuICAgKiBJZiB0aGUgYGZpZWxkYCBuYW1lIGNvbnRhaW5zIOKAnGRvdOKAnSwgdGhlbiBpdCBpcyBjb25zaWRlcmVkIGFzIGNvbXBsZXggYmluZGluZy5cbiAgICogVGhlIGBmaWVsZGAgbmFtZSBtdXN0IGJlIGEgdmFsaWQgSmF2YVNjcmlwdCBpZGVudGlmaWVyLFxuICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYW4gYWxwaGFiZXQgYW5kIHNob3VsZCBub3QgY29udGFpbiBzcGFjZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycy5cbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIGZpZWxkPzogc3RyaW5nO1xuICAvKipcbiAgICogR2V0cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgdmFsdWUgb2YgdGhlIGNvbHVtbi4gSXQgaXMgdXNlZCB0byBnZXQgdGhlIG9iamVjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIHVpZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEdldHMgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIHZhbHVlIG9mIHRoZSBjb2x1bW4uIEl0IGlzIHVzZWQgdG8gZ2V0IHRoZSBvYmplY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGluZGV4PzogbnVtYmVyO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgaGVhZGVyIHRleHQgb2YgY29sdW1uIHdoaWNoIGlzIHVzZWQgdG8gZGlzcGxheSBpbiBjb2x1bW4gaGVhZGVyLlxuICAgKiBJZiBgaGVhZGVyVGV4dGAgaXMgbm90IGRlZmluZWQsIHRoZW4gZmllbGQgbmFtZSB2YWx1ZSB3aWxsIGJlIGFzc2lnbmVkIHRvIGhlYWRlciB0ZXh0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBoZWFkZXJUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBpbiBwaXhlbHMgb3IgcGVyY2VudGFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIHdpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgbWluaW11bSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgbWluV2lkdGg/OiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWwgb3IgcGVyY2VudGFnZSwgd2hpY2ggd2lsbCByZXN0cmljdCByZXNpemluZyBiZXlvbmQgdGhpcyBwaXhlbCBvciBwZXJjZW50YWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgbWF4V2lkdGg/OiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBhbGlnbm1lbnQgb2YgdGhlIGNvbHVtbiBpbiBib3RoIGhlYWRlciBhbmQgY29udGVudCBjZWxscy5cbiAgICpcbiAgICogQGRlZmF1bHQgTGVmdFxuICAgKi9cbiAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgY2VsbCBjb250ZW50J3Mgb3ZlcmZsb3cgbW9kZS4gVGhlIGF2YWlsYWJsZSBtb2RlcyBhcmVcbiAgICogKiBgQ2xpcGAgLSAgVHJ1bmNhdGVzIHRoZSBjZWxsIGNvbnRlbnQgd2hlbiBpdCBvdmVyZmxvd3MgaXRzIGFyZWEuXG4gICAqICogYEVsbGlwc2lzYCAtICBEaXNwbGF5cyBlbGxpcHNpcyB3aGVuIHRoZSBjZWxsIGNvbnRlbnQgb3ZlcmZsb3dzIGl0cyBhcmVhLlxuICAgKiAqIGBFbGxpcHNpc1dpdGhUb29sdGlwYCAtIERpc3BsYXlzIGVsbGlwc2lzIHdoZW4gdGhlIGNlbGwgY29udGVudCBvdmVyZmxvd3MgaXRzIGFyZWFcbiAgICogYWxzbyBpdCB3aWxsIGRpc3BsYXkgdG9vbHRpcCB3aGlsZSBob3ZlciBvbiBlbGxpcHNpcyBhcHBsaWVkIGNlbGwuXG4gICAqXG4gICAqIEBkZWZhdWx0IEVsbGlwc2lzXG4gICAqL1xuICBjbGlwTW9kZT86IENsaXBNb2RlO1xuICAvKipcbiAgICogRGVmaW5lIHRoZSBhbGlnbm1lbnQgb2YgY29sdW1uIGhlYWRlciB3aGljaCBpcyB1c2VkIHRvIGFsaWduIHRoZSB0ZXh0IG9mIGNvbHVtbiBoZWFkZXIuXG4gICAqXG4gICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmVcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgaGVhZGVyVGV4dEFsaWduPzogVGV4dEFsaWduO1xuICAvKipcbiAgICogSWYgYGRpc2FibGVIdG1sRW5jb2RlYCBpcyBzZXQgdG8gdHJ1ZSwgaXQgZW5jb2RlcyB0aGUgSFRNTCBvZiB0aGUgaGVhZGVyIGFuZCBjb250ZW50IGNlbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkaXNhYmxlSHRtbEVuY29kZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGNvbHVtbi5cbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgdHlwZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEl0IGlzIHVzZWQgdG8gY2hhbmdlIGRpc3BsYXkgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0IGFuZCBkb2VzIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIGRhdGEuXG4gICAqIEdldHMgdGhlIGZvcm1hdCBmcm9tIHRoZSB1c2VyIHdoaWNoIGNhbiBiZSBzdGFuZGFyZCBvciBjdXN0b21cbiAgICogW2BudW1iZXJgXSguLi8uLi9jb21tb24vaW50ZXJuYXRpb25hbGl6YXRpb24vI21hbmlwdWxhdGluZy1udW1iZXJzKVxuICAgKiBhbmQgW2BkYXRlYF0oLi4vLi4vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNtYW5pcHVsYXRpbmctZGF0ZXRpbWUpIGZvcm1hdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICogQGFzcFR5cGUgc3RyaW5nXG4gICAqL1xuICAvLyBmb3JtYXQ/OiBzdHJpbmcgfCBOdW1iZXJGb3JtYXRPcHRpb25zIHwgRGF0ZUZvcm1hdE9wdGlvbnM7XG4gIGZvcm1hdD86IHN0cmluZztcbiAgLyoqXG4gICAqIElmIGB2aXNpYmxlYCBpcyBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbi4gQnkgZGVmYXVsdCwgYWxsIGNvbHVtbnMgYXJlIGRpc3BsYXllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBjb2x1bW4gdGVtcGxhdGUgdGhhdCByZW5kZXJzIGN1c3RvbWl6ZWQgZWxlbWVudCBpbiBlYWNoIGNlbGwgb2YgdGhlIGNvbHVtbi5cbiAgICogSXQgYWNjZXB0cyBlaXRoZXIgW3RlbXBsYXRlIHN0cmluZ10oLi4vLi4vY29tbW9uL3RlbXBsYXRlLWVuZ2luZS8pIG9yIEhUTUwgZWxlbWVudCBJRC5cbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKiBAYXNwVHlwZSBzdHJpbmdcbiAgICovXG4gIHRlbXBsYXRlPzogc3RyaW5nIHwgRnVuY3Rpb247XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBjb2x1bW4gdGVtcGxhdGUgYXMgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRCB3aGljaCBpcyB1c2VkIHRvIGFkZCBjdXN0b21pemVkIGVsZW1lbnQgaW4gdGhlIGNvbHVtbiBoZWFkZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICogQGFzcFR5cGUgc3RyaW5nXG4gICAqL1xuICBoZWFkZXJUZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xuICAvKipcbiAgICogWW91IGNhbiB1c2UgdGhpcyBwcm9wZXJ0eSB0byBmcmVlemUgc2VsZWN0ZWQgY29sdW1ucyBpbiBncmlkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgaXNGcm96ZW4/OiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYGFsbG93U29ydGluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHNvcnRpbmcgb3B0aW9uIG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIHNvcnRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhbGxvd1NvcnRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYGFsbG93UmVzaXppbmdgIHNldCB0byBmYWxzZSwgaXQgZGlzYWJsZXMgcmVzaXplIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhbGxvd1Jlc2l6aW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElmIGBzaG93Q29sdW1uTWVudWAgc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGUgdGhlIGNvbHVtbiBtZW51IG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAqIEJ5IGRlZmF1bHQgY29sdW1uIG1lbnUgd2lsbCBzaG93IGZvciBhbGwgY29sdW1uc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBzaG93Q29sdW1uTWVudT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZiBgYWxsb3dGaWx0ZXJpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBmaWx0ZXJpbmcgb3B0aW9uIGFuZCBmaWx0ZXIgYmFyIGVsZW1lbnQgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi5cbiAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBhcmUgZmlsdGVyYWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgYWxsb3dGaWx0ZXJpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYGFsbG93R3JvdXBpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBncm91cGluZyBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBncm91cGFibGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGFsbG93R3JvdXBpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYGFsbG93UmVvcmRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHJlb3JkZXIgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi5cbiAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBjYW4gYmUgcmVvcmRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgYWxsb3dSZW9yZGVyaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElmIGBlbmFibGVHcm91cEJ5Rm9ybWF0YCBzZXQgdG8gdHJ1ZSwgdGhlbiBpdCBncm91cHMgdGhlIHBhcnRpY3VsYXIgY29sdW1uIGJ5IGZvcm1hdHRlZCB2YWx1ZXMuXG4gICAqIEJ5IGRlZmF1bHQgbm8gY29sdW1ucyBhcmUgZ3JvdXAgYnkgZm9ybWF0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBlbmFibGVHcm91cEJ5Rm9ybWF0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElmIGBhbGxvd0VkaXRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBlZGl0aW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGVkaXRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhbGxvd0VkaXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogQGhpZGRlblxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHZpZXcgZm9yZWlnbiBrZXkgZGF0YS5cbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIGNvbHVtbkRhdGE/OiBPYmplY3RbXTtcbiAgLyoqXG4gICAqIFRoZSBDU1Mgc3R5bGVzIGFuZCBhdHRyaWJ1dGVzIG9mIHRoZSBjb250ZW50IGNlbGxzIG9mIGEgcGFydGljdWxhciBjb2x1bW4gY2FuIGJlIGN1c3RvbWl6ZWQuXG4gICAqXG4gICAqIGBgYGh0bWxcbiAgICogPGRpdiBpZD1cIkdyaWRcIj48L2Rpdj5cbiAgICogYGBgXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XG4gICAqIGRhdGFTb3VyY2U6IGZpbHRlckRhdGEsXG4gICAqIGNvbHVtbnM6IFtcbiAgICogICAgeyBmaWVsZDogJ09yZGVySUQnLCBoZWFkZXJUZXh0OiAnT3JkZXIgSUQnIH0sXG4gICAqICAgIHtcbiAgICogICAgICAgIGZpZWxkOiAnRW1wbG95ZWVJRCcsIGhlYWRlclRleHQ6ICdFbXBsb3llZSBJRCcsIGN1c3RvbUF0dHJpYnV0ZXM6IHtcbiAgICogICAgICAgICAgIGNsYXNzOiAnZW1wbG95ZWVpZCcsXG4gICAqICAgICAgICAgICB0eXBlOiAnZW1wbG95ZWUtaWQtY2VsbCdcbiAgICogICAgICB9XG4gICAqICAgfV1cbiAgICogfSk7XG4gICAqIGdyaWRPYmouYXBwZW5kVG8oJyNHcmlkJyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBjdXN0b21BdHRyaWJ1dGVzPzoge1xuICAgICAgW3g6IHN0cmluZ106IE9iamVjdDtcbiAgfTtcbiAgLyoqXG4gICAqIElmIGBkaXNwbGF5QXNDaGVja0JveGAgaXMgc2V0IHRvIHRydWUsIGl0IGRpc3BsYXlzIHRoZSBjb2x1bW4gdmFsdWUgYXMgYSBjaGVjayBib3ggaW5zdGVhZCBvZiBCb29sZWFuIHZhbHVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZGlzcGxheUFzQ2hlY2tCb3g/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgY29sdW1uIGRhdGEgc291cmNlICB3aGljaCB3aWxsIGFjdCBhcyBmb3JlaWduIGRhdGEgc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICAvLyBkYXRhU291cmNlPzogT2JqZWN0W10gfCBEYXRhTWFuYWdlciB8IERhdGFSZXN1bHQ7XG4gIGRhdGFTb3VyY2U/OiBPYmplY3RbXTtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG1ldGhvZCB3aGljaCBpcyB1c2VkIHRvIGFjaGlldmUgY3VzdG9tIGZvcm1hdHRpbmcgZnJvbSBhbiBleHRlcm5hbCBmdW5jdGlvbi5cbiAgICogVGhpcyBmdW5jdGlvbiB0cmlnZ2VycyBiZWZvcmUgcmVuZGVyaW5nIG9mIGVhY2ggY2VsbC5cbiAgICpcbiAgICogYGBgaHRtbFxuICAgKiA8ZGl2IGlkPVwiR3JpZFwiPjwvZGl2PlxuICAgKiBgYGBcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjbGFzcyBFeHRlbmRlZEZvcm1hdHRlciBpbXBsZW1lbnRzIElDZWxsRm9ybWF0dGVyIHtcbiAgICogcHVibGljIGdldFZhbHVlKGNvbHVtbjogQ29sdW1uLCBkYXRhOiBPYmplY3QpOiBPYmplY3Qge1xuICAgKiAgIHJldHVybiAnPHNwYW4gc3R5bGU9XCJjb2xvcjonICsgKGRhdGFbJ1ZlcmlmaWVkJ10gPyAnZ3JlZW4nIDogJ3JlZCcpICsgJ1wiPjxpPicgKyBkYXRhWydWZXJpZmllZCddICsgJzwvaT48c3Bhbj4nO1xuICAgKiB9XG4gICAqIH1cbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XG4gICAqICAgICBkYXRhU291cmNlOiBmaWx0ZXJEYXRhLFxuICAgKiAgICAgY29sdW1uczogW1xuICAgKiAgICAgICAgIHsgZmllbGQ6ICdTaGlwTmFtZScsIGhlYWRlclRleHQ6ICdTaGlwIE5hbWUnIH0sXG4gICAqICAgICAgICAgeyBmaWVsZDogJ1ZlcmlmaWVkJywgaGVhZGVyVGV4dDogJ1ZlcmlmaWVkIFN0YXR1cycsIGZvcm1hdHRlcjogRXh0ZW5kZWRGb3JtYXR0ZXIgfV1cbiAgICogfSk7XG4gICAqIGdyaWRPYmouYXBwZW5kVG8oJyNHcmlkJyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICAvLyBmb3JtYXR0ZXI/OiB7XG4gIC8vICAgICBuZXcgKCk6IElDZWxsRm9ybWF0dGVyO1xuICAvLyB9IHwgSUNlbGxGb3JtYXR0ZXIgfCBGdW5jdGlvbjtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG1ldGhvZCB1c2VkIHRvIGFwcGx5IGN1c3RvbSBjZWxsIHZhbHVlcyBmcm9tIGV4dGVybmFsIGZ1bmN0aW9uIGFuZCBkaXNwbGF5IHRoaXMgb24gZWFjaCBjZWxsIHJlbmRlcmVkLlxuICAgKlxuICAgKiBgYGBodG1sXG4gICAqIDxkaXYgaWQ9XCJHcmlkXCI+PC9kaXY+XG4gICAqIGBgYFxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGxldCBncmlkT2JqOiBHcmlkID0gbmV3IEdyaWQoe1xuICAgKiBkYXRhU291cmNlOiBbeyBFbXBsb3llZUlEOiAxLCBFbXBsb3llZU5hbWU6IFsnSm9obicsICdNJ10gfSwgeyBFbXBsb3llZUlEOiAyLCBFbXBsb3llZU5hbWU6IFsnUGV0ZXInLCAnQSddIH1dLFxuICAgKiBjb2x1bW5zOiBbXG4gICAqICAgICB7IGZpZWxkOiAnRW1wbG95ZWVJRCcsIGhlYWRlclRleHQ6ICdFbXBsb3llZSBJRCcgfSxcbiAgICogICAgIHsgZmllbGQ6ICdFbXBsb3llZU5hbWUnLCBoZWFkZXJUZXh0OiAnRW1wbG95ZWUgRmlyc3QgTmFtZScsXG4gICAqICAgICAgIHZhbHVlQWNjZXNzb3I6IChmaWVsZDogc3RyaW5nLCBkYXRhOiBPYmplY3QsIGNvbHVtbjogQ29sdW1uKSA9PiB7XG4gICAqICAgICAgICAgICAgIHJldHVybiBkYXRhWydFbXBsb3llZU5hbWUnXVswXTtcbiAgICogICAgICAgICB9LFxuICAgKiAgICAgfV1cbiAgICogfSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICAvLyB2YWx1ZUFjY2Vzc29yPzogVmFsdWVBY2Nlc3NvciB8IHN0cmluZztcbiAgdmFsdWVBY2Nlc3Nvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG1ldGhvZCB1c2VkIHRvIGFwcGx5IGN1c3RvbSBoZWFkZXIgY2VsbCB2YWx1ZXMgZnJvbSBleHRlcm5hbCBmdW5jdGlvbiBhbmQgZGlzcGxheSB0aGlzIG9uIGVhY2ggY2VsbCByZW5kZXJlZC5cbiAgICpcbiAgICogYGBgaHRtbFxuICAgKiA8ZGl2IGlkPVwiR3JpZFwiPjwvZGl2PlxuICAgKiBgYGBcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBsZXQgZ3JpZE9iajogR3JpZCA9IG5ldyBHcmlkKHtcbiAgICogZGF0YVNvdXJjZTogW3sgRW1wbG95ZWVJRDogMSwgRW1wbG95ZWVOYW1lOiBbJ0pvaG4nLCAnTSddIH0sIHsgRW1wbG95ZWVJRDogMiwgRW1wbG95ZWVOYW1lOiBbJ1BldGVyJywgJ0EnXSB9XSxcbiAgICogY29sdW1uczogW1xuICAgKiAgICAgeyBmaWVsZDogJ0VtcGxveWVlSUQnLCBoZWFkZXJUZXh0OiAnRW1wbG95ZWUgSUQnIH0sXG4gICAqICAgICB7IGZpZWxkOiAnRW1wbG95ZWVOYW1lJywgaGVhZGVyVGV4dDogJ0VtcGxveWVlIEZpcnN0IE5hbWUnLFxuICAgKiAgICAgICBoZWFkZXJWYWx1ZUFjY2Vzc29yOiAoZmllbGQ6IHN0cmluZyxjb2x1bW46IENvbHVtbikgPT4ge1xuICAgKiAgICAgICAgICAgICByZXR1cm4gXCJuZXdoZWFkZXJuYW1lXCI7XG4gICAqICAgICAgICAgfSxcbiAgICogICAgIH1dXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgLy8gaGVhZGVyVmFsdWVBY2Nlc3Nvcj86IEhlYWRlclZhbHVlQWNjZXNzb3IgfCBzdHJpbmc7XG4gIGhlYWRlclZhbHVlQWNjZXNzb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYGZpbHRlckJhclRlbXBsYXRlYCBpcyB1c2VkIHRvIGFkZCBhIGN1c3RvbSBjb21wb25lbnQgaW5zdGVhZCBvZiBkZWZhdWx0IGlucHV0IGNvbXBvbmVudCBmb3IgZmlsdGVyIGJhci5cbiAgICogSXQgaGF2ZSBjcmVhdGUgYW5kIHJlYWQgZnVuY3Rpb25zLlxuICAgKiAqIGNyZWF0ZTogSXQgaXMgdXNlZCBmb3IgY3JlYXRpbmcgY3VzdG9tIGNvbXBvbmVudHMuXG4gICAqICogcmVhZDogSXQgaXMgdXNlZCB0byBwZXJmb3JtIGN1c3RvbSBmaWx0ZXIgYWN0aW9uLlxuICAgKlxuICAgKiBgYGBodG1sXG4gICAqIDxkaXYgaWQ9XCJHcmlkXCI+PC9kaXY+XG4gICAqIGBgYFxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGxldCBncmlkT2JqOiBHcmlkID0gbmV3IEdyaWQoe1xuICAgKiBkYXRhU291cmNlOiBmaWx0ZXJEYXRhLFxuICAgKiBjb2x1bW5zOiBbXG4gICAqICAgeyBmaWVsZDogJ09yZGVySUQnLCBoZWFkZXJUZXh0OiAnT3JkZXIgSUQnIH0sXG4gICAqICAge1xuICAgKiAgICAgIGZpZWxkOiAnRW1wbG95ZWVJRCcsIGZpbHRlckJhclRlbXBsYXRlOiB7XG4gICAqICAgICAgICAgY3JlYXRlOiAoYXJnczogeyBlbGVtZW50OiBFbGVtZW50LCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAqICAgICAgICAgICAgICBsZXQgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgKiAgICAgICAgICAgICAgaW5wdXQuaWQgPSAnRW1wbG95ZWVJRCc7XG4gICAqICAgICAgICAgICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xuICAgKiAgICAgICAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgKiAgICAgICAgIH0sXG4gICAqICAgICAgICAgd3JpdGU6IChhcmdzOiB7IGVsZW1lbnQ6IEVsZW1lbnQsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcbiAgICogICAgICAgICAgICAgYXJncy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgYXJncy5jb2x1bW4uZmlsdGVyQmFyVGVtcGxhdGUucmVhZCBhcyBFdmVudExpc3RlbmVyKTtcbiAgICogICAgICAgICB9LFxuICAgKiAgICAgICAgIHJlYWQ6IChhcmdzOiB7IGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIGNvbHVtbkluZGV4OiBudW1iZXIsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcbiAgICogICAgICAgICAgICAgZ3JpZE9iai5maWx0ZXJCeUNvbHVtbihhcmdzLmVsZW1lbnQuaWQsICdlcXVhbCcsIGFyZ3MuZWxlbWVudC52YWx1ZSk7XG4gICAqICAgICAgICB9XG4gICAqICAgICB9XG4gICAqICB9XSxcbiAgICogICBhbGxvd0ZpbHRlcmluZzogdHJ1ZVxuICAgKiB9KTtcbiAgICogZ3JpZE9iai5hcHBlbmRUbygnI0dyaWQnKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIC8vIGZpbHRlckJhclRlbXBsYXRlPzogSUZpbHRlclVJO1xuICAvKipcbiAgICogIERlZmluZXMgdGhlIGZpbHRlciBvcHRpb25zIHRvIGN1c3RvbWl6ZSBmaWx0ZXJpbmcgZm9yIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbi5cbiAgICpcbiAgICogIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIC8vIGZpbHRlcj86IElGaWx0ZXI7XG4gIC8qKlxuICAgKiBVc2VkIHRvIHJlbmRlciBtdWx0aXBsZSBoZWFkZXIgcm93cyhzdGFja2VkIGhlYWRlcnMpIG9uIHRoZSBHcmlkIGhlYWRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgLy8gY29sdW1ucz86IENvbHVtbltdIHwgc3RyaW5nW10gfCBDb2x1bW5Nb2RlbFtdO1xuICBjb2x1bW5zPzogc3RyaW5nW10gfCBTeW5jZnVzaW9uR3JpZENvbHVtbk1vZGVsW107XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSB0b29sIHRpcCB0ZXh0IGZvciBzdGFja2VkIGhlYWRlcnMuXG4gICAqXG4gICAqIEBoaWRkZW5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgdG9vbFRpcD86IHN0cmluZztcbiAgLyoqXG4gICAqIElmIGBpc1ByaW1hcnlLZXlgIGlzIHNldCB0byB0cnVlLCBjb25zaWRlcnMgdGhpcyBjb2x1bW4gYXMgdGhlIHByaW1hcnkga2V5IGNvbnN0cmFpbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBpc1ByaW1hcnlLZXk/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgdHlwZSBvZiBjb21wb25lbnQgZm9yIGVkaXRpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdzdHJpbmdlZGl0J1xuICAgKi9cbiAgZWRpdFR5cGU6IEVkaXRUeXBlIHwgc3RyaW5nO1xuICAvKipcbiAgICogYGVkaXRUeXBlYCguLi8uLi9ncmlkL2VkaXQvI2NlbGwtZWRpdC10eXBlLWFuZC1pdHMtcGFyYW1zKSBEZWZpbmVzIHJ1bGVzIHRvIHZhbGlkYXRlIGRhdGEgYmVmb3JlIGNyZWF0aW5nIGFuZCB1cGRhdGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgdmFsaWRhdGlvblJ1bGVzPzogT2JqZWN0O1xuICAvKipcbiAgICogRGVmaW5lcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudCB3aGVuIGFkZGluZyBhIG5ldyByZWNvcmQgdG8gdGhlIEdyaWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICogQGFzcFR5cGUgb2JqZWN0XG4gICAqL1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBgSUVkaXRDZWxsYCguLi8uLi9ncmlkL2VkaXQvI2NlbGwtZWRpdC10ZW1wbGF0ZSkgb2JqZWN0IHRvIGN1c3RvbWl6ZSBkZWZhdWx0IGVkaXQgY2VsbC5cbiAgICpcbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIC8vIGVkaXQ/OiBJRWRpdENlbGw7XG4gIC8qKlxuICAgKiBJZiBgaXNJZGVudGl0eWAgaXMgc2V0IHRvIHRydWUsIHRoZW4gdGhpcyBjb2x1bW4gaXMgY29uc2lkZXJlZCBhcyBpZGVudGl0eSBjb2x1bW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBpc0lkZW50aXR5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG1hcHBpbmcgY29sdW1uIG5hbWUgb2YgdGhlIGZvcmVpZ24gZGF0YSBzb3VyY2UuXG4gICAqIElmIGl0IGlzIG5vdCBkZWZpbmVkIHRoZW4gdGhlIGBjb2x1bW5zLmZpZWxkYCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgbWFwcGluZyBjb2x1bW4gbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBmb3JlaWduS2V5RmllbGQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBkaXNwbGF5IGNvbHVtbiBuYW1lIGZyb20gdGhlIGZvcmVpZ24gZGF0YSBzb3VyY2Ugd2hpY2ggd2lsbCBiZSBvYnRhaW5lZCBmcm9tIGNvbXBhcmluZyBsb2NhbCBhbmQgZm9yZWlnbiBkYXRhXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGZvcmVpZ25LZXlWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIGNvbHVtbiB2aXNpYmlsaXR5IGNhbiBjaGFuZ2UgYmFzZWQgb24gaXRzIFtgTWVkaWEgUXVlcmllc2BdKGh0dHA6Ly9jc3NtZWRpYXF1ZXJpZXMuY29tL3doYXQtYXJlLWNzcy1tZWRpYS1xdWVyaWVzLmh0bWwpLlxuICAgKiBgaGlkZUF0TWVkaWFgIGFjY2VwdHMgb25seSB2YWxpZCBNZWRpYSBRdWVyaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgaGlkZUF0TWVkaWE/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZiBgc2hvd0luQ29sdW1uQ2hvb3NlcmAgc2V0IHRvIGZhbHNlLCB0aGVuIGhpZGVzIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbiBpbiBjb2x1bW4gY2hvb3Nlci5cbiAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBhcmUgZGlzcGxheWVkIGluIGNvbHVtbiBDaG9vc2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBzaG93SW5Db2x1bW5DaG9vc2VyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBoaWRkZW5cbiAgICogRGVmaW5lcyB0aGUgY29tbWFuZHMgY29sdW1uIHRlbXBsYXRlIGFzIHN0cmluZyBvciBIVE1MIGVsZW1lbnQgSUQgd2hpY2ggaXMgdXNlZCB0byBhZGRcbiAgICogY3VzdG9taXplZCBjb21tYW5kIGJ1dHRvbnMgaW4gZWFjaCBjZWxscyBvZiB0aGUgY29sdW1uLlxuICAgKi9cbiAgY29tbWFuZHNUZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xuICAvKipcbiAgICogYGNvbW1hbmRzYCBwcm92aWRlcyBhbiBvcHRpb24gdG8gZGlzcGxheSBjb21tYW5kIGJ1dHRvbnMgaW4gZXZlcnkgY2VsbC5cbiAgICogVGhlIGF2YWlsYWJsZSBidWlsdC1pbiBjb21tYW5kIGJ1dHRvbnMgYXJlXG4gICAqICogRWRpdCAtIEVkaXQgdGhlIHJlY29yZC5cbiAgICogKiBEZWxldGUgLSBEZWxldGUgdGhlIHJlY29yZC5cbiAgICogKiBTYXZlIC0gU2F2ZSB0aGUgcmVjb3JkLlxuICAgKiAqIENhbmNlbCAtIENhbmNlbCB0aGUgZWRpdCBzdGF0ZS5cbiAgICpcbiAgICogVGhlIGZvbGxvd2luZyBjb2RlIGV4YW1wbGUgaW1wbGVtZW50cyB0aGUgY3VzdG9tIGNvbW1hbmQgY29sdW1uLlxuICAgKiBgYGBodG1sXG4gICAqIDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIiBjbGFzcz1cImNzc1N0eWxlc1wiPlxuICAgKiAuZGV0YWlscy1pY29uOmJlZm9yZVxuICAgKiB7XG4gICAqICAgIGNvbnRlbnQ6XCJcXGU3NGRcIjtcbiAgICogfVxuICAgKiA8L3N0eWxlPlxuICAgKiA8ZGl2IGlkPVwiR3JpZFwiPjwvZGl2PlxuICAgKiBgYGBcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB2YXIgZ3JpZE9iaiA9IG5ldyBHcmlkKHtcbiAgICogZGF0YXNvdXJjZTogd2luZG93LmdyaWREYXRhLFxuICAgKiBjb2x1bW5zIDogW1xuICAgKiAgeyBmaWVsZDogJ0N1c3RvbWVySUQnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgSUQnIH0sXG4gICAqICB7IGZpZWxkOiAnQ3VzdG9tZXJOYW1lJywgaGVhZGVyVGV4dDogJ0N1c3RvbWVyIE5hbWUnIH0sXG4gICAqICB7Y29tbWFuZHM6IFt7YnV0dG9uT3B0aW9uOntjb250ZW50OiAnRGV0YWlscycsIGNsaWNrOiBvbkNsaWNrLCBjc3NDbGFzczogZGV0YWlscy1pY29ufX1dLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgRGV0YWlscyd9XG4gICAqIF1cbiAgICogZ3JpZE9iai5hcHBlbmRUbyhcIiNHcmlkXCIpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgY29tbWFuZHM/OiBDb21tYW5kTW9kZWxbXTtcbiAgLyoqXG4gICAqIEl0IGRlZmluZXMgdGhlIGN1c3RvbSBzb3J0IGNvbXBhcmVyIGZ1bmN0aW9uLlxuICAgKi9cbiAgLy8gc29ydENvbXBhcmVyPzogU29ydENvbXBhcmVyIHwgc3RyaW5nO1xuICBzb3J0Q29tcGFyZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAaGlkZGVuXG4gICAqIEl0IGRlZmluZXMgdGhlIGNvbHVtbiBpcyBmb3JlaWduIGtleSBjb2x1bW4gb3Igbm90LlxuICAgKi9cbiAgaXNGb3JlaWduQ29sdW1uPzogKCkgPT4gYm9vbGVhbjtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGNlbGwgZWRpdCB0ZW1wbGF0ZSB0aGF0IHVzZWQgYXMgZWRpdG9yIGZvciBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgKiBJdCBhY2NlcHRzIGVpdGhlciB0ZW1wbGF0ZSBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElELlxuICAgKlxuICAgKiBAYXNwSWdub3JlXG4gICAqL1xuICBlZGl0VGVtcGxhdGU/OiBzdHJpbmcgfCBGdW5jdGlvbjtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGZpbHRlciB0ZW1wbGF0ZS9VSSB0aGF0IHVzZWQgYXMgZmlsdGVyIGZvciBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgKiBJdCBhY2NlcHRzIGVpdGhlciB0ZW1wbGF0ZSBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElELlxuICAgKlxuICAgKiBAYXNwSWdub3JlXG4gICAqL1xuICBmaWx0ZXJUZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgbWFwcGluZyBjb2x1bW4gbmFtZSBvZiB0aGUgZm9yZWlnbiBkYXRhIHNvdXJjZS5cbiAgICogSWYgaXQgaXMgbm90IGRlZmluZWQgdGhlbiB0aGUgYGNvbHVtbnMuZmllbGRgIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBtYXBwaW5nIGNvbHVtbiBuYW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBsb2NrQ29sdW1uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElmIGBhbGxvd1NlYXJjaGluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIFNlYXJjaGluZyBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFsbG93IFNlYXJjaGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgYWxsb3dTZWFyY2hpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYGF1dG9GaXRgIHNldCB0byB0cnVlLCB0aGVuIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbiBjb250ZW50IHdpZHRoIHdpbGwgYmVcbiAgICogYWRqdXN0ZWQgYmFzZWQgb24gaXRzIGNvbnRlbnQgaW4gdGhlIGluaXRpYWwgcmVuZGVyaW5nIGl0c2VsZi5cbiAgICogU2V0dGluZyB0aGlzIHByb3BlcnR5IGFzIHRydWUgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIGBhdXRvRml0Q29sdW1uc2AgbWV0aG9kIGluIHRoZSBgZGF0YUJvdW5kYCBldmVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGF1dG9GaXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogZGVmaW5lcyB3aGljaCBzaWRlIHRoZSBjb2x1bW4gbmVlZCB0byBmcmVlemVcbiAgICogVGhlIGF2YWlsYWJsZSBidWlsdC1pbiBmcmVlemUgZGlyZWN0aW9ucyBhcmVcbiAgICogKiBMZWZ0IC0gRnJlZXplIHRoZSBjb2x1bW4gYXQgbGVmdCBzaWRlLlxuICAgKiAqIFJpZ2h0IC0gRnJlZXplIHRoZSBjb2x1bW4gYXQgcmlnaHQgc2lkZS5cbiAgICogKiBGaXhlZCAtIEZyZWV6ZSB0aGUgY29sdW1uIGF0IENlbnRlci5cbiAgICogKiBOb25lIC0gRG9lcyBub3QgZnJlZXplIHRoZSBjb2x1bW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIGZyZWV6ZT86IGZyZWV6ZURpcmVjdGlvbjtcbn1cblxuXG5cbi8qKlxuICogRGVmaW5lcyBhbGlnbm1lbnRzIG9mIHRleHQsIHRoZXkgYXJlXG4gKiBgYGBwcm9wc1xuICogKiBMZWZ0IDotIERlZmluZXMgTGVmdCBhbGlnbm1lbnRcbiAqICogUmlnaHQgOi0gRGVmaW5lcyBSaWdodCBhbGlnbm1lbnRcbiAqICogQ2VudGVyIDotIERlZmluZXMgQ2VudGVyIGFsaWdubWVudFxuICogKiBKdXN0aWZ5IDotIERlZmluZXMgSnVzdGlmeSBhbGlnbm1lbnRcbiAqIGBgYFxuICovXG5leHBvcnQgZGVjbGFyZSB0eXBlIFRleHRBbGlnbiA9ICdMZWZ0JyB8ICdSaWdodCcgfCAnQ2VudGVyJyB8ICdKdXN0aWZ5JztcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBjZWxsIGNvbnRlbnQncyBvdmVyZmxvdyBtb2RlLiBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZVxuICogYGBgcHJvcHNcbiAqICogYENsaXBgIDotICBUcnVuY2F0ZXMgdGhlIGNlbGwgY29udGVudCB3aGVuIGl0IG92ZXJmbG93cyBpdHMgYXJlYS5cbiAqICogYEVsbGlwc2lzYCA6LSAgRGlzcGxheXMgZWxsaXBzaXMgd2hlbiB0aGUgY2VsbCBjb250ZW50IG92ZXJmbG93cyBpdHMgYXJlYS5cbiAqICogYEVsbGlwc2lzV2l0aFRvb2x0aXBgIDotIERpc3BsYXlzIGVsbGlwc2lzIHdoZW4gdGhlIGNlbGwgY29udGVudCBvdmVyZmxvd3MgaXRzIGFyZWFcbiAqIGFsc28gaXQgd2lsbCBkaXNwbGF5IHRvb2x0aXAgd2hpbGUgaG92ZXIgb24gZWxsaXBzaXMgYXBwbGllZCBjZWxsLlxuICogYGBgXG4gKiB7JSBjb2RlQmxvY2sgc3JjPSdncmlkL2NsaXBNb2RlL2luZGV4Lm1kJyAlfXslIGVuZGNvZGVCbG9jayAlfVxuICovXG5leHBvcnQgZGVjbGFyZSB0eXBlIENsaXBNb2RlID0gJ0NsaXAnIHwgJ0VsbGlwc2lzJyB8ICdFbGxpcHNpc1dpdGhUb29sdGlwJztcblxuLyoqXG4gKiBEZWZpbmUgb3B0aW9ucyBmb3IgY3VzdG9tIGNvbW1hbmQgYnV0dG9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kTW9kZWwge1xuICAvKipcbiAgICogRGVmaW5lIHRoZSBjb21tYW5kIEJ1dHRvbiB0b29sdGlwXG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmluZSB0aGUgY29tbWFuZCBCdXR0b24gdHlwZVxuICAgKlxuICAgKiBAYmxhem9yRGVmYXVsdFZhbHVlIG5vbmVcbiAgICovXG4gIHR5cGU/OiBDb21tYW5kQnV0dG9uVHlwZTtcbiAgLyoqXG4gICAqIERlZmluZSB0aGUgYnV0dG9uIG1vZGVsXG4gICAqL1xuICAvLyBidXR0b25PcHRpb24/OiBDb21tYW5kQnV0dG9uT3B0aW9ucztcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBDb21tYW5kIEJ1dHRvbnMgdHlwZS5cbiAqIGBgYHByb3BzXG4gKiAqIE5vbmUgOi0gIEVkaXQgdGhlIGN1cnJlbnQgcmVjb3JkLlxuICogKiBFZGl0IDotICBFZGl0IHRoZSBjdXJyZW50IHJlY29yZC5cbiAqICogRGVsZXRlIDotIERlbGV0ZSB0aGUgY3VycmVudCByZWNvcmQuXG4gKiAqIFNhdmUgOi0gU2F2ZSB0aGUgY3VycmVudCBlZGl0ZWQgcmVjb3JkLlxuICogKiBDYW5jZWwgOi0gQ2FuY2VsIHRoZSBlZGl0ZWQgc3RhdGUuXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlY2xhcmUgdHlwZSBDb21tYW5kQnV0dG9uVHlwZSA9ICdOb25lJyB8ICdFZGl0JyB8ICdEZWxldGUnIHwgJ1NhdmUnIHwgJ0NhbmNlbCc7XG5cbi8qKlxuICogRGVmaW5lcyBmcmVlemUgZGlyZWN0aW9uIG9mIHRoZSBncmlkIGNvbHVtbnNcbiAqIGBgYHByb3BzXG4gKiAqIExlZnQgOi0gZnJlZXplIHRoZSBjb2x1bW5zIGF0IGxlZnQuXG4gKiAqIFJpZ2h0IDotIGZyZWV6ZSB0aGUgY29sdW1ucyBhdCByaWdodC5cbiAqICogRml4ZWQgOi0gZnJlZXplIHRoZSBjb2x1bW5zIGF0IGNlbnRlci5cbiAqICogTm9uZSA6LSBkb2VzIG5vdCBmcmVlemUgYW55IGNvbHVtbnMuXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlY2xhcmUgdHlwZSBmcmVlemVEaXJlY3Rpb24gPSAnTGVmdCcgfCAnUmlnaHQnIHwgJ0ZpeGVkJyB8ICdOb25lJztcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBFZGl0IFR5cGUgb2YgdGhlIGNvbHVtblxuICogYGBgcHJvcHNcbiAqICogRGVmYXVsdEVkaXQgOi0gRGVmaW5lcyBFZGl0VHlwZSBhcyBEZWZhdWx0RWRpdFxuICogKiBEcm9wZG93bkVkaXQgOi0gRGVmaW5lcyBFZGl0TW9kZSBhcyBEcm9wZG93bmVkaXRcbiAqICogQm9vbGVhbkVkaXQgOi0gRGVmaW5lcyBFZGl0TW9kZSBhcyBCb29sZWFuZWRpdFxuICogKiBEYXRlcGlja2VyRWRpdCA6LSBEZWZpbmVzIEVkaXRNb2RlIGFzIERhdGVwaWNrZXJlZGl0XG4gKiAqIERhdGV0aW1lcGlja2VyRWRpdCA6LSBEZWZpbmVzIEVkaXRUeXBlIGFzIERhdGV0aW1lcGlja2VyZWRpdFxuICogKiBOdW1lcmljRWRpdCA6LSBEZWZpbmVzIEVkaXRNb2RlIGFzIE51bWVyaWNlZGl0XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlY2xhcmUgdHlwZSBFZGl0VHlwZSA9ICdkZWZhdWx0RWRpdCcgfCAnZHJvcERvd25FZGl0JyB8ICdib29sZWFuRWRpdCcgfCAnZGF0ZVBpY2tlckVkaXQnIHwgJ2RhdGVUaW1lUGlja2VyRWRpdCcgfCAnbnVtZXJpY0VkaXQnO1xuXG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9ncmlkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcblxyXG5pbXBvcnQgeyBMb29rVXBEZXRhaWxzIH0gZnJvbSBcIi4uL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyaWVzLmNsYXNzXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEpxV2lkZ2h0TW9kZWwge1xyXG4gIHdpZHRoPzogbnVtYmVyIHwgYW55O1xyXG4gIGhlaWdodD86IG51bWJlciB8IGFueTtcclxuICBzb3VyY2U/OiBTb3VyY2VNb2RlbDtcclxuICBjb2x1bW5zPzogQXJyYXk8Q29sdW1uRGV0YWlsTW9kZWw+O1xyXG4gIGlzUGFnZWFibGU/OiBib29sZWFuO1xyXG4gIGlzQXV0b2hlaWdodD86IGJvb2xlYW47XHJcbiAgaXNTb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgc2VsZWN0aW9ubW9kZT86IHN0cmluZztcclxuICBjb2x1bW5ncm91cHM/OiBBcnJheTxDb2x1bW5ncm91cE1vZGVsPjtcclxuICBpc0FsdFJvdz86IGJvb2xlYW47XHJcbiAgaXNlbmFibGV0b29sdGlwcz86IGJvb2xlYW47XHJcbiAgaXNlZGl0YWJsZT86IGJvb2xlYW47XHJcbiAgc291cmNlSWQ/OiBzdHJpbmc7XHJcbiAgdHlwZU9mRGF0YT86IHN0cmluZztcclxuICBhY3R1YWxEYXRhPzogQXJyYXk8YW55PjtcclxuICBkYXRhRmllbGQ/OiBBcnJheTxEYXRhRmllbGRzTW9kZWw+O1xyXG4gIGFjdGlvbkFycmF5PzogQXJyYXk8QWN0aW9uTW9kZWw+O1xyXG4gIGlzU2hvd1Rvb2xiYXI/OiBib29sZWFuO1xyXG4gIGlzU2hvd1N0YXR1c0Jhcj86IGJvb2xlYW47XHJcbiAgYWN0aW9uc0luPzogc3RyaW5nO1xyXG4gIGlzRmlsdGVyYWJsZT86IGJvb2xlYW47XHJcbiAgaXNTb3J0YmFja0dyb3VuZ0NvbG9yPzogYm9vbGVhbjtcclxuICBpc2F1dG9zaG93ZmlsdGVyaWNvbj86IGJvb2xlYW47XHJcbiAgaXNzaG93ZmlsdGVycm93PzogYm9vbGVhbjtcclxuICBwYWdlcm1vZGU/OiBzdHJpbmc7XHJcbiAgaXNHcm91cGFibGU/OiBib29sZWFuO1xyXG4gIGlzUm93bGV2ZWxFZGl0PzogYm9vbGVhbjtcclxuICBpc1Jvd2xldmVsRGVsZXRlPzogYm9vbGVhbjtcclxuICBpc1Jvd2xldmVsVmlldz86IGJvb2xlYW47XHJcbiAgcHJpbWFyeUtleWNvbHVtbk5hbWU/OiBzdHJpbmc7XHJcbiAgZ3JpZElkPzogc3RyaW5nO1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIGdyb3Vwcz86IGFueTtcclxuICBncm91cENvbHVtbnM/OiBzdHJpbmc7XHJcbiAgZ3JpZENvbHVtbkFycj86IEFycmF5PHN0cmluZz4gfCBhbnk7XHJcbiAgdGhlbWU/OiBzdHJpbmc7XHJcbiAgcGFnZXNpemVvcHRpb25zPzogc3RyaW5nO1xyXG4gIGRlZmF1bHRQYWdlU2l6ZT86IHN0cmluZztcclxuICBjdXJyZW50U2NyZWVuSWQ/OiBzdHJpbmc7XHJcbiAgY3VzdG9tTmF2aWdhdGU/OiBzdHJpbmc7XHJcbiAgZ3JpZE5hbWU/OiBzdHJpbmc7XHJcbiAgZ3JpZFN0YXRlPzogc3RyaW5nIHwgYW55O1xyXG4gIGlzY29sdW1uc3Jlb3JkZXI/OiBib29sZWFuO1xyXG4gIGlzU3RhdGVCPzogYm9vbGVhbjtcclxuICBhZGRTY3JlZW5JZD86IHN0cmluZztcclxuICBlZGl0U2NyZWVuSWQ/OiBzdHJpbmc7XHJcbiAgdmlld1NjcmVlbklkPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZU1vZGVsIHtcclxuICBkYXRhdHlwZT86IHN0cmluZztcclxuICBkYXRhZmllbGRzPzogQXJyYXk8RGF0YUZpZWxkc01vZGVsPjtcclxuICBpZD86IHN0cmluZztcclxuICBsb2NhbGRhdGE/OiBhbnk7XHJcbiAgcGFnZXNpemU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUZpZWxkc01vZGVsIHtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgc2VxPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkRldGFpbE1vZGVsIHtcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIGRhdGFGaWVsZD86IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBjZWxsc2FsaWduPzogc3RyaW5nO1xyXG4gIGNlbGxzZm9ybWF0Pzogc3RyaW5nO1xyXG4gIGNvbHVtblR5cGU/OiBzdHJpbmc7XHJcbiAgY29sdW1uR3JvdXA/OiBzdHJpbmc7XHJcbiAgZWRpdGFibGU/OiBib29sZWFuO1xyXG4gIGJ1dHRvbmNsaWNrPzogYW55O1xyXG4gIHJlbmRlcmVyPzogYW55O1xyXG4gIGNvbHVtbnR5cGU/OiBzdHJpbmc7XHJcbiAgZmlsdGVydHlwZT86IHN0cmluZztcclxuICBzZXE/OiBudW1iZXI7XHJcbiAgYWxpZ24/OiBzdHJpbmc7XHJcbiAgc29ydGFibGU/OiBib29sZWFuO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgZmlsdGVyYWJsZT86IGJvb2xlYW47XHJcbiAgY2VsbHNyZW5kZXJlcj86IGFueTtcclxuICBmaWx0ZXJQYXJhbWV0ZXI/OiBzdHJpbmc7XHJcbiAgYWRkU2NyZWVuSWQ/OiBzdHJpbmc7XHJcbiAgZWRpdFNjcmVlbklkPzogc3RyaW5nO1xyXG4gIHZpZXdTY3JlZW5JZD86IHN0cmluZztcclxuICBhcHBGaWVsZElkPzogc3RyaW5nO1xyXG4gIGlzUHJpbWFyeUtleT86IGJvb2xlYW47XHJcbiAgTG9va1VwRGV0YWlscz86IGFueTtcclxuICBkcm9wRG93bkxvb2t1cD86IGFueTtcclxuICBTeXN0ZW1EQkZpZWxkTmFtZT86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5ncm91cE1vZGVsIHtcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIGFsaWduPzogc3RyaW5nO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uTW9kZWwge1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgaW1nU3JjPzogc3RyaW5nO1xyXG4gIGJ1dHRvbldpZHRoPzogbnVtYmVyO1xyXG4gIGJ1dHRvbkhlaWdodD86IG51bWJlcjtcclxuICBidXR0b25WYWx1ZT86IHN0cmluZztcclxuICBpbWdQb3NpdGlvbj86IHN0cmluZztcclxuICB0ZXh0UG9zaXRpb24/OiBzdHJpbmc7XHJcbiAgdGV4dEltYWdlUmVsYXRpb24/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uTGV2ZWxBY3Rpb25zIHtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHJvd0lkPzogbnVtYmVyO1xyXG4gIHZhbHVlVG9TaG93Pzogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEludGVyZmFjZSBmb3IgYSBjbGFzcyBDb2x1bW5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3luY2Z1c2lvbkdyaWRDb2x1bW5Nb2RlbCB7XHJcbiAgLy8gZm9yIGVkaXQgdGFtcGxhdGVzXHJcbiAgZWRpdD86IGFueTtcclxuXHJcbiAgTG9va1VwRGV0YWlscz86IExvb2tVcERldGFpbHM7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgZmllbGQgbmFtZSBvZiBjb2x1bW4gd2hpY2ggaXMgbWFwcGVkIHdpdGggbWFwcGluZyBuYW1lIG9mIERhdGFTb3VyY2UuXHJcbiAgICogVGhlIGJvdW5kZWQgY29sdW1ucyBjYW4gYmUgc29ydCwgZmlsdGVyIGFuZCBncm91cCBldGMuLFxyXG4gICAqIElmIHRoZSBgZmllbGRgIG5hbWUgY29udGFpbnMg4oCcZG904oCdLCB0aGVuIGl0IGlzIGNvbnNpZGVyZWQgYXMgY29tcGxleCBiaW5kaW5nLlxyXG4gICAqIFRoZSBgZmllbGRgIG5hbWUgbXVzdCBiZSBhIHZhbGlkIEphdmFTY3JpcHQgaWRlbnRpZmllcixcclxuICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYW4gYWxwaGFiZXQgYW5kIHNob3VsZCBub3QgY29udGFpbiBzcGFjZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycy5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0ICcnXHJcbiAgICovXHJcbiAgZmllbGQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgdmFsdWUgb2YgdGhlIGNvbHVtbi4gSXQgaXMgdXNlZCB0byBnZXQgdGhlIG9iamVjdC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0ICcnXHJcbiAgICovXHJcbiAgdWlkPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIHZhbHVlIG9mIHRoZSBjb2x1bW4uIEl0IGlzIHVzZWQgdG8gZ2V0IHRoZSBvYmplY3QuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgaW5kZXg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgaGVhZGVyIHRleHQgb2YgY29sdW1uIHdoaWNoIGlzIHVzZWQgdG8gZGlzcGxheSBpbiBjb2x1bW4gaGVhZGVyLlxyXG4gICAqIElmIGBoZWFkZXJUZXh0YCBpcyBub3QgZGVmaW5lZCwgdGhlbiBmaWVsZCBuYW1lIHZhbHVlIHdpbGwgYmUgYXNzaWduZWQgdG8gaGVhZGVyIHRleHQuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgaGVhZGVyVGV4dD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgJydcclxuICAgKi9cclxuICB3aWR0aD86IHN0cmluZyB8IG51bWJlcjtcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSBtaW5pbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWxzIG9yIHBlcmNlbnRhZ2UuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCAnJ1xyXG4gICAqL1xyXG4gIG1pbldpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIGNvbHVtbiBpbiBwaXhlbCBvciBwZXJjZW50YWdlLCB3aGljaCB3aWxsIHJlc3RyaWN0IHJlc2l6aW5nIGJleW9uZCB0aGlzIHBpeGVsIG9yIHBlcmNlbnRhZ2UuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCAnJ1xyXG4gICAqL1xyXG4gIG1heFdpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIGFsaWdubWVudCBvZiB0aGUgY29sdW1uIGluIGJvdGggaGVhZGVyIGFuZCBjb250ZW50IGNlbGxzLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgTGVmdFxyXG4gICAqL1xyXG4gIHRleHRBbGlnbj86IFRleHRBbGlnbjtcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSBjZWxsIGNvbnRlbnQncyBvdmVyZmxvdyBtb2RlLiBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZVxyXG4gICAqICogYENsaXBgIC0gIFRydW5jYXRlcyB0aGUgY2VsbCBjb250ZW50IHdoZW4gaXQgb3ZlcmZsb3dzIGl0cyBhcmVhLlxyXG4gICAqICogYEVsbGlwc2lzYCAtICBEaXNwbGF5cyBlbGxpcHNpcyB3aGVuIHRoZSBjZWxsIGNvbnRlbnQgb3ZlcmZsb3dzIGl0cyBhcmVhLlxyXG4gICAqICogYEVsbGlwc2lzV2l0aFRvb2x0aXBgIC0gRGlzcGxheXMgZWxsaXBzaXMgd2hlbiB0aGUgY2VsbCBjb250ZW50IG92ZXJmbG93cyBpdHMgYXJlYVxyXG4gICAqIGFsc28gaXQgd2lsbCBkaXNwbGF5IHRvb2x0aXAgd2hpbGUgaG92ZXIgb24gZWxsaXBzaXMgYXBwbGllZCBjZWxsLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgRWxsaXBzaXNcclxuICAgKi9cclxuICBjbGlwTW9kZT86IENsaXBNb2RlO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZSB0aGUgYWxpZ25tZW50IG9mIGNvbHVtbiBoZWFkZXIgd2hpY2ggaXMgdXNlZCB0byBhbGlnbiB0aGUgdGV4dCBvZiBjb2x1bW4gaGVhZGVyLlxyXG4gICAqXHJcbiAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZVxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICBoZWFkZXJUZXh0QWxpZ24/OiBUZXh0QWxpZ247XHJcbiAgLyoqXHJcbiAgICogSWYgYGRpc2FibGVIdG1sRW5jb2RlYCBpcyBzZXQgdG8gdHJ1ZSwgaXQgZW5jb2RlcyB0aGUgSFRNTCBvZiB0aGUgaGVhZGVyIGFuZCBjb250ZW50IGNlbGxzLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGRpc2FibGVIdG1sRW5jb2RlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGNvbHVtbi5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEl0IGlzIHVzZWQgdG8gY2hhbmdlIGRpc3BsYXkgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0IGFuZCBkb2VzIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIGRhdGEuXHJcbiAgICogR2V0cyB0aGUgZm9ybWF0IGZyb20gdGhlIHVzZXIgd2hpY2ggY2FuIGJlIHN0YW5kYXJkIG9yIGN1c3RvbVxyXG4gICAqIFtgbnVtYmVyYF0oLi4vLi4vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNtYW5pcHVsYXRpbmctbnVtYmVycylcclxuICAgKiBhbmQgW2BkYXRlYF0oLi4vLi4vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNtYW5pcHVsYXRpbmctZGF0ZXRpbWUpIGZvcm1hdHMuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICogQGFzcFR5cGUgc3RyaW5nXHJcbiAgICovXHJcbiAgLy8gZm9ybWF0Pzogc3RyaW5nIHwgTnVtYmVyRm9ybWF0T3B0aW9ucyB8IERhdGVGb3JtYXRPcHRpb25zO1xyXG4gIGZvcm1hdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBJZiBgdmlzaWJsZWAgaXMgc2V0IHRvIGZhbHNlLCBoaWRlcyB0aGUgcGFydGljdWxhciBjb2x1bW4uIEJ5IGRlZmF1bHQsIGFsbCBjb2x1bW5zIGFyZSBkaXNwbGF5ZWQuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgY29sdW1uIHRlbXBsYXRlIHRoYXQgcmVuZGVycyBjdXN0b21pemVkIGVsZW1lbnQgaW4gZWFjaCBjZWxsIG9mIHRoZSBjb2x1bW4uXHJcbiAgICogSXQgYWNjZXB0cyBlaXRoZXIgW3RlbXBsYXRlIHN0cmluZ10oLi4vLi4vY29tbW9uL3RlbXBsYXRlLWVuZ2luZS8pIG9yIEhUTUwgZWxlbWVudCBJRC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKiBAYXNwVHlwZSBzdHJpbmdcclxuICAgKi9cclxuICB0ZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIGNvbHVtbiB0ZW1wbGF0ZSBhcyBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElEIHdoaWNoIGlzIHVzZWQgdG8gYWRkIGN1c3RvbWl6ZWQgZWxlbWVudCBpbiB0aGUgY29sdW1uIGhlYWRlci5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKiBAYXNwVHlwZSBzdHJpbmdcclxuICAgKi9cclxuICBoZWFkZXJUZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xyXG4gIC8qKlxyXG4gICAqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZnJlZXplIHNlbGVjdGVkIGNvbHVtbnMgaW4gZ3JpZC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgaXNGcm96ZW4/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElmIGBhbGxvd1NvcnRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBzb3J0aW5nIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIHNvcnRhYmxlLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGFsbG93U29ydGluZz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogSWYgYGFsbG93UmVzaXppbmdgIHNldCB0byBmYWxzZSwgaXQgZGlzYWJsZXMgcmVzaXplIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGFsbG93UmVzaXppbmc/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElmIGBzaG93Q29sdW1uTWVudWAgc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGUgdGhlIGNvbHVtbiBtZW51IG9mIGEgcGFydGljdWxhciBjb2x1bW4uXHJcbiAgICogQnkgZGVmYXVsdCBjb2x1bW4gbWVudSB3aWxsIHNob3cgZm9yIGFsbCBjb2x1bW5zXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgc2hvd0NvbHVtbk1lbnU/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElmIGBhbGxvd0ZpbHRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIGZpbHRlcmluZyBvcHRpb24gYW5kIGZpbHRlciBiYXIgZWxlbWVudCBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGZpbHRlcmFibGUuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgYWxsb3dGaWx0ZXJpbmc/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElmIGBhbGxvd0dyb3VwaW5nYCBzZXQgdG8gZmFsc2UsIHRoZW4gaXQgZGlzYWJsZXMgZ3JvdXBpbmcgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi5cclxuICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBncm91cGFibGUuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgYWxsb3dHcm91cGluZz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogSWYgYGFsbG93UmVvcmRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHJlb3JkZXIgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi5cclxuICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGNhbiBiZSByZW9yZGVyLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGFsbG93UmVvcmRlcmluZz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogSWYgYGVuYWJsZUdyb3VwQnlGb3JtYXRgIHNldCB0byB0cnVlLCB0aGVuIGl0IGdyb3VwcyB0aGUgcGFydGljdWxhciBjb2x1bW4gYnkgZm9ybWF0dGVkIHZhbHVlcy5cclxuICAgKiBCeSBkZWZhdWx0IG5vIGNvbHVtbnMgYXJlIGdyb3VwIGJ5IGZvcm1hdC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKi9cclxuICBlbmFibGVHcm91cEJ5Rm9ybWF0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBJZiBgYWxsb3dFZGl0aW5nYCBzZXQgdG8gZmFsc2UsIHRoZW4gaXQgZGlzYWJsZXMgZWRpdGluZyBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGVkaXRhYmxlLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGFsbG93RWRpdGluZz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQGhpZGRlblxyXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdmlldyBmb3JlaWduIGtleSBkYXRhLlxyXG4gICAqIEBkZWZhdWx0IFtdXHJcbiAgICovXHJcbiAgY29sdW1uRGF0YT86IE9iamVjdFtdO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBDU1Mgc3R5bGVzIGFuZCBhdHRyaWJ1dGVzIG9mIHRoZSBjb250ZW50IGNlbGxzIG9mIGEgcGFydGljdWxhciBjb2x1bW4gY2FuIGJlIGN1c3RvbWl6ZWQuXHJcbiAgICpcclxuICAgKiBgYGBodG1sXHJcbiAgICogPGRpdiBpZD1cIkdyaWRcIj48L2Rpdj5cclxuICAgKiBgYGBcclxuICAgKiBgYGB0eXBlc2NyaXB0XHJcbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICogZGF0YVNvdXJjZTogZmlsdGVyRGF0YSxcclxuICAgKiBjb2x1bW5zOiBbXHJcbiAgICogICAgeyBmaWVsZDogJ09yZGVySUQnLCBoZWFkZXJUZXh0OiAnT3JkZXIgSUQnIH0sXHJcbiAgICogICAge1xyXG4gICAqICAgICAgICBmaWVsZDogJ0VtcGxveWVlSUQnLCBoZWFkZXJUZXh0OiAnRW1wbG95ZWUgSUQnLCBjdXN0b21BdHRyaWJ1dGVzOiB7XHJcbiAgICogICAgICAgICAgIGNsYXNzOiAnZW1wbG95ZWVpZCcsXHJcbiAgICogICAgICAgICAgIHR5cGU6ICdlbXBsb3llZS1pZC1jZWxsJ1xyXG4gICAqICAgICAgfVxyXG4gICAqICAgfV1cclxuICAgKiB9KTtcclxuICAgKiBncmlkT2JqLmFwcGVuZFRvKCcjR3JpZCcpO1xyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAqL1xyXG4gIGN1c3RvbUF0dHJpYnV0ZXM/OiB7XHJcbiAgICAgIFt4OiBzdHJpbmddOiBPYmplY3Q7XHJcbiAgfTtcclxuICAvKipcclxuICAgKiBJZiBgZGlzcGxheUFzQ2hlY2tCb3hgIGlzIHNldCB0byB0cnVlLCBpdCBkaXNwbGF5cyB0aGUgY29sdW1uIHZhbHVlIGFzIGEgY2hlY2sgYm94IGluc3RlYWQgb2YgQm9vbGVhbiB2YWx1ZS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgZGlzcGxheUFzQ2hlY2tCb3g/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIGNvbHVtbiBkYXRhIHNvdXJjZSAgd2hpY2ggd2lsbCBhY3QgYXMgZm9yZWlnbiBkYXRhIHNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICAvLyBkYXRhU291cmNlPzogT2JqZWN0W10gfCBEYXRhTWFuYWdlciB8IERhdGFSZXN1bHQ7XHJcbiAgZGF0YVNvdXJjZT86IE9iamVjdFtdO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIG1ldGhvZCB3aGljaCBpcyB1c2VkIHRvIGFjaGlldmUgY3VzdG9tIGZvcm1hdHRpbmcgZnJvbSBhbiBleHRlcm5hbCBmdW5jdGlvbi5cclxuICAgKiBUaGlzIGZ1bmN0aW9uIHRyaWdnZXJzIGJlZm9yZSByZW5kZXJpbmcgb2YgZWFjaCBjZWxsLlxyXG4gICAqXHJcbiAgICogYGBgaHRtbFxyXG4gICAqIDxkaXYgaWQ9XCJHcmlkXCI+PC9kaXY+XHJcbiAgICogYGBgXHJcbiAgICogYGBgdHlwZXNjcmlwdFxyXG4gICAqIGNsYXNzIEV4dGVuZGVkRm9ybWF0dGVyIGltcGxlbWVudHMgSUNlbGxGb3JtYXR0ZXIge1xyXG4gICAqIHB1YmxpYyBnZXRWYWx1ZShjb2x1bW46IENvbHVtbiwgZGF0YTogT2JqZWN0KTogT2JqZWN0IHtcclxuICAgKiAgIHJldHVybiAnPHNwYW4gc3R5bGU9XCJjb2xvcjonICsgKGRhdGFbJ1ZlcmlmaWVkJ10gPyAnZ3JlZW4nIDogJ3JlZCcpICsgJ1wiPjxpPicgKyBkYXRhWydWZXJpZmllZCddICsgJzwvaT48c3Bhbj4nO1xyXG4gICAqIH1cclxuICAgKiB9XHJcbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICogICAgIGRhdGFTb3VyY2U6IGZpbHRlckRhdGEsXHJcbiAgICogICAgIGNvbHVtbnM6IFtcclxuICAgKiAgICAgICAgIHsgZmllbGQ6ICdTaGlwTmFtZScsIGhlYWRlclRleHQ6ICdTaGlwIE5hbWUnIH0sXHJcbiAgICogICAgICAgICB7IGZpZWxkOiAnVmVyaWZpZWQnLCBoZWFkZXJUZXh0OiAnVmVyaWZpZWQgU3RhdHVzJywgZm9ybWF0dGVyOiBFeHRlbmRlZEZvcm1hdHRlciB9XVxyXG4gICAqIH0pO1xyXG4gICAqIGdyaWRPYmouYXBwZW5kVG8oJyNHcmlkJyk7XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgLy8gZm9ybWF0dGVyPzoge1xyXG4gIC8vICAgICBuZXcgKCk6IElDZWxsRm9ybWF0dGVyO1xyXG4gIC8vIH0gfCBJQ2VsbEZvcm1hdHRlciB8IEZ1bmN0aW9uO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIG1ldGhvZCB1c2VkIHRvIGFwcGx5IGN1c3RvbSBjZWxsIHZhbHVlcyBmcm9tIGV4dGVybmFsIGZ1bmN0aW9uIGFuZCBkaXNwbGF5IHRoaXMgb24gZWFjaCBjZWxsIHJlbmRlcmVkLlxyXG4gICAqXHJcbiAgICogYGBgaHRtbFxyXG4gICAqIDxkaXYgaWQ9XCJHcmlkXCI+PC9kaXY+XHJcbiAgICogYGBgXHJcbiAgICogYGBgdHlwZXNjcmlwdFxyXG4gICAqIGxldCBncmlkT2JqOiBHcmlkID0gbmV3IEdyaWQoe1xyXG4gICAqIGRhdGFTb3VyY2U6IFt7IEVtcGxveWVlSUQ6IDEsIEVtcGxveWVlTmFtZTogWydKb2huJywgJ00nXSB9LCB7IEVtcGxveWVlSUQ6IDIsIEVtcGxveWVlTmFtZTogWydQZXRlcicsICdBJ10gfV0sXHJcbiAgICogY29sdW1uczogW1xyXG4gICAqICAgICB7IGZpZWxkOiAnRW1wbG95ZWVJRCcsIGhlYWRlclRleHQ6ICdFbXBsb3llZSBJRCcgfSxcclxuICAgKiAgICAgeyBmaWVsZDogJ0VtcGxveWVlTmFtZScsIGhlYWRlclRleHQ6ICdFbXBsb3llZSBGaXJzdCBOYW1lJyxcclxuICAgKiAgICAgICB2YWx1ZUFjY2Vzc29yOiAoZmllbGQ6IHN0cmluZywgZGF0YTogT2JqZWN0LCBjb2x1bW46IENvbHVtbikgPT4ge1xyXG4gICAqICAgICAgICAgICAgIHJldHVybiBkYXRhWydFbXBsb3llZU5hbWUnXVswXTtcclxuICAgKiAgICAgICAgIH0sXHJcbiAgICogICAgIH1dXHJcbiAgICogfSk7XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgLy8gdmFsdWVBY2Nlc3Nvcj86IFZhbHVlQWNjZXNzb3IgfCBzdHJpbmc7XHJcbiAgdmFsdWVBY2Nlc3Nvcj86IHN0cmluZztcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSBtZXRob2QgdXNlZCB0byBhcHBseSBjdXN0b20gaGVhZGVyIGNlbGwgdmFsdWVzIGZyb20gZXh0ZXJuYWwgZnVuY3Rpb24gYW5kIGRpc3BsYXkgdGhpcyBvbiBlYWNoIGNlbGwgcmVuZGVyZWQuXHJcbiAgICpcclxuICAgKiBgYGBodG1sXHJcbiAgICogPGRpdiBpZD1cIkdyaWRcIj48L2Rpdj5cclxuICAgKiBgYGBcclxuICAgKiBgYGB0eXBlc2NyaXB0XHJcbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICogZGF0YVNvdXJjZTogW3sgRW1wbG95ZWVJRDogMSwgRW1wbG95ZWVOYW1lOiBbJ0pvaG4nLCAnTSddIH0sIHsgRW1wbG95ZWVJRDogMiwgRW1wbG95ZWVOYW1lOiBbJ1BldGVyJywgJ0EnXSB9XSxcclxuICAgKiBjb2x1bW5zOiBbXHJcbiAgICogICAgIHsgZmllbGQ6ICdFbXBsb3llZUlEJywgaGVhZGVyVGV4dDogJ0VtcGxveWVlIElEJyB9LFxyXG4gICAqICAgICB7IGZpZWxkOiAnRW1wbG95ZWVOYW1lJywgaGVhZGVyVGV4dDogJ0VtcGxveWVlIEZpcnN0IE5hbWUnLFxyXG4gICAqICAgICAgIGhlYWRlclZhbHVlQWNjZXNzb3I6IChmaWVsZDogc3RyaW5nLGNvbHVtbjogQ29sdW1uKSA9PiB7XHJcbiAgICogICAgICAgICAgICAgcmV0dXJuIFwibmV3aGVhZGVybmFtZVwiO1xyXG4gICAqICAgICAgICAgfSxcclxuICAgKiAgICAgfV1cclxuICAgKiB9KTtcclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICAvLyBoZWFkZXJWYWx1ZUFjY2Vzc29yPzogSGVhZGVyVmFsdWVBY2Nlc3NvciB8IHN0cmluZztcclxuICBoZWFkZXJWYWx1ZUFjY2Vzc29yPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBgZmlsdGVyQmFyVGVtcGxhdGVgIGlzIHVzZWQgdG8gYWRkIGEgY3VzdG9tIGNvbXBvbmVudCBpbnN0ZWFkIG9mIGRlZmF1bHQgaW5wdXQgY29tcG9uZW50IGZvciBmaWx0ZXIgYmFyLlxyXG4gICAqIEl0IGhhdmUgY3JlYXRlIGFuZCByZWFkIGZ1bmN0aW9ucy5cclxuICAgKiAqIGNyZWF0ZTogSXQgaXMgdXNlZCBmb3IgY3JlYXRpbmcgY3VzdG9tIGNvbXBvbmVudHMuXHJcbiAgICogKiByZWFkOiBJdCBpcyB1c2VkIHRvIHBlcmZvcm0gY3VzdG9tIGZpbHRlciBhY3Rpb24uXHJcbiAgICpcclxuICAgKiBgYGBodG1sXHJcbiAgICogPGRpdiBpZD1cIkdyaWRcIj48L2Rpdj5cclxuICAgKiBgYGBcclxuICAgKiBgYGB0eXBlc2NyaXB0XHJcbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICogZGF0YVNvdXJjZTogZmlsdGVyRGF0YSxcclxuICAgKiBjb2x1bW5zOiBbXHJcbiAgICogICB7IGZpZWxkOiAnT3JkZXJJRCcsIGhlYWRlclRleHQ6ICdPcmRlciBJRCcgfSxcclxuICAgKiAgIHtcclxuICAgKiAgICAgIGZpZWxkOiAnRW1wbG95ZWVJRCcsIGZpbHRlckJhclRlbXBsYXRlOiB7XHJcbiAgICogICAgICAgICBjcmVhdGU6IChhcmdzOiB7IGVsZW1lbnQ6IEVsZW1lbnQsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcclxuICAgKiAgICAgICAgICAgICAgbGV0IGlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgKiAgICAgICAgICAgICAgaW5wdXQuaWQgPSAnRW1wbG95ZWVJRCc7XHJcbiAgICogICAgICAgICAgICAgIGlucHV0LnR5cGUgPSAndGV4dCc7XHJcbiAgICogICAgICAgICAgICAgIHJldHVybiBpbnB1dDtcclxuICAgKiAgICAgICAgIH0sXHJcbiAgICogICAgICAgICB3cml0ZTogKGFyZ3M6IHsgZWxlbWVudDogRWxlbWVudCwgY29sdW1uOiBDb2x1bW4gfSkgPT4ge1xyXG4gICAqICAgICAgICAgICAgIGFyZ3MuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGFyZ3MuY29sdW1uLmZpbHRlckJhclRlbXBsYXRlLnJlYWQgYXMgRXZlbnRMaXN0ZW5lcik7XHJcbiAgICogICAgICAgICB9LFxyXG4gICAqICAgICAgICAgcmVhZDogKGFyZ3M6IHsgZWxlbWVudDogSFRNTElucHV0RWxlbWVudCwgY29sdW1uSW5kZXg6IG51bWJlciwgY29sdW1uOiBDb2x1bW4gfSkgPT4ge1xyXG4gICAqICAgICAgICAgICAgIGdyaWRPYmouZmlsdGVyQnlDb2x1bW4oYXJncy5lbGVtZW50LmlkLCAnZXF1YWwnLCBhcmdzLmVsZW1lbnQudmFsdWUpO1xyXG4gICAqICAgICAgICB9XHJcbiAgICogICAgIH1cclxuICAgKiAgfV0sXHJcbiAgICogICBhbGxvd0ZpbHRlcmluZzogdHJ1ZVxyXG4gICAqIH0pO1xyXG4gICAqIGdyaWRPYmouYXBwZW5kVG8oJyNHcmlkJyk7XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgLy8gZmlsdGVyQmFyVGVtcGxhdGU/OiBJRmlsdGVyVUk7XHJcbiAgLyoqXHJcbiAgICogIERlZmluZXMgdGhlIGZpbHRlciBvcHRpb25zIHRvIGN1c3RvbWl6ZSBmaWx0ZXJpbmcgZm9yIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbi5cclxuICAgKlxyXG4gICAqICBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgLy8gZmlsdGVyPzogSUZpbHRlcjtcclxuICAvKipcclxuICAgKiBVc2VkIHRvIHJlbmRlciBtdWx0aXBsZSBoZWFkZXIgcm93cyhzdGFja2VkIGhlYWRlcnMpIG9uIHRoZSBHcmlkIGhlYWRlci5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICAvLyBjb2x1bW5zPzogQ29sdW1uW10gfCBzdHJpbmdbXSB8IENvbHVtbk1vZGVsW107XHJcbiAgY29sdW1ucz86IHN0cmluZ1tdIHwgU3luY2Z1c2lvbkdyaWRDb2x1bW5Nb2RlbFtdO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIHRvb2wgdGlwIHRleHQgZm9yIHN0YWNrZWQgaGVhZGVycy5cclxuICAgKlxyXG4gICAqIEBoaWRkZW5cclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgdG9vbFRpcD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBJZiBgaXNQcmltYXJ5S2V5YCBpcyBzZXQgdG8gdHJ1ZSwgY29uc2lkZXJzIHRoaXMgY29sdW1uIGFzIHRoZSBwcmltYXJ5IGtleSBjb25zdHJhaW50LlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKi9cclxuICBpc1ByaW1hcnlLZXk/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIHR5cGUgb2YgY29tcG9uZW50IGZvciBlZGl0aW5nLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgJ3N0cmluZ2VkaXQnXHJcbiAgICovXHJcbiAgZWRpdFR5cGU6IEVkaXRUeXBlIHwgc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIGBlZGl0VHlwZWAoLi4vLi4vZ3JpZC9lZGl0LyNjZWxsLWVkaXQtdHlwZS1hbmQtaXRzLXBhcmFtcykgRGVmaW5lcyBydWxlcyB0byB2YWxpZGF0ZSBkYXRhIGJlZm9yZSBjcmVhdGluZyBhbmQgdXBkYXRpbmcuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgdmFsaWRhdGlvblJ1bGVzPzogT2JqZWN0O1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBjb21wb25lbnQgd2hlbiBhZGRpbmcgYSBuZXcgcmVjb3JkIHRvIHRoZSBHcmlkLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAqIEBhc3BUeXBlIG9iamVjdFxyXG4gICAqL1xyXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSBgSUVkaXRDZWxsYCguLi8uLi9ncmlkL2VkaXQvI2NlbGwtZWRpdC10ZW1wbGF0ZSkgb2JqZWN0IHRvIGN1c3RvbWl6ZSBkZWZhdWx0IGVkaXQgY2VsbC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IHt9XHJcbiAgICovXHJcbiAgLy8gZWRpdD86IElFZGl0Q2VsbDtcclxuICAvKipcclxuICAgKiBJZiBgaXNJZGVudGl0eWAgaXMgc2V0IHRvIHRydWUsIHRoZW4gdGhpcyBjb2x1bW4gaXMgY29uc2lkZXJlZCBhcyBpZGVudGl0eSBjb2x1bW4uXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIGlzSWRlbnRpdHk/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIG1hcHBpbmcgY29sdW1uIG5hbWUgb2YgdGhlIGZvcmVpZ24gZGF0YSBzb3VyY2UuXHJcbiAgICogSWYgaXQgaXMgbm90IGRlZmluZWQgdGhlbiB0aGUgYGNvbHVtbnMuZmllbGRgIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBtYXBwaW5nIGNvbHVtbiBuYW1lXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgZm9yZWlnbktleUZpZWxkPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIGRpc3BsYXkgY29sdW1uIG5hbWUgZnJvbSB0aGUgZm9yZWlnbiBkYXRhIHNvdXJjZSB3aGljaCB3aWxsIGJlIG9idGFpbmVkIGZyb20gY29tcGFyaW5nIGxvY2FsIGFuZCBmb3JlaWduIGRhdGFcclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICBmb3JlaWduS2V5VmFsdWU/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogY29sdW1uIHZpc2liaWxpdHkgY2FuIGNoYW5nZSBiYXNlZCBvbiBpdHMgW2BNZWRpYSBRdWVyaWVzYF0oaHR0cDovL2Nzc21lZGlhcXVlcmllcy5jb20vd2hhdC1hcmUtY3NzLW1lZGlhLXF1ZXJpZXMuaHRtbCkuXHJcbiAgICogYGhpZGVBdE1lZGlhYCBhY2NlcHRzIG9ubHkgdmFsaWQgTWVkaWEgUXVlcmllcy5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0ICcnXHJcbiAgICovXHJcbiAgaGlkZUF0TWVkaWE/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogSWYgYHNob3dJbkNvbHVtbkNob29zZXJgIHNldCB0byBmYWxzZSwgdGhlbiBoaWRlcyB0aGUgcGFydGljdWxhciBjb2x1bW4gaW4gY29sdW1uIGNob29zZXIuXHJcbiAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBhcmUgZGlzcGxheWVkIGluIGNvbHVtbiBDaG9vc2VyLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIHNob3dJbkNvbHVtbkNob29zZXI/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEBoaWRkZW5cclxuICAgKiBEZWZpbmVzIHRoZSBjb21tYW5kcyBjb2x1bW4gdGVtcGxhdGUgYXMgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRCB3aGljaCBpcyB1c2VkIHRvIGFkZFxyXG4gICAqIGN1c3RvbWl6ZWQgY29tbWFuZCBidXR0b25zIGluIGVhY2ggY2VsbHMgb2YgdGhlIGNvbHVtbi5cclxuICAgKi9cclxuICBjb21tYW5kc1RlbXBsYXRlPzogc3RyaW5nIHwgRnVuY3Rpb247XHJcbiAgLyoqXHJcbiAgICogYGNvbW1hbmRzYCBwcm92aWRlcyBhbiBvcHRpb24gdG8gZGlzcGxheSBjb21tYW5kIGJ1dHRvbnMgaW4gZXZlcnkgY2VsbC5cclxuICAgKiBUaGUgYXZhaWxhYmxlIGJ1aWx0LWluIGNvbW1hbmQgYnV0dG9ucyBhcmVcclxuICAgKiAqIEVkaXQgLSBFZGl0IHRoZSByZWNvcmQuXHJcbiAgICogKiBEZWxldGUgLSBEZWxldGUgdGhlIHJlY29yZC5cclxuICAgKiAqIFNhdmUgLSBTYXZlIHRoZSByZWNvcmQuXHJcbiAgICogKiBDYW5jZWwgLSBDYW5jZWwgdGhlIGVkaXQgc3RhdGUuXHJcbiAgICpcclxuICAgKiBUaGUgZm9sbG93aW5nIGNvZGUgZXhhbXBsZSBpbXBsZW1lbnRzIHRoZSBjdXN0b20gY29tbWFuZCBjb2x1bW4uXHJcbiAgICogYGBgaHRtbFxyXG4gICAqIDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIiBjbGFzcz1cImNzc1N0eWxlc1wiPlxyXG4gICAqIC5kZXRhaWxzLWljb246YmVmb3JlXHJcbiAgICoge1xyXG4gICAqICAgIGNvbnRlbnQ6XCJcXGU3NGRcIjtcclxuICAgKiB9XHJcbiAgICogPC9zdHlsZT5cclxuICAgKiA8ZGl2IGlkPVwiR3JpZFwiPjwvZGl2PlxyXG4gICAqIGBgYFxyXG4gICAqIGBgYHR5cGVzY3JpcHRcclxuICAgKiB2YXIgZ3JpZE9iaiA9IG5ldyBHcmlkKHtcclxuICAgKiBkYXRhc291cmNlOiB3aW5kb3cuZ3JpZERhdGEsXHJcbiAgICogY29sdW1ucyA6IFtcclxuICAgKiAgeyBmaWVsZDogJ0N1c3RvbWVySUQnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgSUQnIH0sXHJcbiAgICogIHsgZmllbGQ6ICdDdXN0b21lck5hbWUnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgTmFtZScgfSxcclxuICAgKiAge2NvbW1hbmRzOiBbe2J1dHRvbk9wdGlvbjp7Y29udGVudDogJ0RldGFpbHMnLCBjbGljazogb25DbGljaywgY3NzQ2xhc3M6IGRldGFpbHMtaWNvbn19XSwgaGVhZGVyVGV4dDogJ0N1c3RvbWVyIERldGFpbHMnfVxyXG4gICAqIF1cclxuICAgKiBncmlkT2JqLmFwcGVuZFRvKFwiI0dyaWRcIik7XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgY29tbWFuZHM/OiBDb21tYW5kTW9kZWxbXTtcclxuICAvKipcclxuICAgKiBJdCBkZWZpbmVzIHRoZSBjdXN0b20gc29ydCBjb21wYXJlciBmdW5jdGlvbi5cclxuICAgKi9cclxuICAvLyBzb3J0Q29tcGFyZXI/OiBTb3J0Q29tcGFyZXIgfCBzdHJpbmc7XHJcbiAgc29ydENvbXBhcmVyPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEBoaWRkZW5cclxuICAgKiBJdCBkZWZpbmVzIHRoZSBjb2x1bW4gaXMgZm9yZWlnbiBrZXkgY29sdW1uIG9yIG5vdC5cclxuICAgKi9cclxuICBpc0ZvcmVpZ25Db2x1bW4/OiAoKSA9PiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIGNlbGwgZWRpdCB0ZW1wbGF0ZSB0aGF0IHVzZWQgYXMgZWRpdG9yIGZvciBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRlbXBsYXRlIHN0cmluZyBvciBIVE1MIGVsZW1lbnQgSUQuXHJcbiAgICpcclxuICAgKiBAYXNwSWdub3JlXHJcbiAgICovXHJcbiAgZWRpdFRlbXBsYXRlPzogc3RyaW5nIHwgRnVuY3Rpb247XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgZmlsdGVyIHRlbXBsYXRlL1VJIHRoYXQgdXNlZCBhcyBmaWx0ZXIgZm9yIGEgcGFydGljdWxhciBjb2x1bW4uXHJcbiAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGVtcGxhdGUgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRC5cclxuICAgKlxyXG4gICAqIEBhc3BJZ25vcmVcclxuICAgKi9cclxuICBmaWx0ZXJUZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIG1hcHBpbmcgY29sdW1uIG5hbWUgb2YgdGhlIGZvcmVpZ24gZGF0YSBzb3VyY2UuXHJcbiAgICogSWYgaXQgaXMgbm90IGRlZmluZWQgdGhlbiB0aGUgYGNvbHVtbnMuZmllbGRgIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBtYXBwaW5nIGNvbHVtbiBuYW1lXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIGxvY2tDb2x1bW4/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElmIGBhbGxvd1NlYXJjaGluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIFNlYXJjaGluZyBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYWxsb3cgU2VhcmNoaW5nLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGFsbG93U2VhcmNoaW5nPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBJZiBgYXV0b0ZpdGAgc2V0IHRvIHRydWUsIHRoZW4gdGhlIHBhcnRpY3VsYXIgY29sdW1uIGNvbnRlbnQgd2lkdGggd2lsbCBiZVxyXG4gICAqIGFkanVzdGVkIGJhc2VkIG9uIGl0cyBjb250ZW50IGluIHRoZSBpbml0aWFsIHJlbmRlcmluZyBpdHNlbGYuXHJcbiAgICogU2V0dGluZyB0aGlzIHByb3BlcnR5IGFzIHRydWUgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIGBhdXRvRml0Q29sdW1uc2AgbWV0aG9kIGluIHRoZSBgZGF0YUJvdW5kYCBldmVudC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgYXV0b0ZpdD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogZGVmaW5lcyB3aGljaCBzaWRlIHRoZSBjb2x1bW4gbmVlZCB0byBmcmVlemVcclxuICAgKiBUaGUgYXZhaWxhYmxlIGJ1aWx0LWluIGZyZWV6ZSBkaXJlY3Rpb25zIGFyZVxyXG4gICAqICogTGVmdCAtIEZyZWV6ZSB0aGUgY29sdW1uIGF0IGxlZnQgc2lkZS5cclxuICAgKiAqIFJpZ2h0IC0gRnJlZXplIHRoZSBjb2x1bW4gYXQgcmlnaHQgc2lkZS5cclxuICAgKiAqIEZpeGVkIC0gRnJlZXplIHRoZSBjb2x1bW4gYXQgQ2VudGVyLlxyXG4gICAqICogTm9uZSAtIERvZXMgbm90IGZyZWV6ZSB0aGUgY29sdW1uLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgTm9uZVxyXG4gICAqL1xyXG4gIGZyZWV6ZT86IGZyZWV6ZURpcmVjdGlvbjtcclxufVxyXG5cclxuXHJcblxyXG4vKipcclxuICogRGVmaW5lcyBhbGlnbm1lbnRzIG9mIHRleHQsIHRoZXkgYXJlXHJcbiAqIGBgYHByb3BzXHJcbiAqICogTGVmdCA6LSBEZWZpbmVzIExlZnQgYWxpZ25tZW50XHJcbiAqICogUmlnaHQgOi0gRGVmaW5lcyBSaWdodCBhbGlnbm1lbnRcclxuICogKiBDZW50ZXIgOi0gRGVmaW5lcyBDZW50ZXIgYWxpZ25tZW50XHJcbiAqICogSnVzdGlmeSA6LSBEZWZpbmVzIEp1c3RpZnkgYWxpZ25tZW50XHJcbiAqIGBgYFxyXG4gKi9cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBUZXh0QWxpZ24gPSAnTGVmdCcgfCAnUmlnaHQnIHwgJ0NlbnRlcicgfCAnSnVzdGlmeSc7XHJcblxyXG4vKipcclxuICogRGVmaW5lcyB0aGUgY2VsbCBjb250ZW50J3Mgb3ZlcmZsb3cgbW9kZS4gVGhlIGF2YWlsYWJsZSBtb2RlcyBhcmVcclxuICogYGBgcHJvcHNcclxuICogKiBgQ2xpcGAgOi0gIFRydW5jYXRlcyB0aGUgY2VsbCBjb250ZW50IHdoZW4gaXQgb3ZlcmZsb3dzIGl0cyBhcmVhLlxyXG4gKiAqIGBFbGxpcHNpc2AgOi0gIERpc3BsYXlzIGVsbGlwc2lzIHdoZW4gdGhlIGNlbGwgY29udGVudCBvdmVyZmxvd3MgaXRzIGFyZWEuXHJcbiAqICogYEVsbGlwc2lzV2l0aFRvb2x0aXBgIDotIERpc3BsYXlzIGVsbGlwc2lzIHdoZW4gdGhlIGNlbGwgY29udGVudCBvdmVyZmxvd3MgaXRzIGFyZWFcclxuICogYWxzbyBpdCB3aWxsIGRpc3BsYXkgdG9vbHRpcCB3aGlsZSBob3ZlciBvbiBlbGxpcHNpcyBhcHBsaWVkIGNlbGwuXHJcbiAqIGBgYFxyXG4gKiB7JSBjb2RlQmxvY2sgc3JjPSdncmlkL2NsaXBNb2RlL2luZGV4Lm1kJyAlfXslIGVuZGNvZGVCbG9jayAlfVxyXG4gKi9cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBDbGlwTW9kZSA9ICdDbGlwJyB8ICdFbGxpcHNpcycgfCAnRWxsaXBzaXNXaXRoVG9vbHRpcCc7XHJcblxyXG4vKipcclxuICogRGVmaW5lIG9wdGlvbnMgZm9yIGN1c3RvbSBjb21tYW5kIGJ1dHRvbnMuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRNb2RlbCB7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIHRoZSBjb21tYW5kIEJ1dHRvbiB0b29sdGlwXHJcbiAgICovXHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIHRoZSBjb21tYW5kIEJ1dHRvbiB0eXBlXHJcbiAgICpcclxuICAgKiBAYmxhem9yRGVmYXVsdFZhbHVlIG5vbmVcclxuICAgKi9cclxuICB0eXBlPzogQ29tbWFuZEJ1dHRvblR5cGU7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIHRoZSBidXR0b24gbW9kZWxcclxuICAgKi9cclxuICAvLyBidXR0b25PcHRpb24/OiBDb21tYW5kQnV0dG9uT3B0aW9ucztcclxufVxyXG5cclxuLyoqXHJcbiAqIERlZmluZXMgdGhlIENvbW1hbmQgQnV0dG9ucyB0eXBlLlxyXG4gKiBgYGBwcm9wc1xyXG4gKiAqIE5vbmUgOi0gIEVkaXQgdGhlIGN1cnJlbnQgcmVjb3JkLlxyXG4gKiAqIEVkaXQgOi0gIEVkaXQgdGhlIGN1cnJlbnQgcmVjb3JkLlxyXG4gKiAqIERlbGV0ZSA6LSBEZWxldGUgdGhlIGN1cnJlbnQgcmVjb3JkLlxyXG4gKiAqIFNhdmUgOi0gU2F2ZSB0aGUgY3VycmVudCBlZGl0ZWQgcmVjb3JkLlxyXG4gKiAqIENhbmNlbCA6LSBDYW5jZWwgdGhlIGVkaXRlZCBzdGF0ZS5cclxuICogYGBgXHJcbiAqL1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIENvbW1hbmRCdXR0b25UeXBlID0gJ05vbmUnIHwgJ0VkaXQnIHwgJ0RlbGV0ZScgfCAnU2F2ZScgfCAnQ2FuY2VsJztcclxuXHJcbi8qKlxyXG4gKiBEZWZpbmVzIGZyZWV6ZSBkaXJlY3Rpb24gb2YgdGhlIGdyaWQgY29sdW1uc1xyXG4gKiBgYGBwcm9wc1xyXG4gKiAqIExlZnQgOi0gZnJlZXplIHRoZSBjb2x1bW5zIGF0IGxlZnQuXHJcbiAqICogUmlnaHQgOi0gZnJlZXplIHRoZSBjb2x1bW5zIGF0IHJpZ2h0LlxyXG4gKiAqIEZpeGVkIDotIGZyZWV6ZSB0aGUgY29sdW1ucyBhdCBjZW50ZXIuXHJcbiAqICogTm9uZSA6LSBkb2VzIG5vdCBmcmVlemUgYW55IGNvbHVtbnMuXHJcbiAqIGBgYFxyXG4gKi9cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBmcmVlemVEaXJlY3Rpb24gPSAnTGVmdCcgfCAnUmlnaHQnIHwgJ0ZpeGVkJyB8ICdOb25lJztcclxuXHJcbi8qKlxyXG4gKiBEZWZpbmVzIHRoZSBFZGl0IFR5cGUgb2YgdGhlIGNvbHVtblxyXG4gKiBgYGBwcm9wc1xyXG4gKiAqIERlZmF1bHRFZGl0IDotIERlZmluZXMgRWRpdFR5cGUgYXMgRGVmYXVsdEVkaXRcclxuICogKiBEcm9wZG93bkVkaXQgOi0gRGVmaW5lcyBFZGl0TW9kZSBhcyBEcm9wZG93bmVkaXRcclxuICogKiBCb29sZWFuRWRpdCA6LSBEZWZpbmVzIEVkaXRNb2RlIGFzIEJvb2xlYW5lZGl0XHJcbiAqICogRGF0ZXBpY2tlckVkaXQgOi0gRGVmaW5lcyBFZGl0TW9kZSBhcyBEYXRlcGlja2VyZWRpdFxyXG4gKiAqIERhdGV0aW1lcGlja2VyRWRpdCA6LSBEZWZpbmVzIEVkaXRUeXBlIGFzIERhdGV0aW1lcGlja2VyZWRpdFxyXG4gKiAqIE51bWVyaWNFZGl0IDotIERlZmluZXMgRWRpdE1vZGUgYXMgTnVtZXJpY2VkaXRcclxuICogYGBgXHJcbiAqL1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEVkaXRUeXBlID0gJ2RlZmF1bHRFZGl0JyB8ICdkcm9wRG93bkVkaXQnIHwgJ2Jvb2xlYW5FZGl0JyB8ICdkYXRlUGlja2VyRWRpdCcgfCAnZGF0ZVRpbWVQaWNrZXJFZGl0JyB8ICdudW1lcmljRWRpdCc7XHJcblxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnSW5mby5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9vcmdJbmZvLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVjb3JkSW5mbyB9IGZyb20gXCIuL2NvbW1vbi5pbnRlcmZhY2VcIlxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ0luZm9SZXNwb25zZSB7XG4gICAgUmVxdWVzdElkOiBzdHJpbmdcbiAgICBJc1N1Y2Nlc3M6IGJvb2xlYW5cbiAgICBSZXN1bHQ6IFJlc3VsdFtdXG4gICAgU3RhdHVzQ29kZTogc3RyaW5nXG4gICAgUmVjb3JkQWZmZWN0dGVkOiBudW1iZXJcbiAgICBUb3RhbFJlY29yZHM6IG51bWJlclxuICAgIFRvdGFsRXhlY3V0aW9uVGltZTogbnVtYmVyXG4gICAgTG9nOiBzdHJpbmdbXVxuICAgIEVycm9yczogYW55W11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXN1bHQge1xuICAgIFJlY29yZEluZm86IFJlY29yZEluZm9cbiAgICBMb2NhbGVTZXR0aW5nczogc3RyaW5nXG4gICAgT3JnYW5pemF0aW9uTmFtZTogc3RyaW5nXG4gICAgSUQ6IHN0cmluZ1xuICAgIFByaW1hcnlDb250YWN0OiBhbnlcbiAgICBBZGRyZXNzOiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmZvIHtcbiAgICBGYXZJY29uOiBzdHJpbmcsXG4gICAgT3JnX0JyYW5kX0NvbG9yOiBzdHJpbmcsXG4gICAgT3JnX0xvZ286IHN0cmluZyxcbiAgICBPcmdfTWVudV9Mb2dvOiBzdHJpbmcsXG4gICAgU2hvd1NpZ25VcDogc3RyaW5nLFxuICAgIFRhZ0xpbmU6IHN0cmluZyxcbiAgICBwcm9maWxlU2NyZWVuSUQ6IHN0cmluZyxcbiAgICB3b3JrRmxvd05hbWU6IHN0cmluZyxcbiAgICBPcmdhbml6YXRpb25OYW1lOiBzdHJpbmdcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnSW5mby5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9vcmdJbmZvLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVjb3JkSW5mbyB9IGZyb20gXCIuL2NvbW1vbi5pbnRlcmZhY2VcIlxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcmdJbmZvUmVzcG9uc2Uge1xyXG4gICAgUmVxdWVzdElkOiBzdHJpbmdcclxuICAgIElzU3VjY2VzczogYm9vbGVhblxyXG4gICAgUmVzdWx0OiBSZXN1bHRbXVxyXG4gICAgU3RhdHVzQ29kZTogc3RyaW5nXHJcbiAgICBSZWNvcmRBZmZlY3R0ZWQ6IG51bWJlclxyXG4gICAgVG90YWxSZWNvcmRzOiBudW1iZXJcclxuICAgIFRvdGFsRXhlY3V0aW9uVGltZTogbnVtYmVyXHJcbiAgICBMb2c6IHN0cmluZ1tdXHJcbiAgICBFcnJvcnM6IGFueVtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVzdWx0IHtcclxuICAgIFJlY29yZEluZm86IFJlY29yZEluZm9cclxuICAgIExvY2FsZVNldHRpbmdzOiBzdHJpbmdcclxuICAgIE9yZ2FuaXphdGlvbk5hbWU6IHN0cmluZ1xyXG4gICAgSUQ6IHN0cmluZ1xyXG4gICAgUHJpbWFyeUNvbnRhY3Q6IGFueVxyXG4gICAgQWRkcmVzczogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW5mbyB7XHJcbiAgICBGYXZJY29uOiBzdHJpbmcsXHJcbiAgICBPcmdfQnJhbmRfQ29sb3I6IHN0cmluZyxcclxuICAgIE9yZ19Mb2dvOiBzdHJpbmcsXHJcbiAgICBPcmdfTWVudV9Mb2dvOiBzdHJpbmcsXHJcbiAgICBTaG93U2lnblVwOiBzdHJpbmcsXHJcbiAgICBUYWdMaW5lOiBzdHJpbmcsXHJcbiAgICBwcm9maWxlU2NyZWVuSUQ6IHN0cmluZyxcclxuICAgIHdvcmtGbG93TmFtZTogc3RyaW5nLFxyXG4gICAgT3JnYW5pemF0aW9uTmFtZTogc3RyaW5nXHJcbn0iXX0=
@@ -5,4 +5,4 @@ export var MetadataEntityType;
5
5
  MetadataEntityType["DATA_SOURCE_QUERIES"] = "DataSourceQueries";
6
6
  MetadataEntityType["APP_SCREENS"] = "AppScreens";
7
7
  })(MetadataEntityType || (MetadataEntityType = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL3NjaGVtYS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBLE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIsZ0RBQTBCLENBQUE7SUFDMUIsOENBQXdCLENBQUE7SUFDeEIsK0RBQXlDLENBQUE7SUFDekMsZ0RBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUxXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFLN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNjaGVtYVJlc3BvbnNlIHtcbiAgUmVxdWVzdElkOiBzdHJpbmdcbiAgSXNTdWNjZXNzOiBib29sZWFuXG4gIFJlc3VsdDogc3RyaW5nXG4gIFN0YXR1c0NvZGU6IHN0cmluZ1xuICBSZWNvcmRBZmZlY3R0ZWQ6IG51bWJlclxuICBUb3RhbFJlY29yZHM6IG51bWJlclxuICBUb3RhbEV4ZWN1dGlvblRpbWU6IG51bWJlclxuICBMb2c6IGFueVtdXG4gIEVycm9yczogYW55W11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcmdJbmZvIHtcbiAgSUQ6IHN0cmluZztcbiAgT3JnYW5pemF0aW9uTmFtZTogc3RyaW5nO1xuICBQcmltYXJ5Q29udGFjdDogYW55O1xuICBBZGRyZXNzOiBhbnk7XG4gIExvY2FsZVNldHRpbmdzOiBzdHJpbmcgfCBudWxsO1xuICBTdWJkb21haW46IHN0cmluZztcbiAgVGVuYW50Q29kZTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGVudW0gTWV0YWRhdGFFbnRpdHlUeXBlIHtcbiAgQVBQX09CSkVDVFMgPSAnQXBwT2JqZWN0cycsXG4gIEFQUF9GSUVMRFMgPSAnQXBwRmllbGRzJyxcbiAgREFUQV9TT1VSQ0VfUVVFUklFUyA9ICdEYXRhU291cmNlUXVlcmllcycsXG4gIEFQUF9TQ1JFRU5TID0gJ0FwcFNjcmVlbnMnXG59Il19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL3NjaGVtYS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBLE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIsZ0RBQTBCLENBQUE7SUFDMUIsOENBQXdCLENBQUE7SUFDeEIsK0RBQXlDLENBQUE7SUFDekMsZ0RBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUxXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFLN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNjaGVtYVJlc3BvbnNlIHtcclxuICBSZXF1ZXN0SWQ6IHN0cmluZ1xyXG4gIElzU3VjY2VzczogYm9vbGVhblxyXG4gIFJlc3VsdDogc3RyaW5nXHJcbiAgU3RhdHVzQ29kZTogc3RyaW5nXHJcbiAgUmVjb3JkQWZmZWN0dGVkOiBudW1iZXJcclxuICBUb3RhbFJlY29yZHM6IG51bWJlclxyXG4gIFRvdGFsRXhlY3V0aW9uVGltZTogbnVtYmVyXHJcbiAgTG9nOiBhbnlbXVxyXG4gIEVycm9yczogYW55W11cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcmdJbmZvIHtcclxuICBJRDogc3RyaW5nO1xyXG4gIE9yZ2FuaXphdGlvbk5hbWU6IHN0cmluZztcclxuICBQcmltYXJ5Q29udGFjdDogYW55O1xyXG4gIEFkZHJlc3M6IGFueTtcclxuICBMb2NhbGVTZXR0aW5nczogc3RyaW5nIHwgbnVsbDtcclxuICBTdWJkb21haW46IHN0cmluZztcclxuICBUZW5hbnRDb2RlOiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBNZXRhZGF0YUVudGl0eVR5cGUge1xyXG4gIEFQUF9PQkpFQ1RTID0gJ0FwcE9iamVjdHMnLFxyXG4gIEFQUF9GSUVMRFMgPSAnQXBwRmllbGRzJyxcclxuICBEQVRBX1NPVVJDRV9RVUVSSUVTID0gJ0RhdGFTb3VyY2VRdWVyaWVzJyxcclxuICBBUFBfU0NSRUVOUyA9ICdBcHBTY3JlZW5zJ1xyXG59Il19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy91c2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VyIHtcbiAgaWQ6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgYmlvOiBzdHJpbmc7XG4gIGltYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJlc3BvbnNlIHtcbiAgdXNlcjogVXNlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU3RvcmUge1xuICBpZDogYW55XG4gIGVtYWlsOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGF2YXRhcjogc3RyaW5nXG4gIHN0YXR1czogc3RyaW5nXG4gIHRva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dpblJlc3BvbnNlIHtcbiAgUmVxdWVzdElkOiBzdHJpbmdcbiAgSXNTdWNjZXNzOiBib29sZWFuXG4gIFJlc3VsdDogUmVzdWx0XG4gIFN0YXR1c0NvZGU6IHN0cmluZ1xuICBSZWNvcmRBZmZlY3R0ZWQ6IG51bWJlclxuICBUb3RhbFJlY29yZHM6IG51bWJlclxuICBUb3RhbEV4ZWN1dGlvblRpbWU6IG51bWJlclxuICBMb2c6IGFueVtdXG4gIEVycm9yczogYW55W11cbn1cblxuIGludGVyZmFjZSBSZXN1bHQge1xuICB1c2VyOiBVc2VyXG4gIFRva2VuOiBzdHJpbmdcbiAgUmVmcmVzaFRva2VuOiBzdHJpbmdcbiAgU3VjY2VzczogYm9vbGVhblxuICBFcnJvcnM6IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXIge1xuICBJZDogYW55XG4gIFBlcnNvbkRhdGE6IFBlcnNvbkRhdGFcbiAgVXNlck5hbWU6IHN0cmluZ1xuICBUZWFtczogYW55XG4gIFJvbGVzOiBSb2xlW11cbiAgT3JnRGV0YWlsczogYW55XG4gIE1haWxpbmdBZGRyZXNzOiBhbnlcbiAgTG9jYWxlOiBhbnlcbiAgQXR0cmlidXRlczogQXR0cmlidXRlc1xufVxuXG4gaW50ZXJmYWNlIFBlcnNvbkRhdGEge1xuICBGaXJzdE5hbWU6IHN0cmluZ1xuICBNaWRkbGVOYW1lOiBhbnlcbiAgUHJvZmlsZUltYWdlVVJMOiBhbnlcbiAgTGFzdE5hbWU6IHN0cmluZ1xuICBFbWFpbElEOiBhbnlcbiAgQ29udGFjdHM6IGFueVxuICBOb3RpZmljYXRpb25EZXRhaWxzOiBzdHJpbmdcbn1cblxuIGludGVyZmFjZSBSb2xlIHtcbiAgSUQ6IHN0cmluZ1xuICBSb2xlTmFtZTogc3RyaW5nXG4gIERlc2NyaXB0aW9uOiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVzIHtcbiAgSXNFbmFibGVkOiBzdHJpbmdcbiAgTG9jYWxlU2V0dGluZ3M6IGFueVxuICBMYXN0TG9naW5UaW1lOiBzdHJpbmdcbiAgUGVyc29uSWQ6IHN0cmluZ1xuICBJZDogc3RyaW5nXG4gIFVzZXJOYW1lOiBzdHJpbmdcbiAgTm9ybWFsaXplZFVzZXJOYW1lOiBzdHJpbmdcbiAgRW1haWw6IHN0cmluZ1xuICBOb3JtYWxpemVkRW1haWw6IHN0cmluZ1xuICBFbWFpbENvbmZpcm1lZDogc3RyaW5nXG4gIFBhc3N3b3JkSGFzaDogc3RyaW5nXG4gIFNlY3VyaXR5U3RhbXA6IHN0cmluZ1xuICBDb25jdXJyZW5jeVN0YW1wOiBzdHJpbmdcbiAgUGhvbmVOdW1iZXI6IGFueVxuICBQaG9uZU51bWJlckNvbmZpcm1lZDogc3RyaW5nXG4gIFR3b0ZhY3RvckVuYWJsZWQ6IHN0cmluZ1xuICBMb2Nrb3V0RW5kOiBhbnlcbiAgTG9ja291dEVuYWJsZWQ6IHN0cmluZ1xuICBBY2Nlc3NGYWlsZWRDb3VudDogc3RyaW5nXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy91c2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VyIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgdG9rZW46IHN0cmluZztcclxuICB1c2VybmFtZTogc3RyaW5nO1xyXG4gIGJpbzogc3RyaW5nO1xyXG4gIGltYWdlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJlc3BvbnNlIHtcclxuICB1c2VyOiBVc2VyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJTdG9yZSB7XHJcbiAgaWQ6IGFueVxyXG4gIGVtYWlsOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBhdmF0YXI6IHN0cmluZ1xyXG4gIHN0YXR1czogc3RyaW5nXHJcbiAgdG9rZW46IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luUmVzcG9uc2Uge1xyXG4gIFJlcXVlc3RJZDogc3RyaW5nXHJcbiAgSXNTdWNjZXNzOiBib29sZWFuXHJcbiAgUmVzdWx0OiBSZXN1bHRcclxuICBTdGF0dXNDb2RlOiBzdHJpbmdcclxuICBSZWNvcmRBZmZlY3R0ZWQ6IG51bWJlclxyXG4gIFRvdGFsUmVjb3JkczogbnVtYmVyXHJcbiAgVG90YWxFeGVjdXRpb25UaW1lOiBudW1iZXJcclxuICBMb2c6IGFueVtdXHJcbiAgRXJyb3JzOiBhbnlbXVxyXG59XHJcblxyXG4gaW50ZXJmYWNlIFJlc3VsdCB7XHJcbiAgdXNlcjogVXNlclxyXG4gIFRva2VuOiBzdHJpbmdcclxuICBSZWZyZXNoVG9rZW46IHN0cmluZ1xyXG4gIFN1Y2Nlc3M6IGJvb2xlYW5cclxuICBFcnJvcnM6IGFueVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXIge1xyXG4gIElkOiBhbnlcclxuICBQZXJzb25EYXRhOiBQZXJzb25EYXRhXHJcbiAgVXNlck5hbWU6IHN0cmluZ1xyXG4gIFRlYW1zOiBhbnlcclxuICBSb2xlczogUm9sZVtdXHJcbiAgT3JnRGV0YWlsczogYW55XHJcbiAgTWFpbGluZ0FkZHJlc3M6IGFueVxyXG4gIExvY2FsZTogYW55XHJcbiAgQXR0cmlidXRlczogQXR0cmlidXRlc1xyXG59XHJcblxyXG4gaW50ZXJmYWNlIFBlcnNvbkRhdGEge1xyXG4gIEZpcnN0TmFtZTogc3RyaW5nXHJcbiAgTWlkZGxlTmFtZTogYW55XHJcbiAgUHJvZmlsZUltYWdlVVJMOiBhbnlcclxuICBMYXN0TmFtZTogc3RyaW5nXHJcbiAgRW1haWxJRDogYW55XHJcbiAgQ29udGFjdHM6IGFueVxyXG4gIE5vdGlmaWNhdGlvbkRldGFpbHM6IHN0cmluZ1xyXG59XHJcblxyXG4gaW50ZXJmYWNlIFJvbGUge1xyXG4gIElEOiBzdHJpbmdcclxuICBSb2xlTmFtZTogc3RyaW5nXHJcbiAgRGVzY3JpcHRpb246IGFueVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZXMge1xyXG4gIElzRW5hYmxlZDogc3RyaW5nXHJcbiAgTG9jYWxlU2V0dGluZ3M6IGFueVxyXG4gIExhc3RMb2dpblRpbWU6IHN0cmluZ1xyXG4gIFBlcnNvbklkOiBzdHJpbmdcclxuICBJZDogc3RyaW5nXHJcbiAgVXNlck5hbWU6IHN0cmluZ1xyXG4gIE5vcm1hbGl6ZWRVc2VyTmFtZTogc3RyaW5nXHJcbiAgRW1haWw6IHN0cmluZ1xyXG4gIE5vcm1hbGl6ZWRFbWFpbDogc3RyaW5nXHJcbiAgRW1haWxDb25maXJtZWQ6IHN0cmluZ1xyXG4gIFBhc3N3b3JkSGFzaDogc3RyaW5nXHJcbiAgU2VjdXJpdHlTdGFtcDogc3RyaW5nXHJcbiAgQ29uY3VycmVuY3lTdGFtcDogc3RyaW5nXHJcbiAgUGhvbmVOdW1iZXI6IGFueVxyXG4gIFBob25lTnVtYmVyQ29uZmlybWVkOiBzdHJpbmdcclxuICBUd29GYWN0b3JFbmFibGVkOiBzdHJpbmdcclxuICBMb2Nrb3V0RW5kOiBhbnlcclxuICBMb2Nrb3V0RW5hYmxlZDogc3RyaW5nXHJcbiAgQWNjZXNzRmFpbGVkQ291bnQ6IHN0cmluZ1xyXG59XHJcbiJdfQ==
@@ -69,4 +69,4 @@ export class AppFieldModel {
69
69
  return this.raw;
70
70
  }
71
71
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWZpZWxkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9hcHAtZmllbGQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXRELE1BQU0sT0FBTyxhQUFhO0lBNkJ4QixZQUE2QixHQUFRO1FBQVIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUNuQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxFQUFFLENBQUM7UUFDekUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sdUJBQXVCLENBQUMsTUFBVztRQUN6QyxJQUFJLENBQUM7WUFDSCxPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE1BQU0sQ0FBQyxJQUFZO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQ3JGLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxVQUFVLElBQUksR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFUeXBlcyB9IGZyb20gXCIuLi9lbnVtcy9jb250cm9sbGVycy5lbnVtXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlUXVlcnlGaWVsZFR5cGUsIE9iamVjdENyZWF0aW9uVHlwZSB9IGZyb20gXCIuLi9lbnVtcy9kc3EuZW51bVwiO1xuaW1wb3J0IHsgRmllbGRBY2Nlc3MsIEZpZWxkVHlwZSwgTG9va1VwRGV0YWlscyB9IGZyb20gXCIuL2RhdGEtc291cmNlLXF1ZXJpZXMuY2xhc3NcIjtcblxuZXhwb3J0IGNsYXNzIEFwcEZpZWxkTW9kZWwge1xuICByZWFkb25seSBJRDogc3RyaW5nO1xuICByZWFkb25seSBPYmplY3RJRDogc3RyaW5nIHwgbnVsbDtcbiAgcmVhZG9ubHkgT2JqZWN0SURfVG9zYXZlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IEZpZWxkTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBEaXNwbGF5TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBEZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBGaWVsZFR5cGU6IEZpZWxkVHlwZTtcbiAgcmVhZG9ubHkgQ3JlYXRpb25UeXBlOiBPYmplY3RDcmVhdGlvblR5cGU7XG4gIHJlYWRvbmx5IEZpZWxkQmFzZTogRGF0YVNvdXJjZVF1ZXJ5RmllbGRUeXBlO1xuICByZWFkb25seSBJc1JlcXVpcmVkOiBib29sZWFuO1xuICByZWFkb25seSBJc1VuaXF1ZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgQmFzZUZpZWxkOiBzdHJpbmcgfCBudWxsO1xuICByZWFkb25seSBJc1NlYXJjaGFibGU6IGJvb2xlYW47XG4gIHJlYWRvbmx5IElzVXBkYXRhYmxlOiBib29sZWFuO1xuICByZWFkb25seSBJc0NvbmZpZGVudGlhbDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgU3lzdGVtREJGaWVsZE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgSXNTeXN0ZW06IGJvb2xlYW47XG4gIHJlYWRvbmx5IElzVmlzaWJsZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgSXNQcmltYXJ5S2V5OiBib29sZWFuO1xuICByZWFkb25seSBJc0RlcHJlY2F0ZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IElzRGlzcGxheUZpZWxkOiBib29sZWFuO1xuICByZWFkb25seSBMb29rVXBEZXRhaWxzOiBMb29rVXBEZXRhaWxzO1xuICByZWFkb25seSBJc0xvb2t1cDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgQWNjZXNzTGlzdDogRmllbGRBY2Nlc3NbXTtcbiAgcmVhZG9ubHkgRGF0YTogc3RyaW5nIHwgbnVsbDtcbiAgcmVhZG9ubHkgRmllbGRDb25maWd1cmF0aW9uOiBhbnk7XG4gIHJlYWRvbmx5IEZpZWxkVmFsaWRhdG9yQ29uZmlndXJhdGlvbjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmF3OiBhbnkpIHtcbiAgICB0aGlzLklEID0gcmF3LklEO1xuICAgIHRoaXMuT2JqZWN0SUQgPSByYXcuT2JqZWN0SUQgPz8gbnVsbDtcbiAgICB0aGlzLk9iamVjdElEX1Rvc2F2ZSA9IHJhdy5PYmplY3RJRF9Ub3NhdmU7XG4gICAgdGhpcy5GaWVsZE5hbWUgPSByYXcuRmllbGROYW1lO1xuICAgIHRoaXMuRGlzcGxheU5hbWUgPSByYXcuRGlzcGxheU5hbWU7XG4gICAgdGhpcy5EZXNjcmlwdGlvbiA9IHJhdy5EZXNjcmlwdGlvbiA/PyAnJztcbiAgICB0aGlzLkZpZWxkVHlwZSA9IHJhdy5GaWVsZFR5cGU7XG4gICAgdGhpcy5DcmVhdGlvblR5cGUgPSByYXcuQ3JlYXRpb25UeXBlO1xuICAgIHRoaXMuRmllbGRCYXNlID0gcmF3LkZpZWxkQmFzZTtcbiAgICB0aGlzLkJhc2VGaWVsZCA9IHJhdy5CYXNlRmllbGQgPz8gbnVsbDtcbiAgICB0aGlzLklzUmVxdWlyZWQgPSAhIXJhdy5Jc1JlcXVpcmVkO1xuICAgIHRoaXMuSXNVbmlxdWUgPSAhIXJhdy5Jc1VuaXF1ZTtcbiAgICB0aGlzLklzU2VhcmNoYWJsZSA9ICEhcmF3LklzU2VhcmNoYWJsZTtcbiAgICB0aGlzLklzVXBkYXRhYmxlID0gISFyYXcuSXNVcGRhdGFibGU7XG4gICAgdGhpcy5Jc0NvbmZpZGVudGlhbCA9ICEhcmF3LklzQ29uZmlkZW50aWFsO1xuICAgIHRoaXMuU3lzdGVtREJGaWVsZE5hbWUgPSByYXcuU3lzdGVtREJGaWVsZE5hbWU7XG4gICAgdGhpcy5Jc1N5c3RlbSA9ICEhcmF3LklzU3lzdGVtO1xuICAgIHRoaXMuSXNWaXNpYmxlID0gISFyYXcuSXNWaXNpYmxlO1xuICAgIHRoaXMuSXNQcmltYXJ5S2V5ID0gISFyYXcuSXNQcmltYXJ5S2V5O1xuICAgIHRoaXMuSXNEZXByZWNhdGVkID0gISFyYXcuSXNEZXByZWNhdGVkO1xuICAgIHRoaXMuSXNEaXNwbGF5RmllbGQgPSAhIXJhdy5Jc0Rpc3BsYXlGaWVsZDtcbiAgICB0aGlzLkxvb2tVcERldGFpbHMgPSByYXcuTG9va1VwRGV0YWlscyA/PyBudWxsO1xuICAgIHRoaXMuSXNMb29rdXAgPSAhIXJhdy5Mb29rVXBEZXRhaWxzO1xuICAgIHRoaXMuQWNjZXNzTGlzdCA9IHJhdy5BY2Nlc3NMaXN0ID8/IFtdO1xuICAgIHRoaXMuRGF0YSA9IHJhdy5EYXRhID8/IG51bGw7XG4gICAgdGhpcy5GaWVsZFZhbGlkYXRvckNvbmZpZ3VyYXRpb24gPSByYXcuRmllbGRWYWxpZGF0b3JDb25maWd1cmF0aW9uID8/IHt9O1xuICAgIHRoaXMuRmllbGRDb25maWd1cmF0aW9uID0gdGhpcy5wYXJzZUZpZWxkQ29uZmlndXJhdGlvbihyYXcuRmllbGRDb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VGaWVsZENvbmZpZ3VyYXRpb24oY29uZmlnOiBhbnkpOiBhbnkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGNvbmZpZykgOiAoY29uZmlnID8/IHt9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGF0YSB0eXBlIG5hbWUgb2YgdGhlIGZpZWxkIGFzIGEgc3RyaW5nLlxuICAgKiBUaGUgZGF0YSB0eXBlIG5hbWUgaXMgb2J0YWluZWQgZnJvbSB0aGUgRGF0YVR5cGVzIGVudW0uXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBkYXRhIHR5cGUgbmFtZS5cbiAgICovXG4gIGdldCBkYXRhVHlwZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRGF0YVR5cGVzW3RoaXMuRmllbGRUeXBlPy5EYXRhVHlwZV0gPz8gJyc7XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoZXMgZm9yIHRoZSBnaXZlbiBzZWFyY2ggdGVybSBpbiB0aGUgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBBcHBGaWVsZE1vZGVsIGluc3RhbmNlLlxuICAgKiBUaGUgc2VhcmNoIGlzIGNhc2UtaW5zZW5zaXRpdmUgYW5kIGlzIHBlcmZvcm1lZCBvbiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gICAqIC0gSURcbiAgICogLSBGaWVsZE5hbWVcbiAgICogLSBEaXNwbGF5TmFtZVxuICAgKiAtIFN5c3RlbURCRmllbGROYW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXJtIFRoZSBzZWFyY2ggdGVybS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIHNlYXJjaCB0ZXJtIGlzIHByZXNlbnQgaW4gYW55IG9mIHRoZSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgc2VhcmNoKHRlcm06IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlYXJjaFRlcm0gPSB0ZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIFt0aGlzLklELnRvTG93ZXJDYXNlKCksIHRoaXMuRmllbGROYW1lLCB0aGlzLkRpc3BsYXlOYW1lLCB0aGlzLlN5c3RlbURCRmllbGROYW1lXVxuICAgICAgLnNvbWUodmFsID0+IHZhbCA9PT0gc2VhcmNoVGVybSB8fCB2YWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBBcHBGaWVsZE1vZGVsIGluc3RhbmNlIHRvIGEgSlNPTiByZXByZXNlbnRhdGlvbi5cbiAgICogQHJldHVybnMge2FueX0gVGhlIHJhdyBkYXRhIG9mIHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIHRvSlNPTigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJhdztcbiAgfVxufSJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWZpZWxkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9hcHAtZmllbGQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXRELE1BQU0sT0FBTyxhQUFhO0lBNkJ4QixZQUE2QixHQUFRO1FBQVIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUNuQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxFQUFFLENBQUM7UUFDekUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sdUJBQXVCLENBQUMsTUFBVztRQUN6QyxJQUFJLENBQUM7WUFDSCxPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE1BQU0sQ0FBQyxJQUFZO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQ3JGLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxVQUFVLElBQUksR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFUeXBlcyB9IGZyb20gXCIuLi9lbnVtcy9jb250cm9sbGVycy5lbnVtXCI7XHJcbmltcG9ydCB7IERhdGFTb3VyY2VRdWVyeUZpZWxkVHlwZSwgT2JqZWN0Q3JlYXRpb25UeXBlIH0gZnJvbSBcIi4uL2VudW1zL2RzcS5lbnVtXCI7XHJcbmltcG9ydCB7IEZpZWxkQWNjZXNzLCBGaWVsZFR5cGUsIExvb2tVcERldGFpbHMgfSBmcm9tIFwiLi9kYXRhLXNvdXJjZS1xdWVyaWVzLmNsYXNzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQXBwRmllbGRNb2RlbCB7XHJcbiAgcmVhZG9ubHkgSUQ6IHN0cmluZztcclxuICByZWFkb25seSBPYmplY3RJRDogc3RyaW5nIHwgbnVsbDtcclxuICByZWFkb25seSBPYmplY3RJRF9Ub3NhdmU6IHN0cmluZztcclxuICByZWFkb25seSBGaWVsZE5hbWU6IHN0cmluZztcclxuICByZWFkb25seSBEaXNwbGF5TmFtZTogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IERlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgRmllbGRUeXBlOiBGaWVsZFR5cGU7XHJcbiAgcmVhZG9ubHkgQ3JlYXRpb25UeXBlOiBPYmplY3RDcmVhdGlvblR5cGU7XHJcbiAgcmVhZG9ubHkgRmllbGRCYXNlOiBEYXRhU291cmNlUXVlcnlGaWVsZFR5cGU7XHJcbiAgcmVhZG9ubHkgSXNSZXF1aXJlZDogYm9vbGVhbjtcclxuICByZWFkb25seSBJc1VuaXF1ZTogYm9vbGVhbjtcclxuICByZWFkb25seSBCYXNlRmllbGQ6IHN0cmluZyB8IG51bGw7XHJcbiAgcmVhZG9ubHkgSXNTZWFyY2hhYmxlOiBib29sZWFuO1xyXG4gIHJlYWRvbmx5IElzVXBkYXRhYmxlOiBib29sZWFuO1xyXG4gIHJlYWRvbmx5IElzQ29uZmlkZW50aWFsOiBib29sZWFuO1xyXG4gIHJlYWRvbmx5IFN5c3RlbURCRmllbGROYW1lOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgSXNTeXN0ZW06IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgSXNWaXNpYmxlOiBib29sZWFuO1xyXG4gIHJlYWRvbmx5IElzUHJpbWFyeUtleTogYm9vbGVhbjtcclxuICByZWFkb25seSBJc0RlcHJlY2F0ZWQ6IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgSXNEaXNwbGF5RmllbGQ6IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgTG9va1VwRGV0YWlsczogTG9va1VwRGV0YWlscztcclxuICByZWFkb25seSBJc0xvb2t1cDogYm9vbGVhbjtcclxuICByZWFkb25seSBBY2Nlc3NMaXN0OiBGaWVsZEFjY2Vzc1tdO1xyXG4gIHJlYWRvbmx5IERhdGE6IHN0cmluZyB8IG51bGw7XHJcbiAgcmVhZG9ubHkgRmllbGRDb25maWd1cmF0aW9uOiBhbnk7XHJcbiAgcmVhZG9ubHkgRmllbGRWYWxpZGF0b3JDb25maWd1cmF0aW9uOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmF3OiBhbnkpIHtcclxuICAgIHRoaXMuSUQgPSByYXcuSUQ7XHJcbiAgICB0aGlzLk9iamVjdElEID0gcmF3Lk9iamVjdElEID8/IG51bGw7XHJcbiAgICB0aGlzLk9iamVjdElEX1Rvc2F2ZSA9IHJhdy5PYmplY3RJRF9Ub3NhdmU7XHJcbiAgICB0aGlzLkZpZWxkTmFtZSA9IHJhdy5GaWVsZE5hbWU7XHJcbiAgICB0aGlzLkRpc3BsYXlOYW1lID0gcmF3LkRpc3BsYXlOYW1lO1xyXG4gICAgdGhpcy5EZXNjcmlwdGlvbiA9IHJhdy5EZXNjcmlwdGlvbiA/PyAnJztcclxuICAgIHRoaXMuRmllbGRUeXBlID0gcmF3LkZpZWxkVHlwZTtcclxuICAgIHRoaXMuQ3JlYXRpb25UeXBlID0gcmF3LkNyZWF0aW9uVHlwZTtcclxuICAgIHRoaXMuRmllbGRCYXNlID0gcmF3LkZpZWxkQmFzZTtcclxuICAgIHRoaXMuQmFzZUZpZWxkID0gcmF3LkJhc2VGaWVsZCA/PyBudWxsO1xyXG4gICAgdGhpcy5Jc1JlcXVpcmVkID0gISFyYXcuSXNSZXF1aXJlZDtcclxuICAgIHRoaXMuSXNVbmlxdWUgPSAhIXJhdy5Jc1VuaXF1ZTtcclxuICAgIHRoaXMuSXNTZWFyY2hhYmxlID0gISFyYXcuSXNTZWFyY2hhYmxlO1xyXG4gICAgdGhpcy5Jc1VwZGF0YWJsZSA9ICEhcmF3LklzVXBkYXRhYmxlO1xyXG4gICAgdGhpcy5Jc0NvbmZpZGVudGlhbCA9ICEhcmF3LklzQ29uZmlkZW50aWFsO1xyXG4gICAgdGhpcy5TeXN0ZW1EQkZpZWxkTmFtZSA9IHJhdy5TeXN0ZW1EQkZpZWxkTmFtZTtcclxuICAgIHRoaXMuSXNTeXN0ZW0gPSAhIXJhdy5Jc1N5c3RlbTtcclxuICAgIHRoaXMuSXNWaXNpYmxlID0gISFyYXcuSXNWaXNpYmxlO1xyXG4gICAgdGhpcy5Jc1ByaW1hcnlLZXkgPSAhIXJhdy5Jc1ByaW1hcnlLZXk7XHJcbiAgICB0aGlzLklzRGVwcmVjYXRlZCA9ICEhcmF3LklzRGVwcmVjYXRlZDtcclxuICAgIHRoaXMuSXNEaXNwbGF5RmllbGQgPSAhIXJhdy5Jc0Rpc3BsYXlGaWVsZDtcclxuICAgIHRoaXMuTG9va1VwRGV0YWlscyA9IHJhdy5Mb29rVXBEZXRhaWxzID8/IG51bGw7XHJcbiAgICB0aGlzLklzTG9va3VwID0gISFyYXcuTG9va1VwRGV0YWlscztcclxuICAgIHRoaXMuQWNjZXNzTGlzdCA9IHJhdy5BY2Nlc3NMaXN0ID8/IFtdO1xyXG4gICAgdGhpcy5EYXRhID0gcmF3LkRhdGEgPz8gbnVsbDtcclxuICAgIHRoaXMuRmllbGRWYWxpZGF0b3JDb25maWd1cmF0aW9uID0gcmF3LkZpZWxkVmFsaWRhdG9yQ29uZmlndXJhdGlvbiA/PyB7fTtcclxuICAgIHRoaXMuRmllbGRDb25maWd1cmF0aW9uID0gdGhpcy5wYXJzZUZpZWxkQ29uZmlndXJhdGlvbihyYXcuRmllbGRDb25maWd1cmF0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VGaWVsZENvbmZpZ3VyYXRpb24oY29uZmlnOiBhbnkpOiBhbnkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShjb25maWcpIDogKGNvbmZpZyA/PyB7fSk7XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZGF0YSB0eXBlIG5hbWUgb2YgdGhlIGZpZWxkIGFzIGEgc3RyaW5nLlxyXG4gICAqIFRoZSBkYXRhIHR5cGUgbmFtZSBpcyBvYnRhaW5lZCBmcm9tIHRoZSBEYXRhVHlwZXMgZW51bS5cclxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZGF0YSB0eXBlIG5hbWUuXHJcbiAgICovXHJcbiAgZ2V0IGRhdGFUeXBlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIERhdGFUeXBlc1t0aGlzLkZpZWxkVHlwZT8uRGF0YVR5cGVdID8/ICcnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoZXMgZm9yIHRoZSBnaXZlbiBzZWFyY2ggdGVybSBpbiB0aGUgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBBcHBGaWVsZE1vZGVsIGluc3RhbmNlLlxyXG4gICAqIFRoZSBzZWFyY2ggaXMgY2FzZS1pbnNlbnNpdGl2ZSBhbmQgaXMgcGVyZm9ybWVkIG9uIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcclxuICAgKiAtIElEXHJcbiAgICogLSBGaWVsZE5hbWVcclxuICAgKiAtIERpc3BsYXlOYW1lXHJcbiAgICogLSBTeXN0ZW1EQkZpZWxkTmFtZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXJtIFRoZSBzZWFyY2ggdGVybS5cclxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgc2VhcmNoIHRlcm0gaXMgcHJlc2VudCBpbiBhbnkgb2YgdGhlIHByb3BlcnRpZXMuXHJcbiAgICovXHJcbiAgc2VhcmNoKHRlcm06IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgc2VhcmNoVGVybSA9IHRlcm0udG9Mb3dlckNhc2UoKTtcclxuICAgIHJldHVybiBbdGhpcy5JRC50b0xvd2VyQ2FzZSgpLCB0aGlzLkZpZWxkTmFtZSwgdGhpcy5EaXNwbGF5TmFtZSwgdGhpcy5TeXN0ZW1EQkZpZWxkTmFtZV1cclxuICAgICAgLnNvbWUodmFsID0+IHZhbCA9PT0gc2VhcmNoVGVybSB8fCB2YWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydHMgdGhlIEFwcEZpZWxkTW9kZWwgaW5zdGFuY2UgdG8gYSBKU09OIHJlcHJlc2VudGF0aW9uLlxyXG4gICAqIEByZXR1cm5zIHthbnl9IFRoZSByYXcgZGF0YSBvZiB0aGUgaW5zdGFuY2UuXHJcbiAgICovXHJcbiAgdG9KU09OKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5yYXc7XHJcbiAgfVxyXG59Il19