@lowcodeunit/applications-flow-common 1.39.82-integration → 1.39.85-enterprise-switch-fix

Sign up to get free protection for your applications and to get access to all the features.
@@ -167,6 +167,7 @@ export class DFSModifiersFormComponent {
167
167
  SaveModifier(projectLookup = null) {
168
168
  let saveStatus;
169
169
  if (this.ModifierFormGroup) {
170
+ // console.log("here 1")
170
171
  const saveMdfrReq = {
171
172
  Modifier: {
172
173
  ...this.EditingModifier,
@@ -177,7 +178,7 @@ export class DFSModifiersFormComponent {
177
178
  Type: this.CurrentType,
178
179
  },
179
180
  ModifierLookups: [this.EditingModifierLookup],
180
- ProjectLookups: [projectLookup],
181
+ // ProjectLookups: [projectLookup],
181
182
  };
182
183
  let details = this.getDetails();
183
184
  saveMdfrReq.Modifier.Details = JSON.stringify(details);
@@ -186,6 +187,7 @@ export class DFSModifiersFormComponent {
186
187
  });
187
188
  }
188
189
  else if (this.ModifierSelectFormGroup) {
190
+ // console.log('here 2');
189
191
  const saveMdfrReq = {
190
192
  ModifierLookups: this.MultiSelectFormControl.value,
191
193
  ProjectLookups: [projectLookup],
@@ -322,4 +324,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
322
324
  type: Input,
323
325
  args: ['level']
324
326
  }] } });
325
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZzLW1vZGlmaWVycy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2NvbnRyb2xzL2Rmcy1tb2RpZmllcnMtZm9ybS9kZnMtbW9kaWZpZXJzLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGZzLW1vZGlmaWVycy1mb3JtL2Rmcy1tb2RpZmllcnMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBSUgsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFReEIsT0FBTyxFQUFFLElBQUksRUFBVSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWMzQyxNQUFNLE9BQU8seUJBQXlCO0lBOEZsQyxnQkFBZ0I7SUFDaEIsWUFDYyxRQUFxQixFQUNyQixXQUFvQyxFQUNwQyxNQUFrQjtRQUZsQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBRTVCLHFDQUFxQztJQUN6QyxDQUFDO0lBekVELDhCQUE4QjtJQUM5QiwwREFBMEQ7SUFDMUQsSUFBSTtJQUVKLElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsMEJBQTBCO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMs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Q0wsQ0FBQzs7c0hBM1lRLHlCQUF5QjswR0FBekIseUJBQXlCLHFiQzVCdEMsbzlYQW1VQTsyRkR2U2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLHVCQUF1QjtpS0FXMUIscUJBQXFCO3NCQUQzQixLQUFLO3VCQUFDLHlCQUF5QjtnQkFJekIsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyxjQUFjO2dCQUlkLGlCQUFpQjtzQkFEdkIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBSXBCLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxVQUFVO2dCQUlWLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUloQixTQUFTO3NCQURmLEtBQUs7dUJBQUMsV0FBVztnQkFLWCxLQUFLO3NCQURYLEtBQUs7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcblxuaW1wb3J0IHtcbiAgICBFYUNBcHBsaWNhdGlvbkFzQ29kZSxcbiAgICBFYUNERlNNb2RpZmllcixcbiAgICBFYUNQcm9qZWN0QXNDb2RlLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgR3VpZCwgU3RhdHVzIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7XG4gICAgRWFDU2VydmljZSxcbiAgICBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwbGljYXRpb25zLWZsb3cuc2VydmljZSc7XG5pbXBvcnQgeyBDZGtEcm9wTGlzdEdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGN1LWRmcy1tb2RpZmllci1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGZzLW1vZGlmaWVycy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kZnMtbW9kaWZpZXJzLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgREZTTW9kaWZpZXJzRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLy8gIEZpZWxkc1xuXG4gICAgLy8gIFByb3BlcnRpZXNcbiAgICBwdWJsaWMgQ3VycmVudFR5cGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgnZWRpdGluZy1tb2RpZmllci1sb29rdXAnKVxuICAgIHB1YmxpYyBFZGl0aW5nTW9kaWZpZXJMb29rdXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgnYXBwbGljYXRpb25zJylcbiAgICBwdWJsaWMgQXBwbGljYXRpb25zOiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcblxuICAgIEBJbnB1dCgnYXBwbGljYXRpb24tbG9va3VwJylcbiAgICBwdWJsaWMgQXBwbGljYXRpb25Mb29rdXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgncHJvamVjdHMnKVxuICAgIHB1YmxpYyBQcm9qZWN0czogQXJyYXk8RWFDUHJvamVjdEFzQ29kZT47XG5cbiAgICBASW5wdXQoJ3Byb2plY3QtbG9va3VwJylcbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cDogc3RyaW5nO1xuXG4gICAgQElucHV0KCdtb2RpZmllcnMnKVxuICAgIHB1YmxpYyBNb2RpZmllcnM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDREZTTW9kaWZpZXIgfTtcblxuICAgIC8qKndoaWNoIGxldmVsIGlzIHRoZSBkZnMgbW9kaWZpZXIgYmVpbmcgZWRpdGVkIGVudCBwcm9qZWN0IG9yIGFwcCAqL1xuICAgIEBJbnB1dCgnbGV2ZWwnKVxuICAgIHB1YmxpYyBMZXZlbDogc3RyaW5nO1xuXG4gICAgLy8gcHVibGljIGdldCBEZXRhaWxzKCk6IGFueSB7XG4gICAgLy8gICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5FZGl0aW5nTW9kaWZpZXI/LkRldGFpbHMpO1xuICAgIC8vIH1cblxuICAgIHB1YmxpYyBnZXQgRGV0YWlsc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5kZXRhaWxzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgRW5hYmxlZEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5lbmFibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgRW50ZXJwcmlzZXNNb2RpZmllckxvb2t1cHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLk1vZGlmaWVycyB8fCB7fSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBMb2NhdGlvbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5sb2NhdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IE11bHRpU2VsZWN0Rm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJTZWxlY3RGb3JtR3JvdXA/LmNvbnRyb2xzLm11bHRpU2VsZWN0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgTmFtZUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5uYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgUGF0aEZpbHRlckZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5wYXRoRmlsdGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgUHJpb3JpdHlGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMucHJpb3JpdHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTY3JpcHRGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMuc2NyaXB0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgU2NyaXB0SURGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMuc2NyaXB0SWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTY3JpcHRUeXBlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLnNjcmlwdFR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTdGF0ZURhdGFUb2tlbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5zdGF0ZURhdGFUb2tlbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFR5cGVGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMudHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgRWRpdGluZ01vZGlmaWVyOiBFYUNERlNNb2RpZmllcjtcblxuICAgIHB1YmxpYyBNb2RpZmllckZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIE1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwdWJsaWMgTW9kaWZpZXJMb29rdXBzOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgcHVibGljIFByb2plY3Q6IEVhQ1Byb2plY3RBc0NvZGU7XG5cbiAgICAvLyAgQ29uc3RydWN0b3JzXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBmb3JtQmxkcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByb3RlY3RlZCBhcHBzRmxvd1N2YzogQXBwbGljYXRpb25zRmxvd1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgLy8gdGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXAgPSBudWxsO1xuICAgIH1cblxuICAgIC8vICBMaWZlIEN5Y2xlXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuUHJvamVjdExvb2t1cCkge1xuICAgICAgICAgICAgdGhpcy5Nb2RpZmllckxvb2t1cHMgPVxuICAgICAgICAgICAgICAgIHRoaXMuUHJvamVjdHNbdGhpcy5Qcm9qZWN0TG9va3VwXT8uTW9kaWZpZXJMb29rdXBzO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuQXBwbGljYXRpb25Mb29rdXApIHtcbiAgICAgICAgICAgIHRoaXMuTW9kaWZpZXJMb29rdXBzID1cbiAgICAgICAgICAgICAgICB0aGlzLkFwcGxpY2F0aW9uc1t0aGlzLkFwcGxpY2F0aW9uTG9va3VwXT8uTW9kaWZpZXJMb29rdXBzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5Nb2RpZmllckxvb2t1cHMgPSBPYmplY3Qua2V5cyh0aGlzLk1vZGlmaWVycyB8fCB7fSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbWRmciA9IHRoaXMuTW9kaWZpZXJzXG4gICAgICAgICAgICA/IHRoaXMuTW9kaWZpZXJzW3RoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwXVxuICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIGlmIChtZGZyID09IG51bGwgJiYgdGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXApIHtcbiAgICAgICAgICAgIG1kZnIgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLkVkaXRpbmdNb2RpZmllciA9IG1kZnI7XG5cbiAgICAgICAgaWYgKHRoaXMuUHJvamVjdExvb2t1cCAmJiB0aGlzLlByb2plY3RzKSB7XG4gICAgICAgICAgICB0aGlzLlByb2plY3QgPSB0aGlzLlByb2plY3RzW3RoaXMuUHJvamVjdExvb2t1cF07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5MZXZlbCA9PT0gJ2VudGVycHJpc2UnICYmICF0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cCkge1xuICAgICAgICAgICAgdGhpcy5DcmVhdGVOZXdNb2RpZmllcigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwKSB7XG4gICAgICAgICAgICB0aGlzLnNldHVwTW9kaWZpZXJGb3JtKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldHVwTW9kaWZpZXJTZWxlY3RGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAgQVBJIE1ldGhvZHNcbiAgICBwdWJsaWMgQ3JlYXRlTmV3TW9kaWZpZXIoKTogdm9pZCB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdDUkVBVEUgTkVXIE1PRCcpO1xuICAgICAgICB0aGlzLlNldEVkaXRpbmdNb2RpZmllcihHdWlkLkNyZWF0ZVJhdygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgRGVsZXRlTW9kaWZpZXIobW9kaWZpZXJMb29rdXA6IHN0cmluZywgbW9kaWZpZXJOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lYWNTdmMuRGVsZXRlTW9kaWZpZXIobW9kaWZpZXJMb29rdXAsIG1vZGlmaWVyTmFtZSkudGhlbigpO1xuICAgIH1cblxuICAgIC8vIHB1YmxpYyBEZXRlcm1pbmVTYXZlKCl7XG5cbiAgICAvLyB9XG5cbiAgICBwdWJsaWMgU2F2ZU1vZGlmaWVyRm9yQWxsUHJvamVjdHMocHJvamVjdExvb2t1cHM6IEFycmF5PHN0cmluZz4pOiBTdGF0dXMge1xuICAgICAgICBsZXQgc2F2ZVN0YXR1czogU3RhdHVzO1xuICAgICAgICBjb25zdCBzYXZlTWRmclJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgTW9kaWZpZXI6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLkVkaXRpbmdNb2RpZmllcixcbiAgICAgICAgICAgICAgICBOYW1lOiB0aGlzLk5hbWVGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICBFbmFibGVkOiB0aGlzLkVuYWJsZWRGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICBQYXRoRmlsdGVyUmVnZXg6IHRoaXMuUGF0aEZpbHRlckZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgIFByaW9yaXR5OiB0aGlzLlByaW9yaXR5Rm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgVHlwZTogdGhpcy5DdXJyZW50VHlwZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBNb2RpZmllckxvb2t1cHM6IFt0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cF0sXG4gICAgICAgICAgICBQcm9qZWN0TG9va3VwczogcHJvamVjdExvb2t1cHMsXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGRldGFpbHMgPSB0aGlzLmdldERldGFpbHMoKTtcblxuICAgICAgICBzYXZlTWRmclJlcS5Nb2RpZmllci5EZXRhaWxzID0gSlNPTi5zdHJpbmdpZnkoZGV0YWlscyk7XG5cbiAgICAgICAgdGhpcy5lYWNTdmMuU2F2ZURGU01vZGlmaWVyKHNhdmVNZGZyUmVxKS50aGVuKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgIHNhdmVTdGF0dXMgPSBzdGF0dXM7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc2F2ZVN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgU2F2ZU1vZGlmaWVyRm9yQXBwbGljYXRpb24oYXBwbGljYXRpb25Mb29rdXA6IHN0cmluZyk6IFN0YXR1cyB7XG4gICAgICAgIGxldCBzYXZlU3RhdHVzOiBTdGF0dXM7XG4gICAgICAgIGlmICh0aGlzLk1vZGlmaWVyRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICBjb25zdCBzYXZlTWRmclJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgICAgIE1vZGlmaWVyOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuRWRpdGluZ01vZGlmaWVyLFxuICAgICAgICAgICAgICAgICAgICBOYW1lOiB0aGlzLk5hbWVGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgRW5hYmxlZDogdGhpcy5FbmFibGVkRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFBhdGhGaWx0ZXJSZWdleDogdGhpcy5QYXRoRmlsdGVyRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFByaW9yaXR5OiB0aGlzLlByaW9yaXR5Rm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFR5cGU6IHRoaXMuQ3VycmVudFR5cGUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBNb2RpZmllckxvb2t1cHM6IFt0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cF0sXG4gICAgICAgICAgICAgICAgQXBwbGljYXRpb25Mb29rdXA6IGFwcGxpY2F0aW9uTG9va3VwLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IGRldGFpbHMgPSB0aGlzLmdldERldGFpbHMoKTtcblxuICAgICAgICAgICAgc2F2ZU1kZnJSZXEuTW9kaWZpZXIuRGV0YWlscyA9IEpTT04uc3RyaW5naWZ5KGRldGFpbHMpO1xuXG4gICAgICAgICAgICB0aGlzLmVhY1N2Yy5TYXZlREZTTW9kaWZpZXIoc2F2ZU1kZnJSZXEpLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgIHNhdmVTdGF0dXMgPSBzdGF0dXM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLk1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwKSB7XG4gICAgICAgICAgICBjb25zdCBzYXZlTWRmclJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgICAgIE1vZGlmaWVyTG9va3VwczogdGhpcy5NdWx0aVNlbGVjdEZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uTG9va3VwOiBhcHBsaWNhdGlvbkxvb2t1cCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmVhY1N2Yy5TYXZlREZTTW9kaWZpZXIoc2F2ZU1kZnJSZXEpLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgIHNhdmVTdGF0dXMgPSBzdGF0dXM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2F2ZVN0YXR1cztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIFNhdmVzIGEgbW9kaWZpZXIsIHNhdmVzIGEgbW9kaWZpZXIgdG8gYSBwcm9qZWN0XG4gICAgICovXG4gICAgcHVibGljIFNhdmVNb2RpZmllcihwcm9qZWN0TG9va3VwOiBzdHJpbmcgPSBudWxsKTogU3RhdHVzIHtcbiAgICAgICAgbGV0IHNhdmVTdGF0dXM6IFN0YXR1cztcbiAgICAgICAgaWYgKHRoaXMuTW9kaWZpZXJGb3JtR3JvdXApIHtcbiAgICAgICAgICAgIGNvbnN0IHNhdmVNZGZyUmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QgPSB7XG4gICAgICAgICAgICAgICAgTW9kaWZpZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5FZGl0aW5nTW9kaWZpZXIsXG4gICAgICAgICAgICAgICAgICAgIE5hbWU6IHRoaXMuTmFtZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBFbmFibGVkOiB0aGlzLkVuYWJsZWRGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgUGF0aEZpbHRlclJlZ2V4OiB0aGlzLlBhdGhGaWx0ZXJGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHk6IHRoaXMuUHJpb3JpdHlGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgVHlwZTogdGhpcy5DdXJyZW50VHlwZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIE1vZGlmaWVyTG9va3VwczogW3RoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwXSxcbiAgICAgICAgICAgICAgICBQcm9qZWN0TG9va3VwczogW3Byb2plY3RMb29rdXBdLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IGRldGFpbHMgPSB0aGlzLmdldERldGFpbHMoKTtcblxuICAgICAgICAgICAgc2F2ZU1kZnJSZXEuTW9kaWZpZXIuRGV0YWlscyA9IEpTT04uc3RyaW5naWZ5KGRldGFpbHMpO1xuXG4gICAgICAgICAgICB0aGlzLmVhY1N2Yy5TYXZlREZTTW9kaWZpZXIoc2F2ZU1kZnJSZXEpLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgIHNhdmVTdGF0dXMgPSBzdGF0dXM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLk1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwKSB7XG4gICAgICAgICAgICBjb25zdCBzYXZlTWRmclJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgICAgIE1vZGlmaWVyTG9va3VwczogdGhpcy5NdWx0aVNlbGVjdEZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgIFByb2plY3RMb29rdXBzOiBbcHJvamVjdExvb2t1cF0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5lYWNTdmMuU2F2ZURGU01vZGlmaWVyKHNhdmVNZGZyUmVxKS50aGVuKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICBzYXZlU3RhdHVzID0gc3RhdHVzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNhdmVTdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIFNldEVkaXRpbmdNb2RpZmllcihtb2RpZmllckxvb2t1cDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwID0gbW9kaWZpZXJMb29rdXA7XG5cbiAgICAgICAgdGhpcy5zZXR1cE1vZGlmaWVyRm9ybSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBTZXRVc2VGb3JQcm9qZWN0KFxuICAgICAgICBtb2RpZmllckxvb2t1cDogc3RyaW5nLFxuICAgICAgICBjaGFuZ2U6IE1hdFNsaWRlVG9nZ2xlQ2hhbmdlXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuU2V0RWRpdGluZ01vZGlmaWVyKG1vZGlmaWVyTG9va3VwKTtcblxuICAgICAgICB0aGlzLlNhdmVNb2RpZmllcih0aGlzLlByb2plY3RMb29rdXApO1xuICAgIH1cblxuICAgIHB1YmxpYyBUeXBlQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuQ3VycmVudFR5cGUgPSBldmVudC52YWx1ZTtcblxuICAgICAgICB0aGlzLnNldHVwVHlwZUZvcm0oKTtcbiAgICB9XG5cbiAgICAvLyAgSGVscGVyc1xuXG4gICAgcHJvdGVjdGVkIGdldERldGFpbHMoKTogYW55IHtcbiAgICAgICAgY29uc3QgZGV0YWlscyA9IHt9O1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5DdXJyZW50VHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5IVE1MQmFzZURGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsJzpcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5MQ1VSZWdERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCc6XG4gICAgICAgICAgICAgICAgZGV0YWlsc1snU3RhdGVEYXRhVG9rZW4nXSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuU3RhdGVEYXRhVG9rZW5Gb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5UaGlyZFBhcnR5TGlicmFyeURGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsJzpcbiAgICAgICAgICAgICAgICBkZXRhaWxzWydMb2NhdGlvbiddID0gdGhpcy5Mb2NhdGlvbkZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgZGV0YWlsc1snU2NyaXB0J10gPSB0aGlzLlNjcmlwdEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgZGV0YWlsc1snU2NyaXB0VHlwZSddID0gdGhpcy5TY3JpcHRUeXBlRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBkZXRhaWxzWydTY3JpcHRJRCddID0gdGhpcy5TY3JpcHRJREZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZXRhaWxzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cE1vZGlmaWVyU2VsZWN0Rm9ybSgpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3NldHVwIG1vZCBzZWxlY3QgZm9ybScpO1xuICAgICAgICB0aGlzLk1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwID0gdGhpcy5mb3JtQmxkci5ncm91cCh7XG4gICAgICAgICAgICBtdWx0aVNlbGVjdDogW3RoaXMuTW9kaWZpZXJMb29rdXBzID8gdGhpcy5Nb2RpZmllckxvb2t1cHMgOiBbXV0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cE1vZGlmaWVyRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2VkaXRpbmcgbW9kOiAnLCB0aGlzLkVkaXRpbmdNb2RpZmllcik7XG4gICAgICAgIGlmICh0aGlzLkVkaXRpbmdNb2RpZmllciAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLkN1cnJlbnRUeXBlID0gdGhpcy5FZGl0aW5nTW9kaWZpZXI/LlR5cGU7XG5cbiAgICAgICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAgPSB0aGlzLmZvcm1CbGRyLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBbdGhpcy5FZGl0aW5nTW9kaWZpZXI/Lk5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgIHR5cGU6IFt0aGlzLkN1cnJlbnRUeXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdNb2RpZmllcj8uUHJpb3JpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5FZGl0aW5nTW9kaWZpZXI/LlByaW9yaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICA6IDkwMDAsXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBlbmFibGVkOiBbdGhpcy5FZGl0aW5nTW9kaWZpZXI/LkVuYWJsZWQsIFtdXSxcbiAgICAgICAgICAgICAgICBwYXRoRmlsdGVyOiBbXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ01vZGlmaWVyPy5QYXRoRmlsdGVyUmVnZXhcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5FZGl0aW5nTW9kaWZpZXI/LlBhdGhGaWx0ZXJSZWdleFxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnKmluZGV4Lmh0bWwnLFxuICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5zZXR1cFR5cGVGb3JtKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnc2V0dXAgbmV3IGZvcm0nKTtcbiAgICAgICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAgPSB0aGlzLmZvcm1CbGRyLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgIHR5cGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICAgICAgcHJpb3JpdHk6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICAgICAgZW5hYmxlZDogWycnLCBbXV0sXG4gICAgICAgICAgICAgICAgcGF0aEZpbHRlcjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwVHlwZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnc3RhdGVEYXRhVG9rZW4nKTtcblxuICAgICAgICB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ2xvY2F0aW9uJyk7XG4gICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnc2NyaXB0Jyk7XG4gICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnc2NyaXB0SWQnKTtcbiAgICAgICAgdGhpcy5Nb2RpZmllckZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdzY3JpcHRUeXBlJyk7XG5cbiAgICAgICAgY29uc3QgZGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5FZGl0aW5nTW9kaWZpZXI/LkRldGFpbHMgfHwgJ3t9Jyk7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLkN1cnJlbnRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkhUTUxCYXNlREZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkxDVVJlZ0RGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsJzpcbiAgICAgICAgICAgICAgICB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICdzdGF0ZURhdGFUb2tlbicsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHM/LlN0YXRlRGF0YVRva2VuIHx8ICdsY3Utc3RhdGUtY29uZmlnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5UaGlyZFBhcnR5TGlicmFyeURGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsJzpcbiAgICAgICAgICAgICAgICB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICdsb2NhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChkZXRhaWxzPy5Mb2NhdGlvbiB8fCAnSGVhZCcsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChkZXRhaWxzPy5TY3JpcHQgfHwgJycsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgJ3NjcmlwdElkJyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKGRldGFpbHM/LlNjcmlwdElEIHx8ICcnLCBbXG4gICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICdzY3JpcHRUeXBlJyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKGRldGFpbHM/LlNjcmlwdFR5cGUgfHwgJ0NvbnRyb2wnKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhRWRpdGluZ01vZGlmaWVyTG9va3VwXCI+XG4gICAgICAgIFNlbGVjdCB0aGUgbW9kaWZpZXJzIHlvdSB3b3VsZCBsaWtlIHRvIGFwcGx5IGZyb20gdGhlIGxpc3QgYmVsb3csIG9yXG4gICAgICAgIGNyZWF0ZSBhIG5ldyBtb2RpZmllci5cbiAgICA8L2Rpdj5cblxuICAgIDxmb3JtXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiTW9kaWZpZXJGb3JtR3JvdXBcIlxuICAgICAgICAobmdTdWJtaXQpPVwiU2F2ZU1vZGlmaWVyKClcIlxuICAgICAgICAqbmdJZj1cIkVkaXRpbmdNb2RpZmllckxvb2t1cFwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jYXJkXCI+XG4gICAgICAgICAgICA8IS0tIDxtYXQtY2FyZCBjbGFzcz1cInNwcmVhZFwiPiAtLT5cbiAgICAgICAgICAgIDwhLS0gPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+IERGUyBNb2RpZmllciA8L21hdC1jYXJkLXRpdGxlPlxuXG4gICAgICAgICAgPGRpdiBmeEZsZXg+PC9kaXY+XG5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkNvbmZpZ3VyZSBtb2RpZmllcnMgZm9yIHlvdXIgREZTIGZpbGVzLlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgaW5mb19vdXRsaW5lXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+IC0tPlxuXG4gICAgICAgICAgICA8IS0tIDxtYXQtY2FyZC1jb250ZW50PiAtLT5cblxuICAgICAgICAgICAgPCEtLSBlbmQgLS0+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInR5cGVcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkRGUyBNb2RpZmllciBUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJUeXBlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIkxDVS5SdW50aW1lLkFwcGxpY2F0aW9ucy5Nb2RpZmllcnMuSFRNTEJhc2VERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUwgQmFzZSBNb2RpZmllclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5MQ1VSZWdERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIExDVSBSZWcgTW9kaWZpZXJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIkxDVS5SdW50aW1lLkFwcGxpY2F0aW9ucy5Nb2RpZmllcnMuVGhpcmRQYXJ0eUxpYnJhcnlERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXJkIFBhcnR5IExpYnJhcnkgTW9kaWZpZXJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJpb3JpdHlcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlByaW9yaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF0aEZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUGF0aCBGaWx0ZXIgKHJlZ2V4KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICBDdXJyZW50VHlwZSA9PVxuICAgICAgICAgICAgICAgICAgICAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5MQ1VSZWdERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCdcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN0YXRlRGF0YVRva2VuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU3RhdGUgRGF0YSBUb2tlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIEN1cnJlbnRUeXBlID09XG4gICAgICAgICAgICAgICAgICAgICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLlRoaXJkUGFydHlMaWJyYXJ5REZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibG9jYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJMb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIkxvY2F0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiSGVhZFwiPiBIZWFkIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJCb2R5XCI+IEJvZHkgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNjcmlwdElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2NyaXB0IElEXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzY3JpcHRUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2NyaXB0IFR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJDb250ZW50XCI+IENvbnRlbnQgPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlNvdXJjZVwiPiBTb3VyY2UgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJTY3JpcHRUeXBlRm9ybUNvbnRyb2w/LnZhbHVlID09PSAnQ29udGVudCdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInJlc2l6ZTogbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2NyaXB0IENvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiU2NyaXB0VHlwZUZvcm1Db250cm9sPy52YWx1ZSA9PT0gJ1NvdXJjZSdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2NyaXB0IFVSTFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlByb2plY3RMb29rdXBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3ByZWFkXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmFibGVkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBJcyBFbmFibGVkP1xuICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgPCEtLSA8L21hdC1jYXJkLWNvbnRlbnQ+IC0tPlxuICAgICAgICAgICAgPCEtLSA8L21hdC1jYXJkPiAtLT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwic3ByZWFkXCI+XG4gICAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cblxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiU2V0RWRpdGluZ01vZGlmaWVyKG51bGwpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPiBDYW5jZWxcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFNb2RpZmllckZvcm1Hcm91cC52YWxpZCB8fCAhTW9kaWZpZXJGb3JtR3JvdXAuZGlydHlcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+IFNhdmUgREZTIE1vZGlmaWVyXG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdiBmeEZsZXg+PC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuICAgIDwvZm9ybT5cblxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiTW9kaWZpZXJTZWxlY3RGb3JtR3JvdXBcIiAqbmdJZj1cIiFFZGl0aW5nTW9kaWZpZXJMb29rdXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwcmVhZFwiICpuZ0lmPVwiIUVkaXRpbmdNb2RpZmllclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHBzLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkNyZWF0ZU5ld01vZGlmaWVyKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmFkZDwvbWF0LWljb24+IENyZWF0ZSBOZXdcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwcmVhZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJFbnRlcnByaXNlc01vZGlmaWVyTG9va3Vwcz8ubGVuZ3RoIDw9IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgyPlxuICAgICAgICAgICAgICAgICAgICAgICAgTm8gREZTIG1vZGlmaWVycyBjcmVhdGVkLCBjcmVhdGUgeW91ciBmaXJzdCBERlNcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyLlxuICAgICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkVudGVycHJpc2VzTW9kaWZpZXJMb29rdXBzPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGgyPkRGUyBNb2RpZmllcnM8L2gyPiAtLT5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+TW9kaWZpZXJzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJtdWx0aVNlbGVjdFwiIG11bHRpcGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aVNlbGVjdEZvcm1Db250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTXVsdGlTZWxlY3RGb3JtQ29udHJvbD8udmFsdWVbMF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlTZWxlY3RGb3JtQ29udHJvbD8udmFsdWU/Lmxlbmd0aCA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kaWZpZXItc2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCt7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11bHRpU2VsZWN0Rm9ybUNvbnRyb2w/LnZhbHVlPy5sZW5ndGggLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aVNlbGVjdEZvcm1Db250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lmxlbmd0aCA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwib3RoZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwib3RoZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtb2RpZmllckxvb2t1cCBvZiBFbnRlcnByaXNlc01vZGlmaWVyTG9va3Vwc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9kaWZpZXJzW21vZGlmaWVyTG9va3VwXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW9kaWZpZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwibW9kaWZpZXJMb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IG1vZGlmaWVyPy5OYW1lIH19PC9tYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiIGZ4TGF5b3V0Lmx0LW1kPVwiY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGZ4RmxleC5sdC1tZD1cIjEwMCVcIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbW9kaWZpZXJMb29rdXAgb2YgTW9kaWZpZXJMb29rdXBzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTW9kaWZpZXJzW21vZGlmaWVyTG9va3VwXTsgbGV0IG1vZGlmaWVyXCI+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtc3ViaGVhZGluZy0yXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwibW9kaWZpZXIuTmFtZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1vZGlmaWVyLk5hbWUgfHwgbW9kaWZpZXIuTG9va3VwIH19XG5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ByZWFkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3Q/Lk1vZGlmaWVyTG9va3Vwcy5pbmRleE9mKG1vZGlmaWVyTG9va3VwKSA+PSAwXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlNldFVzZUZvclByb2plY3QobW9kaWZpZXJMb29rdXAsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidVc2UgZm9yICcgKyBMZXZlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGEtYXBwLWFjdGlvbnNcIj5cblxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJTZXRFZGl0aW5nTW9kaWZpZXIobW9kaWZpZXJMb29rdXApXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRUb29sdGlwPVwiRWRpdCBERlMgTW9kaWZpZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkRlbGV0ZU1vZGlmaWVyKG1vZGlmaWVyTG9va3VwLCBtb2RpZmllci5OYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0VG9vbHRpcD1cIkRlbGV0ZSB7eyBtb2RpZmllci5OYW1lIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVfZm9yZXZlclxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZzLW1vZGlmaWVycy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2NvbnRyb2xzL2Rmcy1tb2RpZmllcnMtZm9ybS9kZnMtbW9kaWZpZXJzLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGZzLW1vZGlmaWVycy1mb3JtL2Rmcy1tb2RpZmllcnMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBSUgsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFReEIsT0FBTyxFQUFFLElBQUksRUFBVSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWMzQyxNQUFNLE9BQU8seUJBQXlCO0lBOEZsQyxnQkFBZ0I7SUFDaEIsWUFDYyxRQUFxQixFQUNyQixXQUFvQyxFQUNwQyxNQUFrQjtRQUZsQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBRTVCLHFDQUFxQztJQUN6QyxDQUFDO0lBekVELDhCQUE4QjtJQUM5QiwwREFBMEQ7SUFDMUQsSUFBSTtJQUVKLElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsMEJBQTBCO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMs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O1NBQ2I7SUFDTCxDQUFDOztzSEE5WVEseUJBQXlCOzBHQUF6Qix5QkFBeUIscWJDNUJ0QyxvOVhBbVVBOzJGRHZTYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0ksdUJBQXVCO2lLQVcxQixxQkFBcUI7c0JBRDNCLEtBQUs7dUJBQUMseUJBQXlCO2dCQUl6QixZQUFZO3NCQURsQixLQUFLO3VCQUFDLGNBQWM7Z0JBSWQsaUJBQWlCO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkFJcEIsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFVBQVU7Z0JBSVYsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBSWhCLFNBQVM7c0JBRGYsS0FBSzt1QkFBQyxXQUFXO2dCQUtYLEtBQUs7c0JBRFgsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQnVpbGRlcixcbiAgICBGb3JtR3JvdXAsXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuXG5pbXBvcnQge1xuICAgIEVhQ0FwcGxpY2F0aW9uQXNDb2RlLFxuICAgIEVhQ0RGU01vZGlmaWVyLFxuICAgIEVhQ1Byb2plY3RBc0NvZGUsXG59IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBHdWlkLCBTdGF0dXMgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHtcbiAgICBFYUNTZXJ2aWNlLFxuICAgIFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbnMtZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7IENka0Ryb3BMaXN0R3JvdXAgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtZGZzLW1vZGlmaWVyLWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZnMtbW9kaWZpZXJzLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Rmcy1tb2RpZmllcnMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBERlNNb2RpZmllcnNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvLyAgRmllbGRzXG5cbiAgICAvLyAgUHJvcGVydGllc1xuICAgIHB1YmxpYyBDdXJyZW50VHlwZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCdlZGl0aW5nLW1vZGlmaWVyLWxvb2t1cCcpXG4gICAgcHVibGljIEVkaXRpbmdNb2RpZmllckxvb2t1cDogc3RyaW5nO1xuXG4gICAgQElucHV0KCdhcHBsaWNhdGlvbnMnKVxuICAgIHB1YmxpYyBBcHBsaWNhdGlvbnM6IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuXG4gICAgQElucHV0KCdhcHBsaWNhdGlvbi1sb29rdXAnKVxuICAgIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cDogc3RyaW5nO1xuXG4gICAgQElucHV0KCdwcm9qZWN0cycpXG4gICAgcHVibGljIFByb2plY3RzOiBBcnJheTxFYUNQcm9qZWN0QXNDb2RlPjtcblxuICAgIEBJbnB1dCgncHJvamVjdC1sb29rdXAnKVxuICAgIHB1YmxpYyBQcm9qZWN0TG9va3VwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoJ21vZGlmaWVycycpXG4gICAgcHVibGljIE1vZGlmaWVyczogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNERlNNb2RpZmllciB9O1xuXG4gICAgLyoqd2hpY2ggbGV2ZWwgaXMgdGhlIGRmcyBtb2RpZmllciBiZWluZyBlZGl0ZWQgZW50IHByb2plY3Qgb3IgYXBwICovXG4gICAgQElucHV0KCdsZXZlbCcpXG4gICAgcHVibGljIExldmVsOiBzdHJpbmc7XG5cbiAgICAvLyBwdWJsaWMgZ2V0IERldGFpbHMoKTogYW55IHtcbiAgICAvLyAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLkVkaXRpbmdNb2RpZmllcj8uRGV0YWlscyk7XG4gICAgLy8gfVxuXG4gICAgcHVibGljIGdldCBEZXRhaWxzRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLmRldGFpbHM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBFbmFibGVkRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLmVuYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBFbnRlcnByaXNlc01vZGlmaWVyTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuTW9kaWZpZXJzIHx8IHt9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IExvY2F0aW9uRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLmxvY2F0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgTXVsdGlTZWxlY3RGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Nb2RpZmllclNlbGVjdEZvcm1Hcm91cD8uY29udHJvbHMubXVsdGlTZWxlY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBOYW1lRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLm5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBQYXRoRmlsdGVyRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLnBhdGhGaWx0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBQcmlvcml0eUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5wcmlvcml0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNjcmlwdEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5zY3JpcHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTY3JpcHRJREZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5zY3JpcHRJZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNjcmlwdFR5cGVGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMuc2NyaXB0VHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFN0YXRlRGF0YVRva2VuRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLnN0YXRlRGF0YVRva2VuO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgVHlwZUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy50eXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBFZGl0aW5nTW9kaWZpZXI6IEVhQ0RGU01vZGlmaWVyO1xuXG4gICAgcHVibGljIE1vZGlmaWVyRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwdWJsaWMgTW9kaWZpZXJTZWxlY3RGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIHB1YmxpYyBNb2RpZmllckxvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBwdWJsaWMgUHJvamVjdDogRWFDUHJvamVjdEFzQ29kZTtcblxuICAgIC8vICBDb25zdHJ1Y3RvcnNcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGZvcm1CbGRyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJvdGVjdGVkIGFwcHNGbG93U3ZjOiBBcHBsaWNhdGlvbnNGbG93U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZVxuICAgICkge1xuICAgICAgICAvLyB0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cCA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gIExpZmUgQ3ljbGVcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5Qcm9qZWN0TG9va3VwKSB7XG4gICAgICAgICAgICB0aGlzLk1vZGlmaWVyTG9va3VwcyA9XG4gICAgICAgICAgICAgICAgdGhpcy5Qcm9qZWN0c1t0aGlzLlByb2plY3RMb29rdXBdPy5Nb2RpZmllckxvb2t1cHM7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5BcHBsaWNhdGlvbkxvb2t1cCkge1xuICAgICAgICAgICAgdGhpcy5Nb2RpZmllckxvb2t1cHMgPVxuICAgICAgICAgICAgICAgIHRoaXMuQXBwbGljYXRpb25zW3RoaXMuQXBwbGljYXRpb25Mb29rdXBdPy5Nb2RpZmllckxvb2t1cHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLk1vZGlmaWVyTG9va3VwcyA9IE9iamVjdC5rZXlzKHRoaXMuTW9kaWZpZXJzIHx8IHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtZGZyID0gdGhpcy5Nb2RpZmllcnNcbiAgICAgICAgICAgID8gdGhpcy5Nb2RpZmllcnNbdGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXBdXG4gICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgaWYgKG1kZnIgPT0gbnVsbCAmJiB0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cCkge1xuICAgICAgICAgICAgbWRmciA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuRWRpdGluZ01vZGlmaWVyID0gbWRmcjtcblxuICAgICAgICBpZiAodGhpcy5Qcm9qZWN0TG9va3VwICYmIHRoaXMuUHJvamVjdHMpIHtcbiAgICAgICAgICAgIHRoaXMuUHJvamVjdCA9IHRoaXMuUHJvamVjdHNbdGhpcy5Qcm9qZWN0TG9va3VwXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLkxldmVsID09PSAnZW50ZXJwcmlzZScgJiYgIXRoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwKSB7XG4gICAgICAgICAgICB0aGlzLkNyZWF0ZU5ld01vZGlmaWVyKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXApIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBNb2RpZmllckZvcm0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBNb2RpZmllclNlbGVjdEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICBBUEkgTWV0aG9kc1xuICAgIHB1YmxpYyBDcmVhdGVOZXdNb2RpZmllcigpOiB2b2lkIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ0NSRUFURSBORVcgTU9EJyk7XG4gICAgICAgIHRoaXMuU2V0RWRpdGluZ01vZGlmaWVyKEd1aWQuQ3JlYXRlUmF3KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBEZWxldGVNb2RpZmllcihtb2RpZmllckxvb2t1cDogc3RyaW5nLCBtb2RpZmllck5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmVhY1N2Yy5EZWxldGVNb2RpZmllcihtb2RpZmllckxvb2t1cCwgbW9kaWZpZXJOYW1lKS50aGVuKCk7XG4gICAgfVxuXG4gICAgLy8gcHVibGljIERldGVybWluZVNhdmUoKXtcblxuICAgIC8vIH1cblxuICAgIHB1YmxpYyBTYXZlTW9kaWZpZXJGb3JBbGxQcm9qZWN0cyhwcm9qZWN0TG9va3VwczogQXJyYXk8c3RyaW5nPik6IFN0YXR1cyB7XG4gICAgICAgIGxldCBzYXZlU3RhdHVzOiBTdGF0dXM7XG4gICAgICAgIGNvbnN0IHNhdmVNZGZyUmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QgPSB7XG4gICAgICAgICAgICBNb2RpZmllcjoge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuRWRpdGluZ01vZGlmaWVyLFxuICAgICAgICAgICAgICAgIE5hbWU6IHRoaXMuTmFtZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgIEVuYWJsZWQ6IHRoaXMuRW5hYmxlZEZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgIFBhdGhGaWx0ZXJSZWdleDogdGhpcy5QYXRoRmlsdGVyRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgUHJpb3JpdHk6IHRoaXMuUHJpb3JpdHlGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICBUeXBlOiB0aGlzLkN1cnJlbnRUeXBlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIE1vZGlmaWVyTG9va3VwczogW3RoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwXSxcbiAgICAgICAgICAgIFByb2plY3RMb29rdXBzOiBwcm9qZWN0TG9va3VwcyxcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgZGV0YWlscyA9IHRoaXMuZ2V0RGV0YWlscygpO1xuXG4gICAgICAgIHNhdmVNZGZyUmVxLk1vZGlmaWVyLkRldGFpbHMgPSBKU09OLnN0cmluZ2lmeShkZXRhaWxzKTtcblxuICAgICAgICB0aGlzLmVhY1N2Yy5TYXZlREZTTW9kaWZpZXIoc2F2ZU1kZnJSZXEpLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgc2F2ZVN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzYXZlU3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBTYXZlTW9kaWZpZXJGb3JBcHBsaWNhdGlvbihhcHBsaWNhdGlvbkxvb2t1cDogc3RyaW5nKTogU3RhdHVzIHtcbiAgICAgICAgbGV0IHNhdmVTdGF0dXM6IFN0YXR1cztcbiAgICAgICAgaWYgKHRoaXMuTW9kaWZpZXJGb3JtR3JvdXApIHtcbiAgICAgICAgICAgIGNvbnN0IHNhdmVNZGZyUmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QgPSB7XG4gICAgICAgICAgICAgICAgTW9kaWZpZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5FZGl0aW5nTW9kaWZpZXIsXG4gICAgICAgICAgICAgICAgICAgIE5hbWU6IHRoaXMuTmFtZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBFbmFibGVkOiB0aGlzLkVuYWJsZWRGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgUGF0aEZpbHRlclJlZ2V4OiB0aGlzLlBhdGhGaWx0ZXJGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHk6IHRoaXMuUHJpb3JpdHlGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgVHlwZTogdGhpcy5DdXJyZW50VHlwZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIE1vZGlmaWVyTG9va3VwczogW3RoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwXSxcbiAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbkxvb2t1cDogYXBwbGljYXRpb25Mb29rdXAsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgZGV0YWlscyA9IHRoaXMuZ2V0RGV0YWlscygpO1xuXG4gICAgICAgICAgICBzYXZlTWRmclJlcS5Nb2RpZmllci5EZXRhaWxzID0gSlNPTi5zdHJpbmdpZnkoZGV0YWlscyk7XG5cbiAgICAgICAgICAgIHRoaXMuZWFjU3ZjLlNhdmVERlNNb2RpZmllcihzYXZlTWRmclJlcSkudGhlbigoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgc2F2ZVN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuTW9kaWZpZXJTZWxlY3RGb3JtR3JvdXApIHtcbiAgICAgICAgICAgIGNvbnN0IHNhdmVNZGZyUmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QgPSB7XG4gICAgICAgICAgICAgICAgTW9kaWZpZXJMb29rdXBzOiB0aGlzLk11bHRpU2VsZWN0Rm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgQXBwbGljYXRpb25Mb29rdXA6IGFwcGxpY2F0aW9uTG9va3VwLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuZWFjU3ZjLlNhdmVERlNNb2RpZmllcihzYXZlTWRmclJlcSkudGhlbigoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgc2F2ZVN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzYXZlU3RhdHVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogU2F2ZXMgYSBtb2RpZmllciwgc2F2ZXMgYSBtb2RpZmllciB0byBhIHByb2plY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgU2F2ZU1vZGlmaWVyKHByb2plY3RMb29rdXA6IHN0cmluZyA9IG51bGwpOiBTdGF0dXMge1xuICAgICAgICBsZXQgc2F2ZVN0YXR1czogU3RhdHVzO1xuICAgICAgICBpZiAodGhpcy5Nb2RpZmllckZvcm1Hcm91cCkge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJoZXJlIDFcIilcbiAgICAgICAgICAgIGNvbnN0IHNhdmVNZGZyUmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QgPSB7XG4gICAgICAgICAgICAgICAgTW9kaWZpZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5FZGl0aW5nTW9kaWZpZXIsXG4gICAgICAgICAgICAgICAgICAgIE5hbWU6IHRoaXMuTmFtZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBFbmFibGVkOiB0aGlzLkVuYWJsZWRGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgUGF0aEZpbHRlclJlZ2V4OiB0aGlzLlBhdGhGaWx0ZXJGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHk6IHRoaXMuUHJpb3JpdHlGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgVHlwZTogdGhpcy5DdXJyZW50VHlwZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIE1vZGlmaWVyTG9va3VwczogW3RoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwXSxcbiAgICAgICAgICAgICAgICAvLyBQcm9qZWN0TG9va3VwczogW3Byb2plY3RMb29rdXBdLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IGRldGFpbHMgPSB0aGlzLmdldERldGFpbHMoKTtcblxuICAgICAgICAgICAgc2F2ZU1kZnJSZXEuTW9kaWZpZXIuRGV0YWlscyA9IEpTT04uc3RyaW5naWZ5KGRldGFpbHMpO1xuXG4gICAgICAgICAgICB0aGlzLmVhY1N2Yy5TYXZlREZTTW9kaWZpZXIoc2F2ZU1kZnJSZXEpLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgIHNhdmVTdGF0dXMgPSBzdGF0dXM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLk1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnaGVyZSAyJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNhdmVNZGZyUmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QgPSB7XG4gICAgICAgICAgICAgICAgTW9kaWZpZXJMb29rdXBzOiB0aGlzLk11bHRpU2VsZWN0Rm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgUHJvamVjdExvb2t1cHM6IFtwcm9qZWN0TG9va3VwXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmVhY1N2Yy5TYXZlREZTTW9kaWZpZXIoc2F2ZU1kZnJSZXEpLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgIHNhdmVTdGF0dXMgPSBzdGF0dXM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2F2ZVN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgU2V0RWRpdGluZ01vZGlmaWVyKG1vZGlmaWVyTG9va3VwOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXAgPSBtb2RpZmllckxvb2t1cDtcblxuICAgICAgICB0aGlzLnNldHVwTW9kaWZpZXJGb3JtKCk7XG4gICAgfVxuXG4gICAgcHVibGljIFNldFVzZUZvclByb2plY3QoXG4gICAgICAgIG1vZGlmaWVyTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIGNoYW5nZTogTWF0U2xpZGVUb2dnbGVDaGFuZ2VcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5TZXRFZGl0aW5nTW9kaWZpZXIobW9kaWZpZXJMb29rdXApO1xuXG4gICAgICAgIHRoaXMuU2F2ZU1vZGlmaWVyKHRoaXMuUHJvamVjdExvb2t1cCk7XG4gICAgfVxuXG4gICAgcHVibGljIFR5cGVDaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5DdXJyZW50VHlwZSA9IGV2ZW50LnZhbHVlO1xuXG4gICAgICAgIHRoaXMuc2V0dXBUeXBlRm9ybSgpO1xuICAgIH1cblxuICAgIC8vICBIZWxwZXJzXG5cbiAgICBwcm90ZWN0ZWQgZ2V0RGV0YWlscygpOiBhbnkge1xuICAgICAgICBjb25zdCBkZXRhaWxzID0ge307XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLkN1cnJlbnRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkhUTUxCYXNlREZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkxDVVJlZ0RGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsJzpcbiAgICAgICAgICAgICAgICBkZXRhaWxzWydTdGF0ZURhdGFUb2tlbiddID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5TdGF0ZURhdGFUb2tlbkZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLlRoaXJkUGFydHlMaWJyYXJ5REZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICAgICAgICAgIGRldGFpbHNbJ0xvY2F0aW9uJ10gPSB0aGlzLkxvY2F0aW9uRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBkZXRhaWxzWydTY3JpcHQnXSA9IHRoaXMuU2NyaXB0Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBkZXRhaWxzWydTY3JpcHRUeXBlJ10gPSB0aGlzLlNjcmlwdFR5cGVGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGRldGFpbHNbJ1NjcmlwdElEJ10gPSB0aGlzLlNjcmlwdElERm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRldGFpbHM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwTW9kaWZpZXJTZWxlY3RGb3JtKCkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnc2V0dXAgbW9kIHNlbGVjdCBmb3JtJyk7XG4gICAgICAgIHRoaXMuTW9kaWZpZXJTZWxlY3RGb3JtR3JvdXAgPSB0aGlzLmZvcm1CbGRyLmdyb3VwKHtcbiAgICAgICAgICAgIG11bHRpU2VsZWN0OiBbdGhpcy5Nb2RpZmllckxvb2t1cHMgPyB0aGlzLk1vZGlmaWVyTG9va3VwcyA6IFtdXSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwTW9kaWZpZXJGb3JtKCk6IHZvaWQge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnZWRpdGluZyBtb2Q6ICcsIHRoaXMuRWRpdGluZ01vZGlmaWVyKTtcbiAgICAgICAgaWYgKHRoaXMuRWRpdGluZ01vZGlmaWVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuQ3VycmVudFR5cGUgPSB0aGlzLkVkaXRpbmdNb2RpZmllcj8uVHlwZTtcblxuICAgICAgICAgICAgdGhpcy5Nb2RpZmllckZvcm1Hcm91cCA9IHRoaXMuZm9ybUJsZHIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIG5hbWU6IFt0aGlzLkVkaXRpbmdNb2RpZmllcj8uTmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICAgICAgdHlwZTogW3RoaXMuQ3VycmVudFR5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgIHByaW9yaXR5OiBbXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ01vZGlmaWVyPy5Qcmlvcml0eVxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLkVkaXRpbmdNb2RpZmllcj8uUHJpb3JpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogOTAwMCxcbiAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGVuYWJsZWQ6IFt0aGlzLkVkaXRpbmdNb2RpZmllcj8uRW5hYmxlZCwgW11dLFxuICAgICAgICAgICAgICAgIHBhdGhGaWx0ZXI6IFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nTW9kaWZpZXI/LlBhdGhGaWx0ZXJSZWdleFxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLkVkaXRpbmdNb2RpZmllcj8uUGF0aEZpbHRlclJlZ2V4XG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcqaW5kZXguaHRtbCcsXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLnNldHVwVHlwZUZvcm0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdzZXR1cCBuZXcgZm9ybScpO1xuICAgICAgICAgICAgdGhpcy5Nb2RpZmllckZvcm1Hcm91cCA9IHRoaXMuZm9ybUJsZHIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIG5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICAgICAgdHlwZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgICBlbmFibGVkOiBbJycsIFtdXSxcbiAgICAgICAgICAgICAgICBwYXRoRmlsdGVyOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBUeXBlRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Nb2RpZmllckZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdzdGF0ZURhdGFUb2tlbicpO1xuXG4gICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnbG9jYXRpb24nKTtcbiAgICAgICAgdGhpcy5Nb2RpZmllckZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdzY3JpcHQnKTtcbiAgICAgICAgdGhpcy5Nb2RpZmllckZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdzY3JpcHRJZCcpO1xuICAgICAgICB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3NjcmlwdFR5cGUnKTtcblxuICAgICAgICBjb25zdCBkZXRhaWxzID0gSlNPTi5wYXJzZSh0aGlzLkVkaXRpbmdNb2RpZmllcj8uRGV0YWlscyB8fCAne30nKTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuQ3VycmVudFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0xDVS5SdW50aW1lLkFwcGxpY2F0aW9ucy5Nb2RpZmllcnMuSFRNTEJhc2VERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCc6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0xDVS5SdW50aW1lLkFwcGxpY2F0aW9ucy5Nb2RpZmllcnMuTENVUmVnREZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICAgICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgJ3N0YXRlRGF0YVRva2VuJyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscz8uU3RhdGVEYXRhVG9rZW4gfHwgJ2xjdS1zdGF0ZS1jb25maWcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLlRoaXJkUGFydHlMaWJyYXJ5REZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICAgICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgJ2xvY2F0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKGRldGFpbHM/LkxvY2F0aW9uIHx8ICdIZWFkJywgW1xuICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5Nb2RpZmllckZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAnc2NyaXB0JyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKGRldGFpbHM/LlNjcmlwdCB8fCAnJywgW1xuICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5Nb2RpZmllckZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAnc2NyaXB0SWQnLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woZGV0YWlscz8uU2NyaXB0SUQgfHwgJycsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgJ3NjcmlwdFR5cGUnLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woZGV0YWlscz8uU2NyaXB0VHlwZSB8fCAnQ29udHJvbCcpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFFZGl0aW5nTW9kaWZpZXJMb29rdXBcIj5cbiAgICAgICAgU2VsZWN0IHRoZSBtb2RpZmllcnMgeW91IHdvdWxkIGxpa2UgdG8gYXBwbHkgZnJvbSB0aGUgbGlzdCBiZWxvdywgb3JcbiAgICAgICAgY3JlYXRlIGEgbmV3IG1vZGlmaWVyLlxuICAgIDwvZGl2PlxuXG4gICAgPGZvcm1cbiAgICAgICAgW2Zvcm1Hcm91cF09XCJNb2RpZmllckZvcm1Hcm91cFwiXG4gICAgICAgIChuZ1N1Ym1pdCk9XCJTYXZlTW9kaWZpZXIoKVwiXG4gICAgICAgICpuZ0lmPVwiRWRpdGluZ01vZGlmaWVyTG9va3VwXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNhcmRcIj5cbiAgICAgICAgICAgIDwhLS0gPG1hdC1jYXJkIGNsYXNzPVwic3ByZWFkXCI+IC0tPlxuICAgICAgICAgICAgPCEtLSA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT4gREZTIE1vZGlmaWVyIDwvbWF0LWNhcmQtdGl0bGU+XG5cbiAgICAgICAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cblxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiQ29uZmlndXJlIG1vZGlmaWVycyBmb3IgeW91ciBERlMgZmlsZXMuXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBpbmZvX291dGxpbmVcbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj4gLS0+XG5cbiAgICAgICAgICAgIDwhLS0gPG1hdC1jYXJkLWNvbnRlbnQ+IC0tPlxuXG4gICAgICAgICAgICA8IS0tIGVuZCAtLT5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiREZTIE1vZGlmaWVyIFR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIlR5cGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5IVE1MQmFzZURGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgSFRNTCBCYXNlIE1vZGlmaWVyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkxDVVJlZ0RGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgTENVIFJlZyBNb2RpZmllclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5UaGlyZFBhcnR5TGlicmFyeURGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgVGhpcmQgUGFydHkgTGlicmFyeSBNb2RpZmllclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5hbWVcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcmlvcml0eVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUHJpb3JpdHlcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXRoRmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJQYXRoIEZpbHRlciAocmVnZXgpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIEN1cnJlbnRUeXBlID09XG4gICAgICAgICAgICAgICAgICAgICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkxDVVJlZ0RGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsJ1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhdGVEYXRhVG9rZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTdGF0ZSBEYXRhIFRva2VuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgQ3VycmVudFR5cGUgPT1cbiAgICAgICAgICAgICAgICAgICAgJ0xDVS5SdW50aW1lLkFwcGxpY2F0aW9ucy5Nb2RpZmllcnMuVGhpcmRQYXJ0eUxpYnJhcnlERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCdcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkxvY2F0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiTG9jYXRpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJIZWFkXCI+IEhlYWQgPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkJvZHlcIj4gQm9keSA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2NyaXB0SWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTY3JpcHQgSURcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNjcmlwdFR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTY3JpcHQgVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkNvbnRlbnRcIj4gQ29udGVudCA8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU291cmNlXCI+IFNvdXJjZSA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlNjcmlwdFR5cGVGb3JtQ29udHJvbD8udmFsdWUgPT09ICdDb250ZW50J1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicmVzaXplOiBub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTY3JpcHQgQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJTY3JpcHRUeXBlRm9ybUNvbnRyb2w/LnZhbHVlID09PSAnU291cmNlJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTY3JpcHQgVVJMXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiUHJvamVjdExvb2t1cFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzcHJlYWRcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVuYWJsZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIElzIEVuYWJsZWQ/XG4gICAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgICA8IS0tIDwvbWF0LWNhcmQtY29udGVudD4gLS0+XG4gICAgICAgICAgICA8IS0tIDwvbWF0LWNhcmQ+IC0tPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzcHJlYWRcIj5cbiAgICAgIDxkaXYgZnhGbGV4PjwvZGl2PlxuXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJTZXRFZGl0aW5nTW9kaWZpZXIobnVsbClcIj5cbiAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+IENhbmNlbFxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxkaXYgZnhGbGV4PjwvZGl2PlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIU1vZGlmaWVyRm9ybUdyb3VwLnZhbGlkIHx8ICFNb2RpZmllckZvcm1Hcm91cC5kaXJ0eVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj4gU2F2ZSBERlMgTW9kaWZpZXJcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG4gICAgPC9mb3JtPlxuXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJNb2RpZmllclNlbGVjdEZvcm1Hcm91cFwiICpuZ0lmPVwiIUVkaXRpbmdNb2RpZmllckxvb2t1cFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ByZWFkXCIgKm5nSWY9XCIhRWRpdGluZ01vZGlmaWVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcHMtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiQ3JlYXRlTmV3TW9kaWZpZXIoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+YWRkPC9tYXQtaWNvbj4gQ3JlYXRlIE5ld1xuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ByZWFkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkVudGVycHJpc2VzTW9kaWZpZXJMb29rdXBzPy5sZW5ndGggPD0gMFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDI+XG4gICAgICAgICAgICAgICAgICAgICAgICBObyBERlMgbW9kaWZpZXJzIGNyZWF0ZWQsIGNyZWF0ZSB5b3VyIGZpcnN0IERGU1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXIuXG4gICAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRW50ZXJwcmlzZXNNb2RpZmllckxvb2t1cHM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8aDI+REZTIE1vZGlmaWVyczwvaDI+IC0tPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Nb2RpZmllcnM8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cIm11bHRpU2VsZWN0XCIgbXVsdGlwbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11bHRpU2VsZWN0Rm9ybUNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBNdWx0aVNlbGVjdEZvcm1Db250cm9sPy52YWx1ZVswXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aVNlbGVjdEZvcm1Db250cm9sPy52YWx1ZT8ubGVuZ3RoID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb2RpZmllci1zZWxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoK3t7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlTZWxlY3RGb3JtQ29udHJvbD8udmFsdWU/Lmxlbmd0aCAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11bHRpU2VsZWN0Rm9ybUNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ubGVuZ3RoID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJvdGhlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJvdGhlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGlmaWVyTG9va3VwIG9mIEVudGVycHJpc2VzTW9kaWZpZXJMb29rdXBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb2RpZmllcnNbbW9kaWZpZXJMb29rdXBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtb2RpZmllclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJtb2RpZmllckxvb2t1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgbW9kaWZpZXI/Lk5hbWUgfX08L21hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXQubHQtbWQ9XCJjb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgZnhGbGV4Lmx0LW1kPVwiMTAwJVwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBtb2RpZmllckxvb2t1cCBvZiBNb2RpZmllckxvb2t1cHNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJNb2RpZmllcnNbbW9kaWZpZXJMb29rdXBdOyBsZXQgbW9kaWZpZXJcIj5cblxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1zdWJoZWFkaW5nLTJcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJtb2RpZmllci5OYW1lXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgbW9kaWZpZXIuTmFtZSB8fCBtb2RpZmllci5Mb29rdXAgfX1cblxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcHJlYWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdD8uTW9kaWZpZXJMb29rdXBzLmluZGV4T2YobW9kaWZpZXJMb29rdXApID49IDBcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiU2V0VXNlRm9yUHJvamVjdChtb2RpZmllckxvb2t1cCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ1VzZSBmb3IgJyArIExldmVsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0YS1hcHAtYWN0aW9uc1wiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlNldEVkaXRpbmdNb2RpZmllcihtb2RpZmllckxvb2t1cClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdFRvb2x0aXA9XCJFZGl0IERGUyBNb2RpZmllclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3NcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiRGVsZXRlTW9kaWZpZXIobW9kaWZpZXJMb29rdXAsIG1vZGlmaWVyLk5hbWUpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRUb29sdGlwPVwiRGVsZXRlIHt7IG1vZGlmaWVyLk5hbWUgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZV9mb3JldmVyXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbjwvZGl2PlxuIl19
@@ -92,7 +92,7 @@ export class DFSModifiersDialogComponent {
92
92
  }
93
93
  }
94
94
  SaveDFSModifier() {
95
- // console.log("level at save: ", this.data.level)
95
+ console.log('level at save: ', this.data.level);
96
96
  let status;
97
97
  switch (this.data.level) {
98
98
  case 'enterprise': {
@@ -114,7 +114,7 @@ export class DFSModifiersDialogComponent {
114
114
  this.DFSModifersFormControls.SaveModifierForApplication(this.data.applicationLookup);
115
115
  }
116
116
  }
117
- if (status.Code === 0) {
117
+ if (status?.Code === 0) {
118
118
  this.snackBar.open('DFS Modifier Saved Successfully', 'Dismiss', {
119
119
  duration: 5000,
120
120
  });
@@ -150,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
150
150
  type: ViewChild,
151
151
  args: [DFSModifiersFormComponent]
152
152
  }] } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZzLW1vZGlmaWVycy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZGlhbG9ncy9kZnMtbW9kaWZpZXJzLWRpYWxvZy9kZnMtbW9kaWZpZXJzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL2Rmcy1tb2RpZmllcnMtZGlhbG9nL2Rmcy1tb2RpZmllcnMtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEYsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUt6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFpQjNHLE1BQU0sT0FBTywyQkFBMkI7SUE0QnBDLFlBQ2MsTUFBa0IsRUFDckIsUUFBcUIsRUFDckIsU0FBb0QsRUFDM0IsSUFBNEIsRUFDbEQsUUFBcUI7UUFKckIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQXdCO1FBQ2xELGFBQVEsR0FBUixRQUFRLENBQWE7UUFFL0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFoQ0QsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQVcsMEJBQTBCO1FBQ2pDLE9BQU8sSUFBSSxD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LGtCQUFrQixDQUFDLFVBQVUsQ0FDOUIsb0JBQW9CLEVBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUMvQixDQUFDO0lBQ04sQ0FBQzs7d0hBeEtRLDJCQUEyQixtR0FnQ3hCLGVBQWU7NEdBaENsQiwyQkFBMkIseUhBQ3pCLHlCQUF5QixnREMxQnhDLGdtRUEwRUE7MkZEakRhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDSSwwQkFBMEI7OzBCQW9DL0IsTUFBTTsyQkFBQyxlQUFlO3NFQTlCcEIsdUJBQXVCO3NCQUQ3QixTQUFTO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgREZTTW9kaWZpZXJzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2Rmcy1tb2RpZmllcnMtZm9ybS9kZnMtbW9kaWZpZXJzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgREZTTW9kaWZpZXJzRGlhbG9nRGF0YSB7XG4gICAgYXBwbGljYXRpb25Mb29rdXA/OiBzdHJpbmc7XG4gICAgbW9kaWZpZXJMb29rdXA/OiBzdHJpbmc7XG4gICAgbW9kaWZpZXJOYW1lPzogc3RyaW5nO1xuICAgIGxldmVsOiBzdHJpbmc7XG4gICAgcHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtZGZzLW1vZGlmaWVycy1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZnMtbW9kaWZpZXJzLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGZzLW1vZGlmaWVycy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgREZTTW9kaWZpZXJzRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoREZTTW9kaWZpZXJzRm9ybUNvbXBvbmVudClcbiAgICBwdWJsaWMgREZTTW9kaWZlcnNGb3JtQ29udHJvbHM6IERGU01vZGlmaWVyc0Zvcm1Db21wb25lbnQ7XG5cbiAgICBwdWJsaWMgZ2V0IERGU01vZGlmZXJzRm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzPy5Nb2RpZmllckZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNlbGVjdGVkTW9kaWZpZXJzRm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzPy5Nb2RpZmllclNlbGVjdEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgQXBwbGljYXRpb25zOiBBcnJheTxFYUNBcHBsaWNhdGlvbkFzQ29kZT47XG5cbiAgICBwdWJsaWMgRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgSXNQcmVjb25maWd1cmVkOiBib29sZWFuO1xuXG4gICAgcHVibGljIE1vZGlmaWVyRGlhbG9nRm9ybTogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIFNhdmVEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBTdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlO1xuXG4gICAgcHVibGljIFN0YXRlU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSxcbiAgICAgICAgcHVibGljIGZvcm1ibGRyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERGU01vZGlmaWVyc0RpYWxvZ0NvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogREZTTW9kaWZpZXJzRGlhbG9nRGF0YSxcbiAgICAgICAgcHJvdGVjdGVkIHNuYWNrQmFyOiBNYXRTbmFja0JhclxuICAgICkge1xuICAgICAgICB0aGlzLk1vZGlmaWVyRGlhbG9nRm9ybSA9IHRoaXMuZm9ybWJsZHIuZ3JvdXAoe30pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2RmcyBkYXRhOiAnLCB0aGlzLmRhdGEpO1xuICAgICAgICB0aGlzLlN0YXRlU3ViID0gdGhpcy5lYWNTdmMuU3RhdGUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5TdGF0ZSA9IHN0YXRlO1xuICAgICAgICAgICAgaWYgKHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge31cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kZXRlcm1pbmVMZXZlbCgpO1xuXG4gICAgICAgIHRoaXMuSXNQcmVjb25maWd1cmVkID0gdGhpcy5DaGVja1ByZWNvbmZpZ3VyZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuU3RhdGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ2xvc2VEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIERlbGV0ZU1vZGlmaWVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVhY1N2Yy5EZWxldGVNb2RpZmllcihcbiAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllckxvb2t1cCxcbiAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllck5hbWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSGFuZGxlU2F2ZUZvcm1FdmVudChldmVudDogU3RhdHVzKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdldmVudDogJywgZXZlbnQpO1xuICAgICAgICBpZiAoZXZlbnQuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdERlMgTW9kaWZpZXIgU2F2ZWQgU3VjY2Vzc2Z1bGx5JywgJ0Rpc21pc3MnLCB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb246IDUwMDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuQ2xvc2VEaWFsb2coKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuRXJyb3JNZXNzYWdlID0gZXZlbnQuTWVzc2FnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBJc0Rpc2FibGVkKCkge1xuICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLkRGU01vZGlmZXJzRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXRoaXMuREZTTW9kaWZlcnNGb3JtR3JvdXA/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuREZTTW9kaWZlcnNGb3JtR3JvdXA/LmRpcnR5IHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuTW9kaWZpZXJEaWFsb2dGb3JtPy52YWxpZDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLlNlbGVjdGVkTW9kaWZpZXJzRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXRoaXMuU2VsZWN0ZWRNb2RpZmllcnNGb3JtR3JvdXA/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuU2VsZWN0ZWRNb2RpZmllcnNGb3JtR3JvdXA/LmRpcnR5O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdTYXZlIGRpc2FibGVkOiAnLCB0aGlzLlNhdmVEaXNhYmxlZCk7XG4gICAgICAgIHJldHVybiB0aGlzLlNhdmVEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ2hlY2tQcmVjb25maWd1cmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5kYXRhLm1vZGlmaWVyTG9va3VwKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLm1vZGlmaWVyTG9va3VwID09PSAnaHRtbC1iYXNlJyB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllckxvb2t1cCA9PT0gJ2xjdS1yZWcnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFNhdmVERlNNb2RpZmllcigpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJsZXZlbCBhdCBzYXZlOiBcIiwgdGhpcy5kYXRhLmxldmVsKVxuXG4gICAgICAgIGxldCBzdGF0dXM6IFN0YXR1cztcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0YS5sZXZlbCkge1xuICAgICAgICAgICAgY2FzZSAnZW50ZXJwcmlzZSc6IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5Nb2RpZmllckRpYWxvZ0Zvcm0uY29udHJvbHMuYXBwbHlUb0FsbFByb2plY3RzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vc2F2ZSBtb2RpZmllciBhZGQgaXQgdG8gdGhlIE1vZGlmaWVyTG9va3VwcyBvZiBhbGwgcHJvamVjdHNcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuREZTTW9kaWZlcnNGb3JtQ29udHJvbHMuU2F2ZU1vZGlmaWVyRm9yQWxsUHJvamVjdHMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9qZWN0TG9va3Vwc1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvL3NhdmUgbW9kaWZpZXJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdwcm9qZWN0Jzoge1xuICAgICAgICAgICAgICAgIHN0YXR1cyA9IHRoaXMuREZTTW9kaWZlcnNGb3JtQ29udHJvbHMuU2F2ZU1vZGlmaWVyKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEucHJvamVjdExvb2t1cFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uJzoge1xuICAgICAgICAgICAgICAgIHN0YXR1cyA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuREZTTW9kaWZlcnNGb3JtQ29udHJvbHMuU2F2ZU1vZGlmaWVyRm9yQXBwbGljYXRpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuYXBwbGljYXRpb25Mb29rdXBcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignREZTIE1vZGlmaWVyIFNhdmVkIFN1Y2Nlc3NmdWxseScsICdEaXNtaXNzJywge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0RGUyBNb2RpZmllciBGYWlsZWQgdG8gU2F2ZScsICdEaXNtaXNzJywge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGV0ZXJtaW5lTGV2ZWwoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdMRVZFTDogJywgdGhpcy5kYXRhLmxldmVsKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmRhdGEubGV2ZWwudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgY2FzZSAnZW50ZXJwcmlzZSc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwRW50Rm9ybSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwRW50Rm9ybSgpIHtcbiAgICAgICAgdGhpcy5Nb2RpZmllckRpYWxvZ0Zvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICAgICdhcHBseVRvQWxsUHJvamVjdHMnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYmxkci5jb250cm9sKGZhbHNlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XG4gICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+REZTIE1vZGlmaWVyczwvaDI+XG5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiQ2xvc2VEaWFsb2coKVwiPlxuICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxsY3UtZGZzLW1vZGlmaWVyLWZvcm1cbiAgICAgICAgW2FwcGxpY2F0aW9uc109XCJ0aGlzLlN0YXRlPy5FYUM/LkFwcGxpY2F0aW9uc1wiXG4gICAgICAgIFthcHBsaWNhdGlvbi1sb29rdXBdPVwiZGF0YS5hcHBsaWNhdGlvbkxvb2t1cFwiXG4gICAgICAgIFtwcm9qZWN0LWxvb2t1cF09XCJkYXRhLnByb2plY3RMb29rdXBcIlxuICAgICAgICBbcHJvamVjdHNdPVwidGhpcy5TdGF0ZT8uRWFDPy5Qcm9qZWN0c1wiXG4gICAgICAgIFtlZGl0aW5nLW1vZGlmaWVyLWxvb2t1cF09XCJkYXRhLm1vZGlmaWVyTG9va3VwXCJcbiAgICAgICAgW2xldmVsXT1cImRhdGEubGV2ZWxcIlxuICAgICAgICBbbW9kaWZpZXJzXT1cIlN0YXRlPy5FYUM/Lk1vZGlmaWVyc1wiXG4gICAgPlxuICAgIDwvbGN1LWRmcy1tb2RpZmllci1mb3JtPlxuXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJNb2RpZmllckRpYWxvZ0Zvcm1cIj5cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmxldmVsID09PSAnZW50ZXJwcmlzZScgJiYgZGF0YS5tb2RpZmllckxvb2t1cFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcHBseVRvQWxsUHJvamVjdHNcIlxuICAgICAgICAgICAgPkFwcGx5IHRvIGFsbCBQcm9qZWN0czwvbWF0LWNoZWNrYm94XG4gICAgICAgID5cbiAgICA8L2Zvcm0+XG5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiRXJyb3JNZXNzYWdlXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAge3sgRXJyb3JNZXNzYWdlIH19XG4gICAgPC9tYXQtZXJyb3I+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9uc1xuICAgIGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIlxuICAgIGRpdlxuICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuPlxuICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiFJc1ByZWNvbmZpZ3VyZWRcIlxuICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiRGVsZXRlTW9kaWZpZXIoKVwiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIHt7IGRhdGEubW9kaWZpZXJMb29rdXAgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgICBEZWxldGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgZnhGbGV4PVwiNTIlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJDbG9zZURpYWxvZygpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIlxuICAgICAgICAgICAgZnhGbGV4PVwiMzAlXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiU2F2ZURGU01vZGlmaWVyKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIklzRGlzYWJsZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIFNhdmVcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZzLW1vZGlmaWVycy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZGlhbG9ncy9kZnMtbW9kaWZpZXJzLWRpYWxvZy9kZnMtbW9kaWZpZXJzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL2Rmcy1tb2RpZmllcnMtZGlhbG9nL2Rmcy1tb2RpZmllcnMtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEYsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUt6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFpQjNHLE1BQU0sT0FBTywyQkFBMkI7SUE0QnBDLFlBQ2MsTUFBa0IsRUFDckIsUUFBcUIsRUFDckIsU0FBb0QsRUFDM0IsSUFBNEIsRUFDbEQsUUFBcUI7UUFKckIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQXdCO1FBQ2xELGFBQVEsR0FBUixRQUFRLENBQWE7UUFFL0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFoQ0QsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQVcsMEJBQTBCO1FBQ2pDLE9BQU8sSUFBSSxD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QUFZLEVBQUUsQ0FBQzthQUN2QjtTQUNKO0lBQ0wsQ0FBQztJQUVTLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FDOUIsb0JBQW9CLEVBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUMvQixDQUFDO0lBQ04sQ0FBQzs7d0hBeEtRLDJCQUEyQixtR0FnQ3hCLGVBQWU7NEdBaENsQiwyQkFBMkIseUhBQ3pCLHlCQUF5QixnREMxQnhDLGdtRUEwRUE7MkZEakRhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDSSwwQkFBMEI7OzBCQW9DL0IsTUFBTTsyQkFBQyxlQUFlO3NFQTlCcEIsdUJBQXVCO3NCQUQ3QixTQUFTO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgREZTTW9kaWZpZXJzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2Rmcy1tb2RpZmllcnMtZm9ybS9kZnMtbW9kaWZpZXJzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgREZTTW9kaWZpZXJzRGlhbG9nRGF0YSB7XG4gICAgYXBwbGljYXRpb25Mb29rdXA/OiBzdHJpbmc7XG4gICAgbW9kaWZpZXJMb29rdXA/OiBzdHJpbmc7XG4gICAgbW9kaWZpZXJOYW1lPzogc3RyaW5nO1xuICAgIGxldmVsOiBzdHJpbmc7XG4gICAgcHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtZGZzLW1vZGlmaWVycy1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZnMtbW9kaWZpZXJzLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGZzLW1vZGlmaWVycy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgREZTTW9kaWZpZXJzRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoREZTTW9kaWZpZXJzRm9ybUNvbXBvbmVudClcbiAgICBwdWJsaWMgREZTTW9kaWZlcnNGb3JtQ29udHJvbHM6IERGU01vZGlmaWVyc0Zvcm1Db21wb25lbnQ7XG5cbiAgICBwdWJsaWMgZ2V0IERGU01vZGlmZXJzRm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzPy5Nb2RpZmllckZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNlbGVjdGVkTW9kaWZpZXJzRm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzPy5Nb2RpZmllclNlbGVjdEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgQXBwbGljYXRpb25zOiBBcnJheTxFYUNBcHBsaWNhdGlvbkFzQ29kZT47XG5cbiAgICBwdWJsaWMgRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgSXNQcmVjb25maWd1cmVkOiBib29sZWFuO1xuXG4gICAgcHVibGljIE1vZGlmaWVyRGlhbG9nRm9ybTogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIFNhdmVEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBTdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlO1xuXG4gICAgcHVibGljIFN0YXRlU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSxcbiAgICAgICAgcHVibGljIGZvcm1ibGRyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERGU01vZGlmaWVyc0RpYWxvZ0NvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogREZTTW9kaWZpZXJzRGlhbG9nRGF0YSxcbiAgICAgICAgcHJvdGVjdGVkIHNuYWNrQmFyOiBNYXRTbmFja0JhclxuICAgICkge1xuICAgICAgICB0aGlzLk1vZGlmaWVyRGlhbG9nRm9ybSA9IHRoaXMuZm9ybWJsZHIuZ3JvdXAoe30pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2RmcyBkYXRhOiAnLCB0aGlzLmRhdGEpO1xuICAgICAgICB0aGlzLlN0YXRlU3ViID0gdGhpcy5lYWNTdmMuU3RhdGUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5TdGF0ZSA9IHN0YXRlO1xuICAgICAgICAgICAgaWYgKHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge31cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kZXRlcm1pbmVMZXZlbCgpO1xuXG4gICAgICAgIHRoaXMuSXNQcmVjb25maWd1cmVkID0gdGhpcy5DaGVja1ByZWNvbmZpZ3VyZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuU3RhdGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ2xvc2VEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIERlbGV0ZU1vZGlmaWVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVhY1N2Yy5EZWxldGVNb2RpZmllcihcbiAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllckxvb2t1cCxcbiAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllck5hbWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSGFuZGxlU2F2ZUZvcm1FdmVudChldmVudDogU3RhdHVzKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdldmVudDogJywgZXZlbnQpO1xuICAgICAgICBpZiAoZXZlbnQuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdERlMgTW9kaWZpZXIgU2F2ZWQgU3VjY2Vzc2Z1bGx5JywgJ0Rpc21pc3MnLCB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb246IDUwMDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuQ2xvc2VEaWFsb2coKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuRXJyb3JNZXNzYWdlID0gZXZlbnQuTWVzc2FnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBJc0Rpc2FibGVkKCkge1xuICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLkRGU01vZGlmZXJzRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXRoaXMuREZTTW9kaWZlcnNGb3JtR3JvdXA/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuREZTTW9kaWZlcnNGb3JtR3JvdXA/LmRpcnR5IHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuTW9kaWZpZXJEaWFsb2dGb3JtPy52YWxpZDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLlNlbGVjdGVkTW9kaWZpZXJzRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXRoaXMuU2VsZWN0ZWRNb2RpZmllcnNGb3JtR3JvdXA/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuU2VsZWN0ZWRNb2RpZmllcnNGb3JtR3JvdXA/LmRpcnR5O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdTYXZlIGRpc2FibGVkOiAnLCB0aGlzLlNhdmVEaXNhYmxlZCk7XG4gICAgICAgIHJldHVybiB0aGlzLlNhdmVEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ2hlY2tQcmVjb25maWd1cmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5kYXRhLm1vZGlmaWVyTG9va3VwKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLm1vZGlmaWVyTG9va3VwID09PSAnaHRtbC1iYXNlJyB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllckxvb2t1cCA9PT0gJ2xjdS1yZWcnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFNhdmVERlNNb2RpZmllcigpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2xldmVsIGF0IHNhdmU6ICcsIHRoaXMuZGF0YS5sZXZlbCk7XG5cbiAgICAgICAgbGV0IHN0YXR1czogU3RhdHVzO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5kYXRhLmxldmVsKSB7XG4gICAgICAgICAgICBjYXNlICdlbnRlcnByaXNlJzoge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLk1vZGlmaWVyRGlhbG9nRm9ybS5jb250cm9scy5hcHBseVRvQWxsUHJvamVjdHMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9zYXZlIG1vZGlmaWVyIGFkZCBpdCB0byB0aGUgTW9kaWZpZXJMb29rdXBzIG9mIGFsbCBwcm9qZWN0c1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXJGb3JBbGxQcm9qZWN0cyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vc2F2ZSBtb2RpZmllclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzLlNhdmVNb2RpZmllcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3Byb2plY3QnOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzID0gdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXIoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5wcm9qZWN0TG9va3VwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24nOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXJGb3JBcHBsaWNhdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5hcHBsaWNhdGlvbkxvb2t1cFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXM/LkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignREZTIE1vZGlmaWVyIFNhdmVkIFN1Y2Nlc3NmdWxseScsICdEaXNtaXNzJywge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0RGUyBNb2RpZmllciBGYWlsZWQgdG8gU2F2ZScsICdEaXNtaXNzJywge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGV0ZXJtaW5lTGV2ZWwoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdMRVZFTDogJywgdGhpcy5kYXRhLmxldmVsKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmRhdGEubGV2ZWwudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgY2FzZSAnZW50ZXJwcmlzZSc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwRW50Rm9ybSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwRW50Rm9ybSgpIHtcbiAgICAgICAgdGhpcy5Nb2RpZmllckRpYWxvZ0Zvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICAgICdhcHBseVRvQWxsUHJvamVjdHMnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYmxkci5jb250cm9sKGZhbHNlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XG4gICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+REZTIE1vZGlmaWVyczwvaDI+XG5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiQ2xvc2VEaWFsb2coKVwiPlxuICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxsY3UtZGZzLW1vZGlmaWVyLWZvcm1cbiAgICAgICAgW2FwcGxpY2F0aW9uc109XCJ0aGlzLlN0YXRlPy5FYUM/LkFwcGxpY2F0aW9uc1wiXG4gICAgICAgIFthcHBsaWNhdGlvbi1sb29rdXBdPVwiZGF0YS5hcHBsaWNhdGlvbkxvb2t1cFwiXG4gICAgICAgIFtwcm9qZWN0LWxvb2t1cF09XCJkYXRhLnByb2plY3RMb29rdXBcIlxuICAgICAgICBbcHJvamVjdHNdPVwidGhpcy5TdGF0ZT8uRWFDPy5Qcm9qZWN0c1wiXG4gICAgICAgIFtlZGl0aW5nLW1vZGlmaWVyLWxvb2t1cF09XCJkYXRhLm1vZGlmaWVyTG9va3VwXCJcbiAgICAgICAgW2xldmVsXT1cImRhdGEubGV2ZWxcIlxuICAgICAgICBbbW9kaWZpZXJzXT1cIlN0YXRlPy5FYUM/Lk1vZGlmaWVyc1wiXG4gICAgPlxuICAgIDwvbGN1LWRmcy1tb2RpZmllci1mb3JtPlxuXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJNb2RpZmllckRpYWxvZ0Zvcm1cIj5cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmxldmVsID09PSAnZW50ZXJwcmlzZScgJiYgZGF0YS5tb2RpZmllckxvb2t1cFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcHBseVRvQWxsUHJvamVjdHNcIlxuICAgICAgICAgICAgPkFwcGx5IHRvIGFsbCBQcm9qZWN0czwvbWF0LWNoZWNrYm94XG4gICAgICAgID5cbiAgICA8L2Zvcm0+XG5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiRXJyb3JNZXNzYWdlXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAge3sgRXJyb3JNZXNzYWdlIH19XG4gICAgPC9tYXQtZXJyb3I+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9uc1xuICAgIGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIlxuICAgIGRpdlxuICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuPlxuICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiFJc1ByZWNvbmZpZ3VyZWRcIlxuICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiRGVsZXRlTW9kaWZpZXIoKVwiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIHt7IGRhdGEubW9kaWZpZXJMb29rdXAgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgICBEZWxldGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgZnhGbGV4PVwiNTIlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJDbG9zZURpYWxvZygpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIlxuICAgICAgICAgICAgZnhGbGV4PVwiMzAlXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiU2F2ZURGU01vZGlmaWVyKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIklzRGlzYWJsZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIFNhdmVcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
@@ -109,10 +109,10 @@ export class ProjectCardComponent {
109
109
  let tempProj = this.Projects[pLookup];
110
110
  this.Project = tempProj;
111
111
  let tempProjNode = {
112
- name: tempProj.Project.Name,
113
- description: tempProj.Project.Description,
112
+ name: tempProj?.Project?.Name,
113
+ description: tempProj?.Project?.Description,
114
114
  lookup: pLookup,
115
- url: 'https://' + tempProj.PrimaryHost,
115
+ url: 'https://' + tempProj?.PrimaryHost,
116
116
  routerLink: ['/project', pLookup],
117
117
  };
118
118
  let tempRoutes = this.ApplicationRoutes;
@@ -227,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
227
227
  type: Input,
228
228
  args: ['project-lookup']
229
229
  }] } });
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2VsZW1lbnRzL3Byb2plY3QtY2FyZC9wcm9qZWN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdC1jYXJkL3Byb2plY3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUNILHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQVNoQyxNQUFNLE9BQU8sb0JBQW9CO0lBbUo3QixrQ0FBa0M7SUFFbEM7UUF4SVEsZ0JBQVcsR0FBRyxDQUFDLElBQWMsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNwRCxPQUFPO2dCQUNILFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUN2RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7YUFDaEMsQ0FBQztRQUNOLENBQUMsQ0FBQztRQW1HRixnQkFBVyxHQUFHLElBQUksZUFBZSxDQUM3QixDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFD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QyxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBYTtRQUM1QixpQ0FBaUM7SUFDckMsQ0FBQzs7aUhBbFNRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHVXQ2RqQyxpNUtBc0lBOzJGRHhIYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksa0JBQWtCOzBFQU1yQixnQkFBZ0I7c0JBRHRCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUluQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUztnQkFJVCxjQUFjO3NCQURwQixLQUFLO3VCQUFDLGlCQUFpQjtnQkFJakIsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFVBQVU7Z0JBa0lWLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTO2dCQUlULGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIE1hdFRyZWVGbGF0RGF0YVNvdXJjZSxcbiAgICBNYXRUcmVlRmxhdHRlbmVyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlLCBFYUNQcm9qZWN0QXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEZsYXROb2RlLCBUcmVlTm9kZSB9IGZyb20gJy4uLy4uL21vZGVscy90cmVlLW5vZGUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS1wcm9qZWN0LWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9qZWN0LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2plY3QtY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9qZWN0Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdhcHBsaWNhdGlvbnMtYmFuaycpXG4gICAgcHVibGljIEFwcGxpY2F0aW9uc0Jhbms6IEFycmF5PEVhQ0FwcGxpY2F0aW9uQXNDb2RlPjtcblxuICAgIEBJbnB1dCgnbG9hZGluZycpXG4gICAgcHVibGljIExvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoJ3Byb2plY3QtbG9va3VwcycpXG4gICAgcHVibGljIFByb2plY3RMb29rdXBzOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgQElucHV0KCdwcm9qZWN0cycpXG4gICAgcHVibGljIFByb2plY3RzOiBBcnJheTxFYUNQcm9qZWN0QXNDb2RlPjtcblxuICAgIHByaXZhdGUgdHJhbnNmb3JtZXIgPSAobm9kZTogVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGV4cGFuZGFibGU6ICEhbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDAsXG4gICAgICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgICAgICBsZXZlbDogbGV2ZWwsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBub2RlLnJvdXRlckxpbmssXG4gICAgICAgICAgICB1cmw6IG5vZGUudXJsLFxuICAgICAgICAgICAgbG9va3VwOiBub2RlLmxvb2t1cCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBub2RlLmRlc2NyaXB0aW9uLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEFwcGxpY2F0aW9ucygpOiB7XG4gICAgICAgIFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuICAgIH0ge1xuICAgICAgICBjb25zdCBhcHBzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gPSB7fTtcblxuICAgICAgICB0aGlzLlByb2plY3Q/LkFwcGxpY2F0aW9uTG9va3Vwcz8uZm9yRWFjaCgoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGFwcHNbYXBwTG9va3VwXSA9IHRoaXMuQXBwbGljYXRpb25zQmFua1thcHBMb29rdXBdO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFwcHM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBBcHBsaWNhdGlvblJvdXRlcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuUm91dGVkQXBwbGljYXRpb25zIHx8IHt9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEN1cnJlbnRSb3V0ZUFwcGxpY2F0aW9uTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuUm91dGVkQXBwbGljYXRpb25zW3RoaXMuQXBwUm91dGVdIHx8IHt9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFJvdXRlZEFwcGxpY2F0aW9ucygpOiB7XG4gICAgICAgIFtyb3V0ZTogc3RyaW5nXTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9O1xuICAgIH0ge1xuICAgICAgICBjb25zdCBhcHBMb29rdXBzID0gT2JqZWN0LmtleXModGhpcy5BcHBsaWNhdGlvbnMpO1xuXG4gICAgICAgIGNvbnN0IGFwcHMgPSBhcHBMb29rdXBzLm1hcChcbiAgICAgICAgICAgIChhcHBMb29rdXApID0+IHRoaXMuQXBwbGljYXRpb25zW2FwcExvb2t1cF1cbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgYXBwUm91dGVzID1cbiAgICAgICAgICAgIGFwcHMubWFwKChhcHApID0+IHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkFwcCBmcm9tIHByb2plY3RzOiBcIiwgYXBwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwPy5Mb29rdXBDb25maWc/LlBhdGhSZWdleC5yZXBsYWNlKCcuKicsICcnKTtcbiAgICAgICAgICAgIH0pIHx8IFtdO1xuXG4gICAgICAgIGFwcFJvdXRlcyA9IGFwcFJvdXRlcy5maWx0ZXIoKGFyKSA9PiBhciAhPSBudWxsKTtcblxuICAgICAgICBsZXQgcm91dGVCYXNlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBhcHBSb3V0ZXMuZm9yRWFjaCgoYXBwUm91dGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcFJvdXRlUGFydHMgPSBhcHBSb3V0ZS5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICBjb25zdCBhcHBSb3V0ZUJhc2UgPSBgLyR7YXBwUm91dGVQYXJ0c1sxXX1gO1xuXG4gICAgICAgICAgICBpZiAocm91dGVCYXNlcy5pbmRleE9mKGFwcFJvdXRlQmFzZSkgPCAwKSB7XG4gICAgICAgICAgICAgICAgcm91dGVCYXNlcy5wdXNoKGFwcFJvdXRlQmFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCB3b3JraW5nQXBwTG9va3VwcyA9IFsuLi4oYXBwTG9va3VwcyB8fCBbXSldO1xuXG4gICAgICAgIHJvdXRlQmFzZXMgPSByb3V0ZUJhc2VzLnNvcnQoKGEsIGIpID0+IGIubG9jYWxlQ29tcGFyZShhKSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVTZXQgPVxuICAgICAgICAgICAgcm91dGVCYXNlcy5yZWR1Y2UoKHByZXZSb3V0ZU1hcCwgY3VycmVudFJvdXRlQmFzZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlTWFwID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2Um91dGVNYXAsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2FsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhID0gdGhpcy5BcHBsaWNhdGlvbnNbd2FsXTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2E/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnN0YXJ0c1dpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Um91dGVCYXNlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByb3V0ZU1hcFtjdXJyZW50Um91dGVCYXNlXSA9XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkQXBwTG9va3Vwcy5yZWR1Y2UoKHByZXZBcHBNYXAsIGFwcExvb2t1cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBwTWFwOiBhbnkgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldkFwcE1hcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcE1hcFthcHBMb29rdXBdID0gdGhpcy5BcHBsaWNhdGlvbnNbYXBwTG9va3VwXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwcE1hcDtcbiAgICAgICAgICAgICAgICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgICAgICAgICAgICAgd29ya2luZ0FwcExvb2t1cHMgPSB3b3JraW5nQXBwTG9va3Vwcy5maWx0ZXIoKHdhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZEFwcExvb2t1cHMuaW5kZXhPZih3YSkgPCAwO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlTWFwO1xuICAgICAgICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgICAgIGxldCByb3V0ZVNldEtleXMgPSBPYmplY3Qua2V5cyhyb3V0ZVNldCk7XG5cbiAgICAgICAgcm91dGVTZXRLZXlzID0gcm91dGVTZXRLZXlzLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVTZXRSZXN1bHQgPSB7fTtcblxuICAgICAgICByb3V0ZVNldEtleXMuZm9yRWFjaCgocnNrKSA9PiAocm91dGVTZXRSZXN1bHRbcnNrXSA9IHJvdXRlU2V0W3Jza10pKTtcblxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkFwcCBSb3V0ZXM6IFwiLHJvdXRlU2V0UmVzdWx0KVxuXG4gICAgICAgIHJldHVybiByb3V0ZVNldFJlc3VsdDtcbiAgICB9XG5cbiAgICB0cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8RmxhdE5vZGU+KFxuICAgICAgICAobm9kZTogYW55KSA9PiBub2RlLmxldmVsLFxuICAgICAgICAobm9kZTogYW55KSA9PiBub2RlLmV4cGFuZGFibGVcbiAgICApO1xuXG4gICAgdHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxuICAgICAgICB0aGlzLnRyYW5zZm9ybWVyLFxuICAgICAgICAobm9kZSkgPT4gbm9kZS5sZXZlbCxcbiAgICAgICAgKG5vZGUpID0+IG5vZGUuZXhwYW5kYWJsZSxcbiAgICAgICAgKG5vZGUpID0+IG5vZGUuY2hpbGRyZW5cbiAgICApO1xuXG4gICAgcHVibGljIERhdGFTb3VyY2UgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKFxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLFxuICAgICAgICB0aGlzLnRyZWVGbGF0dGVuZXJcbiAgICApO1xuXG4gICAgQElucHV0KCdwcm9qZWN0JylcbiAgICBwdWJsaWMgUHJvamVjdDogRWFDUHJvamVjdEFzQ29kZTtcblxuICAgIEBJbnB1dCgncHJvamVjdC1sb29rdXAnKVxuICAgIHB1YmxpYyBQcm9qZWN0TG9va3VwOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgQXBwUm91dGU6IHN0cmluZztcblxuICAgIC8vIHB1YmxpYyBSb3V0ZWRBcHBsaWNhdGlvbnM6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIHB1YmxpYyBIYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IEZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5Qcm9qZWN0cyAmJiB0aGlzLlByb2plY3RMb29rdXBzICYmIHRoaXMuQXBwbGljYXRpb25zKSB7XG4gICAgICAgICAgICBsZXQgdGVtcCA9IHRoaXMuQnVpbGRQcm9qZWN0VHJlZSgpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJ0byBzdHJpbmc6IFwiLCBKU09OLnN0cmluZ2lmeSh0ZW1wKSlcblxuICAgICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMuRGF0YVNvdXJjZS5kYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkodGVtcCkpIHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnSXRzIGRpZmZlcmVudCcpXG4gICAgICAgICAgICAgICAgdGhpcy5EYXRhU291cmNlLmRhdGEgPSB0ZW1wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFJvdXRlVG9QYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHBhdGg7XG4gICAgfVxuXG4gICAgcHVibGljIEJ1aWxkUHJvamVjdFRyZWUoKTogQXJyYXk8VHJlZU5vZGU+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2NhbGxpbmcgYnVpbGQgcHJvamVjdCB0cmVlJyk7XG4gICAgICAgIGxldCB0ZW1wVHJlZURhdGE6IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzPy5mb3JFYWNoKChwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGxldCB0ZW1wUHJvaiA9IHRoaXMuUHJvamVjdHNbcExvb2t1cF07XG4gICAgICAgICAgICB0aGlzLlByb2plY3QgPSB0ZW1wUHJvajtcbiAgICAgICAgICAgIGxldCB0ZW1wUHJvak5vZGU6IFRyZWVOb2RlID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRlbXBQcm9qLlByb2plY3QuTmFtZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGVtcFByb2ouUHJvamVjdC5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBsb29rdXA6IHBMb29rdXAsXG4gICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly8nICsgdGVtcFByb2ouUHJpbWFyeUhvc3QsXG4gICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvcHJvamVjdCcsIHBMb29rdXBdLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IHRlbXBSb3V0ZXMgPSB0aGlzLkFwcGxpY2F0aW9uUm91dGVzO1xuXG4gICAgICAgICAgICBpZiAodGVtcFJvdXRlcykge1xuICAgICAgICAgICAgICAgIGxldCB0ZW1wUHJvakNoaWxkcmVuOiBBcnJheTxUcmVlTm9kZT4gPSBbXTtcbiAgICAgICAgICAgICAgICB0ZW1wUm91dGVzLmZvckVhY2goKGFwcFJvdXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5BcHBSb3V0ZSA9IGFwcFJvdXRlO1xuICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZXJMaW5rOiBbJy9yb3V0ZScsIHRoaXMuQXBwUm91dGUsIHBMb29rdXBdLFxuICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcFJvdXRlTm9kZTogVHJlZU5vZGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly8nICsgdGVtcFByb2ouUHJpbWFyeUhvc3QgKyB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvcm91dGUnLCB0aGlzLkFwcFJvdXRlLCBwTG9va3VwXSxcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcHMgPSB0aGlzLkN1cnJlbnRSb3V0ZUFwcGxpY2F0aW9uTG9va3VwcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBBcHBzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcFJvdXRlQ2hpbGRyZW46IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcEFwcHMuZm9yRWFjaCgoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUm91dGVkQXBwbGljYXRpb25zW3RoaXMuQXBwUm91dGVdW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwTG9va3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFwcFBhdGggPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wQXBwLkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnN1YnN0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wQXBwLkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4Lmxlbmd0aCAtIDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wQXBwTm9kZTogVHJlZU5vZGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb2t1cDogYXBwTG9va3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0ZW1wQXBwLkFwcGxpY2F0aW9uLk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovLycgKyB0ZW1wUHJvai5QcmltYXJ5SG9zdCArIGFwcFBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0ZW1wQXBwLkFwcGxpY2F0aW9uLkRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnL2FwcGxpY2F0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcExvb2t1cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQXBwUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwTG9va3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFJvdXRlQ2hpbGRyZW4ucHVzaCh0ZW1wQXBwTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBSb3V0ZU5vZGUuY2hpbGRyZW4gPSB0ZW1wUm91dGVDaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0ZW1wUHJvakNoaWxkcmVuLnB1c2godGVtcFJvdXRlTm9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGVtcFByb2pOb2RlLmNoaWxkcmVuID0gdGVtcFByb2pDaGlsZHJlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRlbXBUcmVlRGF0YS5wdXNoKHRlbXBQcm9qTm9kZSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnVEhFIFRSRUU6ICcsIHRlbXBUcmVlRGF0YSk7XG4gICAgICAgIHJldHVybiB0ZW1wVHJlZURhdGE7XG5cbiAgICAgICAgLy8gcmV0dXJuIHRlbXBUcmVlRGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQnVpbGRSb3V0ZVRyZWUoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdjYWxsZWQgcm91dGUgdHJlZScpO1xuICAgICAgICBsZXQgdGVtcFRyZWVEYXRhOiBBcnJheTxUcmVlTm9kZT4gPSBbXTtcblxuICAgICAgICBsZXQgdGVtcFJvdXRlcyA9IHRoaXMuQXBwbGljYXRpb25Sb3V0ZXM7XG4gICAgICAgIGlmICh0ZW1wUm91dGVzKSB7XG4gICAgICAgICAgICAvLyBsZXQgdGVtcFByb2pDaGlsZHJlbjogQXJyYXk8VHJlZU5vZGU+ID0gW107XG4gICAgICAgICAgICB0ZW1wUm91dGVzLmZvckVhY2goKGFwcFJvdXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlID0gYXBwUm91dGU7XG5cbiAgICAgICAgICAgICAgICBsZXQgdGVtcFJvdXRlTm9kZTogVHJlZU5vZGUgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuQXBwUm91dGUsXG4gICAgICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vJyArIHRoaXMuUHJvamVjdD8uUHJpbWFyeUhvc3QgKyB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9yb3V0ZScsIHRoaXMuQXBwUm91dGUsIHRoaXMuUHJvamVjdExvb2t1cF0sXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGxldCB0ZW1wQXBwcyA9IHRoaXMuQ3VycmVudFJvdXRlQXBwbGljYXRpb25Mb29rdXBzO1xuICAgICAgICAgICAgICAgIGlmICh0ZW1wQXBwcykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcFJvdXRlQ2hpbGRyZW46IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0ZW1wQXBwcy5mb3JFYWNoKChhcHBMb29rdXA6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBBcHAgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUm91dGVkQXBwbGljYXRpb25zW3RoaXMuQXBwUm91dGVdW2FwcExvb2t1cF07XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcE5vZGU6IFRyZWVOb2RlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb2t1cDogYXBwTG9va3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRlbXBBcHAuQXBwbGljYXRpb24uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovLycgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2plY3Q/LlByaW1hcnlIb3N0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5BcHBSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGVtcEFwcC5BcHBsaWNhdGlvbi5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvYXBwbGljYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQXBwUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvamVjdExvb2t1cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBSb3V0ZUNoaWxkcmVuLnB1c2godGVtcEFwcE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGVtcFJvdXRlTm9kZS5jaGlsZHJlbiA9IHRlbXBSb3V0ZUNoaWxkcmVuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0ZW1wVHJlZURhdGEucHVzaCh0ZW1wUm91dGVOb2RlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZW1wVHJlZURhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIEhhbmRsZVJvdXRlKHJvdXRlOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3JvdXRlOiAnLCByb3V0ZSk7XG4gICAgfVxufVxuIiwiPCEtLSBUUkVFIC0tPlxuPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiUHJvamVjdExvb2t1cHM/QnVpbGRUcmVlKCk6ZmFsc2VcIj48L25nLWNvbnRhaW5lcj4gLS0+XG48bGN1LXNsb3R0ZWQtY2FyZC1sZ1xuICAgICpuZ0lmPVwiUHJvamVjdExvb2t1cHM/Lmxlbmd0aCA+IDBcIlxuICAgIGNsYXNzPVwiZml0LWNvbnRlbnRcIlxuICAgIFtsb2FkaW5nXT1cIkxvYWRpbmdcIlxuICAgIGNhcmQtdGl0bGU9XCJQcm9qZWN0XCJcbiAgICBpY29uPVwid29ya19vdXRsaW5lXCJcbiAgICBbbWFpbi1zbG90LWRlc2NyaXB0aW9uXT1cIlByb2plY3RMb29rdXBzPy5sZW5ndGggKyAnIHByb2plY3QocykgY29uZmlndXJlZCdcIlxuICAgIChtYWluLWFjdGlvbi1jbGlja2VkKT1cIlJvdXRlVG9QYXRoKCcvZGFzaGJvYXJkL2NyZWF0ZS1wcm9qZWN0JylcIlxuPlxuICAgIDwhLS0gPGRpdj4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkRhdGFTb3VyY2VcIj5cbiAgICAgICAgPG1hdC10cmVlIFtkYXRhU291cmNlXT1cIkRhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwidHJlZUNvbnRyb2xcIj5cbiAgICAgICAgICAgIDxtYXQtdHJlZS1ub2RlICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlXCIgbWF0VHJlZU5vZGVQYWRkaW5nPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibm9kZS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWhlYWRlci1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vZGUubmFtZVwiIGNsYXNzPVwic2xvdC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJzbG90LWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5vZGUucm91dGVyTGlua1wiIGNsYXNzPVwidHJlZS1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vZGUubmFtZVwiIGNsYXNzPVwic2xvdC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJzbG90LWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbnMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJub2RlLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkVkaXQge3sgbm9kZS5uYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ZWRpdDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibm9kZS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkxhdW5jaCB7eyBub2RlLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5sYXVuY2g8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gbWF0LWljb24tYnV0dG9uPjwvYnV0dG9uPiAtLT5cbiAgICAgICAgICAgIDwvbWF0LXRyZWUtbm9kZT5cbiAgICAgICAgICAgIDxtYXQtdHJlZS1ub2RlXG4gICAgICAgICAgICAgICAgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IEhhc0NoaWxkXCJcbiAgICAgICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmdcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXRUcmVlTm9kZVRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidUb2dnbGUgJyArIG5vZGUubmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImV4cGFuZF9tb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImNoZXZyb25fcmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm5vZGUucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1oZWFkZXItYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLm5hbWVcIiBjbGFzcz1cInNsb3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5kZXNjcmlwdGlvblwiIGNsYXNzPVwic2xvdC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFub2RlLnJvdXRlckxpbmtcIiBjbGFzcz1cInRyZWUtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLm5hbWVcIiBjbGFzcz1cInNsb3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5kZXNjcmlwdGlvblwiIGNsYXNzPVwic2xvdC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb25zLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibm9kZS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIm5vZGUucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJFZGl0IHt7IG5vZGUubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmVkaXQ8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIm5vZGUudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJMYXVuY2gge3sgbm9kZS5uYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+bGF1bmNoPC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC10cmVlLW5vZGU+XG4gICAgICAgIDwvbWF0LXRyZWU+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2xjdS1zbG90dGVkLWNhcmQtbGc+XG4iXX0=
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2VsZW1lbnRzL3Byb2plY3QtY2FyZC9wcm9qZWN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdC1jYXJkL3Byb2plY3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUNILHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQVNoQyxNQUFNLE9BQU8sb0JBQW9CO0lBbUo3QixrQ0FBa0M7SUFFbEM7UUF4SVEsZ0JBQVcsR0FBRyxDQUFDLElBQWMsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNwRCxPQUFPO2dCQUNILFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUN2RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7YUFDaEMsQ0FBQztRQUNOLENBQUMsQ0FBQztRQW1HRixnQkFBVyxHQUFHLElBQUksZUFBZSxDQUM3QixDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFD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QyxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBYTtRQUM1QixpQ0FBaUM7SUFDckMsQ0FBQzs7aUhBbFNRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHVXQ2RqQyxpNUtBc0lBOzJGRHhIYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksa0JBQWtCOzBFQU1yQixnQkFBZ0I7c0JBRHRCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUluQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUztnQkFJVCxjQUFjO3NCQURwQixLQUFLO3VCQUFDLGlCQUFpQjtnQkFJakIsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFVBQVU7Z0JBa0lWLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTO2dCQUlULGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIE1hdFRyZWVGbGF0RGF0YVNvdXJjZSxcbiAgICBNYXRUcmVlRmxhdHRlbmVyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlLCBFYUNQcm9qZWN0QXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEZsYXROb2RlLCBUcmVlTm9kZSB9IGZyb20gJy4uLy4uL21vZGVscy90cmVlLW5vZGUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS1wcm9qZWN0LWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9qZWN0LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2plY3QtY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9qZWN0Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdhcHBsaWNhdGlvbnMtYmFuaycpXG4gICAgcHVibGljIEFwcGxpY2F0aW9uc0Jhbms6IEFycmF5PEVhQ0FwcGxpY2F0aW9uQXNDb2RlPjtcblxuICAgIEBJbnB1dCgnbG9hZGluZycpXG4gICAgcHVibGljIExvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoJ3Byb2plY3QtbG9va3VwcycpXG4gICAgcHVibGljIFByb2plY3RMb29rdXBzOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgQElucHV0KCdwcm9qZWN0cycpXG4gICAgcHVibGljIFByb2plY3RzOiBBcnJheTxFYUNQcm9qZWN0QXNDb2RlPjtcblxuICAgIHByaXZhdGUgdHJhbnNmb3JtZXIgPSAobm9kZTogVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGV4cGFuZGFibGU6ICEhbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDAsXG4gICAgICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgICAgICBsZXZlbDogbGV2ZWwsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBub2RlLnJvdXRlckxpbmssXG4gICAgICAgICAgICB1cmw6IG5vZGUudXJsLFxuICAgICAgICAgICAgbG9va3VwOiBub2RlLmxvb2t1cCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBub2RlLmRlc2NyaXB0aW9uLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEFwcGxpY2F0aW9ucygpOiB7XG4gICAgICAgIFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuICAgIH0ge1xuICAgICAgICBjb25zdCBhcHBzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gPSB7fTtcblxuICAgICAgICB0aGlzLlByb2plY3Q/LkFwcGxpY2F0aW9uTG9va3Vwcz8uZm9yRWFjaCgoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGFwcHNbYXBwTG9va3VwXSA9IHRoaXMuQXBwbGljYXRpb25zQmFua1thcHBMb29rdXBdO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFwcHM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBBcHBsaWNhdGlvblJvdXRlcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuUm91dGVkQXBwbGljYXRpb25zIHx8IHt9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEN1cnJlbnRSb3V0ZUFwcGxpY2F0aW9uTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuUm91dGVkQXBwbGljYXRpb25zW3RoaXMuQXBwUm91dGVdIHx8IHt9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFJvdXRlZEFwcGxpY2F0aW9ucygpOiB7XG4gICAgICAgIFtyb3V0ZTogc3RyaW5nXTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9O1xuICAgIH0ge1xuICAgICAgICBjb25zdCBhcHBMb29rdXBzID0gT2JqZWN0LmtleXModGhpcy5BcHBsaWNhdGlvbnMpO1xuXG4gICAgICAgIGNvbnN0IGFwcHMgPSBhcHBMb29rdXBzLm1hcChcbiAgICAgICAgICAgIChhcHBMb29rdXApID0+IHRoaXMuQXBwbGljYXRpb25zW2FwcExvb2t1cF1cbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgYXBwUm91dGVzID1cbiAgICAgICAgICAgIGFwcHMubWFwKChhcHApID0+IHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkFwcCBmcm9tIHByb2plY3RzOiBcIiwgYXBwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwPy5Mb29rdXBDb25maWc/LlBhdGhSZWdleC5yZXBsYWNlKCcuKicsICcnKTtcbiAgICAgICAgICAgIH0pIHx8IFtdO1xuXG4gICAgICAgIGFwcFJvdXRlcyA9IGFwcFJvdXRlcy5maWx0ZXIoKGFyKSA9PiBhciAhPSBudWxsKTtcblxuICAgICAgICBsZXQgcm91dGVCYXNlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBhcHBSb3V0ZXMuZm9yRWFjaCgoYXBwUm91dGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcFJvdXRlUGFydHMgPSBhcHBSb3V0ZS5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICBjb25zdCBhcHBSb3V0ZUJhc2UgPSBgLyR7YXBwUm91dGVQYXJ0c1sxXX1gO1xuXG4gICAgICAgICAgICBpZiAocm91dGVCYXNlcy5pbmRleE9mKGFwcFJvdXRlQmFzZSkgPCAwKSB7XG4gICAgICAgICAgICAgICAgcm91dGVCYXNlcy5wdXNoKGFwcFJvdXRlQmFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCB3b3JraW5nQXBwTG9va3VwcyA9IFsuLi4oYXBwTG9va3VwcyB8fCBbXSldO1xuXG4gICAgICAgIHJvdXRlQmFzZXMgPSByb3V0ZUJhc2VzLnNvcnQoKGEsIGIpID0+IGIubG9jYWxlQ29tcGFyZShhKSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVTZXQgPVxuICAgICAgICAgICAgcm91dGVCYXNlcy5yZWR1Y2UoKHByZXZSb3V0ZU1hcCwgY3VycmVudFJvdXRlQmFzZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlTWFwID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2Um91dGVNYXAsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2FsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhID0gdGhpcy5BcHBsaWNhdGlvbnNbd2FsXTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2E/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnN0YXJ0c1dpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Um91dGVCYXNlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByb3V0ZU1hcFtjdXJyZW50Um91dGVCYXNlXSA9XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkQXBwTG9va3Vwcy5yZWR1Y2UoKHByZXZBcHBNYXAsIGFwcExvb2t1cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBwTWFwOiBhbnkgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldkFwcE1hcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcE1hcFthcHBMb29rdXBdID0gdGhpcy5BcHBsaWNhdGlvbnNbYXBwTG9va3VwXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwcE1hcDtcbiAgICAgICAgICAgICAgICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgICAgICAgICAgICAgd29ya2luZ0FwcExvb2t1cHMgPSB3b3JraW5nQXBwTG9va3Vwcy5maWx0ZXIoKHdhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZEFwcExvb2t1cHMuaW5kZXhPZih3YSkgPCAwO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlTWFwO1xuICAgICAgICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgICAgIGxldCByb3V0ZVNldEtleXMgPSBPYmplY3Qua2V5cyhyb3V0ZVNldCk7XG5cbiAgICAgICAgcm91dGVTZXRLZXlzID0gcm91dGVTZXRLZXlzLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVTZXRSZXN1bHQgPSB7fTtcblxuICAgICAgICByb3V0ZVNldEtleXMuZm9yRWFjaCgocnNrKSA9PiAocm91dGVTZXRSZXN1bHRbcnNrXSA9IHJvdXRlU2V0W3Jza10pKTtcblxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkFwcCBSb3V0ZXM6IFwiLHJvdXRlU2V0UmVzdWx0KVxuXG4gICAgICAgIHJldHVybiByb3V0ZVNldFJlc3VsdDtcbiAgICB9XG5cbiAgICB0cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8RmxhdE5vZGU+KFxuICAgICAgICAobm9kZTogYW55KSA9PiBub2RlLmxldmVsLFxuICAgICAgICAobm9kZTogYW55KSA9PiBub2RlLmV4cGFuZGFibGVcbiAgICApO1xuXG4gICAgdHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxuICAgICAgICB0aGlzLnRyYW5zZm9ybWVyLFxuICAgICAgICAobm9kZSkgPT4gbm9kZS5sZXZlbCxcbiAgICAgICAgKG5vZGUpID0+IG5vZGUuZXhwYW5kYWJsZSxcbiAgICAgICAgKG5vZGUpID0+IG5vZGUuY2hpbGRyZW5cbiAgICApO1xuXG4gICAgcHVibGljIERhdGFTb3VyY2UgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKFxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLFxuICAgICAgICB0aGlzLnRyZWVGbGF0dGVuZXJcbiAgICApO1xuXG4gICAgQElucHV0KCdwcm9qZWN0JylcbiAgICBwdWJsaWMgUHJvamVjdDogRWFDUHJvamVjdEFzQ29kZTtcblxuICAgIEBJbnB1dCgncHJvamVjdC1sb29rdXAnKVxuICAgIHB1YmxpYyBQcm9qZWN0TG9va3VwOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgQXBwUm91dGU6IHN0cmluZztcblxuICAgIC8vIHB1YmxpYyBSb3V0ZWRBcHBsaWNhdGlvbnM6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIHB1YmxpYyBIYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IEZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5Qcm9qZWN0cyAmJiB0aGlzLlByb2plY3RMb29rdXBzICYmIHRoaXMuQXBwbGljYXRpb25zKSB7XG4gICAgICAgICAgICBsZXQgdGVtcCA9IHRoaXMuQnVpbGRQcm9qZWN0VHJlZSgpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJ0byBzdHJpbmc6IFwiLCBKU09OLnN0cmluZ2lmeSh0ZW1wKSlcblxuICAgICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMuRGF0YVNvdXJjZS5kYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkodGVtcCkpIHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnSXRzIGRpZmZlcmVudCcpXG4gICAgICAgICAgICAgICAgdGhpcy5EYXRhU291cmNlLmRhdGEgPSB0ZW1wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFJvdXRlVG9QYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHBhdGg7XG4gICAgfVxuXG4gICAgcHVibGljIEJ1aWxkUHJvamVjdFRyZWUoKTogQXJyYXk8VHJlZU5vZGU+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2NhbGxpbmcgYnVpbGQgcHJvamVjdCB0cmVlJyk7XG4gICAgICAgIGxldCB0ZW1wVHJlZURhdGE6IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzPy5mb3JFYWNoKChwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGxldCB0ZW1wUHJvaiA9IHRoaXMuUHJvamVjdHNbcExvb2t1cF07XG4gICAgICAgICAgICB0aGlzLlByb2plY3QgPSB0ZW1wUHJvajtcbiAgICAgICAgICAgIGxldCB0ZW1wUHJvak5vZGU6IFRyZWVOb2RlID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRlbXBQcm9qPy5Qcm9qZWN0Py5OYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0ZW1wUHJvaj8uUHJvamVjdD8uRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgbG9va3VwOiBwTG9va3VwLFxuICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vJyArIHRlbXBQcm9qPy5QcmltYXJ5SG9zdCxcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9wcm9qZWN0JywgcExvb2t1cF0sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdGVtcFJvdXRlcyA9IHRoaXMuQXBwbGljYXRpb25Sb3V0ZXM7XG5cbiAgICAgICAgICAgIGlmICh0ZW1wUm91dGVzKSB7XG4gICAgICAgICAgICAgICAgbGV0IHRlbXBQcm9qQ2hpbGRyZW46IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICAgICAgICAgIHRlbXBSb3V0ZXMuZm9yRWFjaCgoYXBwUm91dGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlID0gYXBwUm91dGU7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlckxpbms6IFsnL3JvdXRlJywgdGhpcy5BcHBSb3V0ZSwgcExvb2t1cF0sXG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wUm91dGVOb2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuQXBwUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovLycgKyB0ZW1wUHJvai5QcmltYXJ5SG9zdCArIHRoaXMuQXBwUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9yb3V0ZScsIHRoaXMuQXBwUm91dGUsIHBMb29rdXBdLFxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wQXBwcyA9IHRoaXMuQ3VycmVudFJvdXRlQXBwbGljYXRpb25Mb29rdXBzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGVtcEFwcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wUm91dGVDaGlsZHJlbjogQXJyYXk8VHJlZU5vZGU+ID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wQXBwcy5mb3JFYWNoKChhcHBMb29rdXA6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wQXBwID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Sb3V0ZWRBcHBsaWNhdGlvbnNbdGhpcy5BcHBSb3V0ZV1bXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBMb29rdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBwUGF0aCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBBcHAuTG9va3VwQ29uZmlnPy5QYXRoUmVnZXguc3Vic3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBBcHAuTG9va3VwQ29uZmlnPy5QYXRoUmVnZXgubGVuZ3RoIC0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBBcHBOb2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9va3VwOiBhcHBMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRlbXBBcHAuQXBwbGljYXRpb24uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vJyArIHRlbXBQcm9qLlByaW1hcnlIb3N0ICsgYXBwUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRlbXBBcHAuQXBwbGljYXRpb24uRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvYXBwbGljYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwTG9va3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5BcHBSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUm91dGVDaGlsZHJlbi5wdXNoKHRlbXBBcHBOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFJvdXRlTm9kZS5jaGlsZHJlbiA9IHRlbXBSb3V0ZUNoaWxkcmVuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRlbXBQcm9qQ2hpbGRyZW4ucHVzaCh0ZW1wUm91dGVOb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0ZW1wUHJvak5vZGUuY2hpbGRyZW4gPSB0ZW1wUHJvakNoaWxkcmVuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGVtcFRyZWVEYXRhLnB1c2godGVtcFByb2pOb2RlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdUSEUgVFJFRTogJywgdGVtcFRyZWVEYXRhKTtcbiAgICAgICAgcmV0dXJuIHRlbXBUcmVlRGF0YTtcblxuICAgICAgICAvLyByZXR1cm4gdGVtcFRyZWVEYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBCdWlsZFJvdXRlVHJlZSgpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2NhbGxlZCByb3V0ZSB0cmVlJyk7XG4gICAgICAgIGxldCB0ZW1wVHJlZURhdGE6IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuXG4gICAgICAgIGxldCB0ZW1wUm91dGVzID0gdGhpcy5BcHBsaWNhdGlvblJvdXRlcztcbiAgICAgICAgaWYgKHRlbXBSb3V0ZXMpIHtcbiAgICAgICAgICAgIC8vIGxldCB0ZW1wUHJvakNoaWxkcmVuOiBBcnJheTxUcmVlTm9kZT4gPSBbXTtcbiAgICAgICAgICAgIHRlbXBSb3V0ZXMuZm9yRWFjaCgoYXBwUm91dGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuQXBwUm91dGUgPSBhcHBSb3V0ZTtcblxuICAgICAgICAgICAgICAgIGxldCB0ZW1wUm91dGVOb2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5BcHBSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly8nICsgdGhpcy5Qcm9qZWN0Py5QcmltYXJ5SG9zdCArIHRoaXMuQXBwUm91dGUsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3JvdXRlJywgdGhpcy5BcHBSb3V0ZSwgdGhpcy5Qcm9qZWN0TG9va3VwXSxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgbGV0IHRlbXBBcHBzID0gdGhpcy5DdXJyZW50Um91dGVBcHBsaWNhdGlvbkxvb2t1cHM7XG4gICAgICAgICAgICAgICAgaWYgKHRlbXBBcHBzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wUm91dGVDaGlsZHJlbjogQXJyYXk8VHJlZU5vZGU+ID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRlbXBBcHBzLmZvckVhY2goKGFwcExvb2t1cDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Sb3V0ZWRBcHBsaWNhdGlvbnNbdGhpcy5BcHBSb3V0ZV1bYXBwTG9va3VwXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wQXBwTm9kZTogVHJlZU5vZGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9va3VwOiBhcHBMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGVtcEFwcC5BcHBsaWNhdGlvbi5OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvamVjdD8uUHJpbWFyeUhvc3QgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0ZW1wQXBwLkFwcGxpY2F0aW9uLkRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy9hcHBsaWNhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcExvb2t1cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5BcHBSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9qZWN0TG9va3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFJvdXRlQ2hpbGRyZW4ucHVzaCh0ZW1wQXBwTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0ZW1wUm91dGVOb2RlLmNoaWxkcmVuID0gdGVtcFJvdXRlQ2hpbGRyZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRlbXBUcmVlRGF0YS5wdXNoKHRlbXBSb3V0ZU5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRlbXBUcmVlRGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSGFuZGxlUm91dGUocm91dGU6IHN0cmluZykge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygncm91dGU6ICcsIHJvdXRlKTtcbiAgICB9XG59XG4iLCI8IS0tIFRSRUUgLS0+XG48IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJQcm9qZWN0TG9va3Vwcz9CdWlsZFRyZWUoKTpmYWxzZVwiPjwvbmctY29udGFpbmVyPiAtLT5cbjxsY3Utc2xvdHRlZC1jYXJkLWxnXG4gICAgKm5nSWY9XCJQcm9qZWN0TG9va3Vwcz8ubGVuZ3RoID4gMFwiXG4gICAgY2xhc3M9XCJmaXQtY29udGVudFwiXG4gICAgW2xvYWRpbmddPVwiTG9hZGluZ1wiXG4gICAgY2FyZC10aXRsZT1cIlByb2plY3RcIlxuICAgIGljb249XCJ3b3JrX291dGxpbmVcIlxuICAgIFttYWluLXNsb3QtZGVzY3JpcHRpb25dPVwiUHJvamVjdExvb2t1cHM/Lmxlbmd0aCArICcgcHJvamVjdChzKSBjb25maWd1cmVkJ1wiXG4gICAgKG1haW4tYWN0aW9uLWNsaWNrZWQpPVwiUm91dGVUb1BhdGgoJy9kYXNoYm9hcmQvY3JlYXRlLXByb2plY3QnKVwiXG4+XG4gICAgPCEtLSA8ZGl2PiAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRGF0YVNvdXJjZVwiPlxuICAgICAgICA8bWF0LXRyZWUgW2RhdGFTb3VyY2VdPVwiRGF0YVNvdXJjZVwiIFt0cmVlQ29udHJvbF09XCJ0cmVlQ29udHJvbFwiPlxuICAgICAgICAgICAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIiBtYXRUcmVlTm9kZVBhZGRpbmc+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJub2RlLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtaGVhZGVyLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIm5vZGUucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5uYW1lXCIgY2xhc3M9XCJzbG90LW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vZGUuZGVzY3JpcHRpb25cIiBjbGFzcz1cInNsb3QtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5vZGUuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbm9kZS5yb3V0ZXJMaW5rXCIgY2xhc3M9XCJ0cmVlLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5uYW1lXCIgY2xhc3M9XCJzbG90LW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vZGUuZGVzY3JpcHRpb25cIiBjbGFzcz1cInNsb3QtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5vZGUuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9ucy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm5vZGUucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB7eyBub2RlLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5lZGl0PC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJub2RlLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTGF1bmNoIHt7IG5vZGUubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmxhdW5jaDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24+PC9idXR0b24+IC0tPlxuICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxuICAgICAgICAgICAgPG1hdC10cmVlLW5vZGVcbiAgICAgICAgICAgICAgICAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTsgd2hlbjogSGFzQ2hpbGRcIlxuICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlVG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RvZ2dsZSAnICsgbm9kZS5uYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiZXhwYW5kX21vcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiY2hldnJvbl9yaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibm9kZS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWhlYWRlci1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vZGUubmFtZVwiIGNsYXNzPVwic2xvdC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJzbG90LWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5vZGUucm91dGVyTGlua1wiIGNsYXNzPVwidHJlZS1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vZGUubmFtZVwiIGNsYXNzPVwic2xvdC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJzbG90LWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbnMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJub2RlLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkVkaXQge3sgbm9kZS5uYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ZWRpdDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibm9kZS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkxhdW5jaCB7eyBub2RlLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5sYXVuY2g8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LXRyZWUtbm9kZT5cbiAgICAgICAgPC9tYXQtdHJlZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbGN1LXNsb3R0ZWQtY2FyZC1sZz5cbiJdfQ==
@@ -39,7 +39,7 @@ export class TeamMemberCardComponent {
39
39
  memberList.push(this.CurrentUser);
40
40
  }
41
41
  this.ProjectLookups.forEach((proj) => {
42
- this.Projects[proj].RelyingParty?.AccessConfigurations?.fathym?.Usernames?.forEach((username) => {
42
+ this.Projects[proj]?.RelyingParty?.AccessConfigurations?.fathym?.Usernames?.forEach((username) => {
43
43
  if (!memberList.includes(username)) {
44
44
  memberList.push(username);
45
45
  // console.log("Added: ", username)
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
68
68
  type: Input,
69
69
  args: ['projects']
70
70
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhbS1tZW1iZXItY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9lbGVtZW50cy90ZWFtLW1lbWJlci1jYXJkL3RlYW0tbWVtYmVyLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvdGVhbS1tZW1iZXItY2FyZC90ZWFtLW1lbWJlci1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDOzs7Ozs7Ozs7QUFPckgsTUFBTSxPQUFPLHVCQUF1QjtJQWlCaEMsWUFBc0IsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRU0sUUFBUSxLQUFVLENBQUM7SUFDbkIsV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0MscUJBQXFCO1lBQ3JCLDZCQUE2QjtZQUM3QiwrREFBK0Q7WUFDL0QsNENBQTRDO1NBQy9DO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUM3RCxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRTtnQkFDRixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztnQkFDckMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVTLGdCQUFnQjtRQUN0QixJQUFJLFVBQVUsR0FBa0IsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUNwRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxRQUFRLENBQ1QsSUFBSSxDQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUM1RCxDQUFDLFFBQWdCLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzFCLG1DQUFtQztpQkFDdEM7WUFDTCxDQUFDLENBQ0osQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0gsMkNBQTJDO1FBQzNDLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7O29IQTlEUSx1QkFBdUI7d0dBQXZCLHVCQUF1QixnUkNWcEMsZ3lEQXdEQTsyRkQ5Q2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNJLHNCQUFzQjtnR0FNekIsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxZQUFZO2dCQU1aLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsY0FBYztnQkFJZCxjQUFjO3NCQURwQixLQUFLO3VCQUFDLGlCQUFpQjtnQkFJakIsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBFYUNQcm9qZWN0QXNDb2RlLCBFbnRlcnByaXNlQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEFkZFRlYW1NZW1iZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9kaWFsb2dzL2FkZC10ZWFtLW1lbWJlci1kaWFsb2cvYWRkLXRlYW0tbWVtYmVyLWRpYWxvZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS10ZWFtLW1lbWJlci1jYXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGVhbS1tZW1iZXItY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGVhbS1tZW1iZXItY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZWFtTWVtYmVyQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdlbnRlcnByaXNlJylcbiAgICBwdWJsaWMgRW50ZXJwcmlzZTogRW50ZXJwcmlzZUFzQ29kZTtcblxuICAgIHB1YmxpYyBUZWFtTWVtYmVyczogQXJyYXk8YW55PjtcblxuICAgIEBJbnB1dCgnY3VycmVudC11c2VyJylcbiAgICBwdWJsaWMgQ3VycmVudFVzZXI6IHN0cmluZztcblxuICAgIEBJbnB1dCgncHJvamVjdC1sb29rdXBzJylcbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBASW5wdXQoJ3Byb2plY3RzJylcbiAgICBwdWJsaWMgUHJvamVjdHM6IGFueTtcblxuICAgIHB1YmxpYyBTa2VsZXRvbkVmZmVjdDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRpYWxvZzogTWF0RGlhbG9nKSB7XG4gICAgICAgIHRoaXMuU2tlbGV0b25FZmZlY3QgPSAnd2F2ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge31cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLlByb2plY3RzKSB7XG4gICAgICAgICAgICB0aGlzLlRlYW1NZW1iZXJzID0gdGhpcy5CdWlsZFRlYW1NZW1iZXJzKCk7XG4gICAgICAgICAgICAvLyAgICAgdGhpcy5Qcm9qZWN0c1tcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5Qcm9qZWN0TG9va3VwXG4gICAgICAgICAgICAvLyAgICAgXS5SZWx5aW5nUGFydHk/LkFjY2Vzc0NvbmZpZ3VyYXRpb25zPy5mYXRoeW0/LlVzZXJuYW1lcztcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiUHJvamVjdHM6IFwiLCB0aGlzLlByb2plY3RzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBPcGVuQWRkTWVtYmVyTW9kYWwoKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWRkVGVhbU1lbWJlckRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6ICc2MDBweCcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZW50ZXJwcmlzZTogdGhpcy5FbnRlcnByaXNlLFxuICAgICAgICAgICAgICAgIHByb2plY3RMb29rdXA6IHRoaXMuUHJvamVjdExvb2t1cHNbMF0sXG4gICAgICAgICAgICAgICAgcHJvamVjdHM6IHRoaXMuUHJvamVjdHMsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgQnVpbGRUZWFtTWVtYmVycygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgbGV0IG1lbWJlckxpc3Q6IEFycmF5PHN0cmluZz4gPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgICAgICBpZiAodGhpcy5DdXJyZW50VXNlcikge1xuICAgICAgICAgICAgbWVtYmVyTGlzdC5wdXNoKHRoaXMuQ3VycmVudFVzZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuUHJvamVjdExvb2t1cHMuZm9yRWFjaCgocHJvajogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLlByb2plY3RzW1xuICAgICAgICAgICAgICAgIHByb2pcbiAgICAgICAgICAgIF0uUmVseWluZ1BhcnR5Py5BY2Nlc3NDb25maWd1cmF0aW9ucz8uZmF0aHltPy5Vc2VybmFtZXM/LmZvckVhY2goXG4gICAgICAgICAgICAgICAgKHVzZXJuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtZW1iZXJMaXN0LmluY2x1ZGVzKHVzZXJuYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVtYmVyTGlzdC5wdXNoKHVzZXJuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiQWRkZWQ6IFwiLCB1c2VybmFtZSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIk1lbWJlckxpc3Q6IFwiLCBtZW1iZXJMaXN0KTtcbiAgICAgICAgcmV0dXJuIG1lbWJlckxpc3Q7XG4gICAgfVxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwic29jaWFsLWNhcmRcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGVhbS1tZW1iZXItaGVhZGVyXCJcbiAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuICAgID5cbiAgICAgICAgPG1hdC1jYXJkLXRpdGxlPk1lbWJlcnM8L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJhZGQtbWVtYmVyLWJ0blwiXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIk9wZW5BZGRNZW1iZXJNb2RhbCgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhRW50ZXJwcmlzZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEFkZCBNZW1iZXJcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlRlYW1NZW1iZXJzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBtZW1iZXIgb2YgVGVhbU1lbWJlcnNcIlxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1lbWJlci1pY29uXCI+cGVyc29uPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXJuYW1lXCI+e3sgbWVtYmVyIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2Pk93bmVyPC9kaXY+IC0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIVRlYW1NZW1iZXJzXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgICAgICA8c2tlbGV0b24tYXZhdGFyXG4gICAgICAgICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIlxuICAgICAgICAgICAgPjwvc2tlbGV0b24tYXZhdGFyPlxuICAgICAgICAgICAgPCEtLSA8bWF0LWljb24gc2tlbGV0b24tdGV4dCBjbGFzcz1cIm1lbWJlci1pY29uXCIgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPnBlcnNvbjwvbWF0LWljb24+IC0tPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHNrZWxldG9uLXRleHRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJza2VsZXRvbi10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBVc2VyTmFtZVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgc2tlbGV0b24tdGV4dFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNrZWxldG9uLXRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIE93bmVyXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhbS1tZW1iZXItY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9lbGVtZW50cy90ZWFtLW1lbWJlci1jYXJkL3RlYW0tbWVtYmVyLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvdGVhbS1tZW1iZXItY2FyZC90ZWFtLW1lbWJlci1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDOzs7Ozs7Ozs7QUFPckgsTUFBTSxPQUFPLHVCQUF1QjtJQWlCaEMsWUFBc0IsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRU0sUUFBUSxLQUFVLENBQUM7SUFDbkIsV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0MscUJBQXFCO1lBQ3JCLDZCQUE2QjtZQUM3QiwrREFBK0Q7WUFDL0QsNENBQTRDO1NBQy9DO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUM3RCxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRTtnQkFDRixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztnQkFDckMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVTLGdCQUFnQjtRQUN0QixJQUFJLFVBQVUsR0FBa0IsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUNwRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxRQUFRLENBQ1QsSUFBSSxDQUNQLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUM3RCxDQUFDLFFBQWdCLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzFCLG1DQUFtQztpQkFDdEM7WUFDTCxDQUFDLENBQ0osQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0gsMkNBQTJDO1FBQzNDLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7O29IQTlEUSx1QkFBdUI7d0dBQXZCLHVCQUF1QixnUkNWcEMsZ3lEQXdEQTsyRkQ5Q2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNJLHNCQUFzQjtnR0FNekIsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxZQUFZO2dCQU1aLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsY0FBYztnQkFJZCxjQUFjO3NCQURwQixLQUFLO3VCQUFDLGlCQUFpQjtnQkFJakIsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBFYUNQcm9qZWN0QXNDb2RlLCBFbnRlcnByaXNlQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEFkZFRlYW1NZW1iZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9kaWFsb2dzL2FkZC10ZWFtLW1lbWJlci1kaWFsb2cvYWRkLXRlYW0tbWVtYmVyLWRpYWxvZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS10ZWFtLW1lbWJlci1jYXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGVhbS1tZW1iZXItY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGVhbS1tZW1iZXItY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZWFtTWVtYmVyQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdlbnRlcnByaXNlJylcbiAgICBwdWJsaWMgRW50ZXJwcmlzZTogRW50ZXJwcmlzZUFzQ29kZTtcblxuICAgIHB1YmxpYyBUZWFtTWVtYmVyczogQXJyYXk8YW55PjtcblxuICAgIEBJbnB1dCgnY3VycmVudC11c2VyJylcbiAgICBwdWJsaWMgQ3VycmVudFVzZXI6IHN0cmluZztcblxuICAgIEBJbnB1dCgncHJvamVjdC1sb29rdXBzJylcbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBASW5wdXQoJ3Byb2plY3RzJylcbiAgICBwdWJsaWMgUHJvamVjdHM6IGFueTtcblxuICAgIHB1YmxpYyBTa2VsZXRvbkVmZmVjdDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRpYWxvZzogTWF0RGlhbG9nKSB7XG4gICAgICAgIHRoaXMuU2tlbGV0b25FZmZlY3QgPSAnd2F2ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge31cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLlByb2plY3RzKSB7XG4gICAgICAgICAgICB0aGlzLlRlYW1NZW1iZXJzID0gdGhpcy5CdWlsZFRlYW1NZW1iZXJzKCk7XG4gICAgICAgICAgICAvLyAgICAgdGhpcy5Qcm9qZWN0c1tcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5Qcm9qZWN0TG9va3VwXG4gICAgICAgICAgICAvLyAgICAgXS5SZWx5aW5nUGFydHk/LkFjY2Vzc0NvbmZpZ3VyYXRpb25zPy5mYXRoeW0/LlVzZXJuYW1lcztcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiUHJvamVjdHM6IFwiLCB0aGlzLlByb2plY3RzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBPcGVuQWRkTWVtYmVyTW9kYWwoKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWRkVGVhbU1lbWJlckRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6ICc2MDBweCcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZW50ZXJwcmlzZTogdGhpcy5FbnRlcnByaXNlLFxuICAgICAgICAgICAgICAgIHByb2plY3RMb29rdXA6IHRoaXMuUHJvamVjdExvb2t1cHNbMF0sXG4gICAgICAgICAgICAgICAgcHJvamVjdHM6IHRoaXMuUHJvamVjdHMsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgQnVpbGRUZWFtTWVtYmVycygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgbGV0IG1lbWJlckxpc3Q6IEFycmF5PHN0cmluZz4gPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgICAgICBpZiAodGhpcy5DdXJyZW50VXNlcikge1xuICAgICAgICAgICAgbWVtYmVyTGlzdC5wdXNoKHRoaXMuQ3VycmVudFVzZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuUHJvamVjdExvb2t1cHMuZm9yRWFjaCgocHJvajogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLlByb2plY3RzW1xuICAgICAgICAgICAgICAgIHByb2pcbiAgICAgICAgICAgIF0/LlJlbHlpbmdQYXJ0eT8uQWNjZXNzQ29uZmlndXJhdGlvbnM/LmZhdGh5bT8uVXNlcm5hbWVzPy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICh1c2VybmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbWVtYmVyTGlzdC5pbmNsdWRlcyh1c2VybmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lbWJlckxpc3QucHVzaCh1c2VybmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkFkZGVkOiBcIiwgdXNlcm5hbWUpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJNZW1iZXJMaXN0OiBcIiwgbWVtYmVyTGlzdCk7XG4gICAgICAgIHJldHVybiBtZW1iZXJMaXN0O1xuICAgIH1cbn1cbiIsIjxtYXQtY2FyZCBjbGFzcz1cInNvY2lhbC1jYXJkXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRlYW0tbWVtYmVyLWhlYWRlclwiXG4gICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCJcbiAgICA+XG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT5NZW1iZXJzPC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWRkLW1lbWJlci1idG5cIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJPcGVuQWRkTWVtYmVyTW9kYWwoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIUVudGVycHJpc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgICBBZGQgTWVtYmVyXG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJUZWFtTWVtYmVyc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbWVtYmVyIG9mIFRlYW1NZW1iZXJzXCJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtZW1iZXItaWNvblwiPnBlcnNvbjwvbWF0LWljb24+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VybmFtZVwiPnt7IG1lbWJlciB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdj5Pd25lcjwvZGl2PiAtLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFUZWFtTWVtYmVyc1wiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgPHNrZWxldG9uLWF2YXRhclxuICAgICAgICAgICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCJcbiAgICAgICAgICAgID48L3NrZWxldG9uLWF2YXRhcj5cbiAgICAgICAgICAgIDwhLS0gPG1hdC1pY29uIHNrZWxldG9uLXRleHQgY2xhc3M9XCJtZW1iZXItaWNvblwiIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5wZXJzb248L21hdC1pY29uPiAtLT5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBza2VsZXRvbi10ZXh0XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2tlbGV0b24tdGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgVXNlck5hbWVcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHNrZWxldG9uLXRleHRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJza2VsZXRvbi10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBPd25lclxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbWF0LWNhcmQ+XG4iXX0=