@lowcodeunit/applications-flow-common 1.35.3-lets-get-social-ish → 1.35.4-lets-get-social-ish

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.
@@ -11,4 +11,4 @@ export class FeedItemTab {
11
11
  }
12
12
  export class FeedEntry {
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mZWVkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvbW9kZWxzL3VzZXItZmVlZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxZQUFZO0NBTWpEO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0E4QnBCO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtDQVUvQjtBQUVELE1BQU0sT0FBTyxjQUFjO0NBWTFCO0FBRUQsTUFBTSxPQUFPLFdBQVc7Q0FNdkI7QUFFRCxNQUFNLE9BQU8sU0FBUztDQThCbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlUmVzcG9uc2UsIFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIFVzZXJGZWVkUmVzcG9uc2UgZXh0ZW5kcyBCYXNlUmVzcG9uc2Uge1xuICBwdWJsaWMgQWN0aW9uczogQXJyYXk8RmVlZEl0ZW1BY3Rpb24+O1xuXG4gIHB1YmxpYyBJdGVtczogQXJyYXk8RmVlZEl0ZW0+O1xuXG4gIHB1YmxpYyBTb3VyY2VDb250cm9sTG9va3VwczogQXJyYXk8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRJdGVtIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIHB1YmxpYyBBY3Rpb25zOiBBcnJheTxGZWVkSXRlbUFjdGlvbj47XG5cbiAgcHVibGljIEF2YXRhcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBCYWRnZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBDb250cmlidXRvcnM6IEFycmF5PEZlZWRJdGVtQ29udHJpYnV0b3I+O1xuXG4gIHB1YmxpYyBJc1Bpbm5lZDogYm9vbGVhbjtcblxuICBwdWJsaWMgSXNTaG9ydEZvcm06IGJvb2xlYW47XG5cbiAgcHVibGljIFJlZnJlc2hMaW5rOiBzdHJpbmc7XG5cbiAgcHVibGljIFN0YXR1czogU3RhdHVzO1xuXG4gIHB1YmxpYyBTdWJ0ZXh0OiBzdHJpbmc7XG5cbiAgcHVibGljIFN1YnRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIFRhYnM6IEFycmF5PEZlZWRJdGVtVGFiPjtcblxuICBwdWJsaWMgVGltZXN0YW1wOiBEYXRlO1xuXG4gIHB1YmxpYyBUaXRsZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBGZWVkSXRlbUNvbnRyaWJ1dG9yIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIHB1YmxpYyBTdGF0dXM6IHN0cmluZztcblxuICBwdWJsaWMgU3RhdHVzSWNvbjogc3RyaW5nO1xuXG4gIHB1YmxpYyBVc2VySW1hZ2U6IHN0cmluZztcblxuICBwdWJsaWMgVXNlcm5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRJdGVtQWN0aW9uIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIHB1YmxpYyBBY3Rpb246IHN0cmluZztcblxuICBwdWJsaWMgQWN0aW9uVHlwZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBDb2xvcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBJY29uOiBzdHJpbmc7XG5cbiAgcHVibGljIFRleHQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRJdGVtVGFiIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIHB1YmxpYyBEYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIHB1YmxpYyBUaXRsZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRmVlZEVudHJ5IHtcblxucHVibGljIEFjdGlvbkljb246IHN0cmluZzsgXG5cbnB1YmxpYyBBY3Rpb25MaW5rOiBzdHJpbmc7IFxuXG5wdWJsaWMgQWN0aW9uVGV4dDogc3RyaW5nO1xuXG5wdWJsaWMgQXZhdGFyOiBzdHJpbmc7XG5cbnB1YmxpYyBDb250ZW50OiBzdHJpbmc7IFxuXG5wdWJsaWMgRXhwaXJlc0F0OiBEYXRlO1xuXG5wdWJsaWMgT3JnYW5pemF0aW9uOiBzdHJpbmc7IFxuXG5wdWJsaWMgUmVwb3NpdG9yeTogc3RyaW5nOyBcblxucHVibGljIFNvdXJjZUJyYW5jaDogc3RyaW5nO1xuXG5wdWJsaWMgU291cmNlQ29udHJvbExvb2t1cDogc3RyaW5nOyBcblxucHVibGljIFN1YnRpdGxlOiBzdHJpbmc7IFxuXG5wdWJsaWMgVGFyZ2V0QnJhbmNoOiBzdHJpbmc7IFxuXG5wdWJsaWMgVGl0bGU6IHN0cmluZzsgXG5cbnB1YmxpYyBUeXBlOiAgc3RyaW5nOyBcbiAgXG4gIH1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mZWVkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvbW9kZWxzL3VzZXItZmVlZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxZQUFZO0NBTWpEO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0FnQ3BCO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtDQVUvQjtBQUVELE1BQU0sT0FBTyxjQUFjO0NBWTFCO0FBRUQsTUFBTSxPQUFPLFdBQVc7Q0FNdkI7QUFFRCxNQUFNLE9BQU8sU0FBUztDQThCbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlUmVzcG9uc2UsIFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIFVzZXJGZWVkUmVzcG9uc2UgZXh0ZW5kcyBCYXNlUmVzcG9uc2Uge1xuICBwdWJsaWMgQWN0aW9uczogQXJyYXk8RmVlZEl0ZW1BY3Rpb24+O1xuXG4gIHB1YmxpYyBJdGVtczogQXJyYXk8RmVlZEl0ZW0+O1xuXG4gIHB1YmxpYyBTb3VyY2VDb250cm9sTG9va3VwczogQXJyYXk8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRJdGVtIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIHB1YmxpYyBBY3Rpb25zOiBBcnJheTxGZWVkSXRlbUFjdGlvbj47XG5cbiAgcHVibGljIEF2YXRhcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBCYWRnZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBDb250cmlidXRvcnM6IEFycmF5PEZlZWRJdGVtQ29udHJpYnV0b3I+O1xuXG4gIHB1YmxpYyBJRDogc3RyaW5nO1xuXG4gIHB1YmxpYyBJc1Bpbm5lZDogYm9vbGVhbjtcblxuICBwdWJsaWMgSXNTaG9ydEZvcm06IGJvb2xlYW47XG5cbiAgcHVibGljIFJlZnJlc2hMaW5rOiBzdHJpbmc7XG5cbiAgcHVibGljIFN0YXR1czogU3RhdHVzO1xuXG4gIHB1YmxpYyBTdWJ0ZXh0OiBzdHJpbmc7XG5cbiAgcHVibGljIFN1YnRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIFRhYnM6IEFycmF5PEZlZWRJdGVtVGFiPjtcblxuICBwdWJsaWMgVGltZXN0YW1wOiBEYXRlO1xuXG4gIHB1YmxpYyBUaXRsZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBGZWVkSXRlbUNvbnRyaWJ1dG9yIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIHB1YmxpYyBTdGF0dXM6IHN0cmluZztcblxuICBwdWJsaWMgU3RhdHVzSWNvbjogc3RyaW5nO1xuXG4gIHB1YmxpYyBVc2VySW1hZ2U6IHN0cmluZztcblxuICBwdWJsaWMgVXNlcm5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRJdGVtQWN0aW9uIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIHB1YmxpYyBBY3Rpb246IHN0cmluZztcblxuICBwdWJsaWMgQWN0aW9uVHlwZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBDb2xvcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBJY29uOiBzdHJpbmc7XG5cbiAgcHVibGljIFRleHQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZlZWRJdGVtVGFiIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIHB1YmxpYyBEYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIHB1YmxpYyBUaXRsZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRmVlZEVudHJ5IHtcblxucHVibGljIEFjdGlvbkljb246IHN0cmluZzsgXG5cbnB1YmxpYyBBY3Rpb25MaW5rOiBzdHJpbmc7IFxuXG5wdWJsaWMgQWN0aW9uVGV4dDogc3RyaW5nO1xuXG5wdWJsaWMgQXZhdGFyOiBzdHJpbmc7XG5cbnB1YmxpYyBDb250ZW50OiBzdHJpbmc7IFxuXG5wdWJsaWMgRXhwaXJlc0F0OiBEYXRlO1xuXG5wdWJsaWMgT3JnYW5pemF0aW9uOiBzdHJpbmc7IFxuXG5wdWJsaWMgUmVwb3NpdG9yeTogc3RyaW5nOyBcblxucHVibGljIFNvdXJjZUJyYW5jaDogc3RyaW5nO1xuXG5wdWJsaWMgU291cmNlQ29udHJvbExvb2t1cDogc3RyaW5nOyBcblxucHVibGljIFN1YnRpdGxlOiBzdHJpbmc7IFxuXG5wdWJsaWMgVGFyZ2V0QnJhbmNoOiBzdHJpbmc7IFxuXG5wdWJsaWMgVGl0bGU6IHN0cmluZzsgXG5cbnB1YmxpYyBUeXBlOiAgc3RyaW5nOyBcbiAgXG4gIH1cbiJdfQ==
@@ -106,8 +106,8 @@ export class EaCService {
106
106
  async GetActiveEnterprise() {
107
107
  await this.projectService.GetActiveEnterprise(this.State);
108
108
  }
109
- async LoadUserFeed(page, pageSize) {
110
- await this.projectService.LoadUserFeed(page, pageSize, this.State);
109
+ async LoadUserFeed(page, pageSize, forCheck = false) {
110
+ await this.projectService.LoadUserFeed(page, pageSize, forCheck, this.State);
111
111
  }
112
112
  GenerateRoutedApplications(applications) {
113
113
  return this.projectService.GenerateRoutedApplications(applications, this.State);
@@ -121,6 +121,15 @@ export class EaCService {
121
121
  async LoadEnterpriseAsCode() {
122
122
  await this.projectService.LoadEnterpriseAsCode(this.State);
123
123
  }
124
+ ReloadFeed() {
125
+ if (this.State.FeedCheck) {
126
+ this.State.Feed = this.State.FeedCheck.Items;
127
+ this.State.FeedActions = this.State.FeedCheck.Actions;
128
+ this.State.FeedSourceControlLookups =
129
+ this.State.FeedCheck.SourceControlLookups;
130
+ }
131
+ this.State.FeedCheck = null;
132
+ }
124
133
  async SaveApplicationAsCode(req) {
125
134
  return await this.handleSaveApplication(req);
126
135
  }
@@ -196,8 +205,8 @@ export class EaCService {
196
205
  });
197
206
  }
198
207
  if (req.ApplicationLookup) {
199
- console.log("APPLOokup: ", req.ApplicationLookup);
200
- console.log("saveEAC: ", saveEaC);
208
+ console.log('APPLOokup: ', req.ApplicationLookup);
209
+ console.log('saveEAC: ', saveEaC);
201
210
  saveEaC.Applications[req.ApplicationLookup] = {
202
211
  ModifierLookups: req.ModifierLookups,
203
212
  };
@@ -247,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
247
256
  providedIn: 'root',
248
257
  }]
249
258
  }], ctorParameters: function () { return [{ type: i1.ProjectService }, { type: i2.HttpClient }]; } });
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9lYWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWUxQyxNQUFNLE9BQU8saUNBQWlDO0NBVzdDO0FBRUQsMkRBQTJEO0FBQzNELHFDQUFxQztBQUVyQyxtQ0FBbUM7QUFFbkMsdUNBQXVDO0FBQ3ZDLElBQUk7QUFFSixNQUFNLE9BQU8sMkJBQTJCO0NBUXZDO0FBR0QsTUFBTSxPQUFPLGlDQUFpQztDQU03QztBQUVELE1BQU0sT0FBTyw2QkFBNkI7Q0FJekM7QUFLRCxNQUFNLE9BQU8sVUFBVTtJQVlyQixnQkFBZ0I7SUFDaEIsWUFDWSxjQUE4QixFQUM5QixJQUFnQjtRQURoQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUUxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBakJELGNBQWM7SUFDZCxJQUFXLG9CQUFvQjtRQUM3QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQzdDLENBQUM7SUFZRCxlQUFlO0lBQ1IsaUJBQWlCLENBQUMsUUFBa0I7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUIsQ0FDNUIsU0FBaUIsRUFDakIsT0FBZTtRQUVm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bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2plY3Quc2VydmljZSc7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gIFVucGFja0xvd0NvZGVVbml0UmVxdWVzdCxcbn0gZnJvbSAnLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuaW1wb3J0IHtcbiAgRWFDQXBwbGljYXRpb25Bc0NvZGUsXG4gIEVhQ0RhdGFUb2tlbixcbiAgRWFDREZTTW9kaWZpZXIsXG4gIEVhQ0Vudmlyb25tZW50QXNDb2RlLFxuICBFYUNIb3N0LFxuICBFYUNQcm9qZWN0QXNDb2RlLFxuICBFbnRlcnByaXNlQXNDb2RlLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRmVlZEVudHJ5LCBGZWVkSXRlbSB9IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCB7XG4gIHB1YmxpYyBBcHBsaWNhdGlvbj86IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuXG4gIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcblxuICBwdWJsaWMgRGF0YVRva2VuPzogIEVhQ0RhdGFUb2tlbjtcblxuICBwdWJsaWMgRGF0YVRva2VuTG9va3VwPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBQcm9qZWN0TG9va3VwPzogc3RyaW5nO1xuXG59XG5cbi8vIGV4cG9ydCBjbGFzcyBTYXZlREZTTW9kaWZpZXJGb3JBcHBsaWNhdGlvbkV2ZW50UmVxdWVzdCB7XG4vLyAgIHB1YmxpYyBNb2RpZmllcjogRWFDREZTTW9kaWZpZXI7XG5cbi8vICAgcHVibGljIE1vZGlmaWVyTG9va3VwOiBzdHJpbmc7XG5cbi8vICAgcHVibGljIEFwcGxpY2F0aW9uTG9va3VwPzogc3RyaW5nO1xuLy8gfVxuXG5leHBvcnQgY2xhc3MgU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0IHtcbiAgcHVibGljIEFwcGxpY2F0aW9uTG9va3VwPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBNb2RpZmllcj86IEVhQ0RGU01vZGlmaWVyO1xuXG4gIHB1YmxpYyBNb2RpZmllckxvb2t1cHM/OiBBcnJheTxzdHJpbmc+O1xuXG4gIHB1YmxpYyBQcm9qZWN0TG9va3Vwcz86IEFycmF5PHN0cmluZz47XG59XG5cblxuZXhwb3J0IGNsYXNzIFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdCB7XG4gIHB1YmxpYyBFbnRlcnByaXNlRGF0YVRva2Vucz86IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDRGF0YVRva2VuIH07XG5cbiAgcHVibGljIEVudmlyb25tZW50PzogRWFDRW52aXJvbm1lbnRBc0NvZGU7XG5cbiAgcHVibGljIEVudmlyb25tZW50TG9va3VwPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgU2F2ZVByb2plY3RBc0NvZGVFdmVudFJlcXVlc3Qge1xuICBwdWJsaWMgUHJvamVjdD86IEVhQ1Byb2plY3RBc0NvZGU7XG5cbiAgcHVibGljIFByb2plY3RMb29rdXA/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFYUNTZXJ2aWNlIHtcbiAgLy8gIFByb3BlcnRpZXNcbiAgcHVibGljIGdldCBFZGl0aW5nUHJvamVjdExvb2t1cCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLkVkaXRpbmdQcm9qZWN0TG9va3VwO1xuICB9XG5cbiAgcHVibGljIGdldCBDcmVhdGluZ1Byb2plY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UuQ3JlYXRpbmdQcm9qZWN0O1xuICB9XG5cbiAgcHVibGljIFN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGU7XG5cbiAgLy8gIENvbnN0cnVjdG9yc1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcHJvamVjdFNlcnZpY2U6IFByb2plY3RTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50XG4gICkge1xuICAgIHRoaXMuU3RhdGUgPSBuZXcgQXBwbGljYXRpb25zRmxvd1N0YXRlKCk7XG4gIH1cblxuICAvLyAgQVBJIE1ldGhvZHNcbiAgcHVibGljIENoZWNrVXNlckZlZWRJdGVtKGZlZWRJdGVtOiBGZWVkSXRlbSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoZmVlZEl0ZW0uUmVmcmVzaExpbmspO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIERlbGV0ZUFwcGxpY2F0aW9uKFxuICAgIGFwcExvb2t1cDogc3RyaW5nLFxuICAgIGFwcE5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGlmIChjb25maXJtKGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGFwcGxpY2F0aW9uICcke2FwcE5hbWV9Jz9gKSkge1xuICAgICAgY29uc3QgZWFjOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICBBcHBsaWNhdGlvbnM6IHt9LFxuICAgICAgfTtcblxuICAgICAgZWFjLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdID0ge1xuICAgICAgICBBcHBsaWNhdGlvbjoge30sXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgIGVhY1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlRGV2T3BzQWN0aW9uKFxuICAgIGRvYUxvb2t1cDogc3RyaW5nLFxuICAgIGRvYU5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGlmIChcbiAgICAgIGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgQnVpbGQgUGlwZWxpbmUgJyR7ZG9hTmFtZX0nP2ApXG4gICAgKSB7XG4gICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgIEVudmlyb25tZW50czoge30sXG4gICAgICB9O1xuXG4gICAgICBlYWMuRW52aXJvbm1lbnRzW3RoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UuUHJpbWFyeUVudmlyb25tZW50XSA9IHtcbiAgICAgICAgRGV2T3BzQWN0aW9uczoge30sXG4gICAgICB9O1xuXG4gICAgICBlYWMuRW52aXJvbm1lbnRzW1xuICAgICAgICB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlLlByaW1hcnlFbnZpcm9ubWVudFxuICAgICAgXS5EZXZPcHNBY3Rpb25zW2RvYUxvb2t1cF0gPSB7fTtcblxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICBlYWNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIERlbGV0ZU1vZGlmaWVyKFxuICAgIG1vZGlmaWVyTG9va3VwOiBzdHJpbmcsXG4gICAgbW9kaWZpZXJOYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBpZiAoXG4gICAgICBjb25maXJtKGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIE1vZGlmaWVyICcke21vZGlmaWVyTmFtZX0nP2ApXG4gICAgKSB7XG4gICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgIE1vZGlmaWVyczoge30sXG4gICAgICB9O1xuXG4gICAgICBlYWMuTW9kaWZpZXJzW21vZGlmaWVyTG9va3VwXSA9IHt9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgIGVhY1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlUHJvamVjdChcbiAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmcsXG4gICAgcHJvamVjdE5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGlmIChjb25maXJtKGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIFByb2plY3QgJyR7cHJvamVjdE5hbWV9Jz9gKSkge1xuICAgICAgY29uc3QgZWFjOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICBQcm9qZWN0czoge30sXG4gICAgICB9O1xuXG4gICAgICBlYWMuUHJvamVjdHNbcHJvamVjdExvb2t1cF0gPSB7XG4gICAgICAgIFByb2plY3Q6IHt9LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICB0aGlzLlN0YXRlLFxuICAgICAgICBlYWNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIERlbGV0ZVNvdXJjZUNvbnRyb2woXG4gICAgc3JjTG9va3VwOiBzdHJpbmcsXG4gICAgc3JjTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgaWYgKFxuICAgICAgY29uZmlybShgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBTb3VyY2UgQ29udHJvbCAnJHtzcmNOYW1lfSc/YClcbiAgICApIHtcbiAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgRW52aXJvbm1lbnRzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5FbnZpcm9ubWVudHNbdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdID0ge1xuICAgICAgICBTb3VyY2VzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5FbnZpcm9ubWVudHNbdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdLlNvdXJjZXNbXG4gICAgICAgIHNyY0xvb2t1cFxuICAgICAgXSA9IHt9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgIGVhY1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyB0aGlzLmFwcHNGbG93RXZlbnRzU3ZjLkVuc3VyZVVzZXJFbnRlcnByaXNlRXZlbnQuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgLy8gICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVuc3VyZVVzZXJFbnRlcnByaXNlKHRoaXMuU3RhdGUpO1xuICAvLyB9KTtcblxuICBwdWJsaWMgYXN5bmMgRW5zdXJlVXNlckVudGVycHJpc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnN1cmVVc2VyRW50ZXJwcmlzZSh0aGlzLlN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBFbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgZWFjOiBFbnRlcnByaXNlQXNDb2RlXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKHRoaXMuU3RhdGUsIGVhYyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgR2V0QWN0aXZlRW50ZXJwcmlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkdldEFjdGl2ZUVudGVycHJpc2UodGhpcy5TdGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgTG9hZFVzZXJGZWVkKHBhZ2U6IG51bWJlciwgcGFnZVNpemU6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuTG9hZFVzZXJGZWVkKHBhZ2UsIHBhZ2VTaXplLCB0aGlzLlN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBHZW5lcmF0ZVJvdXRlZEFwcGxpY2F0aW9ucyhhcHBsaWNhdGlvbnM6IHtcbiAgICBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcbiAgfSk6IHtcbiAgICBbcm91dGU6IHN0cmluZ106IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfTtcbiAgfSB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UuR2VuZXJhdGVSb3V0ZWRBcHBsaWNhdGlvbnMoXG4gICAgICBhcHBsaWNhdGlvbnMsXG4gICAgICB0aGlzLlN0YXRlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBIYXNWYWxpZENvbm5lY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5IYXNWYWxpZENvbm5lY3Rpb24odGhpcy5TdGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgTGlzdEVudGVycHJpc2VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuTGlzdEVudGVycHJpc2VzKHRoaXMuU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIExvYWRFbnRlcnByaXNlQXNDb2RlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuTG9hZEVudGVycHJpc2VBc0NvZGUodGhpcy5TdGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU2F2ZUFwcGxpY2F0aW9uQXNDb2RlKFxuICAgIHJlcTogU2F2ZUFwcGxpY2F0aW9uQXNDb2RlRXZlbnRSZXF1ZXN0XG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZUFwcGxpY2F0aW9uKHJlcSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU2F2ZURGU01vZGlmaWVyKFxuICAgIHJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZURGU01vZGlmaWVyKHJlcSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU2F2ZUVudGVycHJpc2VBc0NvZGUoZWFjOiBFbnRlcnByaXNlQXNDb2RlKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZSh0aGlzLlN0YXRlLCBlYWMpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVFbnZpcm9ubWVudEFzQ29kZShcbiAgICByZXE6IFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVNhdmVFbnZpcm9ubWVudChyZXEpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVQcm9qZWN0QXNDb2RlKFxuICAgIHJlcTogU2F2ZVByb2plY3RBc0NvZGVFdmVudFJlcXVlc3RcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5oYW5kbGVTYXZlUHJvamVjdChyZXEuUHJvamVjdExvb2t1cCwgcmVxLlByb2plY3QpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNldEFjdGl2ZUVudGVycHJpc2UoZW50TG9va3VwOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnByb2plY3RTZXJ2aWNlLlNldEFjdGl2ZUVudGVycHJpc2UodGhpcy5TdGF0ZSwgZW50TG9va3VwKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTZXRDcmVhdGluZ1Byb2plY3QoY3JlYXRpbmdQcm9qZWN0OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5TZXRDcmVhdGluZ1Byb2plY3QoY3JlYXRpbmdQcm9qZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTZXRFZGl0UHJvamVjdFNldHRpbmdzKHByb2plY3RMb29rdXA6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU2V0RWRpdFByb2plY3RTZXR0aW5ncyh0aGlzLlN0YXRlLCBwcm9qZWN0TG9va3VwKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTdWJtaXRGZWVkRW50cnkoZW50cnk6IEZlZWRFbnRyeSk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU3VibWl0RmVlZEVudHJ5KHRoaXMuU3RhdGUsIGVudHJ5KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBVbnBhY2tMb3dDb2RlVW5pdChyZXE6IFVucGFja0xvd0NvZGVVbml0UmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChcbiAgICAgIGNvbmZpcm0oXG4gICAgICAgIGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5wYWNrIGFwcGxpY2F0aW9uICcke3JlcS5BcHBsaWNhdGlvbk5hbWV9JyB3aXRoIHZlcnNpb24gJyR7cmVxLlZlcnNpb259Jz9gXG4gICAgICApXG4gICAgKSB7XG4gICAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlVucGFja0xvd0NvZGVVbml0KHRoaXMuU3RhdGUsIHJlcSk7XG4gICAgfVxuICB9XG5cbiAgLy8gIEhlbHBlcnNcbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVBcHBsaWNhdGlvbihcbiAgICByZXE6IFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgQXBwbGljYXRpb25zOiB7fSxcbiAgICAgIFByb2plY3RzOiB7fSxcbiAgICB9O1xuXG4gICAgY29uc3QgZXhpc3RpbmdQcm9qID0ge1xuICAgICAgLi4udGhpcy5TdGF0ZS5FYUMuUHJvamVjdHNbcmVxLlByb2plY3RMb29rdXBdLFxuICAgIH07XG5cbiAgICBpZiAoZXhpc3RpbmdQcm9qLkFwcGxpY2F0aW9uTG9va3Vwcz8uaW5kZXhPZihyZXEuQXBwbGljYXRpb25Mb29rdXApIDwgMCkge1xuICAgICAgaWYgKCFleGlzdGluZ1Byb2ouQXBwbGljYXRpb25Mb29rdXBzKSB7XG4gICAgICAgIGV4aXN0aW5nUHJvai5BcHBsaWNhdGlvbkxvb2t1cHMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgZXhpc3RpbmdQcm9qLkFwcGxpY2F0aW9uTG9va3Vwcy5wdXNoKHJlcS5BcHBsaWNhdGlvbkxvb2t1cCk7XG5cbiAgICAgIHNhdmVFYUMuUHJvamVjdHNbcmVxLlByb2plY3RMb29rdXBdID0gZXhpc3RpbmdQcm9qO1xuICAgIH1cblxuICAgIGlmIChyZXEuQXBwbGljYXRpb24pIHtcbiAgICAgIHNhdmVFYUMuQXBwbGljYXRpb25zW3JlcS5BcHBsaWNhdGlvbkxvb2t1cF0gPSByZXEuQXBwbGljYXRpb247XG4gICAgfVxuXG4gICAgaWYgKHJlcS5EYXRhVG9rZW4pe1xuICAgICAgc2F2ZUVhQy5BcHBsaWNhdGlvbnNbcmVxLkFwcGxpY2F0aW9uTG9va3VwXS5EYXRhVG9rZW5zW3JlcS5EYXRhVG9rZW5Mb29rdXBdID0gcmVxLkRhdGFUb2tlbjtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZSh0aGlzLlN0YXRlLCBzYXZlRWFDKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlREZTTW9kaWZpZXIoXG4gICAgcmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3RcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2F2ZUVhQzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICBNb2RpZmllcnM6IHt9LFxuICAgICAgUHJvamVjdHM6IHt9LFxuICAgICAgQXBwbGljYXRpb25zOiB7fSxcbiAgICB9O1xuXG4gICAgaWYgKHJlcS5Nb2RpZmllcikge1xuICAgICAgc2F2ZUVhQy5Nb2RpZmllcnNbcmVxLk1vZGlmaWVyTG9va3Vwc1swXV0gPSByZXEuTW9kaWZpZXI7XG4gICAgfVxuXG4gICAgaWYgKHJlcS5Qcm9qZWN0TG9va3Vwcykge1xuICAgICAgcmVxLlByb2plY3RMb29rdXBzLmZvckVhY2goKGxvb2t1cCkgPT4ge1xuICAgICAgICBzYXZlRWFDLlByb2plY3RzW2xvb2t1cF0gPSB7XG4gICAgICAgICAgTW9kaWZpZXJMb29rdXBzOiByZXEuTW9kaWZpZXJMb29rdXBzLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHJlcS5BcHBsaWNhdGlvbkxvb2t1cCkge1xuICAgICAgY29uc29sZS5sb2coXCJBUFBMT29rdXA6IFwiLCByZXEuQXBwbGljYXRpb25Mb29rdXApO1xuICAgICAgY29uc29sZS5sb2coXCJzYXZlRUFDOiBcIiwgc2F2ZUVhQylcbiAgICAgIHNhdmVFYUMuQXBwbGljYXRpb25zW3JlcS5BcHBsaWNhdGlvbkxvb2t1cF0gPSB7XG4gICAgICAgIE1vZGlmaWVyTG9va3VwczogcmVxLk1vZGlmaWVyTG9va3VwcyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZSh0aGlzLlN0YXRlLCBzYXZlRWFDKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlRW52aXJvbm1lbnQoXG4gICAgcmVxOiBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3RcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZT8uRWFDPy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgRGF0YVRva2Vuczoge30sXG4gICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgIH07XG5cbiAgICBpZiAocmVxLkVudmlyb25tZW50KSB7XG4gICAgICBzYXZlRWFDLkVudmlyb25tZW50c1tyZXEuRW52aXJvbm1lbnRMb29rdXBdID0gcmVxLkVudmlyb25tZW50O1xuICAgIH1cblxuICAgIGlmIChyZXEuRW50ZXJwcmlzZURhdGFUb2tlbnMpIHtcbiAgICAgIHNhdmVFYUMuRGF0YVRva2VucyA9IHJlcS5FbnRlcnByaXNlRGF0YVRva2VucztcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZSh0aGlzLlN0YXRlLCBzYXZlRWFDKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlUHJvamVjdChcbiAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmcsXG4gICAgcHJvamVjdDogRWFDUHJvamVjdEFzQ29kZVxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGNvbnN0IHByb2pIb3N0czogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNIb3N0IH0gPSB7fTtcblxuICAgIHByb2plY3Q/Lkhvc3RzPy5mb3JFYWNoKChob3N0OiBhbnkpID0+IHtcbiAgICAgIHByb2pIb3N0c1tob3N0XSA9IHRoaXMuU3RhdGUuRWFDLkhvc3RzW2hvc3RdO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgc2F2ZUVhQzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICBFbnRlcnByaXNlOiB7XG4gICAgICAgIC4uLnRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UsXG4gICAgICAgIFByaW1hcnlIb3N0OiBwcm9qZWN0Lkhvc3RzWzBdLFxuICAgICAgfSxcbiAgICAgIEhvc3RzOiBwcm9qSG9zdHMsXG4gICAgICAvLyBQcm92aWRlcnM6IHRoaXMuU3RhdGUuRWFDLlByb3ZpZGVycywgIC8vICBUT0RPOiAgUmVtb3ZlIGFmdGVyIGFsbCBwcm92aWRlcnMgQURCMkMncyBoYXZlIGJlZW4gdXBncmFkZWRcbiAgICAgIFByb2plY3RzOiB7fSxcbiAgICB9O1xuXG4gICAgc2F2ZUVhQy5Qcm9qZWN0c1twcm9qZWN0TG9va3VwXSA9IHByb2plY3Q7XG5cbiAgICBsZXQgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZShcbiAgICAgIHRoaXMuU3RhdGUsXG4gICAgICBzYXZlRWFDXG4gICAgKTtcblxuICAgIHRoaXMuU2V0RWRpdFByb2plY3RTZXR0aW5ncyhwcm9qZWN0TG9va3VwKTtcblxuICAgIHJldHVybiBzdGF0dXM7XG4gIH1cbn1cbiJdfQ==
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9lYWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWUxQyxNQUFNLE9BQU8saUNBQWlDO0NBVTdDO0FBRUQsMkRBQTJEO0FBQzNELHFDQUFxQztBQUVyQyxtQ0FBbUM7QUFFbkMsdUNBQXVDO0FBQ3ZDLElBQUk7QUFFSixNQUFNLE9BQU8sMkJBQTJCO0NBUXZDO0FBRUQsTUFBTSxPQUFPLGlDQUFpQztDQU03QztBQUVELE1BQU0sT0FBTyw2QkFBNkI7Q0FJekM7QUFLRCxNQUFNLE9BQU8sVUFBVTtJQVlyQixnQkFBZ0I7SUFDaEIsWUFDWSxjQUE4QixFQUM5QixJQUFnQjtRQURoQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUUxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBakJELGNBQWM7SUFDZCxJQUFXLG9CQUFvQjtRQUM3QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQzdDLENBQUM7SUFZRCxlQUFlO0lBQ1IsaUJBQWlCLENBQUMsUUFBa0I7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUIsQ0FDNUIsU0FBaUIsRUFDakIsT0FBZTtRQUVm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LE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsS0FBSyxFQUFFLFNBQVM7WUFDaEIseUdBQXlHO1lBQ3pHLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUVGLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBRTFDLElBQUksTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FDekQsSUFBSSxDQUFDLEtBQUssRUFDVixPQUFPLENBQ1IsQ0FBQztRQUVGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUzQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzt1R0FoWVUsVUFBVTsyR0FBVixVQUFVLGNBRlQsTUFBTTsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi9wcm9qZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QsXG59IGZyb20gJy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcbmltcG9ydCB7XG4gIEVhQ0FwcGxpY2F0aW9uQXNDb2RlLFxuICBFYUNEYXRhVG9rZW4sXG4gIEVhQ0RGU01vZGlmaWVyLFxuICBFYUNFbnZpcm9ubWVudEFzQ29kZSxcbiAgRWFDSG9zdCxcbiAgRWFDUHJvamVjdEFzQ29kZSxcbiAgRW50ZXJwcmlzZUFzQ29kZSxcbn0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEZlZWRFbnRyeSwgRmVlZEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvdXNlci1mZWVkLm1vZGVsJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBTdGF0dXMgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3Qge1xuICBwdWJsaWMgQXBwbGljYXRpb24/OiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcblxuICBwdWJsaWMgQXBwbGljYXRpb25Mb29rdXA/OiBzdHJpbmc7XG5cbiAgcHVibGljIERhdGFUb2tlbj86IEVhQ0RhdGFUb2tlbjtcblxuICBwdWJsaWMgRGF0YVRva2VuTG9va3VwPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBQcm9qZWN0TG9va3VwPzogc3RyaW5nO1xufVxuXG4vLyBleHBvcnQgY2xhc3MgU2F2ZURGU01vZGlmaWVyRm9yQXBwbGljYXRpb25FdmVudFJlcXVlc3Qge1xuLy8gICBwdWJsaWMgTW9kaWZpZXI6IEVhQ0RGU01vZGlmaWVyO1xuXG4vLyAgIHB1YmxpYyBNb2RpZmllckxvb2t1cDogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcbi8vIH1cblxuZXhwb3J0IGNsYXNzIFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdCB7XG4gIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcblxuICBwdWJsaWMgTW9kaWZpZXI/OiBFYUNERlNNb2RpZmllcjtcblxuICBwdWJsaWMgTW9kaWZpZXJMb29rdXBzPzogQXJyYXk8c3RyaW5nPjtcblxuICBwdWJsaWMgUHJvamVjdExvb2t1cHM/OiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgY2xhc3MgU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0IHtcbiAgcHVibGljIEVudGVycHJpc2VEYXRhVG9rZW5zPzogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNEYXRhVG9rZW4gfTtcblxuICBwdWJsaWMgRW52aXJvbm1lbnQ/OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICBwdWJsaWMgRW52aXJvbm1lbnRMb29rdXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlUHJvamVjdEFzQ29kZUV2ZW50UmVxdWVzdCB7XG4gIHB1YmxpYyBQcm9qZWN0PzogRWFDUHJvamVjdEFzQ29kZTtcblxuICBwdWJsaWMgUHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVhQ1NlcnZpY2Uge1xuICAvLyAgUHJvcGVydGllc1xuICBwdWJsaWMgZ2V0IEVkaXRpbmdQcm9qZWN0TG9va3VwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UuRWRpdGluZ1Byb2plY3RMb29rdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IENyZWF0aW5nUHJvamVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5DcmVhdGluZ1Byb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgU3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZTtcblxuICAvLyAgQ29uc3RydWN0b3JzXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7XG4gICAgdGhpcy5TdGF0ZSA9IG5ldyBBcHBsaWNhdGlvbnNGbG93U3RhdGUoKTtcbiAgfVxuXG4gIC8vICBBUEkgTWV0aG9kc1xuICBwdWJsaWMgQ2hlY2tVc2VyRmVlZEl0ZW0oZmVlZEl0ZW06IEZlZWRJdGVtKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChmZWVkSXRlbS5SZWZyZXNoTGluayk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlQXBwbGljYXRpb24oXG4gICAgYXBwTG9va3VwOiBzdHJpbmcsXG4gICAgYXBwTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgaWYgKGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYXBwbGljYXRpb24gJyR7YXBwTmFtZX0nP2ApKSB7XG4gICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICB9O1xuXG4gICAgICBlYWMuQXBwbGljYXRpb25zW2FwcExvb2t1cF0gPSB7XG4gICAgICAgIEFwcGxpY2F0aW9uOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgZWFjXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBEZWxldGVEZXZPcHNBY3Rpb24oXG4gICAgZG9hTG9va3VwOiBzdHJpbmcsXG4gICAgZG9hTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgaWYgKFxuICAgICAgY29uZmlybShgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBCdWlsZCBQaXBlbGluZSAnJHtkb2FOYW1lfSc/YClcbiAgICApIHtcbiAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgRW52aXJvbm1lbnRzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5FbnZpcm9ubWVudHNbdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdID0ge1xuICAgICAgICBEZXZPcHNBY3Rpb25zOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5FbnZpcm9ubWVudHNbXG4gICAgICAgIHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UuUHJpbWFyeUVudmlyb25tZW50XG4gICAgICBdLkRldk9wc0FjdGlvbnNbZG9hTG9va3VwXSA9IHt9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgIGVhY1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlTW9kaWZpZXIoXG4gICAgbW9kaWZpZXJMb29rdXA6IHN0cmluZyxcbiAgICBtb2RpZmllck5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGlmIChcbiAgICAgIGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgTW9kaWZpZXIgJyR7bW9kaWZpZXJOYW1lfSc/YClcbiAgICApIHtcbiAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgTW9kaWZpZXJzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5Nb2RpZmllcnNbbW9kaWZpZXJMb29rdXBdID0ge307XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgZWFjXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBEZWxldGVQcm9qZWN0KFxuICAgIHByb2plY3RMb29rdXA6IHN0cmluZyxcbiAgICBwcm9qZWN0TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgaWYgKGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgUHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nP2ApKSB7XG4gICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5Qcm9qZWN0c1twcm9qZWN0TG9va3VwXSA9IHtcbiAgICAgICAgUHJvamVjdDoge30sXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgIGVhY1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlU291cmNlQ29udHJvbChcbiAgICBzcmNMb29rdXA6IHN0cmluZyxcbiAgICBzcmNOYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBpZiAoXG4gICAgICBjb25maXJtKGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIFNvdXJjZSBDb250cm9sICcke3NyY05hbWV9Jz9gKVxuICAgICkge1xuICAgICAgY29uc3QgZWFjOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgfTtcblxuICAgICAgZWFjLkVudmlyb25tZW50c1t0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlLlByaW1hcnlFbnZpcm9ubWVudF0gPSB7XG4gICAgICAgIFNvdXJjZXM6IHt9LFxuICAgICAgfTtcblxuICAgICAgZWFjLkVudmlyb25tZW50c1t0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlLlByaW1hcnlFbnZpcm9ubWVudF0uU291cmNlc1tcbiAgICAgICAgc3JjTG9va3VwXG4gICAgICBdID0ge307XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgZWFjXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRoaXMuYXBwc0Zsb3dFdmVudHNTdmMuRW5zdXJlVXNlckVudGVycHJpc2VFdmVudC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAvLyAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW5zdXJlVXNlckVudGVycHJpc2UodGhpcy5TdGF0ZSk7XG4gIC8vIH0pO1xuXG4gIHB1YmxpYyBhc3luYyBFbnN1cmVVc2VyRW50ZXJwcmlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVuc3VyZVVzZXJFbnRlcnByaXNlKHRoaXMuU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIEVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICBlYWM6IEVudGVycHJpc2VBc0NvZGVcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHModGhpcy5TdGF0ZSwgZWFjKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBHZXRBY3RpdmVFbnRlcnByaXNlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuR2V0QWN0aXZlRW50ZXJwcmlzZSh0aGlzLlN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBMb2FkVXNlckZlZWQoXG4gICAgcGFnZTogbnVtYmVyLFxuICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICAgZm9yQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRVc2VyRmVlZChcbiAgICAgIHBhZ2UsXG4gICAgICBwYWdlU2l6ZSxcbiAgICAgIGZvckNoZWNrLFxuICAgICAgdGhpcy5TdGF0ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgR2VuZXJhdGVSb3V0ZWRBcHBsaWNhdGlvbnMoYXBwbGljYXRpb25zOiB7XG4gICAgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gIH0pOiB7XG4gICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gIH0ge1xuICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLkdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKFxuICAgICAgYXBwbGljYXRpb25zLFxuICAgICAgdGhpcy5TdGF0ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgSGFzVmFsaWRDb25uZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuSGFzVmFsaWRDb25uZWN0aW9uKHRoaXMuU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIExpc3RFbnRlcnByaXNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxpc3RFbnRlcnByaXNlcyh0aGlzLlN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBMb2FkRW50ZXJwcmlzZUFzQ29kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIFJlbG9hZEZlZWQoKSB7XG4gICAgaWYgKHRoaXMuU3RhdGUuRmVlZENoZWNrKSB7XG4gICAgICB0aGlzLlN0YXRlLkZlZWQgPSB0aGlzLlN0YXRlLkZlZWRDaGVjay5JdGVtcztcblxuICAgICAgdGhpcy5TdGF0ZS5GZWVkQWN0aW9ucyA9IHRoaXMuU3RhdGUuRmVlZENoZWNrLkFjdGlvbnM7XG5cbiAgICAgIHRoaXMuU3RhdGUuRmVlZFNvdXJjZUNvbnRyb2xMb29rdXBzID1cbiAgICAgICAgdGhpcy5TdGF0ZS5GZWVkQ2hlY2suU291cmNlQ29udHJvbExvb2t1cHM7XG4gICAgfVxuXG4gICAgdGhpcy5TdGF0ZS5GZWVkQ2hlY2sgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVBcHBsaWNhdGlvbkFzQ29kZShcbiAgICByZXE6IFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVNhdmVBcHBsaWNhdGlvbihyZXEpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVERlNNb2RpZmllcihcbiAgICByZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmhhbmRsZVNhdmVERlNNb2RpZmllcihyZXEpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVFbnRlcnByaXNlQXNDb2RlKGVhYzogRW50ZXJwcmlzZUFzQ29kZSk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU2F2ZUVudGVycHJpc2VBc0NvZGUodGhpcy5TdGF0ZSwgZWFjKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTYXZlRW52aXJvbm1lbnRBc0NvZGUoXG4gICAgcmVxOiBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3RcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVTYXZlRW52aXJvbm1lbnQocmVxKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTYXZlUHJvamVjdEFzQ29kZShcbiAgICByZXE6IFNhdmVQcm9qZWN0QXNDb2RlRXZlbnRSZXF1ZXN0XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZVByb2plY3QocmVxLlByb2plY3RMb29rdXAsIHJlcS5Qcm9qZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTZXRBY3RpdmVFbnRlcnByaXNlKGVudExvb2t1cDogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5TZXRBY3RpdmVFbnRlcnByaXNlKHRoaXMuU3RhdGUsIGVudExvb2t1cCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucHJvamVjdFNlcnZpY2UuU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU2V0RWRpdFByb2plY3RTZXR0aW5ncyhwcm9qZWN0TG9va3VwOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNldEVkaXRQcm9qZWN0U2V0dGluZ3ModGhpcy5TdGF0ZSwgcHJvamVjdExvb2t1cCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU3VibWl0RmVlZEVudHJ5KGVudHJ5OiBGZWVkRW50cnkpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlN1Ym1pdEZlZWRFbnRyeSh0aGlzLlN0YXRlLCBlbnRyeSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgVW5wYWNrTG93Q29kZVVuaXQocmVxOiBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoXG4gICAgICBjb25maXJtKFxuICAgICAgICBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVucGFjayBhcHBsaWNhdGlvbiAnJHtyZXEuQXBwbGljYXRpb25OYW1lfScgd2l0aCB2ZXJzaW9uICcke3JlcS5WZXJzaW9ufSc/YFxuICAgICAgKVxuICAgICkge1xuICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5VbnBhY2tMb3dDb2RlVW5pdCh0aGlzLlN0YXRlLCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIC8vICBIZWxwZXJzXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlQXBwbGljYXRpb24oXG4gICAgcmVxOiBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3RcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICBQcm9qZWN0czoge30sXG4gICAgfTtcblxuICAgIGNvbnN0IGV4aXN0aW5nUHJvaiA9IHtcbiAgICAgIC4uLnRoaXMuU3RhdGUuRWFDLlByb2plY3RzW3JlcS5Qcm9qZWN0TG9va3VwXSxcbiAgICB9O1xuXG4gICAgaWYgKGV4aXN0aW5nUHJvai5BcHBsaWNhdGlvbkxvb2t1cHM/LmluZGV4T2YocmVxLkFwcGxpY2F0aW9uTG9va3VwKSA8IDApIHtcbiAgICAgIGlmICghZXhpc3RpbmdQcm9qLkFwcGxpY2F0aW9uTG9va3Vwcykge1xuICAgICAgICBleGlzdGluZ1Byb2ouQXBwbGljYXRpb25Mb29rdXBzID0gW107XG4gICAgICB9XG5cbiAgICAgIGV4aXN0aW5nUHJvai5BcHBsaWNhdGlvbkxvb2t1cHMucHVzaChyZXEuQXBwbGljYXRpb25Mb29rdXApO1xuXG4gICAgICBzYXZlRWFDLlByb2plY3RzW3JlcS5Qcm9qZWN0TG9va3VwXSA9IGV4aXN0aW5nUHJvajtcbiAgICB9XG5cbiAgICBpZiAocmVxLkFwcGxpY2F0aW9uKSB7XG4gICAgICBzYXZlRWFDLkFwcGxpY2F0aW9uc1tyZXEuQXBwbGljYXRpb25Mb29rdXBdID0gcmVxLkFwcGxpY2F0aW9uO1xuICAgIH1cblxuICAgIGlmIChyZXEuRGF0YVRva2VuKSB7XG4gICAgICBzYXZlRWFDLkFwcGxpY2F0aW9uc1tyZXEuQXBwbGljYXRpb25Mb29rdXBdLkRhdGFUb2tlbnNbXG4gICAgICAgIHJlcS5EYXRhVG9rZW5Mb29rdXBcbiAgICAgIF0gPSByZXEuRGF0YVRva2VuO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUsIHNhdmVFYUMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVERlNNb2RpZmllcihcbiAgICByZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgIE1vZGlmaWVyczoge30sXG4gICAgICBQcm9qZWN0czoge30sXG4gICAgICBBcHBsaWNhdGlvbnM6IHt9LFxuICAgIH07XG5cbiAgICBpZiAocmVxLk1vZGlmaWVyKSB7XG4gICAgICBzYXZlRWFDLk1vZGlmaWVyc1tyZXEuTW9kaWZpZXJMb29rdXBzWzBdXSA9IHJlcS5Nb2RpZmllcjtcbiAgICB9XG5cbiAgICBpZiAocmVxLlByb2plY3RMb29rdXBzKSB7XG4gICAgICByZXEuUHJvamVjdExvb2t1cHMuZm9yRWFjaCgobG9va3VwKSA9PiB7XG4gICAgICAgIHNhdmVFYUMuUHJvamVjdHNbbG9va3VwXSA9IHtcbiAgICAgICAgICBNb2RpZmllckxvb2t1cHM6IHJlcS5Nb2RpZmllckxvb2t1cHMsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocmVxLkFwcGxpY2F0aW9uTG9va3VwKSB7XG4gICAgICBjb25zb2xlLmxvZygnQVBQTE9va3VwOiAnLCByZXEuQXBwbGljYXRpb25Mb29rdXApO1xuICAgICAgY29uc29sZS5sb2coJ3NhdmVFQUM6ICcsIHNhdmVFYUMpO1xuICAgICAgc2F2ZUVhQy5BcHBsaWNhdGlvbnNbcmVxLkFwcGxpY2F0aW9uTG9va3VwXSA9IHtcbiAgICAgICAgTW9kaWZpZXJMb29rdXBzOiByZXEuTW9kaWZpZXJMb29rdXBzLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUsIHNhdmVFYUMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVFbnZpcm9ubWVudChcbiAgICByZXE6IFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlPy5FYUM/LkVudGVycHJpc2VMb29rdXAsXG4gICAgICBEYXRhVG9rZW5zOiB7fSxcbiAgICAgIEVudmlyb25tZW50czoge30sXG4gICAgfTtcblxuICAgIGlmIChyZXEuRW52aXJvbm1lbnQpIHtcbiAgICAgIHNhdmVFYUMuRW52aXJvbm1lbnRzW3JlcS5FbnZpcm9ubWVudExvb2t1cF0gPSByZXEuRW52aXJvbm1lbnQ7XG4gICAgfVxuXG4gICAgaWYgKHJlcS5FbnRlcnByaXNlRGF0YVRva2Vucykge1xuICAgICAgc2F2ZUVhQy5EYXRhVG9rZW5zID0gcmVxLkVudGVycHJpc2VEYXRhVG9rZW5zO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUsIHNhdmVFYUMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVQcm9qZWN0KFxuICAgIHByb2plY3RMb29rdXA6IHN0cmluZyxcbiAgICBwcm9qZWN0OiBFYUNQcm9qZWN0QXNDb2RlXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgY29uc3QgcHJvakhvc3RzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0hvc3QgfSA9IHt9O1xuXG4gICAgcHJvamVjdD8uSG9zdHM/LmZvckVhY2goKGhvc3Q6IGFueSkgPT4ge1xuICAgICAgcHJvakhvc3RzW2hvc3RdID0gdGhpcy5TdGF0ZS5FYUMuSG9zdHNbaG9zdF07XG4gICAgfSk7XG5cbiAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgIEVudGVycHJpc2U6IHtcbiAgICAgICAgLi4udGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZSxcbiAgICAgICAgUHJpbWFyeUhvc3Q6IHByb2plY3QuSG9zdHNbMF0sXG4gICAgICB9LFxuICAgICAgSG9zdHM6IHByb2pIb3N0cyxcbiAgICAgIC8vIFByb3ZpZGVyczogdGhpcy5TdGF0ZS5FYUMuUHJvdmlkZXJzLCAgLy8gIFRPRE86ICBSZW1vdmUgYWZ0ZXIgYWxsIHByb3ZpZGVycyBBREIyQydzIGhhdmUgYmVlbiB1cGdyYWRlZFxuICAgICAgUHJvamVjdHM6IHt9LFxuICAgIH07XG5cbiAgICBzYXZlRWFDLlByb2plY3RzW3Byb2plY3RMb29rdXBdID0gcHJvamVjdDtcblxuICAgIGxldCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgIHNhdmVFYUNcbiAgICApO1xuXG4gICAgdGhpcy5TZXRFZGl0UHJvamVjdFNldHRpbmdzKHByb2plY3RMb29rdXApO1xuXG4gICAgcmV0dXJuIHN0YXR1cztcbiAgfVxufVxuIl19
@@ -49,7 +49,7 @@ export class ProjectService {
49
49
  resolve(response.Status);
50
50
  var results = await Promise.all([
51
51
  this.LoadEnterpriseAsCode(state),
52
- this.LoadUserFeed(1, 25, state),
52
+ this.LoadUserFeed(1, 25, false, state),
53
53
  ]);
54
54
  }
55
55
  else {
@@ -187,7 +187,7 @@ export class ProjectService {
187
187
  });
188
188
  });
189
189
  }
190
- async LoadUserFeed(page, pageSize, state) {
190
+ async LoadUserFeed(page, pageSize, forCheck = false, state) {
191
191
  return new Promise((resolve, reject) => {
192
192
  state.LoadingFeed = true;
193
193
  let paramMap = this.activatedRoute.snapshot.children[0].paramMap;
@@ -197,9 +197,18 @@ export class ProjectService {
197
197
  .subscribe(async (response) => {
198
198
  state.LoadingFeed = false;
199
199
  if (response.Status.Code === 0) {
200
- state.Feed = response.Items;
201
- state.FeedSourceControlLookups = response.SourceControlLookups;
202
- state.FeedActions = response.Actions;
200
+ if (!forCheck) {
201
+ state.Feed = response.Items;
202
+ state.FeedSourceControlLookups = response.SourceControlLookups;
203
+ state.FeedActions = response.Actions;
204
+ state.FeedCheck = null;
205
+ }
206
+ else {
207
+ let items = response.Items?.filter((i) => !state.Feed?.find((f) => f.ID == i.ID));
208
+ if (items?.length > 0) {
209
+ state.FeedCheck = response;
210
+ }
211
+ }
203
212
  // console.log("ITEMZ: ", response.Items)
204
213
  resolve(response.Items);
205
214
  }
@@ -226,7 +235,7 @@ export class ProjectService {
226
235
  resolve(response.Status);
227
236
  var results = await Promise.all([
228
237
  this.LoadEnterpriseAsCode(state),
229
- this.LoadUserFeed(1, 25, state),
238
+ this.LoadUserFeed(1, 25, false, state),
230
239
  ]);
231
240
  }
232
241
  else {
@@ -249,7 +258,7 @@ export class ProjectService {
249
258
  resolve(response.Status);
250
259
  var results = await Promise.all([
251
260
  this.LoadEnterpriseAsCode(state),
252
- this.LoadUserFeed(1, 25, state),
261
+ this.LoadUserFeed(1, 25, false, state),
253
262
  ]);
254
263
  }
255
264
  else {
@@ -296,7 +305,7 @@ export class ProjectService {
296
305
  resolve(response.Status);
297
306
  var results = await Promise.all([
298
307
  this.LoadEnterpriseAsCode(state),
299
- this.LoadUserFeed(1, 25, state),
308
+ this.LoadUserFeed(1, 25, false, state),
300
309
  ]);
301
310
  }
302
311
  else {
@@ -322,7 +331,7 @@ export class ProjectService {
322
331
  resolve(response.Status);
323
332
  var results = await Promise.all([
324
333
  this.LoadEnterpriseAsCode(state),
325
- this.LoadUserFeed(1, 25, state),
334
+ this.LoadUserFeed(1, 25, false, state),
326
335
  ]);
327
336
  }
328
337
  else {
@@ -371,4 +380,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
371
380
  providedIn: 'root',
372
381
  }]
373
382
  }], ctorParameters: function () { return [{ type: i1.ApplicationsFlowService }, { type: i2.ActivatedRoute }]; } });
374
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUF3QjNDLE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQ1ksV0FBb0MsRUFDcEMsY0FBOEI7UUFEOUIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUN2QyxDQUFDO0lBRUosK0ZBQStGO0lBQy9GLGlDQUFpQztJQUVqQyxxQkFBcUI7SUFDckIsdUNBQXVDO0lBQ3ZDLCtDQUErQztJQUMvQywwQ0FBMEM7SUFDMUMsMkNBQTJDO0lBRTNDLG1EQUFtRDtJQUNuRCxpQkFBaUI7SUFDakIsNkRBQTZEO0lBRTdELHdDQUF3QztJQUN4QyxVQUFVO0lBQ1YsVUFBVTtJQUNWLElBQUk7SUFFRyxvQkFBb0IsQ0FDekIsS0FBNEI7UUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVyQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUMvQyxLQUFLLEVBQUUsUUFBc0IsRUFBRSxFQUFFO2dCQUMvQixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtvQkFDOUIsc0RBQXNEO29CQUV0RCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ25CO3FCQUFNO29CQUNMLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUV0QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUV4QixPQUFPLENBQUMsR0FB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QVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQ0YsQ0FBQztZQUVGLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFOUQsSUFBSSxXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXBDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMvQztRQUVELE9BQU87WUFDTCxZQUFZLEVBQUUsWUFBWTtZQUMxQixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDO1FBQ0YsTUFBTTtJQUNSLENBQUM7OzJHQXJqQlUsY0FBYzsrR0FBZCxjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VNb2RlbGVkUmVzcG9uc2UsIEJhc2VSZXNwb25zZSwgU3RhdHVzIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgZGVidWcgfSBmcm9tICdjb25zb2xlJztcbmltcG9ydCB7XG4gIEVhQ0FwcGxpY2F0aW9uQXNDb2RlLFxuICBFYUNQcm9qZWN0QXNDb2RlLFxuICBFbnRlcnByaXNlQXNDb2RlLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICBHaXRIdWJXb3JrZmxvd1J1bixcbiAgVW5wYWNrTG93Q29kZVVuaXRSZXF1ZXN0LFxufSBmcm9tICcuLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb25zLWZsb3cuc2VydmljZSc7XG5pbXBvcnQge1xuICBGZWVkRW50cnksXG4gIEZlZWRJdGVtLFxuICBVc2VyRmVlZFJlc3BvbnNlLFxufSBmcm9tICcuLi9tb2RlbHMvdXNlci1mZWVkLm1vZGVsJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb2plY3RTZXJ2aWNlIHtcbiAgcHVibGljIENyZWF0aW5nUHJvamVjdDogYm9vbGVhbjtcblxuICBwdWJsaWMgRWRpdGluZ1Byb2plY3RMb29rdXA6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7fVxuXG4gIC8vIHB1YmxpYyBDcmVhdGVSZXBvc2l0b3J5KHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsIG9yZzogc3RyaW5nLCByZXBvTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gIC8vICAgc3RhdGUuR2l0SHViLkxvYWRpbmcgPSB0cnVlO1xuXG4gIC8vICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAvLyAgICAgLkNyZWF0ZVJlcG9zaXRvcnkob3JnLCByZXBvTmFtZSlcbiAgLy8gICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgLy8gICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gIC8vICAgICAgICAgdGhpcy5saXN0UmVwb3NpdG9yaWVzKHJlcG9OYW1lKTtcblxuICAvLyAgICAgICAgIHN0YXRlLkdpdEh1Yi5DcmVhdGluZ1JlcG9zaXRvcnkgPSBmYWxzZTtcbiAgLy8gICAgICAgfSBlbHNlIHtcbiAgLy8gICAgICAgICAvLyAgVE9ETzogIE5lZWQgdG8gc3VyZmFjZSBhbiBlcnJvciB0byB0aGUgdXNlci4uLlxuXG4gIC8vICAgICAgICAgc3RhdGUuR2l0SHViLkxvYWRpbmcgPSBmYWxzZTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfSk7XG4gIC8vIH1cblxuICBwdWJsaWMgRW5zdXJlVXNlckVudGVycHJpc2UoXG4gICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICApOiBQcm9taXNlPEJhc2VSZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5FbnN1cmVVc2VyRW50ZXJwcmlzZSgpLnN1YnNjcmliZShcbiAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIC8vIGNvbnN0IGVhYyA9IGF3YWl0IHRoaXMuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpO1xuXG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBFbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICBlYWM6IEVudGVycHJpc2VBc0NvZGVcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKGVhYykuc3Vic2NyaWJlKFxuICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8c3RyaW5nPikgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgIHRoaXMuTG9hZFVzZXJGZWVkKDEsIDI1LCBzdGF0ZSksXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBHZW5lcmF0ZVJvdXRlZEFwcGxpY2F0aW9ucyhcbiAgICBhcHBsaWNhdGlvbnM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSxcbiAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlXG4gICk6IHtcbiAgICBbcm91dGU6IHN0cmluZ106IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfTtcbiAgfSB7XG4gICAgY29uc3QgYXBwTG9va3VwcyA9IE9iamVjdC5rZXlzKGFwcGxpY2F0aW9ucyk7XG5cbiAgICBjb25zdCBhcHBzID0gYXBwTG9va3Vwcy5tYXAoKGFwcExvb2t1cCkgPT4gYXBwbGljYXRpb25zW2FwcExvb2t1cF0pO1xuXG4gICAgbGV0IGFwcFJvdXRlcyA9XG4gICAgICBhcHBzLm1hcCgoYXBwKSA9PiB7XG4gICAgICAgIHJldHVybiBhcHA/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnJlcGxhY2UoJy4qJywgJycpO1xuICAgICAgfSkgfHwgW107XG5cbiAgICBhcHBSb3V0ZXMgPSBhcHBSb3V0ZXMuZmlsdGVyKChhcikgPT4gYXIgIT0gbnVsbCk7XG5cbiAgICBsZXQgcm91dGVCYXNlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGFwcFJvdXRlcy5mb3JFYWNoKChhcHBSb3V0ZSkgPT4ge1xuICAgICAgY29uc3QgYXBwUm91dGVQYXJ0cyA9IGFwcFJvdXRlLnNwbGl0KCcvJyk7XG5cbiAgICAgIGNvbnN0IGFwcFJvdXRlQmFzZSA9IGAvJHthcHBSb3V0ZVBhcnRzWzFdfWA7XG5cbiAgICAgIGlmIChyb3V0ZUJhc2VzLmluZGV4T2YoYXBwUm91dGVCYXNlKSA8IDApIHtcbiAgICAgICAgcm91dGVCYXNlcy5wdXNoKGFwcFJvdXRlQmFzZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBsZXQgd29ya2luZ0FwcExvb2t1cHMgPSBbLi4uKGFwcExvb2t1cHMgfHwgW10pXTtcblxuICAgIHJvdXRlQmFzZXMgPSByb3V0ZUJhc2VzLnNvcnQoKGEsIGIpID0+IGIubG9jYWxlQ29tcGFyZShhKSk7XG5cbiAgICBjb25zdCByb3V0ZVNldCA9XG4gICAgICByb3V0ZUJhc2VzLnJlZHVjZSgocHJldlJvdXRlTWFwLCBjdXJyZW50Um91dGVCYXNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvdXRlTWFwID0ge1xuICAgICAgICAgIC4uLnByZXZSb3V0ZU1hcCxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBmaWx0ZXJlZEFwcExvb2t1cHMgPSB3b3JraW5nQXBwTG9va3Vwcy5maWx0ZXIoKHdhbCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHdhID0gYXBwbGljYXRpb25zW3dhbF07XG5cbiAgICAgICAgICByZXR1cm4gd2E/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnN0YXJ0c1dpdGgoY3VycmVudFJvdXRlQmFzZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJvdXRlTWFwW2N1cnJlbnRSb3V0ZUJhc2VdID1cbiAgICAgICAgICBmaWx0ZXJlZEFwcExvb2t1cHMucmVkdWNlKChwcmV2QXBwTWFwLCBhcHBMb29rdXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcE1hcCA9IHtcbiAgICAgICAgICAgICAgLi4ucHJldkFwcE1hcCxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGFwcE1hcFthcHBMb29rdXBdID0gYXBwbGljYXRpb25zW2FwcExvb2t1cF07XG5cbiAgICAgICAgICAgIHJldHVybiBhcHBNYXA7XG4gICAgICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgICAgIHdvcmtpbmdBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YSkgPT4ge1xuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZEFwcExvb2t1cHMuaW5kZXhPZih3YSkgPCAwO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcm91dGVNYXA7XG4gICAgICB9LCB7fSkgfHwge307XG5cbiAgICBsZXQgcm91dGVTZXRLZXlzID0gT2JqZWN0LmtleXMocm91dGVTZXQpO1xuXG4gICAgcm91dGVTZXRLZXlzID0gcm91dGVTZXRLZXlzLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XG5cbiAgICBjb25zdCByb3V0ZVNldFJlc3VsdCA9IHt9O1xuXG4gICAgcm91dGVTZXRLZXlzLmZvckVhY2goKHJzaykgPT4gKHJvdXRlU2V0UmVzdWx0W3Jza10gPSByb3V0ZVNldFtyc2tdKSk7XG5cbiAgICByZXR1cm4gcm91dGVTZXRSZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgR2V0QWN0aXZlRW50ZXJwcmlzZShcbiAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzdGF0ZS5Mb2FkaW5nQWN0aXZlRW50ZXJwcmlzZSA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuR2V0QWN0aXZlRW50ZXJwcmlzZSgpLnN1YnNjcmliZShcbiAgICAgICAgYXN5bmMgKFxuICAgICAgICAgIHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPHsgTmFtZTogc3RyaW5nOyBMb29rdXA6IHN0cmluZyB9PlxuICAgICAgICApID0+IHtcbiAgICAgICAgICBzdGF0ZS5Mb2FkaW5nQWN0aXZlRW50ZXJwcmlzZSA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICBzdGF0ZS5BY3RpdmVFbnRlcnByaXNlTG9va3VwID0gcmVzcG9uc2UuTW9kZWw/Lkxvb2t1cDtcblxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHN0YXRlLkxvYWRpbmdBY3RpdmVFbnRlcnByaXNlID0gZmFsc2U7XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgSGFzVmFsaWRDb25uZWN0aW9uKFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgZm9yY2VFbnN1cmVVc2VyOiBib29sZWFuID0gZmFsc2VcbiAgKTogUHJvbWlzZTxFbnRlcnByaXNlQXNDb2RlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICB0aGlzLmFwcHNGbG93U3ZjLkhhc1ZhbGlkQ29ubmVjdGlvbigpLnN1YnNjcmliZShcbiAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBzdGF0ZS5HaXRIdWIuSGFzQ29ubmVjdGlvbiA9IHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwO1xuXG4gICAgICAgICAgaWYgKHN0YXRlLkdpdEh1Yi5IYXNDb25uZWN0aW9uIHx8IGZvcmNlRW5zdXJlVXNlcikge1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzb2x2ZSh7fSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgTGlzdEVudGVycHJpc2VzKHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUpOiBQcm9taXNlPGFueVtdPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHN0YXRlLkxvYWRpbmdFbnRlcnByaXNlcyA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTGlzdEVudGVycHJpc2VzKCkuc3Vic2NyaWJlKFxuICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8QXJyYXk8YW55Pj4pID0+IHtcbiAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRW50ZXJwcmlzZXMgPSBmYWxzZTtcblxuICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgc3RhdGUuRW50ZXJwcmlzZXMgPSByZXNwb25zZS5Nb2RlbDtcblxuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5Nb2RlbCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgc3RhdGUuTG9hZGluZ0VudGVycHJpc2VzID0gZmFsc2U7XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgTG9hZEVudGVycHJpc2VBc0NvZGUoXG4gICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICApOiBQcm9taXNlPEVudGVycHJpc2VBc0NvZGU+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTG9hZEVudGVycHJpc2VBc0NvZGUoKS5zdWJzY3JpYmUoXG4gICAgICAgIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxFbnRlcnByaXNlQXNDb2RlPikgPT4ge1xuICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgc3RhdGUuRWFDID0gcmVzcG9uc2UuTW9kZWwgfHwge307XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMykge1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHN0YXRlLkVhQyA9IHN0YXRlLkVhQyB8fCB7fTtcblxuICAgICAgICAgIHRoaXMuQ3JlYXRpbmdQcm9qZWN0ID1cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHN0YXRlPy5FYUM/LlByb2plY3RzIHx8IHt9KS5sZW5ndGggPD0gMDtcblxuICAgICAgICAgIHJlc29sdmUoc3RhdGUuRWFDKTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKHN0YXRlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBMb2FkVXNlckZlZWQoXG4gICAgcGFnZTogbnVtYmVyLFxuICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZVxuICApOiBQcm9taXNlPEFycmF5PEZlZWRJdGVtPj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzdGF0ZS5Mb2FkaW5nRmVlZCA9IHRydWU7XG5cbiAgICAgIGxldCBwYXJhbU1hcCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QuY2hpbGRyZW5bMF0ucGFyYW1NYXA7XG5cbiAgICAgIGxldCByZXN1bHQgPSB0aGlzLmxvYWRBcHBsaWNhdGlvbnNGb3JGZWVkKHN0YXRlLCBwYXJhbU1hcCk7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgLkxvYWRVc2VyRmVlZChwYWdlLCBwYWdlU2l6ZSwgcmVzdWx0LlByb2plY3QsIHJlc3VsdC5BcHBsaWNhdGlvbnMpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBVc2VyRmVlZFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRmVlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgc3RhdGUuRmVlZCA9IHJlc3BvbnNlLkl0ZW1zO1xuXG4gICAgICAgICAgICAgIHN0YXRlLkZlZWRTb3VyY2VDb250cm9sTG9va3VwcyA9IHJlc3BvbnNlLlNvdXJjZUNvbnRyb2xMb29rdXBzO1xuXG4gICAgICAgICAgICAgIHN0YXRlLkZlZWRBY3Rpb25zID0gcmVzcG9uc2UuQWN0aW9ucztcbiAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJJVEVNWjogXCIsIHJlc3BvbnNlLkl0ZW1zKVxuXG4gICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuSXRlbXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRmVlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU2V0QWN0aXZlRW50ZXJwcmlzZShcbiAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgIGFjdGl2ZUVudExvb2t1cDogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuICAgICAgc3RhdGUuTG9hZGluZ0ZlZWQgPSB0cnVlO1xuXG4gICAgICB0aGlzLmFwcHNGbG93U3ZjLlNldEFjdGl2ZUVudGVycHJpc2UoYWN0aXZlRW50TG9va3VwKS5zdWJzY3JpYmUoXG4gICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gbnVsbDtcblxuICAgICAgICAgICAgY29uc29sZS5sb2coJ3Byb2plY3Qgc2VydmljZSBhY3RpdmUgZW50OiAnLCBhY3RpdmVFbnRMb29rdXApO1xuXG4gICAgICAgICAgICBzdGF0ZS5BY3RpdmVFbnRlcnByaXNlTG9va3VwID0gYWN0aXZlRW50TG9va3VwO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgJ3Byb2plY3Qgc2VydmljZSBTdGF0ZSBhY3RpdmUgZW50OiAnLFxuICAgICAgICAgICAgICBzdGF0ZS5BY3RpdmVFbnRlcnByaXNlTG9va3VwXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgIHZhciByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsIHN0YXRlKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgZWFjOiBFbnRlcnByaXNlQXNDb2RlXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICB0aGlzLmFwcHNGbG93U3ZjLlNhdmVFbnRlcnByaXNlQXNDb2RlKGVhYykuc3Vic2NyaWJlKFxuICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8c3RyaW5nPikgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgIHRoaXMuTG9hZFVzZXJGZWVkKDEsIDI1LCBzdGF0ZSksXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBTZXRDcmVhdGluZ1Byb2plY3QoY3JlYXRpbmdQcm9qZWN0OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5DcmVhdGluZ1Byb2plY3QgPSBjcmVhdGluZ1Byb2plY3Q7XG5cbiAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBTZXRFZGl0UHJvamVjdFNldHRpbmdzKFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgcHJvamVjdExvb2t1cDogc3RyaW5nXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmIChwcm9qZWN0TG9va3VwICE9IG51bGwpIHtcbiAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBudWxsO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBwcm9qZWN0TG9va3VwO1xuXG4gICAgICAgICAgcmVzb2x2ZSh7fSk7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIHRoaXMuQ3JlYXRpbmdQcm9qZWN0ID0gZmFsc2U7XG5cbiAgICAgICAgY29uc29sZS5sb2coc3RhdGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBwcm9qZWN0TG9va3VwO1xuXG4gICAgICAgIHRoaXMuQ3JlYXRpbmdQcm9qZWN0ID0gZmFsc2U7XG5cbiAgICAgICAgcmVzb2x2ZSh7fSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU3VibWl0RmVlZEVudHJ5KFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgZW50cnk6IEZlZWRFbnRyeVxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5TdWJtaXRGZWVkRW50cnkoZW50cnkpLnN1YnNjcmliZShcbiAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPHN0cmluZz4pID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgIHRoaXMuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpLFxuICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgc3RhdGUpLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgVG9nZ2xlQ3JlYXRlUHJvamVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLlNldENyZWF0aW5nUHJvamVjdCghdGhpcy5DcmVhdGluZ1Byb2plY3QpO1xuICB9XG5cbiAgcHVibGljIFVucGFja0xvd0NvZGVVbml0KFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgcmVxOiBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3RcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuVW5wYWNrTG93Q29kZVVuaXQocmVxKS5zdWJzY3JpYmUoXG4gICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgIHZhciByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsIHN0YXRlKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gIEhlbHBlcnNcbiAgcHJvdGVjdGVkIGxvYWRBcHBsaWNhdGlvbnNGb3JGZWVkKFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgcGFyYW1NYXA6IGFueVxuICApIHtcbiAgICAvLyB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtTWFwLnN1YnNjcmliZShhc3luYyAocGFyYW1NYXApID0+IHtcbiAgICB2YXIgcHJvamVjdCA9IHBhcmFtTWFwLmdldCgncHJvamVjdExvb2t1cCcpIHx8ICcnO1xuXG4gICAgdmFyIHJvdXRlID0gcGFyYW1NYXAuZ2V0KCdhcHBSb3V0ZScpO1xuXG4gICAgdmFyIGFwcGxpY2F0aW9uID0gcGFyYW1NYXAuZ2V0KCdhcHBMb29rdXAnKTtcblxuICAgIHZhciBhcHBsaWNhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoYXBwbGljYXRpb24pIHtcbiAgICAgIGFwcGxpY2F0aW9ucy5wdXNoKGFwcGxpY2F0aW9uKTtcbiAgICB9IGVsc2UgaWYgKHJvdXRlICYmIHByb2plY3QpIHtcbiAgICAgIGNvbnN0IGFwcHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSA9IHt9O1xuXG4gICAgICBzdGF0ZS5FYUMuUHJvamVjdHNbcHJvamVjdF0uQXBwbGljYXRpb25Mb29rdXBzLmZvckVhY2goXG4gICAgICAgIChhcHBMb29rdXA6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGFwcHNbYXBwTG9va3VwXSA9IHN0YXRlLkVhQy5BcHBsaWNhdGlvbnNbYXBwTG9va3VwXTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgdmFyIHJvdXRlZEFwcHMgPSB0aGlzLkdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKGFwcHMsIHN0YXRlKTtcblxuICAgICAgdmFyIGN1cnJlbnRBcHBzID0gcm91dGVkQXBwc1tyb3V0ZV07XG5cbiAgICAgIGFwcGxpY2F0aW9ucyA9IE9iamVjdC5rZXlzKGN1cnJlbnRBcHBzKSB8fCBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgQXBwbGljYXRpb25zOiBhcHBsaWNhdGlvbnMsXG4gICAgICBQcm9qZWN0OiBwcm9qZWN0LFxuICAgIH07XG4gICAgLy8gfSk7XG4gIH1cbn1cbiJdfQ==
383
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUF3QjNDLE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQ1ksV0FBb0MsRUFDcEMsY0FBOEI7UUFEOUIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUN2QyxDQUFDO0lBRUosK0ZBQStGO0lBQy9GLGlDQUFpQztJQUVqQyxxQkFBcUI7SUFDckIsdUNBQXVDO0lBQ3ZDLCtDQUErQztJQUMvQywwQ0FBMEM7SUFDMUMsMkNBQTJDO0lBRTNDLG1EQUFtRDtJQUNuRCxpQkFBaUI7SUFDakIsNkRBQTZEO0lBRTdELHdDQUF3QztJQUN4QyxVQUFVO0lBQ1YsVUFBVTtJQUNWLElBQUk7SUFFRyxvQkFBb0IsQ0FDekIsS0FBNEI7UUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVyQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUMvQyxLQUFLLEVBQUUsUUFBc0IsRUFBRSxFQUFFO2dCQUMvQixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtvQkFDOUIsc0RBQXNEO29CQUV0RCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ25CO3FCQUFNO29CQUNMLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUV0QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUV4QixPQUFPLENBQUMsR0FB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UUFFbEQsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVyQyxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTVDLElBQUksWUFBWSxHQUFhLEVBQUUsQ0FBQztRQUVoQyxJQUFJLFdBQVcsRUFBRTtZQUNmLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDaEM7YUFBTSxJQUFJLEtBQUssSUFBSSxPQUFPLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEdBQStDLEVBQUUsQ0FBQztZQUU1RCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQ3BELENBQUMsU0FBaUIsRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEQsQ0FBQyxDQUNGLENBQUM7WUFFRixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRTlELElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDL0M7UUFFRCxPQUFPO1lBQ0wsWUFBWSxFQUFFLFlBQVk7WUFDMUIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQztRQUNGLE1BQU07SUFDUixDQUFDOzsyR0Fsa0JVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlTW9kZWxlZFJlc3BvbnNlLCBCYXNlUmVzcG9uc2UsIFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IGRlYnVnIH0gZnJvbSAnY29uc29sZSc7XG5pbXBvcnQge1xuICBFYUNBcHBsaWNhdGlvbkFzQ29kZSxcbiAgRWFDUHJvamVjdEFzQ29kZSxcbiAgRW50ZXJwcmlzZUFzQ29kZSxcbn0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgR2l0SHViV29ya2Zsb3dSdW4sXG4gIFVucGFja0xvd0NvZGVVbml0UmVxdWVzdCxcbn0gZnJvbSAnLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1NlcnZpY2UgfSBmcm9tICcuL2FwcGxpY2F0aW9ucy1mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgRmVlZEVudHJ5LFxuICBGZWVkSXRlbSxcbiAgVXNlckZlZWRSZXNwb25zZSxcbn0gZnJvbSAnLi4vbW9kZWxzL3VzZXItZmVlZC5tb2RlbCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9qZWN0U2VydmljZSB7XG4gIHB1YmxpYyBDcmVhdGluZ1Byb2plY3Q6IGJvb2xlYW47XG5cbiAgcHVibGljIEVkaXRpbmdQcm9qZWN0TG9va3VwOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGFwcHNGbG93U3ZjOiBBcHBsaWNhdGlvbnNGbG93U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge31cblxuICAvLyBwdWJsaWMgQ3JlYXRlUmVwb3NpdG9yeShzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLCBvcmc6IHN0cmluZywgcmVwb05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAvLyAgIHN0YXRlLkdpdEh1Yi5Mb2FkaW5nID0gdHJ1ZTtcblxuICAvLyAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgLy8gICAgIC5DcmVhdGVSZXBvc2l0b3J5KG9yZywgcmVwb05hbWUpXG4gIC8vICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gIC8vICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAvLyAgICAgICAgIHRoaXMubGlzdFJlcG9zaXRvcmllcyhyZXBvTmFtZSk7XG5cbiAgLy8gICAgICAgICBzdGF0ZS5HaXRIdWIuQ3JlYXRpbmdSZXBvc2l0b3J5ID0gZmFsc2U7XG4gIC8vICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgLy8gIFRPRE86ICBOZWVkIHRvIHN1cmZhY2UgYW4gZXJyb3IgdG8gdGhlIHVzZXIuLi5cblxuICAvLyAgICAgICAgIHN0YXRlLkdpdEh1Yi5Mb2FkaW5nID0gZmFsc2U7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0pO1xuICAvLyB9XG5cbiAgcHVibGljIEVuc3VyZVVzZXJFbnRlcnByaXNlKFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGVcbiAgKTogUHJvbWlzZTxCYXNlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuRW5zdXJlVXNlckVudGVycHJpc2UoKS5zdWJzY3JpYmUoXG4gICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAvLyBjb25zdCBlYWMgPSBhd2FpdCB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKTtcblxuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgZWFjOiBFbnRlcnByaXNlQXNDb2RlXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICB0aGlzLmFwcHNGbG93U3ZjLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhlYWMpLnN1YnNjcmliZShcbiAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPHN0cmluZz4pID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgIHRoaXMuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpLFxuICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIEdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKFxuICAgIGFwcGxpY2F0aW9uczogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9LFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGVcbiAgKToge1xuICAgIFtyb3V0ZTogc3RyaW5nXTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9O1xuICB9IHtcbiAgICBjb25zdCBhcHBMb29rdXBzID0gT2JqZWN0LmtleXMoYXBwbGljYXRpb25zKTtcblxuICAgIGNvbnN0IGFwcHMgPSBhcHBMb29rdXBzLm1hcCgoYXBwTG9va3VwKSA9PiBhcHBsaWNhdGlvbnNbYXBwTG9va3VwXSk7XG5cbiAgICBsZXQgYXBwUm91dGVzID1cbiAgICAgIGFwcHMubWFwKChhcHApID0+IHtcbiAgICAgICAgcmV0dXJuIGFwcD8uTG9va3VwQ29uZmlnPy5QYXRoUmVnZXgucmVwbGFjZSgnLionLCAnJyk7XG4gICAgICB9KSB8fCBbXTtcblxuICAgIGFwcFJvdXRlcyA9IGFwcFJvdXRlcy5maWx0ZXIoKGFyKSA9PiBhciAhPSBudWxsKTtcblxuICAgIGxldCByb3V0ZUJhc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgYXBwUm91dGVzLmZvckVhY2goKGFwcFJvdXRlKSA9PiB7XG4gICAgICBjb25zdCBhcHBSb3V0ZVBhcnRzID0gYXBwUm91dGUuc3BsaXQoJy8nKTtcblxuICAgICAgY29uc3QgYXBwUm91dGVCYXNlID0gYC8ke2FwcFJvdXRlUGFydHNbMV19YDtcblxuICAgICAgaWYgKHJvdXRlQmFzZXMuaW5kZXhPZihhcHBSb3V0ZUJhc2UpIDwgMCkge1xuICAgICAgICByb3V0ZUJhc2VzLnB1c2goYXBwUm91dGVCYXNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCB3b3JraW5nQXBwTG9va3VwcyA9IFsuLi4oYXBwTG9va3VwcyB8fCBbXSldO1xuXG4gICAgcm91dGVCYXNlcyA9IHJvdXRlQmFzZXMuc29ydCgoYSwgYikgPT4gYi5sb2NhbGVDb21wYXJlKGEpKTtcblxuICAgIGNvbnN0IHJvdXRlU2V0ID1cbiAgICAgIHJvdXRlQmFzZXMucmVkdWNlKChwcmV2Um91dGVNYXAsIGN1cnJlbnRSb3V0ZUJhc2UpID0+IHtcbiAgICAgICAgY29uc3Qgcm91dGVNYXAgPSB7XG4gICAgICAgICAgLi4ucHJldlJvdXRlTWFwLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2FsKSA9PiB7XG4gICAgICAgICAgY29uc3Qgd2EgPSBhcHBsaWNhdGlvbnNbd2FsXTtcblxuICAgICAgICAgIHJldHVybiB3YT8uTG9va3VwQ29uZmlnPy5QYXRoUmVnZXguc3RhcnRzV2l0aChjdXJyZW50Um91dGVCYXNlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcm91dGVNYXBbY3VycmVudFJvdXRlQmFzZV0gPVxuICAgICAgICAgIGZpbHRlcmVkQXBwTG9va3Vwcy5yZWR1Y2UoKHByZXZBcHBNYXAsIGFwcExvb2t1cCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwTWFwID0ge1xuICAgICAgICAgICAgICAuLi5wcmV2QXBwTWFwLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYXBwTWFwW2FwcExvb2t1cF0gPSBhcHBsaWNhdGlvbnNbYXBwTG9va3VwXTtcblxuICAgICAgICAgICAgcmV0dXJuIGFwcE1hcDtcbiAgICAgICAgICB9LCB7fSkgfHwge307XG5cbiAgICAgICAgd29ya2luZ0FwcExvb2t1cHMgPSB3b3JraW5nQXBwTG9va3Vwcy5maWx0ZXIoKHdhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlcmVkQXBwTG9va3Vwcy5pbmRleE9mKHdhKSA8IDA7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByb3V0ZU1hcDtcbiAgICAgIH0sIHt9KSB8fCB7fTtcblxuICAgIGxldCByb3V0ZVNldEtleXMgPSBPYmplY3Qua2V5cyhyb3V0ZVNldCk7XG5cbiAgICByb3V0ZVNldEtleXMgPSByb3V0ZVNldEtleXMuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKTtcblxuICAgIGNvbnN0IHJvdXRlU2V0UmVzdWx0ID0ge307XG5cbiAgICByb3V0ZVNldEtleXMuZm9yRWFjaCgocnNrKSA9PiAocm91dGVTZXRSZXN1bHRbcnNrXSA9IHJvdXRlU2V0W3Jza10pKTtcblxuICAgIHJldHVybiByb3V0ZVNldFJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBHZXRBY3RpdmVFbnRlcnByaXNlKFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGVcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHN0YXRlLkxvYWRpbmdBY3RpdmVFbnRlcnByaXNlID0gdHJ1ZTtcblxuICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5HZXRBY3RpdmVFbnRlcnByaXNlKCkuc3Vic2NyaWJlKFxuICAgICAgICBhc3luYyAoXG4gICAgICAgICAgcmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8eyBOYW1lOiBzdHJpbmc7IExvb2t1cDogc3RyaW5nIH0+XG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIHN0YXRlLkxvYWRpbmdBY3RpdmVFbnRlcnByaXNlID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHN0YXRlLkFjdGl2ZUVudGVycHJpc2VMb29rdXAgPSByZXNwb25zZS5Nb2RlbD8uTG9va3VwO1xuXG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgc3RhdGUuTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgPSBmYWxzZTtcblxuICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBIYXNWYWxpZENvbm5lY3Rpb24oXG4gICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICBmb3JjZUVuc3VyZVVzZXI6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBQcm9taXNlPEVudGVycHJpc2VBc0NvZGU+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuSGFzVmFsaWRDb25uZWN0aW9uKCkuc3Vic2NyaWJlKFxuICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHN0YXRlLkdpdEh1Yi5IYXNDb25uZWN0aW9uID0gcmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDA7XG5cbiAgICAgICAgICBpZiAoc3RhdGUuR2l0SHViLkhhc0Nvbm5lY3Rpb24gfHwgZm9yY2VFbnN1cmVVc2VyKSB7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXNvbHZlKHt9KTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBMaXN0RW50ZXJwcmlzZXMoc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSk6IFByb21pc2U8YW55W10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RhdGUuTG9hZGluZ0VudGVycHJpc2VzID0gdHJ1ZTtcblxuICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5MaXN0RW50ZXJwcmlzZXMoKS5zdWJzY3JpYmUoXG4gICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxBcnJheTxhbnk+PikgPT4ge1xuICAgICAgICAgIHN0YXRlLkxvYWRpbmdFbnRlcnByaXNlcyA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICBzdGF0ZS5FbnRlcnByaXNlcyA9IHJlc3BvbnNlLk1vZGVsO1xuXG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLk1vZGVsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICBzdGF0ZS5Mb2FkaW5nRW50ZXJwcmlzZXMgPSBmYWxzZTtcblxuICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBMb2FkRW50ZXJwcmlzZUFzQ29kZShcbiAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlXG4gICk6IFByb21pc2U8RW50ZXJwcmlzZUFzQ29kZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5Mb2FkRW50ZXJwcmlzZUFzQ29kZSgpLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEVudGVycHJpc2VBc0NvZGU+KSA9PiB7XG4gICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICBzdGF0ZS5FYUMgPSByZXNwb25zZS5Nb2RlbCB8fCB7fTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAzKSB7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3RhdGUuRWFDID0gc3RhdGUuRWFDIHx8IHt9O1xuXG4gICAgICAgICAgdGhpcy5DcmVhdGluZ1Byb2plY3QgPVxuICAgICAgICAgICAgT2JqZWN0LmtleXMoc3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge30pLmxlbmd0aCA8PSAwO1xuXG4gICAgICAgICAgcmVzb2x2ZShzdGF0ZS5FYUMpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coc3RhdGUpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIExvYWRVc2VyRmVlZChcbiAgICBwYWdlOiBudW1iZXIsXG4gICAgcGFnZVNpemU6IG51bWJlcixcbiAgICBmb3JDaGVjazogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGVcbiAgKTogUHJvbWlzZTxBcnJheTxGZWVkSXRlbT4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RhdGUuTG9hZGluZ0ZlZWQgPSB0cnVlO1xuXG4gICAgICBsZXQgcGFyYW1NYXAgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmNoaWxkcmVuWzBdLnBhcmFtTWFwO1xuXG4gICAgICBsZXQgcmVzdWx0ID0gdGhpcy5sb2FkQXBwbGljYXRpb25zRm9yRmVlZChzdGF0ZSwgcGFyYW1NYXApO1xuXG4gICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgIC5Mb2FkVXNlckZlZWQocGFnZSwgcGFnZVNpemUsIHJlc3VsdC5Qcm9qZWN0LCByZXN1bHQuQXBwbGljYXRpb25zKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogVXNlckZlZWRSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZ0ZlZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgIGlmICghZm9yQ2hlY2spIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5GZWVkID0gcmVzcG9uc2UuSXRlbXM7XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5GZWVkU291cmNlQ29udHJvbExvb2t1cHMgPSByZXNwb25zZS5Tb3VyY2VDb250cm9sTG9va3VwcztcblxuICAgICAgICAgICAgICAgIHN0YXRlLkZlZWRBY3Rpb25zID0gcmVzcG9uc2UuQWN0aW9ucztcblxuICAgICAgICAgICAgICAgIHN0YXRlLkZlZWRDaGVjayA9IG51bGw7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gcmVzcG9uc2UuSXRlbXM/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAgIChpKSA9PiAhc3RhdGUuRmVlZD8uZmluZCgoZikgPT4gZi5JRCA9PSBpLklEKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXRlbXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIHN0YXRlLkZlZWRDaGVjayA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIklURU1aOiBcIiwgcmVzcG9uc2UuSXRlbXMpXG5cbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5JdGVtcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmdGZWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTZXRBY3RpdmVFbnRlcnByaXNlKFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgYWN0aXZlRW50TG9va3VwOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG4gICAgICBzdGF0ZS5Mb2FkaW5nRmVlZCA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuU2V0QWN0aXZlRW50ZXJwcmlzZShhY3RpdmVFbnRMb29rdXApLnN1YnNjcmliZShcbiAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuRWRpdGluZ1Byb2plY3RMb29rdXAgPSBudWxsO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZygncHJvamVjdCBzZXJ2aWNlIGFjdGl2ZSBlbnQ6ICcsIGFjdGl2ZUVudExvb2t1cCk7XG5cbiAgICAgICAgICAgIHN0YXRlLkFjdGl2ZUVudGVycHJpc2VMb29rdXAgPSBhY3RpdmVFbnRMb29rdXA7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAncHJvamVjdCBzZXJ2aWNlIFN0YXRlIGFjdGl2ZSBlbnQ6ICcsXG4gICAgICAgICAgICAgIHN0YXRlLkFjdGl2ZUVudGVycHJpc2VMb29rdXBcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgIHRoaXMuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpLFxuICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgZWFjOiBFbnRlcnByaXNlQXNDb2RlXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHN0YXRlLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICB0aGlzLmFwcHNGbG93U3ZjLlNhdmVFbnRlcnByaXNlQXNDb2RlKGVhYykuc3Vic2NyaWJlKFxuICAgICAgICBhc3luYyAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8c3RyaW5nPikgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgdGhpcy5Mb2FkRW50ZXJwcmlzZUFzQ29kZShzdGF0ZSksXG4gICAgICAgICAgICAgIHRoaXMuTG9hZFVzZXJGZWVkKDEsIDI1LCBmYWxzZSwgc3RhdGUpLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuQ3JlYXRpbmdQcm9qZWN0ID0gY3JlYXRpbmdQcm9qZWN0O1xuXG4gICAgdGhpcy5FZGl0aW5nUHJvamVjdExvb2t1cCA9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgU2V0RWRpdFByb2plY3RTZXR0aW5ncyhcbiAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgIHByb2plY3RMb29rdXA6IHN0cmluZ1xuICApOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAocHJvamVjdExvb2t1cCAhPSBudWxsKSB7XG4gICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gbnVsbDtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gcHJvamVjdExvb2t1cDtcblxuICAgICAgICAgIHJlc29sdmUoe30pO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgICB0aGlzLkNyZWF0aW5nUHJvamVjdCA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKHN0YXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLkVkaXRpbmdQcm9qZWN0TG9va3VwID0gcHJvamVjdExvb2t1cDtcblxuICAgICAgICB0aGlzLkNyZWF0aW5nUHJvamVjdCA9IGZhbHNlO1xuXG4gICAgICAgIHJlc29sdmUoe30pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFN1Ym1pdEZlZWRFbnRyeShcbiAgICBzdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgIGVudHJ5OiBGZWVkRW50cnlcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RhdGUuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuU3VibWl0RmVlZEVudHJ5KGVudHJ5KS5zdWJzY3JpYmUoXG4gICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxzdHJpbmc+KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLlN0YXR1cyk7XG5cbiAgICAgICAgICAgIHZhciByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICB0aGlzLkxvYWRFbnRlcnByaXNlQXNDb2RlKHN0YXRlKSxcbiAgICAgICAgICAgICAgdGhpcy5Mb2FkVXNlckZlZWQoMSwgMjUsIGZhbHNlLCBzdGF0ZSksXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZWplY3QocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBUb2dnbGVDcmVhdGVQcm9qZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuU2V0Q3JlYXRpbmdQcm9qZWN0KCF0aGlzLkNyZWF0aW5nUHJvamVjdCk7XG4gIH1cblxuICBwdWJsaWMgVW5wYWNrTG93Q29kZVVuaXQoXG4gICAgc3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICByZXE6IFVucGFja0xvd0NvZGVVbml0UmVxdWVzdFxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5VbnBhY2tMb3dDb2RlVW5pdChyZXEpLnN1YnNjcmliZShcbiAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuU3RhdHVzKTtcblxuICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgIHRoaXMuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpLFxuICAgICAgICAgICAgICB0aGlzLkxvYWRVc2VyRmVlZCgxLCAyNSwgZmFsc2UsIHN0YXRlKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGF0ZS5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJlamVjdChyZXNwb25zZS5TdGF0dXMpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgc3RhdGUuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gIEhlbHBlcnNcbiAgcHJvdGVjdGVkIGxvYWRBcHBsaWNhdGlvbnNGb3JGZWVkKFxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgcGFyYW1NYXA6IGFueVxuICApIHtcbiAgICAvLyB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtTWFwLnN1YnNjcmliZShhc3luYyAocGFyYW1NYXApID0+IHtcbiAgICB2YXIgcHJvamVjdCA9IHBhcmFtTWFwLmdldCgncHJvamVjdExvb2t1cCcpIHx8ICcnO1xuXG4gICAgdmFyIHJvdXRlID0gcGFyYW1NYXAuZ2V0KCdhcHBSb3V0ZScpO1xuXG4gICAgdmFyIGFwcGxpY2F0aW9uID0gcGFyYW1NYXAuZ2V0KCdhcHBMb29rdXAnKTtcblxuICAgIHZhciBhcHBsaWNhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoYXBwbGljYXRpb24pIHtcbiAgICAgIGFwcGxpY2F0aW9ucy5wdXNoKGFwcGxpY2F0aW9uKTtcbiAgICB9IGVsc2UgaWYgKHJvdXRlICYmIHByb2plY3QpIHtcbiAgICAgIGNvbnN0IGFwcHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSA9IHt9O1xuXG4gICAgICBzdGF0ZS5FYUMuUHJvamVjdHNbcHJvamVjdF0uQXBwbGljYXRpb25Mb29rdXBzLmZvckVhY2goXG4gICAgICAgIChhcHBMb29rdXA6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGFwcHNbYXBwTG9va3VwXSA9IHN0YXRlLkVhQy5BcHBsaWNhdGlvbnNbYXBwTG9va3VwXTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgdmFyIHJvdXRlZEFwcHMgPSB0aGlzLkdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKGFwcHMsIHN0YXRlKTtcblxuICAgICAgdmFyIGN1cnJlbnRBcHBzID0gcm91dGVkQXBwc1tyb3V0ZV07XG5cbiAgICAgIGFwcGxpY2F0aW9ucyA9IE9iamVjdC5rZXlzKGN1cnJlbnRBcHBzKSB8fCBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgQXBwbGljYXRpb25zOiBhcHBsaWNhdGlvbnMsXG4gICAgICBQcm9qZWN0OiBwcm9qZWN0LFxuICAgIH07XG4gICAgLy8gfSk7XG4gIH1cbn1cbiJdfQ==
@@ -72,4 +72,4 @@ export class ProjectHostingOptionInput {
72
72
  // public ProjectName?: string;
73
73
  // public Repository?: string;
74
74
  // }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25zLWZsb3cuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8scUJBQXFCO0lBK0JoQztRQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFFcEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUUvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUV4QixzQkFBc0I7SUFDeEIsQ0FBQztDQUNGO0FBRUQsOEJBQThCO0FBQzlCLHdEQUF3RDtBQUV4RCw4Q0FBOEM7QUFFOUMsaUNBQWlDO0FBRWpDLDBCQUEwQjtBQUUxQix3QkFBd0I7QUFFeEIsMkJBQTJCO0FBRTNCLHVDQUF1QztBQUV2QywwQkFBMEI7QUFFMUIsbURBQW1EO0FBRW5ELHVDQUF1QztBQUN2QyxJQUFJO0FBRUosa0NBQWtDO0FBQ2xDLGdDQUFnQztBQUVoQywwQkFBMEI7QUFFMUIsa0NBQWtDO0FBRWxDLCtCQUErQjtBQUUvQiw4QkFBOEI7QUFFOUIsZ0NBQWdDO0FBRWhDLDZCQUE2QjtBQUM3QixJQUFJO0FBRUosTUFBTSxPQUFPLGdCQUFnQjtDQVk1QjtBQUVELE1BQU0sT0FBTyxZQUFZO0NBRXhCO0FBRUQsbUNBQW1DO0FBQ25DLDRCQUE0QjtBQUU1Qix3QkFBd0I7QUFFeEIsNEJBQTRCO0FBRTVCLGtDQUFrQztBQUVsQyxnQ0FBZ0M7QUFDaEMsSUFBSTtBQUVKLE1BQU0sT0FBTyxrQkFBa0I7Q0FFOUI7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0NBSTVCO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQWdCN0I7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0NBTXBDO0FBRUQsOEJBQThCO0FBQzlCLDZCQUE2QjtBQUU3Qix3QkFBd0I7QUFFeEIsMEJBQTBCO0FBRTFCLGdDQUFnQztBQUVoQywwQkFBMEI7QUFFMUIsOEJBQThCO0FBQzlCLElBQUk7QUFFSixNQUFNLE9BQU8scUJBQXFCO0NBSWpDO0FBRUQsTUFBTSxPQUFPLG9CQUFvQjtDQWdCaEM7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0NBVXJDO0FBRUQseUNBQXlDO0FBQ3pDLDRCQUE0QjtBQUU1QixpQ0FBaUM7QUFFakMsbUNBQW1DO0FBRW5DLGtDQUFrQztBQUVsQyxrQ0FBa0M7QUFFbEMsaUNBQWlDO0FBRWpDLGdDQUFnQztBQUNoQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50ZXJwcmlzZUFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XHJcbmltcG9ydCB7IEZlZWRJdGVtLCBGZWVkSXRlbUFjdGlvbiB9IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB7XHJcbiAgcHVibGljIEFjdGl2ZUVudGVycHJpc2VMb29rdXA/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBFYUM/OiBFbnRlcnByaXNlQXNDb2RlO1xyXG5cclxuICBwdWJsaWMgRW50ZXJwcmlzZXM/OiBBcnJheTx7IE5hbWU6IHN0cmluZzsgTG9va3VwOiBzdHJpbmcgfT47XHJcblxyXG4gIHB1YmxpYyBGZWVkPzogQXJyYXk8RmVlZEl0ZW0+O1xyXG5cclxuICBwdWJsaWMgRmVlZEFjdGlvbnM/OiBBcnJheTxGZWVkSXRlbUFjdGlvbj47XHJcblxyXG4gIHB1YmxpYyBGZWVkU291cmNlQ29udHJvbExvb2t1cHM/OiBBcnJheTxzdHJpbmc+O1xyXG5cclxuICBwdWJsaWMgR2l0SHViPzogR2l0SHViU2V0dXBTdGF0ZTtcclxuXHJcbiAgcHVibGljIEhvc3RpbmdEZXRhaWxzPzogUHJvamVjdEhvc3RpbmdEZXRhaWxzO1xyXG5cclxuICBwdWJsaWMgTG9hZGluZz86IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBMb2FkaW5nQWN0aXZlRW50ZXJwcmlzZT86IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBMb2FkaW5nRW50ZXJwcmlzZXM/OiBib29sZWFuO1xyXG4gIFxyXG4gIHB1YmxpYyBMb2FkaW5nRmVlZD86IGJvb2xlYW47XHJcblxyXG4gIC8vIHB1YmxpYyBQcm9qZWN0cz86IFByb2plY3RTdGF0ZVtdO1xyXG5cclxuICBwdWJsaWMgVW5sZWFzaGVkPzogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIFVzZXJFbnRlcnByaXNlTG9va3VwPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuR2l0SHViID0ge307XHJcblxyXG4gICAgdGhpcy5Ib3N0aW5nRGV0YWlscyA9IHt9O1xyXG5cclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5Mb2FkaW5nQWN0aXZlRW50ZXJwcmlzZSA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5Mb2FkaW5nRW50ZXJwcmlzZXMgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuTG9hZGluZ0ZlZWQgPSB0cnVlO1xyXG5cclxuICAgIC8vIHRoaXMuUHJvamVjdHMgPSBbXTtcclxuICB9XHJcbn1cclxuXHJcbi8vIGV4cG9ydCBjbGFzcyBQcm9qZWN0U3RhdGUge1xyXG4vLyAgIHB1YmxpYyBBY3Rpb25zU2V0PzogeyBbaWQ6IHN0cmluZ106IERldk9wc0FjdGlvbiB9O1xyXG5cclxuLy8gICBwdWJsaWMgQXBwbGljYXRpb25zPzogQXBwbGljYXRpb25TdGF0ZVtdO1xyXG5cclxuLy8gICBwdWJsaWMgRGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBIb3N0Pzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgSUQ/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBJbWFnZT86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIExDVXM/OiBHaXRIdWJMb3dDb2RlVW5pdFtdO1xyXG5cclxuLy8gICBwdWJsaWMgTmFtZT86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIFByZXZlbnRJbmhlcml0ZWRBcHBsaWNhdGlvbnM/OiBib29sZWFuO1xyXG5cclxuLy8gICBwdWJsaWMgUnVucz86IEdpdEh1YldvcmtmbG93UnVuW107XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvblN0YXRlIHtcclxuLy8gICBwdWJsaWMgSXNQcml2YXRlPzogYm9vbGVhbjtcclxuXHJcbi8vICAgcHVibGljIE5hbWU/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBPcmdhbml6YXRpb24/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBQYXRoUmVnZXg/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBQcmlvcml0eT86IG51bWJlcjtcclxuXHJcbi8vICAgcHVibGljIFJlcG9zaXRvcnk/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBWZXJzaW9uPzogc3RyaW5nO1xyXG4vLyB9XHJcblxyXG5leHBvcnQgY2xhc3MgR2l0SHViU2V0dXBTdGF0ZSB7XHJcbiAgcHVibGljIEJyYW5jaE9wdGlvbnM/OiBHaXRIdWJCcmFuY2hbXTtcclxuXHJcbiAgcHVibGljIENyZWF0aW5nUmVwb3NpdG9yeT86IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBIYXNDb25uZWN0aW9uPzogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIExvYWRpbmc/OiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgT3JnYW5pemF0aW9uT3B0aW9ucz86IEdpdEh1Yk9yZ2FuaXphdGlvbltdO1xyXG5cclxuICBwdWJsaWMgUmVwb3NpdG9yeU9wdGlvbnM/OiBHaXRIdWJSZXBvc2l0b3J5W107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHaXRIdWJCcmFuY2gge1xyXG4gIHB1YmxpYyBOYW1lPzogc3RyaW5nO1xyXG59XHJcblxyXG4vLyBleHBvcnQgY2xhc3MgR2l0SHViTG93Q29kZVVuaXQge1xyXG4vLyAgIHB1YmxpYyBCcmFuY2g/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBJRD86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIExvb2t1cD86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIE9yZ2FuaXphdGlvbj86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIFJlcG9zaXRvcnk/OiBzdHJpbmc7XHJcbi8vIH1cclxuXHJcbmV4cG9ydCBjbGFzcyBHaXRIdWJPcmdhbml6YXRpb24ge1xyXG4gIHB1YmxpYyBOYW1lPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2l0SHViUmVwb3NpdG9yeSB7XHJcbiAgcHVibGljIENsb25lVVJMPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgTmFtZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEdpdEh1YldvcmtmbG93UnVuIHtcclxuICBwdWJsaWMgQ29uY2x1c2lvbj86IHN0cmluZztcclxuXHJcbiAgcHVibGljIENyZWF0ZWRBdD86IHN0cmluZztcclxuXHJcbiAgcHVibGljIElEPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgTENVSUQ/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBSdW5OdW1iZXI/OiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBTdGF0dXM/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBXb3JrZmxvdz86IHN0cmluZztcclxuXHJcbiAgcHVibGljIFVwZGF0ZWRBdD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVucGFja0xvd0NvZGVVbml0UmVxdWVzdCB7XHJcbiAgcHVibGljIEFwcGxpY2F0aW9uTG9va3VwPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgQXBwbGljYXRpb25OYW1lPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgVmVyc2lvbj86IHN0cmluZztcclxufVxyXG5cclxuLy8gZXhwb3J0IGNsYXNzIERldk9wc0FjdGlvbiB7XHJcbi8vICAgcHVibGljIERldGFpbHM/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBJRD86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIE5hbWU/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBPdmVyd3JpdGU/OiBib29sZWFuO1xyXG5cclxuLy8gICBwdWJsaWMgUGF0aD86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIFRlbXBsYXRlPzogc3RyaW5nO1xyXG4vLyB9XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvamVjdEhvc3RpbmdEZXRhaWxzIHtcclxuICBwdWJsaWMgSG9zdGluZ09wdGlvbnM/OiBQcm9qZWN0SG9zdGluZ09wdGlvbltdO1xyXG5cclxuICBwdWJsaWMgTG9hZGluZz86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9qZWN0SG9zdGluZ09wdGlvbiB7XHJcbiAgcHVibGljIEFydGlmYWN0VHlwZT86IHN0cmluZztcclxuXHJcbiAgcHVibGljIERlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgSW1hZ2U/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBJbnB1dHM/OiBQcm9qZWN0SG9zdGluZ09wdGlvbklucHV0W107XHJcblxyXG4gIHB1YmxpYyBMb29rdXA/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBOYW1lPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgUGF0aD86IHN0cmluZztcclxuXHJcbiAgcHVibGljIFRlbXBsYXRlcz86IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvamVjdEhvc3RpbmdPcHRpb25JbnB1dCB7XHJcbiAgcHVibGljIERlZmF1bHRWYWx1ZT86IHN0cmluZztcclxuXHJcbiAgcHVibGljIEhpbnQ/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBMb29rdXA/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBQbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHJcbiAgcHVibGljIFJlcXVpcmVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuLy8gZXhwb3J0IGNsYXNzIEVzdGFibGlzaFByb2plY3RSZXF1ZXN0IHtcclxuLy8gICBwdWJsaWMgQnJhbmNoPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgQnVpbGRTY3JpcHQ/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBIb3N0aW5nT3B0aW9uPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgT3JnYW5pemF0aW9uPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgT3V0cHV0Rm9sZGVyPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgUHJvamVjdE5hbWU/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBSZXBvc2l0b3J5Pzogc3RyaW5nO1xyXG4vLyB9XHJcbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25zLWZsb3cuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8scUJBQXFCO0lBaUNoQztRQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFFcEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUUvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUV4QixzQkFBc0I7SUFDeEIsQ0FBQztDQUNGO0FBRUQsOEJBQThCO0FBQzlCLHdEQUF3RDtBQUV4RCw4Q0FBOEM7QUFFOUMsaUNBQWlDO0FBRWpDLDBCQUEwQjtBQUUxQix3QkFBd0I7QUFFeEIsMkJBQTJCO0FBRTNCLHVDQUF1QztBQUV2QywwQkFBMEI7QUFFMUIsbURBQW1EO0FBRW5ELHVDQUF1QztBQUN2QyxJQUFJO0FBRUosa0NBQWtDO0FBQ2xDLGdDQUFnQztBQUVoQywwQkFBMEI7QUFFMUIsa0NBQWtDO0FBRWxDLCtCQUErQjtBQUUvQiw4QkFBOEI7QUFFOUIsZ0NBQWdDO0FBRWhDLDZCQUE2QjtBQUM3QixJQUFJO0FBRUosTUFBTSxPQUFPLGdCQUFnQjtDQVk1QjtBQUVELE1BQU0sT0FBTyxZQUFZO0NBRXhCO0FBRUQsbUNBQW1DO0FBQ25DLDRCQUE0QjtBQUU1Qix3QkFBd0I7QUFFeEIsNEJBQTRCO0FBRTVCLGtDQUFrQztBQUVsQyxnQ0FBZ0M7QUFDaEMsSUFBSTtBQUVKLE1BQU0sT0FBTyxrQkFBa0I7Q0FFOUI7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0NBSTVCO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQWdCN0I7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0NBTXBDO0FBRUQsOEJBQThCO0FBQzlCLDZCQUE2QjtBQUU3Qix3QkFBd0I7QUFFeEIsMEJBQTBCO0FBRTFCLGdDQUFnQztBQUVoQywwQkFBMEI7QUFFMUIsOEJBQThCO0FBQzlCLElBQUk7QUFFSixNQUFNLE9BQU8scUJBQXFCO0NBSWpDO0FBRUQsTUFBTSxPQUFPLG9CQUFvQjtDQWdCaEM7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0NBVXJDO0FBRUQseUNBQXlDO0FBQ3pDLDRCQUE0QjtBQUU1QixpQ0FBaUM7QUFFakMsbUNBQW1DO0FBRW5DLGtDQUFrQztBQUVsQyxrQ0FBa0M7QUFFbEMsaUNBQWlDO0FBRWpDLGdDQUFnQztBQUNoQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50ZXJwcmlzZUFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XHJcbmltcG9ydCB7IEZlZWRJdGVtLCBGZWVkSXRlbUFjdGlvbiwgVXNlckZlZWRSZXNwb25zZSB9IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB7XHJcbiAgcHVibGljIEFjdGl2ZUVudGVycHJpc2VMb29rdXA/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBFYUM/OiBFbnRlcnByaXNlQXNDb2RlO1xyXG5cclxuICBwdWJsaWMgRW50ZXJwcmlzZXM/OiBBcnJheTx7IE5hbWU6IHN0cmluZzsgTG9va3VwOiBzdHJpbmcgfT47XHJcblxyXG4gIHB1YmxpYyBGZWVkPzogQXJyYXk8RmVlZEl0ZW0+O1xyXG5cclxuICBwdWJsaWMgRmVlZEFjdGlvbnM/OiBBcnJheTxGZWVkSXRlbUFjdGlvbj47XHJcblxyXG4gIHB1YmxpYyBGZWVkQ2hlY2s/OiBVc2VyRmVlZFJlc3BvbnNlO1xyXG5cclxuICBwdWJsaWMgRmVlZFNvdXJjZUNvbnRyb2xMb29rdXBzPzogQXJyYXk8c3RyaW5nPjtcclxuXHJcbiAgcHVibGljIEdpdEh1Yj86IEdpdEh1YlNldHVwU3RhdGU7XHJcblxyXG4gIHB1YmxpYyBIb3N0aW5nRGV0YWlscz86IFByb2plY3RIb3N0aW5nRGV0YWlscztcclxuXHJcbiAgcHVibGljIExvYWRpbmc/OiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgTG9hZGluZ0FjdGl2ZUVudGVycHJpc2U/OiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgTG9hZGluZ0VudGVycHJpc2VzPzogYm9vbGVhbjtcclxuICBcclxuICBwdWJsaWMgTG9hZGluZ0ZlZWQ/OiBib29sZWFuO1xyXG5cclxuICAvLyBwdWJsaWMgUHJvamVjdHM/OiBQcm9qZWN0U3RhdGVbXTtcclxuXHJcbiAgcHVibGljIFVubGVhc2hlZD86IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBVc2VyRW50ZXJwcmlzZUxvb2t1cD86IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLkdpdEh1YiA9IHt9O1xyXG5cclxuICAgIHRoaXMuSG9zdGluZ0RldGFpbHMgPSB7fTtcclxuXHJcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuTG9hZGluZ0VudGVycHJpc2VzID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLkxvYWRpbmdGZWVkID0gdHJ1ZTtcclxuXHJcbiAgICAvLyB0aGlzLlByb2plY3RzID0gW107XHJcbiAgfVxyXG59XHJcblxyXG4vLyBleHBvcnQgY2xhc3MgUHJvamVjdFN0YXRlIHtcclxuLy8gICBwdWJsaWMgQWN0aW9uc1NldD86IHsgW2lkOiBzdHJpbmddOiBEZXZPcHNBY3Rpb24gfTtcclxuXHJcbi8vICAgcHVibGljIEFwcGxpY2F0aW9ucz86IEFwcGxpY2F0aW9uU3RhdGVbXTtcclxuXHJcbi8vICAgcHVibGljIERlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgSG9zdD86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIElEPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgSW1hZ2U/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBMQ1VzPzogR2l0SHViTG93Q29kZVVuaXRbXTtcclxuXHJcbi8vICAgcHVibGljIE5hbWU/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBQcmV2ZW50SW5oZXJpdGVkQXBwbGljYXRpb25zPzogYm9vbGVhbjtcclxuXHJcbi8vICAgcHVibGljIFJ1bnM/OiBHaXRIdWJXb3JrZmxvd1J1bltdO1xyXG4vLyB9XHJcblxyXG4vLyBleHBvcnQgY2xhc3MgQXBwbGljYXRpb25TdGF0ZSB7XHJcbi8vICAgcHVibGljIElzUHJpdmF0ZT86IGJvb2xlYW47XHJcblxyXG4vLyAgIHB1YmxpYyBOYW1lPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgT3JnYW5pemF0aW9uPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgUGF0aFJlZ2V4Pzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgUHJpb3JpdHk/OiBudW1iZXI7XHJcblxyXG4vLyAgIHB1YmxpYyBSZXBvc2l0b3J5Pzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgVmVyc2lvbj86IHN0cmluZztcclxuLy8gfVxyXG5cclxuZXhwb3J0IGNsYXNzIEdpdEh1YlNldHVwU3RhdGUge1xyXG4gIHB1YmxpYyBCcmFuY2hPcHRpb25zPzogR2l0SHViQnJhbmNoW107XHJcblxyXG4gIHB1YmxpYyBDcmVhdGluZ1JlcG9zaXRvcnk/OiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgSGFzQ29ubmVjdGlvbj86IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBMb2FkaW5nPzogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIE9yZ2FuaXphdGlvbk9wdGlvbnM/OiBHaXRIdWJPcmdhbml6YXRpb25bXTtcclxuXHJcbiAgcHVibGljIFJlcG9zaXRvcnlPcHRpb25zPzogR2l0SHViUmVwb3NpdG9yeVtdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2l0SHViQnJhbmNoIHtcclxuICBwdWJsaWMgTmFtZT86IHN0cmluZztcclxufVxyXG5cclxuLy8gZXhwb3J0IGNsYXNzIEdpdEh1Ykxvd0NvZGVVbml0IHtcclxuLy8gICBwdWJsaWMgQnJhbmNoPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgSUQ/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBMb29rdXA/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBPcmdhbml6YXRpb24/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBSZXBvc2l0b3J5Pzogc3RyaW5nO1xyXG4vLyB9XHJcblxyXG5leHBvcnQgY2xhc3MgR2l0SHViT3JnYW5pemF0aW9uIHtcclxuICBwdWJsaWMgTmFtZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEdpdEh1YlJlcG9zaXRvcnkge1xyXG4gIHB1YmxpYyBDbG9uZVVSTD86IHN0cmluZztcclxuXHJcbiAgcHVibGljIE5hbWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHaXRIdWJXb3JrZmxvd1J1biB7XHJcbiAgcHVibGljIENvbmNsdXNpb24/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBDcmVhdGVkQXQ/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBJRD86IHN0cmluZztcclxuXHJcbiAgcHVibGljIExDVUlEPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgUnVuTnVtYmVyPzogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgU3RhdHVzPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgV29ya2Zsb3c/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBVcGRhdGVkQXQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3Qge1xyXG4gIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcclxuXHJcbiAgcHVibGljIEFwcGxpY2F0aW9uTmFtZT86IHN0cmluZztcclxuXHJcbiAgcHVibGljIFZlcnNpb24/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8vIGV4cG9ydCBjbGFzcyBEZXZPcHNBY3Rpb24ge1xyXG4vLyAgIHB1YmxpYyBEZXRhaWxzPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgSUQ/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBOYW1lPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgT3ZlcndyaXRlPzogYm9vbGVhbjtcclxuXHJcbi8vICAgcHVibGljIFBhdGg/OiBzdHJpbmc7XHJcblxyXG4vLyAgIHB1YmxpYyBUZW1wbGF0ZT86IHN0cmluZztcclxuLy8gfVxyXG5cclxuZXhwb3J0IGNsYXNzIFByb2plY3RIb3N0aW5nRGV0YWlscyB7XHJcbiAgcHVibGljIEhvc3RpbmdPcHRpb25zPzogUHJvamVjdEhvc3RpbmdPcHRpb25bXTtcclxuXHJcbiAgcHVibGljIExvYWRpbmc/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvamVjdEhvc3RpbmdPcHRpb24ge1xyXG4gIHB1YmxpYyBBcnRpZmFjdFR5cGU/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBEZXNjcmlwdGlvbj86IHN0cmluZztcclxuXHJcbiAgcHVibGljIEltYWdlPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgSW5wdXRzPzogUHJvamVjdEhvc3RpbmdPcHRpb25JbnB1dFtdO1xyXG5cclxuICBwdWJsaWMgTG9va3VwPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgTmFtZT86IHN0cmluZztcclxuXHJcbiAgcHVibGljIFBhdGg/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBUZW1wbGF0ZXM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFByb2plY3RIb3N0aW5nT3B0aW9uSW5wdXQge1xyXG4gIHB1YmxpYyBEZWZhdWx0VmFsdWU/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBIaW50Pzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgTG9va3VwPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBSZXF1aXJlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8vIGV4cG9ydCBjbGFzcyBFc3RhYmxpc2hQcm9qZWN0UmVxdWVzdCB7XHJcbi8vICAgcHVibGljIEJyYW5jaD86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIEJ1aWxkU2NyaXB0Pzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgSG9zdGluZ09wdGlvbj86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIE9yZ2FuaXphdGlvbj86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIE91dHB1dEZvbGRlcj86IHN0cmluZztcclxuXHJcbi8vICAgcHVibGljIFByb2plY3ROYW1lPzogc3RyaW5nO1xyXG5cclxuLy8gICBwdWJsaWMgUmVwb3NpdG9yeT86IHN0cmluZztcclxuLy8gfVxyXG4iXX0=