@mediusinc/mng-commons 0.2.19 → 0.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/assets/i18n/en.json +16 -15
  2. package/assets/i18n/sl.json +16 -15
  3. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +6 -6
  4. package/esm2020/lib/api/utils/object-serializer.util.mjs +7 -2
  5. package/esm2020/lib/components/action/action.component.mjs +26 -13
  6. package/esm2020/lib/components/action/editor/action-editor.component.mjs +79 -22
  7. package/esm2020/lib/components/action/route/action-route.component.mjs +6 -30
  8. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +66 -15
  9. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
  10. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +1 -1
  11. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +57 -21
  12. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +1 -1
  13. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +2 -2
  14. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +3 -3
  15. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +3 -3
  16. package/esm2020/lib/components/tableview/table/table.component.mjs +8 -4
  17. package/esm2020/lib/components/tableview/tableview.component.mjs +13 -13
  18. package/esm2020/lib/config/models/mng-config.model.mjs +1 -1
  19. package/esm2020/lib/descriptors/action.descriptor.mjs +40 -2
  20. package/esm2020/lib/descriptors/editor.descriptor.mjs +74 -16
  21. package/esm2020/lib/descriptors/table.descriptor.mjs +29 -6
  22. package/esm2020/lib/descriptors/tableview.descriptor.mjs +7 -6
  23. package/esm2020/lib/mng-commons.module.mjs +6 -3
  24. package/esm2020/lib/models/enum.model.mjs +1 -1
  25. package/esm2020/lib/models/error.model.mjs +2 -0
  26. package/esm2020/lib/models/index.mjs +2 -1
  27. package/esm2020/lib/pipes/boolean.pipe.mjs +8 -3
  28. package/esm2020/lib/services/action-executor.service.mjs +65 -12
  29. package/esm2020/lib/services/commons.service.mjs +1 -2
  30. package/esm2020/lib/services/error-mapper.service.mjs +14 -0
  31. package/esm2020/lib/services/index.mjs +3 -1
  32. package/esm2020/lib/services/view-container.component.service.mjs +35 -0
  33. package/esm2020/lib/utils/i18n.util.mjs +29 -1
  34. package/esm2020/lib/utils/model.util.mjs +9 -7
  35. package/esm2020/lib/utils/toast.util.mjs +5 -9
  36. package/fesm2015/mediusinc-mng-commons.mjs +581 -219
  37. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  38. package/fesm2020/mediusinc-mng-commons.mjs +578 -218
  39. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  40. package/lib/components/action/action.component.d.ts +9 -7
  41. package/lib/components/action/editor/action-editor.component.d.ts +19 -13
  42. package/lib/components/action/route/action-route.component.d.ts +1 -2
  43. package/lib/components/form/dropdown/dropdown.component.d.ts +10 -4
  44. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +8 -2
  45. package/lib/components/tableview/table/table.component.d.ts +3 -2
  46. package/lib/components/tableview/tableview.component.d.ts +1 -2
  47. package/lib/descriptors/action.descriptor.d.ts +31 -11
  48. package/lib/descriptors/editor.descriptor.d.ts +32 -9
  49. package/lib/descriptors/table.descriptor.d.ts +11 -3
  50. package/lib/descriptors/tableview.descriptor.d.ts +1 -1
  51. package/lib/models/enum.model.d.ts +1 -0
  52. package/lib/models/error.model.d.ts +12 -0
  53. package/lib/models/index.d.ts +1 -0
  54. package/lib/pipes/boolean.pipe.d.ts +1 -1
  55. package/lib/services/action-executor.service.d.ts +11 -4
  56. package/lib/services/error-mapper.service.d.ts +7 -0
  57. package/lib/services/index.d.ts +2 -0
  58. package/lib/services/{mng-view-container-component.service.d.ts → view-container.component.service.d.ts} +0 -0
  59. package/lib/utils/i18n.util.d.ts +3 -0
  60. package/lib/utils/model.util.d.ts +1 -1
  61. package/lib/utils/toast.util.d.ts +2 -2
  62. package/package.json +1 -1
  63. package/scss/mng-overrides/_layout_dialog.scss +0 -7
  64. package/scss/mng-overrides/_theme_button.scss +0 -1
  65. package/scss/mng-overrides/_theme_dialog.scss +3 -1
  66. package/scss/mng-overrides/_theme_styles.scss +1 -0
  67. package/scss/mng-overrides/_theme_tableview.scss +10 -10
  68. package/scss/mng-overrides/_theme_toolbar.scss +5 -0
  69. package/scss/theme/default/_mng-variables-theme-dark.scss +3 -0
  70. package/scss/theme/default/_mng-variables-theme-light.scss +3 -0
  71. package/esm2020/lib/services/mng-view-container-component.service.mjs +0 -35
  72. package/scss/mng-overrides/_variables.scss +0 -2
@@ -76,9 +76,9 @@ export class TableDescriptor {
76
76
  this.setDataKeyFromColumn();
77
77
  return column;
78
78
  }
79
- addColumnBoolean(property) {
79
+ addColumnBoolean(property, yes, no, asIcon = false) {
80
80
  const column = new ColumnDescriptor(this, property);
81
- column.asBoolean();
81
+ column.asBoolean(yes, no, asIcon);
82
82
  this._columns.push(column);
83
83
  this.setDataKeyFromColumn();
84
84
  return column;
@@ -167,6 +167,8 @@ export class ColumnDescriptor {
167
167
  this._columnType = ColumnDescriptor.TypeEnum.String;
168
168
  this._isSortEnabled = false;
169
169
  this._enumNameAsValue = false;
170
+ // boolean specifics
171
+ this._booleanAsIcon = false;
170
172
  this._table = table;
171
173
  this._property = property;
172
174
  }
@@ -206,6 +208,15 @@ export class ColumnDescriptor {
206
208
  get enumNameAsValue() {
207
209
  return this._enumNameAsValue;
208
210
  }
211
+ get booleanAsIcon() {
212
+ return this._booleanAsIcon;
213
+ }
214
+ get booleanYes() {
215
+ return this._booleanYes;
216
+ }
217
+ get booleanNo() {
218
+ return this._booleanNo;
219
+ }
209
220
  asType(type = ColumnDescriptor.TypeEnum.String) {
210
221
  this._columnType = type;
211
222
  return this;
@@ -220,8 +231,11 @@ export class ColumnDescriptor {
220
231
  this._displayFormat = displayFormat;
221
232
  return this;
222
233
  }
223
- asBoolean() {
234
+ asBoolean(yes, no, asIcon = false) {
224
235
  this._columnType = ColumnDescriptor.TypeEnum.Boolean;
236
+ this._booleanAsIcon = asIcon;
237
+ this._booleanYes = yes;
238
+ this._booleanNo = no;
225
239
  return this;
226
240
  }
227
241
  asEnum(enumType, nameAsValue = false, titlePath) {
@@ -291,6 +305,9 @@ export class ColumnDescriptor {
291
305
  descriptor._isSortEnabled = this._isSortEnabled;
292
306
  descriptor._columnType = this._columnType;
293
307
  descriptor._filterDescriptor = this._filterDescriptor?.copy();
308
+ descriptor._booleanAsIcon = this._booleanAsIcon;
309
+ descriptor._booleanYes = this._booleanYes;
310
+ descriptor._booleanNo = this._booleanNo;
294
311
  return descriptor;
295
312
  }
296
313
  }
@@ -399,6 +416,7 @@ export class FilterLookupDescriptor extends FilterDescriptor {
399
416
  super(property);
400
417
  this._modelType = null;
401
418
  this._lookupType = FilterLookupDescriptor.LookupTypeEnum.Dropdown;
419
+ this._itemsLabelTranslate = false;
402
420
  this._multiselect = false;
403
421
  this._dropdownClassName = 'mng-filter-lookup-dropdown';
404
422
  this._modelType = modelType;
@@ -414,6 +432,9 @@ export class FilterLookupDescriptor extends FilterDescriptor {
414
432
  get itemsLabelProperty() {
415
433
  return this._itemsLabelProperty;
416
434
  }
435
+ get itemsLabelTranslate() {
436
+ return this._itemsLabelTranslate;
437
+ }
417
438
  get itemsValueProperty() {
418
439
  return this._itemsValueProperty;
419
440
  }
@@ -429,8 +450,9 @@ export class FilterLookupDescriptor extends FilterDescriptor {
429
450
  get modelType() {
430
451
  return this._modelType;
431
452
  }
432
- withItemsLabelProperty(itemsLabelProperty) {
453
+ withItemsLabelProperty(itemsLabelProperty, translate = false) {
433
454
  this._itemsLabelProperty = itemsLabelProperty;
455
+ this._itemsLabelTranslate = translate;
434
456
  return this;
435
457
  }
436
458
  withItemsValueProperty(itemsValueProperty) {
@@ -476,6 +498,7 @@ export class FilterLookupDescriptor extends FilterDescriptor {
476
498
  descriptor._dataProvider = this._dataProvider;
477
499
  descriptor._lookupType = this._lookupType;
478
500
  descriptor._itemsLabelProperty = this._itemsLabelProperty;
501
+ descriptor._itemsLabelTranslate = this._itemsLabelTranslate;
479
502
  descriptor._itemsValueProperty = this._itemsValueProperty;
480
503
  descriptor._dataKeyProperty = this._dataKeyProperty;
481
504
  }
@@ -492,7 +515,7 @@ export class FilterLookupEnumDescriptor extends FilterLookupDescriptor {
492
515
  : EnumUtil.fromConstantsAsEnumValueArray(enumType, nameAsValue, optionsTitlePath ?? undefined);
493
516
  const dataProvider = new LookupDataProvider(null).withLookup(() => of(optionEnumValues));
494
517
  this.withLookupDataProvider(dataProvider);
495
- this.withItemsLabelProperty('title');
518
+ this.withItemsLabelProperty('title', optionsTitlePath !== null);
496
519
  this.withItemsValueProperty('value');
497
520
  }
498
521
  get enumType() {
@@ -511,4 +534,4 @@ export class FilterLookupEnumDescriptor extends FilterLookupDescriptor {
511
534
  LookupTypeEnum[LookupTypeEnum["Autocomplete"] = 1] = "Autocomplete";
512
535
  })(LookupTypeEnum = FilterLookupDescriptor.LookupTypeEnum || (FilterLookupDescriptor.LookupTypeEnum = {}));
513
536
  })(FilterLookupDescriptor || (FilterLookupDescriptor = {}));
514
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVzY3JpcHRvcnMvdGFibGUuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBc0Isa0JBQWtCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUcxRSxPQUFPLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxlQUFlO0lBZXhCLFlBQVksU0FBdUIsRUFBRSxVQUFtQixFQUFFLGFBQXNCO1FBYnhFLG1CQUFjLEdBQXNDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDM0Ysb0JBQWUsR0FBdUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQUNwRyxhQUFRLEdBQW9DLEVBQUUsQ0FBQztRQUUvQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4Qix5QkFBb0IsR0FBYSxFQUFFLENBQUM7UUFDcEMsb0JBQWUsR0FBYyxFQUFFLENBQUM7UUFFaEMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQiwyQkFBc0IsR0FBRyxHQUFHLENBQUM7UUFHakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBSSxTQUFTLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLE9B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Q3RCLDJEQUFRLENBQUE7UUFDUixtRUFBWSxDQUFBO0lBQ2hCLENBQUMsRUFIVyxjQUFjLEdBQWQscUNBQWMsS0FBZCxxQ0FBYyxRQUd6QjtBQUNMLENBQUMsRUFMZ0Isc0JBQXNCLEtBQXRCLHNCQUFzQixRQUt0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW19IGZyb20gJy4uL2FwaS9tb2RlbHMnO1xuaW1wb3J0IHtJTG9va3VwRGF0YVByb3ZpZGVyLCBMb29rdXBEYXRhUHJvdmlkZXJ9IGZyb20gJy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7RW51bVZhbHVlfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtDbGFzc1R5cGUsIEVudW1Db25zdGFudFR5cGUsIEVudW1UeXBlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge0VudW1VdGlsLCBNb2RlbFV0aWwsIFR5cGVVdGlsfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge0lMb29rdXBEZXNjcmlwdG9yfSBmcm9tICcuL2xvb2t1cC5kZXNjcmlwdG9yJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICcuL21vZGVsLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgY2xhc3MgVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tb2RlbDogTW9kZWxEZXNjcmlwdG9yPFQ+O1xuICAgIHByaXZhdGUgX2ZpbHRlckRpc3BsYXk6IFRhYmxlRGVzY3JpcHRvci5GaWx0ZXJEaXNwbGF5RW51bSA9IFRhYmxlRGVzY3JpcHRvci5GaWx0ZXJEaXNwbGF5RW51bS5NZW51O1xuICAgIHByaXZhdGUgX3BhZ2luYXRpb25Nb2RlOiBUYWJsZURlc2NyaXB0b3IuUGFnaW5hdGlvbk1vZGVFbnVtID0gVGFibGVEZXNjcmlwdG9yLlBhZ2luYXRpb25Nb2RlRW51bS5QYWdpbmF0aW9uO1xuICAgIHByaXZhdGUgX2NvbHVtbnM6IEFycmF5PENvbHVtbkRlc2NyaXB0b3I8YW55LCBUPj4gPSBbXTtcbiAgICBwcml2YXRlIF90aXRsZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9oaWRlSGVhZGVyID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZGF0YUtleVByb3BlcnR5Pzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2hhc0RlZmF1bHRTb3J0ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZGVmYXVsdFNvcnRQcm9wZXJ0eTogc3RyaW5nW10gPSBbXTtcbiAgICBwcml2YXRlIF9kZWZhdWx0U29ydEFzYzogYm9vbGVhbltdID0gW107XG5cbiAgICBwcml2YXRlIF9yb3dIZWlnaHQgPSA0NTtcbiAgICBwcml2YXRlIF90YWJsZUZ1bGxIZWlnaHRPZmZzZXQgPSAzMTU7XG5cbiAgICBjb25zdHJ1Y3Rvcihtb2RlbFR5cGU6IENsYXNzVHlwZTxUPiwgaWRQcm9wZXJ0eT86IHN0cmluZywgdGl0bGVQcm9wZXJ0eT86IHN0cmluZykge1xuICAgICAgICB0aGlzLl9tb2RlbCA9IG5ldyBNb2RlbERlc2NyaXB0b3I8VD4obW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZpbHRlckRpc3BsYXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXJEaXNwbGF5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGFnaW5hdGlvbk1vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdpbmF0aW9uTW9kZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbHVtbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhpZGVIZWFkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRlSGVhZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YUtleVByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YUtleVByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzRGVmYXVsdFNvcnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNEZWZhdWx0U29ydDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRlZmF1bHRTb3J0UHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWZhdWx0U29ydFByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGVmYXVsdFNvcnRBc2MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWZhdWx0U29ydEFzYztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd0hlaWdodCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd0hlaWdodDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRhYmxlRnVsbEhlaWdodE9mZnNldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlRnVsbEhlaWdodE9mZnNldDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkRlc2NyaXB0b3I8Q1Q+KGNvbHVtbjogQ29sdW1uRGVzY3JpcHRvcjxDVCwgVD4pOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICB0aGlzLl9jb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgICAgdGhpcy5zZXREYXRhS2V5RnJvbUNvbHVtbigpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uKHByb3BlcnR5OiBzdHJpbmcpOiBDb2x1bW5EZXNjcmlwdG9yPHN0cmluZywgVD4ge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uRGVzY3JpcHRvcjxzdHJpbmcsIFQ+KHRoaXMsIHByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIHRoaXMuc2V0RGF0YUtleUZyb21Db2x1bW4oKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uTnVtYmVyKHByb3BlcnR5OiBzdHJpbmcsIGRpc3BsYXlGb3JtYXQ/OiBzdHJpbmcpOiBDb2x1bW5EZXNjcmlwdG9yPG51bWJlciwgVD4ge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uRGVzY3JpcHRvcjxudW1iZXIsIFQ+KHRoaXMsIHByb3BlcnR5KTtcbiAgICAgICAgY29sdW1uLmFzTnVtYmVyKGRpc3BsYXlGb3JtYXQpO1xuICAgICAgICB0aGlzLl9jb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgICAgdGhpcy5zZXREYXRhS2V5RnJvbUNvbHVtbigpO1xuICAgICAgICByZXR1cm4gY29sdW1uO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5EYXRlKHByb3BlcnR5OiBzdHJpbmcsIGRpc3BsYXlGb3JtYXQ/OiBzdHJpbmcpOiBDb2x1bW5EZXNjcmlwdG9yPERhdGUsIFQ+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbkRlc2NyaXB0b3I8RGF0ZSwgVD4odGhpcywgcHJvcGVydHkpO1xuICAgICAgICBjb2x1bW4uYXNEYXRlKGRpc3BsYXlGb3JtYXQpO1xuICAgICAgICB0aGlzLl9jb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgICAgdGhpcy5zZXREYXRhS2V5RnJvbUNvbHVtbigpO1xuICAgICAgICByZXR1cm4gY29sdW1uO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5Cb29sZWFuKHByb3BlcnR5OiBzdHJpbmcpOiBDb2x1bW5EZXNjcmlwdG9yPGJvb2xlYW4sIFQ+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbkRlc2NyaXB0b3I8Ym9vbGVhbiwgVD4odGhpcywgcHJvcGVydHkpO1xuICAgICAgICBjb2x1bW4uYXNCb29sZWFuKCk7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICB0aGlzLnNldERhdGFLZXlGcm9tQ29sdW1uKCk7XG4gICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkVudW0ocHJvcGVydHk6IHN0cmluZywgZW51bVR5cGU6IEVudW1UeXBlLCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCB0aXRsZVBhdGg/OiBzdHJpbmcgfCBudWxsKTogQ29sdW1uRGVzY3JpcHRvcjxib29sZWFuLCBUPiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IG5ldyBDb2x1bW5EZXNjcmlwdG9yPGJvb2xlYW4sIFQ+KHRoaXMsIHByb3BlcnR5KTtcbiAgICAgICAgY29sdW1uLmFzRW51bShlbnVtVHlwZSwgbmFtZUFzVmFsdWUsIHRpdGxlUGF0aCk7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICB0aGlzLnNldERhdGFLZXlGcm9tQ29sdW1uKCk7XG4gICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbk9iamVjdDxDVD4ocHJvcGVydHk6IHN0cmluZywgbW9kZWxUeXBlOiBDbGFzc1R5cGU8Q1Q+LCBkaXNwbGF5UHJvcGVydHk6IHN0cmluZyk6IENvbHVtbkRlc2NyaXB0b3I8Q1QsIFQ+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbkRlc2NyaXB0b3I8Q1QsIFQ+KHRoaXMsIHByb3BlcnR5KTtcbiAgICAgICAgY29sdW1uLndpdGhNb2RlbFR5cGUobW9kZWxUeXBlKTtcbiAgICAgICAgY29sdW1uLndpdGhEaXNwbGF5UHJvcGVydHlQYXRoKGRpc3BsYXlQcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICB0aGlzLnNldERhdGFLZXlGcm9tQ29sdW1uKCk7XG4gICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhGaWx0ZXJEaXNwbGF5KGZpbHRlckRpc3BsYXlUeXBlOiBUYWJsZURlc2NyaXB0b3IuRmlsdGVyRGlzcGxheUVudW0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyRGlzcGxheSA9IGZpbHRlckRpc3BsYXlUeXBlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBhZ2luYXRpb25Nb2RlKHBhZ2luYXRpb25Nb2RlOiBUYWJsZURlc2NyaXB0b3IuUGFnaW5hdGlvbk1vZGVFbnVtKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRpb25Nb2RlID0gcGFnaW5hdGlvbk1vZGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGl0bGUodGl0bGU6IHN0cmluZyk6IFRhYmxlRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSGlkZUhlYWRlcihoaWRlSGVhZGVyID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLl9oaWRlSGVhZGVyID0gaGlkZUhlYWRlcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEYXRhS2V5UHJvcGVydHkocHJvcGVydHk6IHN0cmluZyk6IFRhYmxlRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIHRoaXMuX2RhdGFLZXlQcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERlZmF1bHRTb3J0KHByb3BlcnR5OiBzdHJpbmcsIGFzYyA9IHRydWUpOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICB0aGlzLl9oYXNEZWZhdWx0U29ydCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRTb3J0UHJvcGVydHkucHVzaChwcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRTb3J0QXNjLnB1c2goYXNjKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSb3dIZWlnaHQocm93SGVpZ2h0OiBudW1iZXIpOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICB0aGlzLl9yb3dIZWlnaHQgPSByb3dIZWlnaHQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGFibGVGdWxsSGVpZ2h0T2Zmc2V0KHRhYmxlRnVsbEhlaWdodE9mZnNldDogbnVtYmVyKTogVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgdGhpcy5fdGFibGVGdWxsSGVpZ2h0T2Zmc2V0ID0gdGFibGVGdWxsSGVpZ2h0T2Zmc2V0O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFRhYmxlRGVzY3JpcHRvcih0aGlzLm1vZGVsLnR5cGUsIHRoaXMubW9kZWwuaWRQcm9wZXJ0eU5hbWUsIHRoaXMubW9kZWwudGl0bGVQcm9wZXJ0eU5hbWUpO1xuICAgICAgICBkZXNjcmlwdG9yLl9jb2x1bW5zID0gdGhpcy5jb2x1bW5zLm1hcChjID0+IGMuY29weSgpKTtcbiAgICAgICAgZGVzY3JpcHRvci5fdGl0bGUgPSB0aGlzLl90aXRsZTtcbiAgICAgICAgZGVzY3JpcHRvci5faGlkZUhlYWRlciA9IHRoaXMuX2hpZGVIZWFkZXI7XG4gICAgICAgIGRlc2NyaXB0b3IuX2RhdGFLZXlQcm9wZXJ0eSA9IHRoaXMuX2RhdGFLZXlQcm9wZXJ0eTtcbiAgICAgICAgZGVzY3JpcHRvci5fZGVmYXVsdFNvcnRQcm9wZXJ0eSA9IHRoaXMuX2RlZmF1bHRTb3J0UHJvcGVydHkubWFwKHAgPT4gcCk7XG4gICAgICAgIGRlc2NyaXB0b3IuX2RlZmF1bHRTb3J0QXNjID0gdGhpcy5fZGVmYXVsdFNvcnRBc2MubWFwKHAgPT4gcCk7XG4gICAgICAgIGRlc2NyaXB0b3IuX2ZpbHRlckRpc3BsYXkgPSB0aGlzLl9maWx0ZXJEaXNwbGF5O1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERhdGFLZXlGcm9tQ29sdW1uKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2RhdGFLZXlQcm9wZXJ0eSAmJiB0aGlzLl9jb2x1bW5zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5fZGF0YUtleVByb3BlcnR5ID0gdGhpcy5fY29sdW1uc1swXS5wcm9wZXJ0eTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBUYWJsZURlc2NyaXB0b3Ige1xuICAgIGV4cG9ydCBlbnVtIFBhZ2luYXRpb25Nb2RlRW51bSB7XG4gICAgICAgIFBhZ2luYXRpb24sXG4gICAgICAgIEluZmluaXRlU2Nyb2xsXG4gICAgfVxuXG4gICAgZXhwb3J0IGVudW0gRmlsdGVyRGlzcGxheUVudW0ge1xuICAgICAgICBSb3csXG4gICAgICAgIE1lbnVcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5EZXNjcmlwdG9yPFQsIFRUPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFibGU6IFRhYmxlRGVzY3JpcHRvcjxUVD47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfcHJvcGVydHk6IHN0cmluZztcbiAgICBwcml2YXRlIF9tb2RlbFR5cGU6IENsYXNzVHlwZTxUPiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2NvbHVtblR5cGU6IENvbHVtbkRlc2NyaXB0b3IuVHlwZUVudW0gPSBDb2x1bW5EZXNjcmlwdG9yLlR5cGVFbnVtLlN0cmluZztcbiAgICBwcml2YXRlIF90aXRsZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9kaXNwbGF5UHJvcGVydHlQYXRoPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2lzU29ydEVuYWJsZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9maWx0ZXJEZXNjcmlwdG9yPzogRmlsdGVyRGVzY3JpcHRvcjxUPjtcbiAgICBwcml2YXRlIF9kaXNwbGF5Rm9ybWF0Pzogc3RyaW5nO1xuXG4gICAgLy8gZW51bSBzcGVjaWZpY3NcbiAgICBwcml2YXRlIF9lbnVtVHlwZT86IEVudW1UeXBlO1xuICAgIHByaXZhdGUgX2VudW1UaXRsZVBhdGg/OiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgX2VudW1OYW1lQXNWYWx1ZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IodGFibGU6IFRhYmxlRGVzY3JpcHRvcjxUVD4sIHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdGFibGUgPSB0YWJsZTtcbiAgICAgICAgdGhpcy5fcHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1vZGVsVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbHVtblR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5UeXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpc3BsYXlQcm9wZXJ0eVBhdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5UHJvcGVydHlQYXRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNTb3J0RW5hYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU29ydEVuYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWx0ZXJEZXNjcmlwdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyRGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpc3BsYXlGb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5Rm9ybWF0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFibGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlbnVtVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VudW1UeXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZW51bVRpdGxlUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VudW1UaXRsZVBhdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlbnVtTmFtZUFzVmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnVtTmFtZUFzVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGFzVHlwZSh0eXBlOiBDb2x1bW5EZXNjcmlwdG9yLlR5cGVFbnVtID0gQ29sdW1uRGVzY3JpcHRvci5UeXBlRW51bS5TdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uVHlwZSA9IHR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc051bWJlcihkaXNwbGF5Rm9ybWF0ID0gJzEuMC0wJyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uRGVzY3JpcHRvci5UeXBlRW51bS5OdW1iZXI7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlGb3JtYXQgPSBkaXNwbGF5Rm9ybWF0O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXNEYXRlKGRpc3BsYXlGb3JtYXQgPSAnZGQuTU0ueXl5eScpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uVHlwZSA9IENvbHVtbkRlc2NyaXB0b3IuVHlwZUVudW0uRGF0ZTtcbiAgICAgICAgdGhpcy5fZGlzcGxheUZvcm1hdCA9IGRpc3BsYXlGb3JtYXQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc0Jvb2xlYW4oKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtblR5cGUgPSBDb2x1bW5EZXNjcmlwdG9yLlR5cGVFbnVtLkJvb2xlYW47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc0VudW0oZW51bVR5cGU6IEVudW1UeXBlLCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCB0aXRsZVBhdGg/OiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtblR5cGUgPSBDb2x1bW5EZXNjcmlwdG9yLlR5cGVFbnVtLkVudW07XG4gICAgICAgIHRoaXMuX2VudW1UeXBlID0gZW51bVR5cGU7XG4gICAgICAgIHRoaXMuX2VudW1OYW1lQXNWYWx1ZSA9IG5hbWVBc1ZhbHVlO1xuICAgICAgICBpZiAodHlwZW9mIHRpdGxlUGF0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRpdGxlUGF0aCA9IFR5cGVVdGlsLmZpbmRFbnVtTmFtZShlbnVtVHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZW51bVRpdGxlUGF0aCA9IHRpdGxlUGF0aDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhNb2RlbFR5cGUobW9kZWxUeXBlOiBDbGFzc1R5cGU8VD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fbW9kZWxUeXBlID0gbW9kZWxUeXBlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRpdGxlKHRpdGxlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEaXNwbGF5UHJvcGVydHlQYXRoKGRpc3BsYXlQcm9wZXJ0eVBhdGg6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9kaXNwbGF5UHJvcGVydHlQYXRoID0gZGlzcGxheVByb3BlcnR5UGF0aDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhGaWx0ZXIoKTogRmlsdGVyRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIHRoaXMuX2ZpbHRlckRlc2NyaXB0b3IgPSBuZXcgRmlsdGVyRGVzY3JpcHRvcjxhbnk+KHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgbGV0IGZpbHRlclR5cGU6IEZpbHRlckRlc2NyaXB0b3IuVHlwZUVudW07XG4gICAgICAgIHN3aXRjaCAodGhpcy5fY29sdW1uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5EZXNjcmlwdG9yLlR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlID0gRmlsdGVyRGVzY3JpcHRvci5UeXBlRW51bS5OdW1iZXI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENvbHVtbkRlc2NyaXB0b3IuVHlwZUVudW0uQm9vbGVhbjpcbiAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlID0gRmlsdGVyRGVzY3JpcHRvci5UeXBlRW51bS5Cb29sZWFuO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5EZXNjcmlwdG9yLlR5cGVFbnVtLkRhdGU6XG4gICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IEZpbHRlckRlc2NyaXB0b3IuVHlwZUVudW0uRGF0ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uRGVzY3JpcHRvci5UeXBlRW51bS5TdHJpbmc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSBGaWx0ZXJEZXNjcmlwdG9yLlR5cGVFbnVtLlN0cmluZztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9maWx0ZXJEZXNjcmlwdG9yLmFzRmlsdGVyVHlwZShmaWx0ZXJUeXBlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlckRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhGaWx0ZXJMb29rdXAoKTogRmlsdGVyTG9va3VwRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGNvbnN0IGZpbHRlckRlc2NyaXB0b3IgPSBuZXcgRmlsdGVyTG9va3VwRGVzY3JpcHRvcjxhbnk+KHRoaXMuX3Byb3BlcnR5LCB0aGlzLl9tb2RlbFR5cGUpO1xuICAgICAgICB0aGlzLl9maWx0ZXJEZXNjcmlwdG9yID0gZmlsdGVyRGVzY3JpcHRvcjtcbiAgICAgICAgcmV0dXJuIGZpbHRlckRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhGaWx0ZXJMb29rdXBFbnVtKG9wdGlvbnM/OiBBcnJheTxFbnVtQ29uc3RhbnRUeXBlPik6IEZpbHRlckxvb2t1cEVudW1EZXNjcmlwdG9yIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbHVtblR5cGUgIT09IENvbHVtbkRlc2NyaXB0b3IuVHlwZUVudW0uRW51bSB8fCAhdGhpcy5fZW51bVR5cGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29sdW1uICR7dGhpcy5fcHJvcGVydHl9IGlzIG5vdCBvZiB0eXBlIGVudW0gb3IgZW51bSB0eXBlIGlzIHVuZGVmaW5lZC5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWx0ZXJEZXNjcmlwdG9yID0gbmV3IEZpbHRlckxvb2t1cEVudW1EZXNjcmlwdG9yKHRoaXMuX3Byb3BlcnR5LCB0aGlzLl9lbnVtVHlwZSwgb3B0aW9ucywgdGhpcy5fZW51bU5hbWVBc1ZhbHVlLCB0aGlzLl9lbnVtVGl0bGVQYXRoKTtcbiAgICAgICAgdGhpcy5fZmlsdGVyRGVzY3JpcHRvciA9IGZpbHRlckRlc2NyaXB0b3I7XG4gICAgICAgIHJldHVybiBmaWx0ZXJEZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoU29ydChpc0VuYWJsZWQgPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lzU29ydEVuYWJsZWQgPSBpc0VuYWJsZWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5KCk6IENvbHVtbkRlc2NyaXB0b3I8VCwgVFQ+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBDb2x1bW5EZXNjcmlwdG9yPFQsIFRUPih0aGlzLl90YWJsZSwgdGhpcy5fcHJvcGVydHkpO1xuICAgICAgICBkZXNjcmlwdG9yLl9kaXNwbGF5UHJvcGVydHlQYXRoID0gdGhpcy5fZGlzcGxheVByb3BlcnR5UGF0aDtcbiAgICAgICAgZGVzY3JpcHRvci5fdGl0bGUgPSB0aGlzLl90aXRsZTtcbiAgICAgICAgZGVzY3JpcHRvci5faXNTb3J0RW5hYmxlZCA9IHRoaXMuX2lzU29ydEVuYWJsZWQ7XG4gICAgICAgIGRlc2NyaXB0b3IuX2NvbHVtblR5cGUgPSB0aGlzLl9jb2x1bW5UeXBlO1xuICAgICAgICBkZXNjcmlwdG9yLl9maWx0ZXJEZXNjcmlwdG9yID0gdGhpcy5fZmlsdGVyRGVzY3JpcHRvcj8uY29weSgpO1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29sdW1uRGVzY3JpcHRvciB7XG4gICAgZXhwb3J0IGVudW0gVHlwZUVudW0ge1xuICAgICAgICBTdHJpbmcsXG4gICAgICAgIE51bWJlcixcbiAgICAgICAgQm9vbGVhbixcbiAgICAgICAgRGF0ZSxcbiAgICAgICAgRW51bVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpbHRlckRlc2NyaXB0b3I8VD4ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcHJvcGVydHk6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclR5cGUgPSBGaWx0ZXJEZXNjcmlwdG9yLlR5cGVFbnVtLlN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclByb3BlcnR5Pzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9tYXRjaE1vZGVzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIF9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2NsYXNzTmFtZSA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydHk6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmlsdGVyVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlclR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWx0ZXJQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlclByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWF0Y2hNb2RlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21hdGNoTW9kZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXNGaWx0ZXJUeXBlKGZpbHRlclR5cGU6IEZpbHRlckRlc2NyaXB0b3IuVHlwZUVudW0pIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyVHlwZSA9IGZpbHRlclR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgZGlmZmVyZW50IGZpbHRlciBwcm9wZXJ0eSBuYW1lIGluc3RlYWQgb2YgZGVmYXVsdCBwcm9wZXJ0eS4gVXNlIHRoaXMgaWYgQVBJIHJlcXVpcmVzIGRpZmZlcmVudCBwcm9wZXJ0eSBwcm92aWRlZCB0byBwZXJmb3JtIGNvcnJlY3QgZmlsdGVyLlxuICAgICAqIEBwYXJhbSBmaWx0ZXJQcm9wZXJ0eVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoRmlsdGVyUHJvcGVydHkoZmlsdGVyUHJvcGVydHk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9maWx0ZXJQcm9wZXJ0eSA9IGZpbHRlclByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE1hdGNoTW9kZXMobWF0Y2hNb2RlczogQXJyYXk8RmlsdGVyRGVzY3JpcHRvci5NYXRjaE1vZGVFbnVtPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9tYXRjaE1vZGVzID0gbWF0Y2hNb2RlcztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHkoKTogRmlsdGVyRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRmlsdGVyRGVzY3JpcHRvcjxUPih0aGlzLl9wcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuY29weUZpZWxkc1RvKGRlc2NyaXB0b3IpO1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29weUZpZWxkc1RvKGRlc2NyaXB0b3I6IEZpbHRlckRlc2NyaXB0b3I8VD4pIHtcbiAgICAgICAgZGVzY3JpcHRvci5fZmlsdGVyVHlwZSA9IHRoaXMuX2ZpbHRlclR5cGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2ZpbHRlclByb3BlcnR5ID0gdGhpcy5fZmlsdGVyUHJvcGVydHk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3BsYWNlaG9sZGVyID0gdGhpcy5fcGxhY2Vob2xkZXI7XG4gICAgICAgIGRlc2NyaXB0b3IuX2NsYXNzTmFtZSA9IHRoaXMuX2NsYXNzTmFtZTtcbiAgICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgRmlsdGVyRGVzY3JpcHRvciB7XG4gICAgZXhwb3J0IGVudW0gVHlwZUVudW0ge1xuICAgICAgICBTdHJpbmcsXG4gICAgICAgIE51bWJlcixcbiAgICAgICAgQm9vbGVhbixcbiAgICAgICAgRGF0ZSxcbiAgICAgICAgTG9va3VwLFxuICAgICAgICBMb29rdXBFbnVtXG4gICAgfVxuXG4gICAgZXhwb3J0IGVudW0gTWF0Y2hNb2RlRW51bSB7XG4gICAgICAgIFN0YXJ0c1dpdGggPSAnc3RhcnRzV2l0aCcsXG4gICAgICAgIENvbnRhaW5zID0gJ2NvbnRhaW5zJyxcbiAgICAgICAgRW5kc1dpdGggPSAnZW5kc1dpdGgnLFxuICAgICAgICBFcXVhbHMgPSAnZXF1YWxzJyxcbiAgICAgICAgTm90RXF1YWxzID0gJ25vdEVxdWFscycsXG4gICAgICAgIEluID0gJ2luJyxcbiAgICAgICAgTGVzc1RoYW4gPSAnbHQnLFxuICAgICAgICBMZXNzVGhhbk9yRXF1YWxUbyA9ICdsdGUnLFxuICAgICAgICBHcmVhdGVyVGhhbiA9ICdndCcsXG4gICAgICAgIEdyZWF0ZXJUaGFuT3JFcXVhbFRvID0gJ2d0ZScsXG4gICAgICAgIEJldHdlZW4gPSAnYmV0d2VlbicsXG4gICAgICAgIERhdGVJcyA9ICdkYXRlSXMnLFxuICAgICAgICBEYXRlSXNOb3QgPSAnZGF0ZUlzTm90JyxcbiAgICAgICAgRGF0ZUJlZm9yZSA9ICdkYXRlQmVmb3JlJyxcbiAgICAgICAgRGF0ZUFmdGVyID0gJ2RhdGVBZnRlcidcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPFQ+IGV4dGVuZHMgRmlsdGVyRGVzY3JpcHRvcjxUPiBpbXBsZW1lbnRzIElMb29rdXBEZXNjcmlwdG9yPFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tb2RlbFR5cGU6IENsYXNzVHlwZTxUPiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2xvb2t1cFR5cGU/OiBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yLkxvb2t1cFR5cGVFbnVtID0gRmlsdGVyTG9va3VwRGVzY3JpcHRvci5Mb29rdXBUeXBlRW51bS5Ecm9wZG93bjtcblxuICAgIHByaXZhdGUgX2RhdGFQcm92aWRlcj86IElMb29rdXBEYXRhUHJvdmlkZXI8VCwgYW55PjtcbiAgICBwcml2YXRlIF9pdGVtc0xhYmVsUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfaXRlbXNWYWx1ZVByb3BlcnR5Pzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2RhdGFLZXlQcm9wZXJ0eT86IHN0cmluZztcblxuICAgIHByaXZhdGUgX211bHRpc2VsZWN0ID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9kcm9wZG93bkNsYXNzTmFtZSA9ICdtbmctZmlsdGVyLWxvb2t1cC1kcm9wZG93bic7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogc3RyaW5nLCBtb2RlbFR5cGU6IENsYXNzVHlwZTxUPiB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIocHJvcGVydHkpO1xuICAgICAgICB0aGlzLl9tb2RlbFR5cGUgPSBtb2RlbFR5cGU7XG4gICAgICAgIHRoaXMuX2ZpbHRlclR5cGUgPSBGaWx0ZXJEZXNjcmlwdG9yLlR5cGVFbnVtLkxvb2t1cDtcbiAgICAgICAgTW9kZWxVdGlsLnRyeVNldExvb2t1cEl0ZW1zUHJvcGVydGllcyh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvb2t1cFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb29rdXBUeXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YVByb3ZpZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXRlbXNMYWJlbFByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNMYWJlbFByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXRlbXNWYWx1ZVByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNWYWx1ZVByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YUtleVByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YUtleVByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbXVsdGlzZWxlY3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tdWx0aXNlbGVjdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRyb3Bkb3duQ2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJvcGRvd25DbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtb2RlbFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbFR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJdGVtc0xhYmVsUHJvcGVydHkoaXRlbXNMYWJlbFByb3BlcnR5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXRlbXNMYWJlbFByb3BlcnR5ID0gaXRlbXNMYWJlbFByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEl0ZW1zVmFsdWVQcm9wZXJ0eShpdGVtc1ZhbHVlUHJvcGVydHk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pdGVtc1ZhbHVlUHJvcGVydHkgPSBpdGVtc1ZhbHVlUHJvcGVydHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGF0YUtleVByb3BlcnR5KGRhdGFLZXlQcm9wZXJ0eTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RhdGFLZXlQcm9wZXJ0eSA9IGRhdGFLZXlQcm9wZXJ0eTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhMb29rdXA8Uz4obG9va3VwOiAocXVlcnlQYXJhbT86IE1lZGl1c1F1ZXJ5UGFyYW0sIHNlcnZpY2U/OiBTLCBzZWFyY2g/OiBzdHJpbmcpID0+IE9ic2VydmFibGU8QXJyYXk8VD4+LCBzZXJ2aWNlVHlwZT86IFR5cGU8Uz4pOiB0aGlzIHtcbiAgICAgICAgY29uc3QgZGF0YVByb3ZpZGVyID0gbmV3IExvb2t1cERhdGFQcm92aWRlcjxULCBTPih0aGlzLl9tb2RlbFR5cGUpO1xuICAgICAgICBpZiAoc2VydmljZVR5cGUpIHtcbiAgICAgICAgICAgIGRhdGFQcm92aWRlci53aXRoU2VydmljZVR5cGUoc2VydmljZVR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGFQcm92aWRlci53aXRoTG9va3VwKGxvb2t1cCk7XG4gICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IGRhdGFQcm92aWRlcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhMb29rdXBEYXRhUHJvdmlkZXIoZGF0YVByb3ZpZGVyOiBJTG9va3VwRGF0YVByb3ZpZGVyPFQsIGFueT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyID0gZGF0YVByb3ZpZGVyO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE11bHRpc2VsZWN0KG11bHRpc2VsZWN0ID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLl9tdWx0aXNlbGVjdCA9IG11bHRpc2VsZWN0O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERyb3Bkb3duQ2xhc3NOYW1lKGRyb3Bkb3duQ2xhc3NOYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZHJvcGRvd25DbGFzc05hbWUgPSBkcm9wZG93bkNsYXNzTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzQXV0b2NvbXBsZXRlKCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9sb29rdXBUeXBlID0gRmlsdGVyTG9va3VwRGVzY3JpcHRvci5Mb29rdXBUeXBlRW51bS5BdXRvY29tcGxldGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb3B5KCk6IEZpbHRlckxvb2t1cERlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IEZpbHRlckxvb2t1cERlc2NyaXB0b3I8VD4odGhpcy5fcHJvcGVydHksIHRoaXMuX21vZGVsVHlwZSk7XG4gICAgICAgIHRoaXMuY29weUZpZWxkc1RvKGRlc2NyaXB0b3IpO1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY29weUZpZWxkc1RvKGRlc2NyaXB0b3I6IEZpbHRlckxvb2t1cERlc2NyaXB0b3I8VD4pIHtcbiAgICAgICAgc3VwZXIuY29weUZpZWxkc1RvKGRlc2NyaXB0b3IpO1xuICAgICAgICBkZXNjcmlwdG9yLl9kYXRhUHJvdmlkZXIgPSB0aGlzLl9kYXRhUHJvdmlkZXI7XG4gICAgICAgIGRlc2NyaXB0b3IuX2xvb2t1cFR5cGUgPSB0aGlzLl9sb29rdXBUeXBlO1xuICAgICAgICBkZXNjcmlwdG9yLl9pdGVtc0xhYmVsUHJvcGVydHkgPSB0aGlzLl9pdGVtc0xhYmVsUHJvcGVydHk7XG4gICAgICAgIGRlc2NyaXB0b3IuX2l0ZW1zVmFsdWVQcm9wZXJ0eSA9IHRoaXMuX2l0ZW1zVmFsdWVQcm9wZXJ0eTtcbiAgICAgICAgZGVzY3JpcHRvci5fZGF0YUtleVByb3BlcnR5ID0gdGhpcy5fZGF0YUtleVByb3BlcnR5O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpbHRlckxvb2t1cEVudW1EZXNjcmlwdG9yIGV4dGVuZHMgRmlsdGVyTG9va3VwRGVzY3JpcHRvcjxFbnVtVmFsdWU8c3RyaW5nIHwgbnVtYmVyPj4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VudW1UeXBlOiBFbnVtVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBzdHJpbmcsIGVudW1UeXBlOiBFbnVtVHlwZSwgb3B0aW9ucz86IEFycmF5PEVudW1Db25zdGFudFR5cGU+LCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCBvcHRpb25zVGl0bGVQYXRoPzogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICBzdXBlcihwcm9wZXJ0eSwgbnVsbCk7XG4gICAgICAgIHRoaXMuX2VudW1UeXBlID0gZW51bVR5cGU7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc1RpdGxlUGF0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIG9wdGlvbnNUaXRsZVBhdGggPSBUeXBlVXRpbC5maW5kRW51bU5hbWUoZW51bVR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbkVudW1WYWx1ZXMgPSBBcnJheS5pc0FycmF5KG9wdGlvbnMpXG4gICAgICAgICAgICA/IEVudW1VdGlsLmZyb21WYWx1ZXNBc0VudW1WYWx1ZUFycmF5KGVudW1UeXBlLCBvcHRpb25zLCBuYW1lQXNWYWx1ZSwgb3B0aW9uc1RpdGxlUGF0aCA/PyB1bmRlZmluZWQpXG4gICAgICAgICAgICA6IEVudW1VdGlsLmZyb21Db25zdGFudHNBc0VudW1WYWx1ZUFycmF5KGVudW1UeXBlLCBuYW1lQXNWYWx1ZSwgb3B0aW9uc1RpdGxlUGF0aCA/PyB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBkYXRhUHJvdmlkZXIgPSBuZXcgTG9va3VwRGF0YVByb3ZpZGVyPEVudW1WYWx1ZTxzdHJpbmcgfCBudW1iZXI+LCBhbnk+KG51bGwpLndpdGhMb29rdXAoKCkgPT4gb2Yob3B0aW9uRW51bVZhbHVlcykpO1xuICAgICAgICB0aGlzLndpdGhMb29rdXBEYXRhUHJvdmlkZXIoZGF0YVByb3ZpZGVyKTtcbiAgICAgICAgdGhpcy53aXRoSXRlbXNMYWJlbFByb3BlcnR5KCd0aXRsZScpO1xuICAgICAgICB0aGlzLndpdGhJdGVtc1ZhbHVlUHJvcGVydHkoJ3ZhbHVlJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlbnVtVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VudW1UeXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb3B5KCk6IEZpbHRlckxvb2t1cEVudW1EZXNjcmlwdG9yIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSBuZXcgRmlsdGVyTG9va3VwRW51bURlc2NyaXB0b3IodGhpcy5fcHJvcGVydHksIHRoaXMuX2VudW1UeXBlLCBbXSk7XG4gICAgICAgIHRoaXMuY29weUZpZWxkc1RvKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yIHtcbiAgICBleHBvcnQgZW51bSBMb29rdXBUeXBlRW51bSB7XG4gICAgICAgIERyb3Bkb3duLFxuICAgICAgICBBdXRvY29tcGxldGVcbiAgICB9XG59XG4iXX0=
537
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVzY3JpcHRvcnMvdGFibGUuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBc0Isa0JBQWtCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUcxRSxPQUFPLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxlQUFlO0lBZXhCLFlBQVksU0FBdUIsRUFBRSxVQUFtQixFQUFFLGFBQXNCO1FBYnhFLG1CQUFjLEdBQXNDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDM0Ysb0JBQWUsR0FBdUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQUNwRyxhQUFRLEdBQW9DLEVBQUUsQ0FBQztRQUUvQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4Qix5QkFBb0IsR0FBYSxFQUFFLENBQUM7UUFDcEMsb0JBQWUsR0FBYyxFQUFFLENBQUM7UUFFaEMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQiwyQkFBc0IsR0FBRyxHQUFHLENBQUM7UUFHakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBSSxTQUFTLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLE9B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c0IsUUFLdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtfSBmcm9tICcuLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7SUxvb2t1cERhdGFQcm92aWRlciwgTG9va3VwRGF0YVByb3ZpZGVyfSBmcm9tICcuLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge0VudW1WYWx1ZX0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7Q2xhc3NUeXBlLCBFbnVtQ29uc3RhbnRUeXBlLCBFbnVtVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtFbnVtVXRpbCwgTW9kZWxVdGlsLCBUeXBlVXRpbH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtJTG9va3VwRGVzY3JpcHRvcn0gZnJvbSAnLi9sb29rdXAuZGVzY3JpcHRvcic7XG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnLi9tb2RlbC5kZXNjcmlwdG9yJztcblxuZXhwb3J0IGNsYXNzIFRhYmxlRGVzY3JpcHRvcjxUPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxUPjtcbiAgICBwcml2YXRlIF9maWx0ZXJEaXNwbGF5OiBUYWJsZURlc2NyaXB0b3IuRmlsdGVyRGlzcGxheUVudW0gPSBUYWJsZURlc2NyaXB0b3IuRmlsdGVyRGlzcGxheUVudW0uTWVudTtcbiAgICBwcml2YXRlIF9wYWdpbmF0aW9uTW9kZTogVGFibGVEZXNjcmlwdG9yLlBhZ2luYXRpb25Nb2RlRW51bSA9IFRhYmxlRGVzY3JpcHRvci5QYWdpbmF0aW9uTW9kZUVudW0uUGFnaW5hdGlvbjtcbiAgICBwcml2YXRlIF9jb2x1bW5zOiBBcnJheTxDb2x1bW5EZXNjcmlwdG9yPGFueSwgVD4+ID0gW107XG4gICAgcHJpdmF0ZSBfdGl0bGU/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfaGlkZUhlYWRlciA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2RhdGFLZXlQcm9wZXJ0eT86IHN0cmluZztcbiAgICBwcml2YXRlIF9oYXNEZWZhdWx0U29ydCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2RlZmF1bHRTb3J0UHJvcGVydHk6IHN0cmluZ1tdID0gW107XG4gICAgcHJpdmF0ZSBfZGVmYXVsdFNvcnRBc2M6IGJvb2xlYW5bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfcm93SGVpZ2h0ID0gNDU7XG4gICAgcHJpdmF0ZSBfdGFibGVGdWxsSGVpZ2h0T2Zmc2V0ID0gMzE1O1xuXG4gICAgY29uc3RydWN0b3IobW9kZWxUeXBlOiBDbGFzc1R5cGU8VD4sIGlkUHJvcGVydHk/OiBzdHJpbmcsIHRpdGxlUHJvcGVydHk/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbW9kZWwgPSBuZXcgTW9kZWxEZXNjcmlwdG9yPFQ+KG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWx0ZXJEaXNwbGF5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyRGlzcGxheTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhZ2luYXRpb25Nb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFnaW5hdGlvbk1vZGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoaWRlSGVhZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZUhlYWRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGFLZXlQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFLZXlQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0RlZmF1bHRTb3J0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzRGVmYXVsdFNvcnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkZWZhdWx0U29ydFByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdFNvcnRQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRlZmF1bHRTb3J0QXNjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdFNvcnRBc2M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3dIZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dIZWlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0YWJsZUZ1bGxIZWlnaHRPZmZzZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZUZ1bGxIZWlnaHRPZmZzZXQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtb2RlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5EZXNjcmlwdG9yPENUPihjb2x1bW46IENvbHVtbkRlc2NyaXB0b3I8Q1QsIFQ+KTogVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgdGhpcy5fY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIHRoaXMuc2V0RGF0YUtleUZyb21Db2x1bW4oKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbihwcm9wZXJ0eTogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxzdHJpbmcsIFQ+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbkRlc2NyaXB0b3I8c3RyaW5nLCBUPih0aGlzLCBwcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICB0aGlzLnNldERhdGFLZXlGcm9tQ29sdW1uKCk7XG4gICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbk51bWJlcihwcm9wZXJ0eTogc3RyaW5nLCBkaXNwbGF5Rm9ybWF0Pzogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxudW1iZXIsIFQ+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbkRlc2NyaXB0b3I8bnVtYmVyLCBUPih0aGlzLCBwcm9wZXJ0eSk7XG4gICAgICAgIGNvbHVtbi5hc051bWJlcihkaXNwbGF5Rm9ybWF0KTtcbiAgICAgICAgdGhpcy5fY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIHRoaXMuc2V0RGF0YUtleUZyb21Db2x1bW4oKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uRGF0ZShwcm9wZXJ0eTogc3RyaW5nLCBkaXNwbGF5Rm9ybWF0Pzogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxEYXRlLCBUPiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IG5ldyBDb2x1bW5EZXNjcmlwdG9yPERhdGUsIFQ+KHRoaXMsIHByb3BlcnR5KTtcbiAgICAgICAgY29sdW1uLmFzRGF0ZShkaXNwbGF5Rm9ybWF0KTtcbiAgICAgICAgdGhpcy5fY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIHRoaXMuc2V0RGF0YUtleUZyb21Db2x1bW4oKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uQm9vbGVhbihwcm9wZXJ0eTogc3RyaW5nLCB5ZXM/OiBzdHJpbmcsIG5vPzogc3RyaW5nLCBhc0ljb24gPSBmYWxzZSk6IENvbHVtbkRlc2NyaXB0b3I8Ym9vbGVhbiwgVD4ge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uRGVzY3JpcHRvcjxib29sZWFuLCBUPih0aGlzLCBwcm9wZXJ0eSk7XG4gICAgICAgIGNvbHVtbi5hc0Jvb2xlYW4oeWVzLCBubywgYXNJY29uKTtcbiAgICAgICAgdGhpcy5fY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIHRoaXMuc2V0RGF0YUtleUZyb21Db2x1bW4oKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uRW51bShwcm9wZXJ0eTogc3RyaW5nLCBlbnVtVHlwZTogRW51bVR5cGUsIG5hbWVBc1ZhbHVlID0gZmFsc2UsIHRpdGxlUGF0aD86IHN0cmluZyB8IG51bGwpOiBDb2x1bW5EZXNjcmlwdG9yPGJvb2xlYW4sIFQ+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbkRlc2NyaXB0b3I8Ym9vbGVhbiwgVD4odGhpcywgcHJvcGVydHkpO1xuICAgICAgICBjb2x1bW4uYXNFbnVtKGVudW1UeXBlLCBuYW1lQXNWYWx1ZSwgdGl0bGVQYXRoKTtcbiAgICAgICAgdGhpcy5fY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIHRoaXMuc2V0RGF0YUtleUZyb21Db2x1bW4oKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uT2JqZWN0PENUPihwcm9wZXJ0eTogc3RyaW5nLCBtb2RlbFR5cGU6IENsYXNzVHlwZTxDVD4sIGRpc3BsYXlQcm9wZXJ0eTogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxDVCwgVD4ge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uRGVzY3JpcHRvcjxDVCwgVD4odGhpcywgcHJvcGVydHkpO1xuICAgICAgICBjb2x1bW4ud2l0aE1vZGVsVHlwZShtb2RlbFR5cGUpO1xuICAgICAgICBjb2x1bW4ud2l0aERpc3BsYXlQcm9wZXJ0eVBhdGgoZGlzcGxheVByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIHRoaXMuc2V0RGF0YUtleUZyb21Db2x1bW4oKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEZpbHRlckRpc3BsYXkoZmlsdGVyRGlzcGxheVR5cGU6IFRhYmxlRGVzY3JpcHRvci5GaWx0ZXJEaXNwbGF5RW51bSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9maWx0ZXJEaXNwbGF5ID0gZmlsdGVyRGlzcGxheVR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGFnaW5hdGlvbk1vZGUocGFnaW5hdGlvbk1vZGU6IFRhYmxlRGVzY3JpcHRvci5QYWdpbmF0aW9uTW9kZUVudW0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcGFnaW5hdGlvbk1vZGUgPSBwYWdpbmF0aW9uTW9kZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUaXRsZSh0aXRsZTogc3RyaW5nKTogVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhIaWRlSGVhZGVyKGhpZGVIZWFkZXIgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuX2hpZGVIZWFkZXIgPSBoaWRlSGVhZGVyO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERhdGFLZXlQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nKTogVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgdGhpcy5fZGF0YUtleVByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGVmYXVsdFNvcnQocHJvcGVydHk6IHN0cmluZywgYXNjID0gdHJ1ZSk6IFRhYmxlRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIHRoaXMuX2hhc0RlZmF1bHRTb3J0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZGVmYXVsdFNvcnRQcm9wZXJ0eS5wdXNoKHByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fZGVmYXVsdFNvcnRBc2MucHVzaChhc2MpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJvd0hlaWdodChyb3dIZWlnaHQ6IG51bWJlcik6IFRhYmxlRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIHRoaXMuX3Jvd0hlaWdodCA9IHJvd0hlaWdodDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUYWJsZUZ1bGxIZWlnaHRPZmZzZXQodGFibGVGdWxsSGVpZ2h0T2Zmc2V0OiBudW1iZXIpOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICB0aGlzLl90YWJsZUZ1bGxIZWlnaHRPZmZzZXQgPSB0YWJsZUZ1bGxIZWlnaHRPZmZzZXQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5KCk6IFRhYmxlRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVGFibGVEZXNjcmlwdG9yKHRoaXMubW9kZWwudHlwZSwgdGhpcy5tb2RlbC5pZFByb3BlcnR5TmFtZSwgdGhpcy5tb2RlbC50aXRsZVByb3BlcnR5TmFtZSk7XG4gICAgICAgIGRlc2NyaXB0b3IuX2NvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKGMgPT4gYy5jb3B5KCkpO1xuICAgICAgICBkZXNjcmlwdG9yLl90aXRsZSA9IHRoaXMuX3RpdGxlO1xuICAgICAgICBkZXNjcmlwdG9yLl9oaWRlSGVhZGVyID0gdGhpcy5faGlkZUhlYWRlcjtcbiAgICAgICAgZGVzY3JpcHRvci5fZGF0YUtleVByb3BlcnR5ID0gdGhpcy5fZGF0YUtleVByb3BlcnR5O1xuICAgICAgICBkZXNjcmlwdG9yLl9kZWZhdWx0U29ydFByb3BlcnR5ID0gdGhpcy5fZGVmYXVsdFNvcnRQcm9wZXJ0eS5tYXAocCA9PiBwKTtcbiAgICAgICAgZGVzY3JpcHRvci5fZGVmYXVsdFNvcnRBc2MgPSB0aGlzLl9kZWZhdWx0U29ydEFzYy5tYXAocCA9PiBwKTtcbiAgICAgICAgZGVzY3JpcHRvci5fZmlsdGVyRGlzcGxheSA9IHRoaXMuX2ZpbHRlckRpc3BsYXk7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGF0YUtleUZyb21Db2x1bW4oKSB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0YUtleVByb3BlcnR5ICYmIHRoaXMuX2NvbHVtbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhS2V5UHJvcGVydHkgPSB0aGlzLl9jb2x1bW5zWzBdLnByb3BlcnR5O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFRhYmxlRGVzY3JpcHRvciB7XG4gICAgZXhwb3J0IGVudW0gUGFnaW5hdGlvbk1vZGVFbnVtIHtcbiAgICAgICAgUGFnaW5hdGlvbixcbiAgICAgICAgSW5maW5pdGVTY3JvbGxcbiAgICB9XG5cbiAgICBleHBvcnQgZW51bSBGaWx0ZXJEaXNwbGF5RW51bSB7XG4gICAgICAgIFJvdyxcbiAgICAgICAgTWVudVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtbkRlc2NyaXB0b3I8VCwgVFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJsZTogVGFibGVEZXNjcmlwdG9yPFRUPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wZXJ0eTogc3RyaW5nO1xuICAgIHByaXZhdGUgX21vZGVsVHlwZTogQ2xhc3NUeXBlPFQ+IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfY29sdW1uVHlwZTogQ29sdW1uRGVzY3JpcHRvci5UeXBlRW51bSA9IENvbHVtbkRlc2NyaXB0b3IuVHlwZUVudW0uU3RyaW5nO1xuICAgIHByaXZhdGUgX3RpdGxlPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2Rpc3BsYXlQcm9wZXJ0eVBhdGg/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfaXNTb3J0RW5hYmxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2ZpbHRlckRlc2NyaXB0b3I/OiBGaWx0ZXJEZXNjcmlwdG9yPFQ+O1xuICAgIHByaXZhdGUgX2Rpc3BsYXlGb3JtYXQ/OiBzdHJpbmc7XG5cbiAgICAvLyBlbnVtIHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2VudW1UeXBlPzogRW51bVR5cGU7XG4gICAgcHJpdmF0ZSBfZW51bVRpdGxlUGF0aD86IHN0cmluZyB8IG51bGw7XG4gICAgcHJpdmF0ZSBfZW51bU5hbWVBc1ZhbHVlID0gZmFsc2U7XG5cbiAgICAvLyBib29sZWFuIHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2Jvb2xlYW5Bc0ljb24gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9ib29sZWFuWWVzPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2Jvb2xlYW5Obz86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHRhYmxlOiBUYWJsZURlc2NyaXB0b3I8VFQ+LCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3RhYmxlID0gdGFibGU7XG4gICAgICAgIHRoaXMuX3Byb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtb2RlbFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbFR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5UeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaXNwbGF5UHJvcGVydHlQYXRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheVByb3BlcnR5UGF0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzU29ydEVuYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1NvcnRFbmFibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmlsdGVyRGVzY3JpcHRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlckRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaXNwbGF5Rm9ybWF0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheUZvcm1hdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZW51bVR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnVtVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVudW1UaXRsZVBhdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnVtVGl0bGVQYXRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZW51bU5hbWVBc1ZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW51bU5hbWVBc1ZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYm9vbGVhbkFzSWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jvb2xlYW5Bc0ljb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBib29sZWFuWWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYm9vbGVhblllcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJvb2xlYW5ObygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jvb2xlYW5ObztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXNUeXBlKHR5cGU6IENvbHVtbkRlc2NyaXB0b3IuVHlwZUVudW0gPSBDb2x1bW5EZXNjcmlwdG9yLlR5cGVFbnVtLlN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzTnVtYmVyKGRpc3BsYXlGb3JtYXQgPSAnMS4wLTAnKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtblR5cGUgPSBDb2x1bW5EZXNjcmlwdG9yLlR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgdGhpcy5fZGlzcGxheUZvcm1hdCA9IGRpc3BsYXlGb3JtYXQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc0RhdGUoZGlzcGxheUZvcm1hdCA9ICdkZC5NTS55eXl5Jyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uRGVzY3JpcHRvci5UeXBlRW51bS5EYXRlO1xuICAgICAgICB0aGlzLl9kaXNwbGF5Rm9ybWF0ID0gZGlzcGxheUZvcm1hdDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzQm9vbGVhbih5ZXM/OiBzdHJpbmcsIG5vPzogc3RyaW5nLCBhc0ljb24gPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uRGVzY3JpcHRvci5UeXBlRW51bS5Cb29sZWFuO1xuICAgICAgICB0aGlzLl9ib29sZWFuQXNJY29uID0gYXNJY29uO1xuICAgICAgICB0aGlzLl9ib29sZWFuWWVzID0geWVzO1xuICAgICAgICB0aGlzLl9ib29sZWFuTm8gPSBubztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzRW51bShlbnVtVHlwZTogRW51bVR5cGUsIG5hbWVBc1ZhbHVlID0gZmFsc2UsIHRpdGxlUGF0aD86IHN0cmluZyB8IG51bGwpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uVHlwZSA9IENvbHVtbkRlc2NyaXB0b3IuVHlwZUVudW0uRW51bTtcbiAgICAgICAgdGhpcy5fZW51bVR5cGUgPSBlbnVtVHlwZTtcbiAgICAgICAgdGhpcy5fZW51bU5hbWVBc1ZhbHVlID0gbmFtZUFzVmFsdWU7XG4gICAgICAgIGlmICh0eXBlb2YgdGl0bGVQYXRoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGl0bGVQYXRoID0gVHlwZVV0aWwuZmluZEVudW1OYW1lKGVudW1UeXBlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbnVtVGl0bGVQYXRoID0gdGl0bGVQYXRoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE1vZGVsVHlwZShtb2RlbFR5cGU6IENsYXNzVHlwZTxUPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9tb2RlbFR5cGUgPSBtb2RlbFR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGl0bGUodGl0bGU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl90aXRsZSA9IHRpdGxlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERpc3BsYXlQcm9wZXJ0eVBhdGgoZGlzcGxheVByb3BlcnR5UGF0aDogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlQcm9wZXJ0eVBhdGggPSBkaXNwbGF5UHJvcGVydHlQYXRoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEZpbHRlcigpOiBGaWx0ZXJEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgdGhpcy5fZmlsdGVyRGVzY3JpcHRvciA9IG5ldyBGaWx0ZXJEZXNjcmlwdG9yPGFueT4odGhpcy5fcHJvcGVydHkpO1xuICAgICAgICBsZXQgZmlsdGVyVHlwZTogRmlsdGVyRGVzY3JpcHRvci5UeXBlRW51bTtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9jb2x1bW5UeXBlKSB7XG4gICAgICAgICAgICBjYXNlIENvbHVtbkRlc2NyaXB0b3IuVHlwZUVudW0uTnVtYmVyOlxuICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSBGaWx0ZXJEZXNjcmlwdG9yLlR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uRGVzY3JpcHRvci5UeXBlRW51bS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSBGaWx0ZXJEZXNjcmlwdG9yLlR5cGVFbnVtLkJvb2xlYW47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENvbHVtbkRlc2NyaXB0b3IuVHlwZUVudW0uRGF0ZTpcbiAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlID0gRmlsdGVyRGVzY3JpcHRvci5UeXBlRW51bS5EYXRlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5EZXNjcmlwdG9yLlR5cGVFbnVtLlN0cmluZzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IEZpbHRlckRlc2NyaXB0b3IuVHlwZUVudW0uU3RyaW5nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZpbHRlckRlc2NyaXB0b3IuYXNGaWx0ZXJUeXBlKGZpbHRlclR5cGUpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyRGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEZpbHRlckxvb2t1cCgpOiBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyRGVzY3JpcHRvciA9IG5ldyBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPGFueT4odGhpcy5fcHJvcGVydHksIHRoaXMuX21vZGVsVHlwZSk7XG4gICAgICAgIHRoaXMuX2ZpbHRlckRlc2NyaXB0b3IgPSBmaWx0ZXJEZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gZmlsdGVyRGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEZpbHRlckxvb2t1cEVudW0ob3B0aW9ucz86IEFycmF5PEVudW1Db25zdGFudFR5cGU+KTogRmlsdGVyTG9va3VwRW51bURlc2NyaXB0b3Ige1xuICAgICAgICBpZiAodGhpcy5fY29sdW1uVHlwZSAhPT0gQ29sdW1uRGVzY3JpcHRvci5UeXBlRW51bS5FbnVtIHx8ICF0aGlzLl9lbnVtVHlwZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2x1bW4gJHt0aGlzLl9wcm9wZXJ0eX0gaXMgbm90IG9mIHR5cGUgZW51bSBvciBlbnVtIHR5cGUgaXMgdW5kZWZpbmVkLmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpbHRlckRlc2NyaXB0b3IgPSBuZXcgRmlsdGVyTG9va3VwRW51bURlc2NyaXB0b3IodGhpcy5fcHJvcGVydHksIHRoaXMuX2VudW1UeXBlLCBvcHRpb25zLCB0aGlzLl9lbnVtTmFtZUFzVmFsdWUsIHRoaXMuX2VudW1UaXRsZVBhdGgpO1xuICAgICAgICB0aGlzLl9maWx0ZXJEZXNjcmlwdG9yID0gZmlsdGVyRGVzY3JpcHRvcjtcbiAgICAgICAgcmV0dXJuIGZpbHRlckRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTb3J0KGlzRW5hYmxlZCA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNTb3J0RW5hYmxlZCA9IGlzRW5hYmxlZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHkoKTogQ29sdW1uRGVzY3JpcHRvcjxULCBUVD4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IENvbHVtbkRlc2NyaXB0b3I8VCwgVFQ+KHRoaXMuX3RhYmxlLCB0aGlzLl9wcm9wZXJ0eSk7XG4gICAgICAgIGRlc2NyaXB0b3IuX2Rpc3BsYXlQcm9wZXJ0eVBhdGggPSB0aGlzLl9kaXNwbGF5UHJvcGVydHlQYXRoO1xuICAgICAgICBkZXNjcmlwdG9yLl90aXRsZSA9IHRoaXMuX3RpdGxlO1xuICAgICAgICBkZXNjcmlwdG9yLl9pc1NvcnRFbmFibGVkID0gdGhpcy5faXNTb3J0RW5hYmxlZDtcbiAgICAgICAgZGVzY3JpcHRvci5fY29sdW1uVHlwZSA9IHRoaXMuX2NvbHVtblR5cGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2ZpbHRlckRlc2NyaXB0b3IgPSB0aGlzLl9maWx0ZXJEZXNjcmlwdG9yPy5jb3B5KCk7XG4gICAgICAgIGRlc2NyaXB0b3IuX2Jvb2xlYW5Bc0ljb24gPSB0aGlzLl9ib29sZWFuQXNJY29uO1xuICAgICAgICBkZXNjcmlwdG9yLl9ib29sZWFuWWVzID0gdGhpcy5fYm9vbGVhblllcztcbiAgICAgICAgZGVzY3JpcHRvci5fYm9vbGVhbk5vID0gdGhpcy5fYm9vbGVhbk5vO1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29sdW1uRGVzY3JpcHRvciB7XG4gICAgZXhwb3J0IGVudW0gVHlwZUVudW0ge1xuICAgICAgICBTdHJpbmcsXG4gICAgICAgIE51bWJlcixcbiAgICAgICAgQm9vbGVhbixcbiAgICAgICAgRGF0ZSxcbiAgICAgICAgRW51bVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpbHRlckRlc2NyaXB0b3I8VD4ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcHJvcGVydHk6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclR5cGUgPSBGaWx0ZXJEZXNjcmlwdG9yLlR5cGVFbnVtLlN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclByb3BlcnR5Pzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9tYXRjaE1vZGVzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIF9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2NsYXNzTmFtZSA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydHk6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmlsdGVyVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlclR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWx0ZXJQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlclByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWF0Y2hNb2RlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21hdGNoTW9kZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXNGaWx0ZXJUeXBlKGZpbHRlclR5cGU6IEZpbHRlckRlc2NyaXB0b3IuVHlwZUVudW0pIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyVHlwZSA9IGZpbHRlclR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgZGlmZmVyZW50IGZpbHRlciBwcm9wZXJ0eSBuYW1lIGluc3RlYWQgb2YgZGVmYXVsdCBwcm9wZXJ0eS4gVXNlIHRoaXMgaWYgQVBJIHJlcXVpcmVzIGRpZmZlcmVudCBwcm9wZXJ0eSBwcm92aWRlZCB0byBwZXJmb3JtIGNvcnJlY3QgZmlsdGVyLlxuICAgICAqIEBwYXJhbSBmaWx0ZXJQcm9wZXJ0eVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoRmlsdGVyUHJvcGVydHkoZmlsdGVyUHJvcGVydHk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9maWx0ZXJQcm9wZXJ0eSA9IGZpbHRlclByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE1hdGNoTW9kZXMobWF0Y2hNb2RlczogQXJyYXk8RmlsdGVyRGVzY3JpcHRvci5NYXRjaE1vZGVFbnVtPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9tYXRjaE1vZGVzID0gbWF0Y2hNb2RlcztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHkoKTogRmlsdGVyRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRmlsdGVyRGVzY3JpcHRvcjxUPih0aGlzLl9wcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuY29weUZpZWxkc1RvKGRlc2NyaXB0b3IpO1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29weUZpZWxkc1RvKGRlc2NyaXB0b3I6IEZpbHRlckRlc2NyaXB0b3I8VD4pIHtcbiAgICAgICAgZGVzY3JpcHRvci5fZmlsdGVyVHlwZSA9IHRoaXMuX2ZpbHRlclR5cGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2ZpbHRlclByb3BlcnR5ID0gdGhpcy5fZmlsdGVyUHJvcGVydHk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3BsYWNlaG9sZGVyID0gdGhpcy5fcGxhY2Vob2xkZXI7XG4gICAgICAgIGRlc2NyaXB0b3IuX2NsYXNzTmFtZSA9IHRoaXMuX2NsYXNzTmFtZTtcbiAgICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgRmlsdGVyRGVzY3JpcHRvciB7XG4gICAgZXhwb3J0IGVudW0gVHlwZUVudW0ge1xuICAgICAgICBTdHJpbmcsXG4gICAgICAgIE51bWJlcixcbiAgICAgICAgQm9vbGVhbixcbiAgICAgICAgRGF0ZSxcbiAgICAgICAgTG9va3VwLFxuICAgICAgICBMb29rdXBFbnVtXG4gICAgfVxuXG4gICAgZXhwb3J0IGVudW0gTWF0Y2hNb2RlRW51bSB7XG4gICAgICAgIFN0YXJ0c1dpdGggPSAnc3RhcnRzV2l0aCcsXG4gICAgICAgIENvbnRhaW5zID0gJ2NvbnRhaW5zJyxcbiAgICAgICAgRW5kc1dpdGggPSAnZW5kc1dpdGgnLFxuICAgICAgICBFcXVhbHMgPSAnZXF1YWxzJyxcbiAgICAgICAgTm90RXF1YWxzID0gJ25vdEVxdWFscycsXG4gICAgICAgIEluID0gJ2luJyxcbiAgICAgICAgTGVzc1RoYW4gPSAnbHQnLFxuICAgICAgICBMZXNzVGhhbk9yRXF1YWxUbyA9ICdsdGUnLFxuICAgICAgICBHcmVhdGVyVGhhbiA9ICdndCcsXG4gICAgICAgIEdyZWF0ZXJUaGFuT3JFcXVhbFRvID0gJ2d0ZScsXG4gICAgICAgIEJldHdlZW4gPSAnYmV0d2VlbicsXG4gICAgICAgIERhdGVJcyA9ICdkYXRlSXMnLFxuICAgICAgICBEYXRlSXNOb3QgPSAnZGF0ZUlzTm90JyxcbiAgICAgICAgRGF0ZUJlZm9yZSA9ICdkYXRlQmVmb3JlJyxcbiAgICAgICAgRGF0ZUFmdGVyID0gJ2RhdGVBZnRlcidcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPFQ+IGV4dGVuZHMgRmlsdGVyRGVzY3JpcHRvcjxUPiBpbXBsZW1lbnRzIElMb29rdXBEZXNjcmlwdG9yPFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tb2RlbFR5cGU6IENsYXNzVHlwZTxUPiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2xvb2t1cFR5cGU/OiBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yLkxvb2t1cFR5cGVFbnVtID0gRmlsdGVyTG9va3VwRGVzY3JpcHRvci5Mb29rdXBUeXBlRW51bS5Ecm9wZG93bjtcblxuICAgIHByaXZhdGUgX2RhdGFQcm92aWRlcj86IElMb29rdXBEYXRhUHJvdmlkZXI8VCwgYW55PjtcbiAgICBwcml2YXRlIF9pdGVtc0xhYmVsUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfaXRlbXNMYWJlbFRyYW5zbGF0ZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2l0ZW1zVmFsdWVQcm9wZXJ0eT86IHN0cmluZztcbiAgICBwcml2YXRlIF9kYXRhS2V5UHJvcGVydHk/OiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIF9tdWx0aXNlbGVjdCA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBfZHJvcGRvd25DbGFzc05hbWUgPSAnbW5nLWZpbHRlci1sb29rdXAtZHJvcGRvd24nO1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydHk6IHN0cmluZywgbW9kZWxUeXBlOiBDbGFzc1R5cGU8VD4gfCBudWxsKSB7XG4gICAgICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fbW9kZWxUeXBlID0gbW9kZWxUeXBlO1xuICAgICAgICB0aGlzLl9maWx0ZXJUeXBlID0gRmlsdGVyRGVzY3JpcHRvci5UeXBlRW51bS5Mb29rdXA7XG4gICAgICAgIE1vZGVsVXRpbC50cnlTZXRMb29rdXBJdGVtc1Byb3BlcnRpZXModGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb29rdXBUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9va3VwVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGFQcm92aWRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFQcm92aWRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGl0ZW1zTGFiZWxQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zTGFiZWxQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGl0ZW1zTGFiZWxUcmFuc2xhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtc0xhYmVsVHJhbnNsYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXRlbXNWYWx1ZVByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNWYWx1ZVByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YUtleVByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YUtleVByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbXVsdGlzZWxlY3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tdWx0aXNlbGVjdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRyb3Bkb3duQ2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJvcGRvd25DbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtb2RlbFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbFR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJdGVtc0xhYmVsUHJvcGVydHkoaXRlbXNMYWJlbFByb3BlcnR5OiBzdHJpbmcsIHRyYW5zbGF0ZSA9IGZhbHNlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2l0ZW1zTGFiZWxQcm9wZXJ0eSA9IGl0ZW1zTGFiZWxQcm9wZXJ0eTtcbiAgICAgICAgdGhpcy5faXRlbXNMYWJlbFRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJdGVtc1ZhbHVlUHJvcGVydHkoaXRlbXNWYWx1ZVByb3BlcnR5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXRlbXNWYWx1ZVByb3BlcnR5ID0gaXRlbXNWYWx1ZVByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERhdGFLZXlQcm9wZXJ0eShkYXRhS2V5UHJvcGVydHk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9kYXRhS2V5UHJvcGVydHkgPSBkYXRhS2V5UHJvcGVydHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTG9va3VwPFM+KGxvb2t1cDogKHF1ZXJ5UGFyYW0/OiBNZWRpdXNRdWVyeVBhcmFtLCBzZXJ2aWNlPzogUywgc2VhcmNoPzogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEFycmF5PFQ+Piwgc2VydmljZVR5cGU/OiBUeXBlPFM+KTogdGhpcyB7XG4gICAgICAgIGNvbnN0IGRhdGFQcm92aWRlciA9IG5ldyBMb29rdXBEYXRhUHJvdmlkZXI8VCwgUz4odGhpcy5fbW9kZWxUeXBlKTtcbiAgICAgICAgaWYgKHNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICBkYXRhUHJvdmlkZXIud2l0aFNlcnZpY2VUeXBlKHNlcnZpY2VUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICBkYXRhUHJvdmlkZXIud2l0aExvb2t1cChsb29rdXApO1xuICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBkYXRhUHJvdmlkZXI7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTG9va3VwRGF0YVByb3ZpZGVyKGRhdGFQcm92aWRlcjogSUxvb2t1cERhdGFQcm92aWRlcjxULCBhbnk+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IGRhdGFQcm92aWRlcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhNdWx0aXNlbGVjdChtdWx0aXNlbGVjdCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5fbXVsdGlzZWxlY3QgPSBtdWx0aXNlbGVjdDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEcm9wZG93bkNsYXNzTmFtZShkcm9wZG93bkNsYXNzTmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2Ryb3Bkb3duQ2xhc3NOYW1lID0gZHJvcGRvd25DbGFzc05hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc0F1dG9jb21wbGV0ZSgpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fbG9va3VwVHlwZSA9IEZpbHRlckxvb2t1cERlc2NyaXB0b3IuTG9va3VwVHlwZUVudW0uQXV0b2NvbXBsZXRlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29weSgpOiBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPFQ+KHRoaXMuX3Byb3BlcnR5LCB0aGlzLl9tb2RlbFR5cGUpO1xuICAgICAgICB0aGlzLmNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yKTtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yOiBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPFQ+KSB7XG4gICAgICAgIHN1cGVyLmNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yKTtcbiAgICAgICAgZGVzY3JpcHRvci5fZGF0YVByb3ZpZGVyID0gdGhpcy5fZGF0YVByb3ZpZGVyO1xuICAgICAgICBkZXNjcmlwdG9yLl9sb29rdXBUeXBlID0gdGhpcy5fbG9va3VwVHlwZTtcbiAgICAgICAgZGVzY3JpcHRvci5faXRlbXNMYWJlbFByb3BlcnR5ID0gdGhpcy5faXRlbXNMYWJlbFByb3BlcnR5O1xuICAgICAgICBkZXNjcmlwdG9yLl9pdGVtc0xhYmVsVHJhbnNsYXRlID0gdGhpcy5faXRlbXNMYWJlbFRyYW5zbGF0ZTtcbiAgICAgICAgZGVzY3JpcHRvci5faXRlbXNWYWx1ZVByb3BlcnR5ID0gdGhpcy5faXRlbXNWYWx1ZVByb3BlcnR5O1xuICAgICAgICBkZXNjcmlwdG9yLl9kYXRhS2V5UHJvcGVydHkgPSB0aGlzLl9kYXRhS2V5UHJvcGVydHk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmlsdGVyTG9va3VwRW51bURlc2NyaXB0b3IgZXh0ZW5kcyBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPEVudW1WYWx1ZTxzdHJpbmcgfCBudW1iZXI+PiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZW51bVR5cGU6IEVudW1UeXBlO1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydHk6IHN0cmluZywgZW51bVR5cGU6IEVudW1UeXBlLCBvcHRpb25zPzogQXJyYXk8RW51bUNvbnN0YW50VHlwZT4sIG5hbWVBc1ZhbHVlID0gZmFsc2UsIG9wdGlvbnNUaXRsZVBhdGg/OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHN1cGVyKHByb3BlcnR5LCBudWxsKTtcbiAgICAgICAgdGhpcy5fZW51bVR5cGUgPSBlbnVtVHlwZTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zVGl0bGVQYXRoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgb3B0aW9uc1RpdGxlUGF0aCA9IFR5cGVVdGlsLmZpbmRFbnVtTmFtZShlbnVtVHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0aW9uRW51bVZhbHVlcyA9IEFycmF5LmlzQXJyYXkob3B0aW9ucylcbiAgICAgICAgICAgID8gRW51bVV0aWwuZnJvbVZhbHVlc0FzRW51bVZhbHVlQXJyYXkoZW51bVR5cGUsIG9wdGlvbnMsIG5hbWVBc1ZhbHVlLCBvcHRpb25zVGl0bGVQYXRoID8/IHVuZGVmaW5lZClcbiAgICAgICAgICAgIDogRW51bVV0aWwuZnJvbUNvbnN0YW50c0FzRW51bVZhbHVlQXJyYXkoZW51bVR5cGUsIG5hbWVBc1ZhbHVlLCBvcHRpb25zVGl0bGVQYXRoID8/IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IGRhdGFQcm92aWRlciA9IG5ldyBMb29rdXBEYXRhUHJvdmlkZXI8RW51bVZhbHVlPHN0cmluZyB8IG51bWJlcj4sIGFueT4obnVsbCkud2l0aExvb2t1cCgoKSA9PiBvZihvcHRpb25FbnVtVmFsdWVzKSk7XG4gICAgICAgIHRoaXMud2l0aExvb2t1cERhdGFQcm92aWRlcihkYXRhUHJvdmlkZXIpO1xuICAgICAgICB0aGlzLndpdGhJdGVtc0xhYmVsUHJvcGVydHkoJ3RpdGxlJywgb3B0aW9uc1RpdGxlUGF0aCAhPT0gbnVsbCk7XG4gICAgICAgIHRoaXMud2l0aEl0ZW1zVmFsdWVQcm9wZXJ0eSgndmFsdWUnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVudW1UeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW51bVR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvcHkoKTogRmlsdGVyTG9va3VwRW51bURlc2NyaXB0b3Ige1xuICAgICAgICBjb25zdCBmaWVsZCA9IG5ldyBGaWx0ZXJMb29rdXBFbnVtRGVzY3JpcHRvcih0aGlzLl9wcm9wZXJ0eSwgdGhpcy5fZW51bVR5cGUsIFtdKTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEZpbHRlckxvb2t1cERlc2NyaXB0b3Ige1xuICAgIGV4cG9ydCBlbnVtIExvb2t1cFR5cGVFbnVtIHtcbiAgICAgICAgRHJvcGRvd24sXG4gICAgICAgIEF1dG9jb21wbGV0ZVxuICAgIH1cbn1cbiJdfQ==
@@ -1,12 +1,13 @@
1
1
  import { EditorDescriptor, ModelDescriptor, TableDescriptor } from './';
2
+ var TableviewEditorTypeEnum = EditorDescriptor.TableviewEditorTypeEnum;
2
3
  export class TableviewDescriptor {
3
4
  constructor(modelType, idProperty, titleProperty) {
4
5
  this._model = new ModelDescriptor(modelType, idProperty, titleProperty);
5
6
  this._table = new TableDescriptor(modelType, idProperty, titleProperty);
6
- this._viewEditor = new EditorDescriptor(modelType, idProperty, titleProperty);
7
+ this._viewEditor = new EditorDescriptor(modelType, idProperty, titleProperty, TableviewEditorTypeEnum.View);
7
8
  this._viewEditor.withDisabled();
8
- this._addEditor = new EditorDescriptor(modelType, idProperty, titleProperty);
9
- this._editEditor = new EditorDescriptor(modelType, idProperty, titleProperty);
9
+ this._addEditor = new EditorDescriptor(modelType, idProperty, titleProperty, TableviewEditorTypeEnum.Add);
10
+ this._editEditor = new EditorDescriptor(modelType, idProperty, titleProperty, TableviewEditorTypeEnum.Edit);
10
11
  this._tableTitle = `${this._model.typeName}.name`;
11
12
  }
12
13
  get table() {
@@ -65,8 +66,8 @@ export class TableviewDescriptor {
65
66
  addColumnDate(property, displayFormat) {
66
67
  return this._table.addColumnDate(property, displayFormat);
67
68
  }
68
- addColumnBoolean(property) {
69
- return this._table.addColumnBoolean(property);
69
+ addColumnBoolean(property, yes, no, asIcon = false) {
70
+ return this._table.addColumnBoolean(property, yes, no, asIcon);
70
71
  }
71
72
  addColumnEnum(property, enumType, nameAsValue = false, titlePath) {
72
73
  return this._table.addColumnEnum(property, enumType, nameAsValue, titlePath);
@@ -131,4 +132,4 @@ export class TableviewDescriptor {
131
132
  return tableview;
132
133
  }
133
134
  }
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2Rlc2NyaXB0b3JzL3RhYmxldmlldy5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFHSCxnQkFBZ0IsRUFNaEIsZUFBZSxFQUNmLGVBQWUsRUFDbEIsTUFBTSxJQUFJLENBQUM7QUFFWixNQUFNLE9BQU8sbUJBQW1CO0lBRzVCLFlBQVksU0FBdUIsRUFBRSxVQUFtQixFQUFFLGFBQXNCO1FBQzVFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUksU0FBUyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFJLFNBQVMsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFJLFNBQVMsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUksU0FBUyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksZ0JBQWdCLENBQUksU0FBUyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLE9BQU8sQ0FBQztJQUN0RCxDQUFDO0lBSUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFJRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFJ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QUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUNwSCxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVNLElBQUk7UUFDUCxNQUFNLFNBQVMsR0FBRyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2SCxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEMsU0FBUyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBYnN0cmFjdENvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtDbGFzc1R5cGUsIEVudW1Db25zdGFudFR5cGUsIEVudW1UeXBlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1xuICAgIEFGaWVsZERlc2NyaXB0b3IsXG4gICAgQ29sdW1uRGVzY3JpcHRvcixcbiAgICBFZGl0b3JEZXNjcmlwdG9yLFxuICAgIEZpZWxkSW5wdXREZXNjcmlwdG9yLFxuICAgIEZpZWxkTG9va3VwRGVzY3JpcHRvcixcbiAgICBGaWVsZExvb2t1cEVudW1EZXNjcmlwdG9yLFxuICAgIEZpZWxkTWFueUVkaXRvckRlc2NyaXB0b3IsXG4gICAgRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvcixcbiAgICBNb2RlbERlc2NyaXB0b3IsXG4gICAgVGFibGVEZXNjcmlwdG9yXG59IGZyb20gJy4vJztcblxuZXhwb3J0IGNsYXNzIFRhYmxldmlld0Rlc2NyaXB0b3I8VD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX21vZGVsOiBNb2RlbERlc2NyaXB0b3I8VD47XG5cbiAgICBjb25zdHJ1Y3Rvcihtb2RlbFR5cGU6IENsYXNzVHlwZTxUPiwgaWRQcm9wZXJ0eT86IHN0cmluZywgdGl0bGVQcm9wZXJ0eT86IHN0cmluZykge1xuICAgICAgICB0aGlzLl9tb2RlbCA9IG5ldyBNb2RlbERlc2NyaXB0b3I8VD4obW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fdGFibGUgPSBuZXcgVGFibGVEZXNjcmlwdG9yPFQ+KG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuX3ZpZXdFZGl0b3IgPSBuZXcgRWRpdG9yRGVzY3JpcHRvcjxUPihtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHkpO1xuICAgICAgICB0aGlzLl92aWV3RWRpdG9yLndpdGhEaXNhYmxlZCgpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IgPSBuZXcgRWRpdG9yRGVzY3JpcHRvcjxUPihtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHkpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yID0gbmV3IEVkaXRvckRlc2NyaXB0b3I8VD4obW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fdGFibGVUaXRsZSA9IGAke3RoaXMuX21vZGVsLnR5cGVOYW1lfS5uYW1lYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF90YWJsZTogVGFibGVEZXNjcmlwdG9yPFQ+O1xuXG4gICAgcHVibGljIGdldCB0YWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZpZXdFZGl0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD47XG5cbiAgICBwdWJsaWMgZ2V0IHZpZXdFZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aWV3RWRpdG9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2FkZEVkaXRvcjogRWRpdG9yRGVzY3JpcHRvcjxUPjtcblxuICAgIHB1YmxpYyBnZXQgYWRkRWRpdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkRWRpdG9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2VkaXRFZGl0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD47XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRFZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0RWRpdG9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RhYmxlVGl0bGU6IHN0cmluZztcblxuICAgIHB1YmxpYyBnZXQgdGFibGVUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlVGl0bGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtb2RlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGFibGVEZXNjcmlwdG9yKGRlc2NyaXB0b3I6IFRhYmxlRGVzY3JpcHRvcjxUPik6IHRoaXMge1xuICAgICAgICB0aGlzLl90YWJsZSA9IGRlc2NyaXB0b3I7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVmlld0Rlc2NyaXB0b3IoZGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvcjxUPik6IHRoaXMge1xuICAgICAgICB0aGlzLl92aWV3RWRpdG9yID0gZGVzY3JpcHRvcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBZGREZXNjcmlwdG9yKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yID0gZGVzY3JpcHRvcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0RGVzY3JpcHRvcihkZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9yPFQ+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IgPSBkZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRhYmxlVGl0bGUodGl0bGU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl90YWJsZVRpdGxlID0gdGl0bGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVmFsaWRhdG9yKG5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gYm9vbGVhbik6IHRoaXMge1xuICAgICAgICB0aGlzLl92aWV3RWRpdG9yLmFkZFZhbGlkYXRvcihuYW1lLCBleHByZXNzaW9uKTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yLmFkZFZhbGlkYXRvcihuYW1lLCBleHByZXNzaW9uKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5hZGRWYWxpZGF0b3IobmFtZSwgZXhwcmVzc2lvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5EZXNjcmlwdG9yPENUPihjb2x1bW46IENvbHVtbkRlc2NyaXB0b3I8Q1QsIFQ+KTogVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlLmFkZENvbHVtbkRlc2NyaXB0b3I8Q1Q+KGNvbHVtbik7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbihwcm9wZXJ0eTogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxzdHJpbmcsIFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlLmFkZENvbHVtbihwcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbk51bWJlcihwcm9wZXJ0eTogc3RyaW5nLCBkaXNwbGF5Rm9ybWF0Pzogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxudW1iZXIsIFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlLmFkZENvbHVtbk51bWJlcihwcm9wZXJ0eSwgZGlzcGxheUZvcm1hdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkRhdGUocHJvcGVydHk6IHN0cmluZywgZGlzcGxheUZvcm1hdD86IHN0cmluZyk6IENvbHVtbkRlc2NyaXB0b3I8RGF0ZSwgVD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uRGF0ZShwcm9wZXJ0eSwgZGlzcGxheUZvcm1hdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkJvb2xlYW4ocHJvcGVydHk6IHN0cmluZyk6IENvbHVtbkRlc2NyaXB0b3I8Ym9vbGVhbiwgVD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uQm9vbGVhbihwcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkVudW0ocHJvcGVydHk6IHN0cmluZywgZW51bVR5cGU6IEVudW1UeXBlLCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCB0aXRsZVBhdGg/OiBzdHJpbmcgfCBudWxsKTogQ29sdW1uRGVzY3JpcHRvcjxib29sZWFuLCBUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZS5hZGRDb2x1bW5FbnVtKHByb3BlcnR5LCBlbnVtVHlwZSwgbmFtZUFzVmFsdWUsIHRpdGxlUGF0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbk9iamVjdDxDVD4ocHJvcGVydHk6IHN0cmluZywgbW9kZWxUeXBlOiBDbGFzc1R5cGU8Q1Q+LCBkaXNwbGF5UHJvcGVydHk6IHN0cmluZyk6IENvbHVtbkRlc2NyaXB0b3I8Q1QsIFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlLmFkZENvbHVtbk9iamVjdChwcm9wZXJ0eSwgbW9kZWxUeXBlLCBkaXNwbGF5UHJvcGVydHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVUYWJHcm91cChuYW1lOiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3ZpZXdFZGl0b3IuY3JlYXRlVGFiR3JvdXAobmFtZSwgdGl0bGUpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuY3JlYXRlVGFiR3JvdXAobmFtZSwgdGl0bGUpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmNyZWF0ZVRhYkdyb3VwKG5hbWUsIHRpdGxlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZUZpZWxkR3JvdXAobmFtZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl92aWV3RWRpdG9yLmNyZWF0ZUZpZWxkR3JvdXAobmFtZSwgdGl0bGUpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuY3JlYXRlRmllbGRHcm91cChuYW1lLCB0aXRsZSk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IuY3JlYXRlRmllbGRHcm91cChuYW1lLCB0aXRsZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRGaWVsZERlc2NyaXB0b3I8RlQ+KGZpZWxkOiBBRmllbGREZXNjcmlwdG9yPEZULCBUPik6IHRoaXMge1xuICAgICAgICB0aGlzLl92aWV3RWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRGaWVsZChwcm9wZXJ0eTogc3RyaW5nKTogRmllbGRJbnB1dERlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuX3ZpZXdFZGl0b3IuYWRkRmllbGQocHJvcGVydHkpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEZpZWxkTG9va3VwPEZUPihwcm9wZXJ0eTogc3RyaW5nLCBtb2RlbFR5cGU6IENsYXNzVHlwZTxGVD4pOiBGaWVsZExvb2t1cERlc2NyaXB0b3I8RlQsIFQ+IHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLl92aWV3RWRpdG9yLmFkZEZpZWxkTG9va3VwKHByb3BlcnR5LCBtb2RlbFR5cGUpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEZpZWxkTG9va3VwRW51bShcbiAgICAgICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICAgICAgZW51bVR5cGU6IEVudW1UeXBlLFxuICAgICAgICBvcHRpb25zPzogQXJyYXk8RW51bUNvbnN0YW50VHlwZT4sXG4gICAgICAgIG5hbWVBc1ZhbHVlID0gZmFsc2UsXG4gICAgICAgIG9wdGlvbnNUaXRsZVBhdGg/OiBzdHJpbmcgfCBudWxsXG4gICAgKTogRmllbGRMb29rdXBFbnVtRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5fdmlld0VkaXRvci5hZGRGaWVsZExvb2t1cEVudW0ocHJvcGVydHksIGVudW1UeXBlLCBvcHRpb25zLCBuYW1lQXNWYWx1ZSwgb3B0aW9uc1RpdGxlUGF0aCk7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkRmllbGRNYW55RWRpdG9yPEZUPihwcm9wZXJ0eTogc3RyaW5nLCB0eXBlOiBDbGFzc1R5cGU8RlQ+LCB0YWJsZXZpZXdEZXNjcmlwdG9yOiBUYWJsZXZpZXdEZXNjcmlwdG9yPEZUPik6IEZpZWxkTWFueUVkaXRvckRlc2NyaXB0b3I8RlQsIFQ+IHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLl92aWV3RWRpdG9yLmFkZEZpZWxkTWFueUVkaXRvcihwcm9wZXJ0eSwgdHlwZSwgdGFibGV2aWV3RGVzY3JpcHRvcik7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkRmllbGRNYW55VG9NYW55RWRpdG9yPEZUPihcbiAgICAgICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICAgICAgdHlwZTogQ2xhc3NUeXBlPEZUPixcbiAgICAgICAgbWFpblRhYmxlRGVzY3JpcHRvcjogVGFibGVEZXNjcmlwdG9yPEZUPixcbiAgICAgICAgbG9va3VwVGFibGVEZXNjcmlwdG9yOiBUYWJsZURlc2NyaXB0b3I8RlQ+XG4gICAgKTogRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvcjxGVCwgVD4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuX3ZpZXdFZGl0b3IuYWRkRmllbGRNYW55VG9NYW55RWRpdG9yKHByb3BlcnR5LCB0eXBlLCBtYWluVGFibGVEZXNjcmlwdG9yLCBsb29rdXBUYWJsZURlc2NyaXB0b3IpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHkoKTogVGFibGV2aWV3RGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGNvbnN0IHRhYmxldmlldyA9IG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9yKHRoaXMuX21vZGVsLnR5cGUsIHRoaXMuX21vZGVsLmlkUHJvcGVydHlOYW1lLCB0aGlzLl9tb2RlbC50aXRsZVByb3BlcnR5TmFtZSk7XG4gICAgICAgIHRhYmxldmlldy5fdGFibGUgPSB0aGlzLl90YWJsZS5jb3B5KCk7XG4gICAgICAgIHRhYmxldmlldy5fdmlld0VkaXRvciA9IHRoaXMuX3ZpZXdFZGl0b3IuY29weSgpO1xuICAgICAgICB0YWJsZXZpZXcuX2FkZEVkaXRvciA9IHRoaXMuX2FkZEVkaXRvci5jb3B5KCk7XG4gICAgICAgIHRhYmxldmlldy5fZWRpdEVkaXRvciA9IHRoaXMuX2VkaXRFZGl0b3IuY29weSgpO1xuICAgICAgICByZXR1cm4gdGFibGV2aWV3O1xuICAgIH1cbn1cbiJdfQ==
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2Rlc2NyaXB0b3JzL3RhYmxldmlldy5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFHSCxnQkFBZ0IsRUFNaEIsZUFBZSxFQUNmLGVBQWUsRUFDbEIsTUFBTSxJQUFJLENBQUM7QUFFWixJQUFPLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDO0FBRTFFLE1BQU0sT0FBTyxtQkFBbUI7SUFHNUIsWUFBWSxTQUF1QixFQUFFLFVBQW1CLEVBQUUsYUFBc0I7UUFDNUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBSSxTQUFTLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUksU0FBUyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksZ0JBQWdCLENBQUksU0FBUyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUksU0FBUyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFJLFNBQVMsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsT0FBTyxDQUFDO0lBQ3RELENBQUM7SUFJ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QUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFTSx3QkFBd0IsQ0FDM0IsUUFBZ0IsRUFDaEIsSUFBbUIsRUFDbkIsbUJBQXdDLEVBQ3hDLHFCQUEwQztRQUUxQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUNwSCxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVNLElBQUk7UUFDUCxNQUFNLFNBQVMsR0FBRyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2SCxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEMsU0FBUyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBYnN0cmFjdENvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtDbGFzc1R5cGUsIEVudW1Db25zdGFudFR5cGUsIEVudW1UeXBlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1xuICAgIEFGaWVsZERlc2NyaXB0b3IsXG4gICAgQ29sdW1uRGVzY3JpcHRvcixcbiAgICBFZGl0b3JEZXNjcmlwdG9yLFxuICAgIEZpZWxkSW5wdXREZXNjcmlwdG9yLFxuICAgIEZpZWxkTG9va3VwRGVzY3JpcHRvcixcbiAgICBGaWVsZExvb2t1cEVudW1EZXNjcmlwdG9yLFxuICAgIEZpZWxkTWFueUVkaXRvckRlc2NyaXB0b3IsXG4gICAgRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvcixcbiAgICBNb2RlbERlc2NyaXB0b3IsXG4gICAgVGFibGVEZXNjcmlwdG9yXG59IGZyb20gJy4vJztcblxuaW1wb3J0IFRhYmxldmlld0VkaXRvclR5cGVFbnVtID0gRWRpdG9yRGVzY3JpcHRvci5UYWJsZXZpZXdFZGl0b3JUeXBlRW51bTtcblxuZXhwb3J0IGNsYXNzIFRhYmxldmlld0Rlc2NyaXB0b3I8VD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX21vZGVsOiBNb2RlbERlc2NyaXB0b3I8VD47XG5cbiAgICBjb25zdHJ1Y3Rvcihtb2RlbFR5cGU6IENsYXNzVHlwZTxUPiwgaWRQcm9wZXJ0eT86IHN0cmluZywgdGl0bGVQcm9wZXJ0eT86IHN0cmluZykge1xuICAgICAgICB0aGlzLl9tb2RlbCA9IG5ldyBNb2RlbERlc2NyaXB0b3I8VD4obW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fdGFibGUgPSBuZXcgVGFibGVEZXNjcmlwdG9yPFQ+KG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuX3ZpZXdFZGl0b3IgPSBuZXcgRWRpdG9yRGVzY3JpcHRvcjxUPihtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLlZpZXcpO1xuICAgICAgICB0aGlzLl92aWV3RWRpdG9yLndpdGhEaXNhYmxlZCgpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IgPSBuZXcgRWRpdG9yRGVzY3JpcHRvcjxUPihtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkFkZCk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IgPSBuZXcgRWRpdG9yRGVzY3JpcHRvcjxUPihtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkVkaXQpO1xuICAgICAgICB0aGlzLl90YWJsZVRpdGxlID0gYCR7dGhpcy5fbW9kZWwudHlwZU5hbWV9Lm5hbWVgO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RhYmxlOiBUYWJsZURlc2NyaXB0b3I8VD47XG5cbiAgICBwdWJsaWMgZ2V0IHRhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmlld0VkaXRvcjogRWRpdG9yRGVzY3JpcHRvcjxUPjtcblxuICAgIHB1YmxpYyBnZXQgdmlld0VkaXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdFZGl0b3I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWRkRWRpdG9yOiBFZGl0b3JEZXNjcmlwdG9yPFQ+O1xuXG4gICAgcHVibGljIGdldCBhZGRFZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRFZGl0b3I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZWRpdEVkaXRvcjogRWRpdG9yRGVzY3JpcHRvcjxUPjtcblxuICAgIHB1YmxpYyBnZXQgZWRpdEVkaXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRFZGl0b3I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdGFibGVUaXRsZTogc3RyaW5nO1xuXG4gICAgcHVibGljIGdldCB0YWJsZVRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGVUaXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUYWJsZURlc2NyaXB0b3IoZGVzY3JpcHRvcjogVGFibGVEZXNjcmlwdG9yPFQ+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RhYmxlID0gZGVzY3JpcHRvcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhWaWV3RGVzY3JpcHRvcihkZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9yPFQ+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3ZpZXdFZGl0b3IgPSBkZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEFkZERlc2NyaXB0b3IoZGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvcjxUPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IgPSBkZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXREZXNjcmlwdG9yKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvciA9IGRlc2NyaXB0b3I7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGFibGVUaXRsZSh0aXRsZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RhYmxlVGl0bGUgPSB0aXRsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhWYWxpZGF0b3IobmFtZTogc3RyaW5nLCBleHByZXNzaW9uOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3ZpZXdFZGl0b3IuYWRkVmFsaWRhdG9yKG5hbWUsIGV4cHJlc3Npb24pO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuYWRkVmFsaWRhdG9yKG5hbWUsIGV4cHJlc3Npb24pO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZFZhbGlkYXRvcihuYW1lLCBleHByZXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkRlc2NyaXB0b3I8Q1Q+KGNvbHVtbjogQ29sdW1uRGVzY3JpcHRvcjxDVCwgVD4pOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uRGVzY3JpcHRvcjxDVD4oY29sdW1uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uKHByb3BlcnR5OiBzdHJpbmcpOiBDb2x1bW5EZXNjcmlwdG9yPHN0cmluZywgVD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uKHByb3BlcnR5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uTnVtYmVyKHByb3BlcnR5OiBzdHJpbmcsIGRpc3BsYXlGb3JtYXQ/OiBzdHJpbmcpOiBDb2x1bW5EZXNjcmlwdG9yPG51bWJlciwgVD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uTnVtYmVyKHByb3BlcnR5LCBkaXNwbGF5Rm9ybWF0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uRGF0ZShwcm9wZXJ0eTogc3RyaW5nLCBkaXNwbGF5Rm9ybWF0Pzogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxEYXRlLCBUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZS5hZGRDb2x1bW5EYXRlKHByb3BlcnR5LCBkaXNwbGF5Rm9ybWF0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uQm9vbGVhbihwcm9wZXJ0eTogc3RyaW5nLCB5ZXM/OiBzdHJpbmcsIG5vPzogc3RyaW5nLCBhc0ljb24gPSBmYWxzZSk6IENvbHVtbkRlc2NyaXB0b3I8Ym9vbGVhbiwgVD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uQm9vbGVhbihwcm9wZXJ0eSwgeWVzLCBubywgYXNJY29uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uRW51bShwcm9wZXJ0eTogc3RyaW5nLCBlbnVtVHlwZTogRW51bVR5cGUsIG5hbWVBc1ZhbHVlID0gZmFsc2UsIHRpdGxlUGF0aD86IHN0cmluZyB8IG51bGwpOiBDb2x1bW5EZXNjcmlwdG9yPGJvb2xlYW4sIFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlLmFkZENvbHVtbkVudW0ocHJvcGVydHksIGVudW1UeXBlLCBuYW1lQXNWYWx1ZSwgdGl0bGVQYXRoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uT2JqZWN0PENUPihwcm9wZXJ0eTogc3RyaW5nLCBtb2RlbFR5cGU6IENsYXNzVHlwZTxDVD4sIGRpc3BsYXlQcm9wZXJ0eTogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxDVCwgVD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uT2JqZWN0KHByb3BlcnR5LCBtb2RlbFR5cGUsIGRpc3BsYXlQcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVRhYkdyb3VwKG5hbWU6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdmlld0VkaXRvci5jcmVhdGVUYWJHcm91cChuYW1lLCB0aXRsZSk7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5jcmVhdGVUYWJHcm91cChuYW1lLCB0aXRsZSk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IuY3JlYXRlVGFiR3JvdXAobmFtZSwgdGl0bGUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRmllbGRHcm91cChuYW1lOiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3ZpZXdFZGl0b3IuY3JlYXRlRmllbGRHcm91cChuYW1lLCB0aXRsZSk7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5jcmVhdGVGaWVsZEdyb3VwKG5hbWUsIHRpdGxlKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5jcmVhdGVGaWVsZEdyb3VwKG5hbWUsIHRpdGxlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEZpZWxkRGVzY3JpcHRvcjxGVD4oZmllbGQ6IEFGaWVsZERlc2NyaXB0b3I8RlQsIFQ+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3ZpZXdFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEZpZWxkKHByb3BlcnR5OiBzdHJpbmcpOiBGaWVsZElucHV0RGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5fdmlld0VkaXRvci5hZGRGaWVsZChwcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkRmllbGRMb29rdXA8RlQ+KHByb3BlcnR5OiBzdHJpbmcsIG1vZGVsVHlwZTogQ2xhc3NUeXBlPEZUPik6IEZpZWxkTG9va3VwRGVzY3JpcHRvcjxGVCwgVD4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuX3ZpZXdFZGl0b3IuYWRkRmllbGRMb29rdXAocHJvcGVydHksIG1vZGVsVHlwZSk7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkRmllbGRMb29rdXBFbnVtKFxuICAgICAgICBwcm9wZXJ0eTogc3RyaW5nLFxuICAgICAgICBlbnVtVHlwZTogRW51bVR5cGUsXG4gICAgICAgIG9wdGlvbnM/OiBBcnJheTxFbnVtQ29uc3RhbnRUeXBlPixcbiAgICAgICAgbmFtZUFzVmFsdWUgPSBmYWxzZSxcbiAgICAgICAgb3B0aW9uc1RpdGxlUGF0aD86IHN0cmluZyB8IG51bGxcbiAgICApOiBGaWVsZExvb2t1cEVudW1EZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLl92aWV3RWRpdG9yLmFkZEZpZWxkTG9va3VwRW51bShwcm9wZXJ0eSwgZW51bVR5cGUsIG9wdGlvbnMsIG5hbWVBc1ZhbHVlLCBvcHRpb25zVGl0bGVQYXRoKTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRGaWVsZE1hbnlFZGl0b3I8RlQ+KHByb3BlcnR5OiBzdHJpbmcsIHR5cGU6IENsYXNzVHlwZTxGVD4sIHRhYmxldmlld0Rlc2NyaXB0b3I6IFRhYmxldmlld0Rlc2NyaXB0b3I8RlQ+KTogRmllbGRNYW55RWRpdG9yRGVzY3JpcHRvcjxGVCwgVD4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuX3ZpZXdFZGl0b3IuYWRkRmllbGRNYW55RWRpdG9yKHByb3BlcnR5LCB0eXBlLCB0YWJsZXZpZXdEZXNjcmlwdG9yKTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRGaWVsZE1hbnlUb01hbnlFZGl0b3I8RlQ+KFxuICAgICAgICBwcm9wZXJ0eTogc3RyaW5nLFxuICAgICAgICB0eXBlOiBDbGFzc1R5cGU8RlQ+LFxuICAgICAgICBtYWluVGFibGVEZXNjcmlwdG9yOiBUYWJsZURlc2NyaXB0b3I8RlQ+LFxuICAgICAgICBsb29rdXBUYWJsZURlc2NyaXB0b3I6IFRhYmxlRGVzY3JpcHRvcjxGVD5cbiAgICApOiBGaWVsZE1hbnlUb01hbnlFZGl0b3JEZXNjcmlwdG9yPEZULCBUPiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5fdmlld0VkaXRvci5hZGRGaWVsZE1hbnlUb01hbnlFZGl0b3IocHJvcGVydHksIHR5cGUsIG1haW5UYWJsZURlc2NyaXB0b3IsIGxvb2t1cFRhYmxlRGVzY3JpcHRvcik7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBUYWJsZXZpZXdEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgY29uc3QgdGFibGV2aWV3ID0gbmV3IFRhYmxldmlld0Rlc2NyaXB0b3IodGhpcy5fbW9kZWwudHlwZSwgdGhpcy5fbW9kZWwuaWRQcm9wZXJ0eU5hbWUsIHRoaXMuX21vZGVsLnRpdGxlUHJvcGVydHlOYW1lKTtcbiAgICAgICAgdGFibGV2aWV3Ll90YWJsZSA9IHRoaXMuX3RhYmxlLmNvcHkoKTtcbiAgICAgICAgdGFibGV2aWV3Ll92aWV3RWRpdG9yID0gdGhpcy5fdmlld0VkaXRvci5jb3B5KCk7XG4gICAgICAgIHRhYmxldmlldy5fYWRkRWRpdG9yID0gdGhpcy5fYWRkRWRpdG9yLmNvcHkoKTtcbiAgICAgICAgdGFibGV2aWV3Ll9lZGl0RWRpdG9yID0gdGhpcy5fZWRpdEVkaXRvci5jb3B5KCk7XG4gICAgICAgIHJldHVybiB0YWJsZXZpZXc7XG4gICAgfVxufVxuIl19
@@ -50,8 +50,7 @@ import { MngMainLayoutComponentService } from './components/layout/services';
50
50
  import { MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableviewComponent, MngTableviewRouteComponent } from './components/tableview';
51
51
  import { MngComponentDirective, MngTemplateDirective } from './directives';
52
52
  import { MngBooleanPipe, MngEnumPipe, MngI18nPropertyPipe, MngPropertyPathPipe } from './pipes';
53
- import { MngActionExecutorService, MngCommonsService, MngConfigurationService, MngNavigationService } from './services';
54
- import { MngViewContainerComponentService } from './services/mng-view-container-component.service';
53
+ import { DefaultMngErrorMapperService, MngActionExecutorService, MngCommonsService, MngConfigurationService, MngErrorMapperService, MngNavigationService, MngViewContainerComponentService } from './services';
55
54
  import { mngCommonsInitializerProvider, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider } from './services/providers';
56
55
  import { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, MNG_MODULE_CONFIG_IT } from './services/tokens';
57
56
  import * as i0 from "@angular/core";
@@ -186,6 +185,10 @@ export class MngCommonsModule {
186
185
  {
187
186
  provide: ACTION_EDITOR_DIALOG_COMPONENT_SETTING,
188
187
  useValue: MngActionEditorComponent
188
+ },
189
+ {
190
+ provide: MngErrorMapperService,
191
+ useClass: DefaultMngErrorMapperService
189
192
  }
190
193
  ]
191
194
  };
@@ -412,4 +415,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
412
415
  exports: [...primeNgModules, ...declarations]
413
416
  }]
414
417
  }] });
415
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW5nLWNvbW1vbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tbmctY29tbW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZUFBZSxFQUF1QixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBQyxrQkFB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QUNoQixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsU0FBUztRQUNULFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGFBQWE7UUFDYixjQUFjO1FBQ2QscUJBQXFCO1FBQ3JCLGFBQWE7UUFDYixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLGNBQWM7MkZBd0VMLGdCQUFnQjtrQkFsQjVCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUVuQixnQkFBZ0I7d0JBQ2hCLGVBQWUsQ0FBQyxRQUFRLENBQUM7NEJBQ3JCLE1BQU0sRUFBRSxJQUFJO3lCQUNmLENBQUM7d0JBQ0YsWUFBWSxDQUFDLFFBQVEsRUFBRTt3QkFDdkIsR0FBRyxjQUFjO3FCQUNwQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsR0FBRyxjQUFjLEVBQUUsR0FBRyxZQUFZLENBQUM7aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBDbGllbnRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7QVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0ZPUk1MWV9DT05GSUcsIEZvcm1seU1vZHVsZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0F1dG9Db21wbGV0ZU1vZHVsZX0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtCcmVhZGNydW1iTW9kdWxlfSBmcm9tICdwcmltZW5nL2JyZWFkY3J1bWInO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7Q2FsZW5kYXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHtDYXJkTW9kdWxlfSBmcm9tICdwcmltZW5nL2NhcmQnO1xuaW1wb3J0IHtDaGVja2JveE1vZHVsZX0gZnJvbSAncHJpbWVuZy9jaGVja2JveCc7XG5pbXBvcnQge0NoaXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvY2hpcCc7XG5pbXBvcnQge0NvbmZpcm1EaWFsb2dNb2R1bGV9IGZyb20gJ3ByaW1lbmcvY29uZmlybWRpYWxvZyc7XG5pbXBvcnQge0NvbmZpcm1Qb3B1cE1vZHVsZX0gZnJvbSAncHJpbWVuZy9jb25maXJtcG9wdXAnO1xuaW1wb3J0IHtEaWFsb2dNb2R1bGV9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcbmltcG9ydCB7RHJvcGRvd25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nTW9kdWxlfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHtGaWVsZHNldE1vZHVsZX0gZnJvbSAncHJpbWVuZy9maWVsZHNldCc7XG5pbXBvcnQge0ZpbGVVcGxvYWRNb2R1bGV9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XG5pbXBvcnQge0lucHV0TWFza01vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dG1hc2snO1xuaW1wb3J0IHtJbnB1dE51bWJlck1vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dG51bWJlcic7XG5pbXBvcnQge0lucHV0U3dpdGNoTW9kdWxlfSBmcm9tICdwcmltZW5nL2lucHV0c3dpdGNoJztcbmltcG9ydCB7SW5wdXRUZXh0TW9kdWxlfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dCc7XG5pbXBvcnQge0lucHV0VGV4dGFyZWFNb2R1bGV9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0YXJlYSc7XG5pbXBvcnQge01lc3NhZ2VzTW9kdWxlfSBmcm9tICdwcmltZW5nL21lc3NhZ2VzJztcbmltcG9ydCB7TXVsdGlTZWxlY3RNb2R1bGV9IGZyb20gJ3ByaW1lbmcvbXVsdGlzZWxlY3QnO1xuaW1wb3J0IHtQYWdpbmF0b3JNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcGFnaW5hdG9yJztcbmltcG9ydCB7UHJvZ3Jlc3NTcGlubmVyTW9kdWxlfSBmcm9tICdwcmltZW5nL3Byb2dyZXNzc3Bpbm5lcic7XG5pbXBvcnQge1JhZGlvQnV0dG9uTW9kdWxlfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQge1NlbGVjdEJ1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9zZWxlY3RidXR0b24nO1xuaW1wb3J0IHtTa2VsZXRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9za2VsZXRvbic7XG5pbXBvcnQge1RhYmxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7VGFiVmlld01vZHVsZX0gZnJvbSAncHJpbWVuZy90YWJ2aWV3JztcbmltcG9ydCB7VGFnTW9kdWxlfSBmcm9tICdwcmltZW5nL3RhZyc7XG5pbXBvcnQge1RvYXN0TW9kdWxlfSBmcm9tICdwcmltZW5nL3RvYXN0JztcbmltcG9ydCB7VG9nZ2xlQnV0dG9uTW9kdWxlfSBmcm9tICdwcmltZW5nL3RvZ2dsZWJ1dHRvbic7XG5pbXBvcnQge1Rvb2xiYXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbGJhcic7XG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5cbmltcG9ydCB7T2JqZWN0U2VyaWFsaXplcn0gZnJvbSAnLi9hcGkvdXRpbHMnO1xuaW1wb3J0IHtNbmdBY3Rpb25Db21wb25lbnQsIE1uZ0FjdGlvbkVkaXRvckNvbXBvbmVudCwgTW5nQWN0aW9uUm91dGVDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpb24nO1xuaW1wb3J0IHtNbmdBdXRvY29tcGxldGVDb21wb25lbnQsIE1uZ0Ryb3Bkb3duQ29tcG9uZW50LCBNbmdGb3JtRWRpdG9yQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQge1xuICAgIE1uZ0Zvcm1seUZpZWxkQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIE1uZ0Zvcm1seUZpZWxkRHJvcGRvd25Db21wb25lbnQsXG4gICAgTW5nRm9ybWx5RmllbGRGaWVsZHNldENvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZElucHV0Q29tcG9uZW50LFxuICAgIE1uZ0Zvcm1seUZpZWxkTG9va3VwRGlhbG9nQ29tcG9uZW50LFxuICAgIE1uZ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dGb3JtQ29tcG9uZW50LFxuICAgIE1uZ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZFRhYnNDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L2ZpZWxkcyc7XG5pbXBvcnQge01uZ0Zvcm1seUZpZWxkV3JhcHBlckNvbXBvbmVudCwgTW5nRm9ybWx5VGFibGVXcmFwcGVyQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvd3JhcHBlcnMnO1xuaW1wb3J0IHtNbmdCcmVhZGNydW1iQ29tcG9uZW50LCBNbmdGb290ZXJDb21wb25lbnQsIE1uZ01haW5MYXlvdXRDb21wb25lbnQsIE1uZ01lbnVDb21wb25lbnQsIE1uZ01lbnVJdGVtQ29tcG9uZW50LCBNbmdUb3BiYXJDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9sYXlvdXQnO1xuaW1wb3J0IHtNbmdNYWluTGF5b3V0Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC9zZXJ2aWNlcyc7XG5pbXBvcnQge01uZ1RhYmxlQ29sdW1uRmlsdGVyQ29tcG9uZW50LCBNbmdUYWJsZUNvbHVtblZhbHVlQ29tcG9uZW50LCBNbmdUYWJsZUNvbXBvbmVudCwgTW5nVGFibGV2aWV3Q29tcG9uZW50LCBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxldmlldyc7XG5pbXBvcnQge01uZ01vZHVsZUNvbmZpZ30gZnJvbSAnLi9jb25maWcvbW9kZWxzJztcbmltcG9ydCB7TW5nQ29tcG9uZW50RGlyZWN0aXZlLCBNbmdUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7TW5nQm9vbGVhblBpcGUsIE1uZ0VudW1QaXBlLCBNbmdJMThuUHJvcGVydHlQaXBlLCBNbmdQcm9wZXJ0eVBhdGhQaXBlfSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7TW5nQWN0aW9uRXhlY3V0b3JTZXJ2aWNlLCBNbmdDb21tb25zU2VydmljZSwgTW5nQ29uZmlndXJhdGlvblNlcnZpY2UsIE1uZ05hdmlnYXRpb25TZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7TW5nVmlld0NvbnRhaW5lckNvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvbW5nLXZpZXctY29udGFpbmVyLWNvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7bW5nQ29tbW9uc0luaXRpYWxpemVyUHJvdmlkZXIsIG1uZ0NvbmZpZ0pzb25BcHBJbml0aWFsaXplclByb3ZpZGVyLCBtbmdDb25maWd1cmF0aW9uU2VydmljZVByb3ZpZGVyLCBtbmdGb3JtbHlDb25maWdQcm92aWRlcn0gZnJvbSAnLi9zZXJ2aWNlcy9wcm92aWRlcnMnO1xuaW1wb3J0IHtBQ1RJT05fRURJVE9SX0RJQUxPR19DT01QT05FTlRfU0VUVElORywgTU5HX01PRFVMRV9DT05GSUdfSVR9IGZyb20gJy4vc2VydmljZXMvdG9rZW5zJztcblxuLy8gcHJpbWVuZyBtb2R1bGVzXG5leHBvcnQgY29uc3QgcHJpbWVOZ01vZHVsZXMgPSBbXG4gICAgQXV0b0NvbXBsZXRlTW9kdWxlLFxuICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIENhbGVuZGFyTW9kdWxlLFxuICAgIENhcmRNb2R1bGUsXG4gICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgQ2hpcE1vZHVsZSxcbiAgICBDb25maXJtRGlhbG9nTW9kdWxlLFxuICAgIENvbmZpcm1Qb3B1cE1vZHVsZSxcbiAgICBEaWFsb2dNb2R1bGUsXG4gICAgRHluYW1pY0RpYWxvZ01vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBGaWxlVXBsb2FkTW9kdWxlLFxuICAgIElucHV0TnVtYmVyTW9kdWxlLFxuICAgIElucHV0TWFza01vZHVsZSxcbiAgICBJbnB1dFN3aXRjaE1vZHVsZSxcbiAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgSW5wdXRUZXh0YXJlYU1vZHVsZSxcbiAgICBQYWdpbmF0b3JNb2R1bGUsXG4gICAgUmFkaW9CdXR0b25Nb2R1bGUsXG4gICAgUmlwcGxlTW9kdWxlLFxuICAgIFNlbGVjdEJ1dHRvbk1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBUYWdNb2R1bGUsXG4gICAgVG9hc3RNb2R1bGUsXG4gICAgVG9nZ2xlQnV0dG9uTW9kdWxlLFxuICAgIFRvb2xiYXJNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBNZXNzYWdlc01vZHVsZSxcbiAgICBQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgVGFiVmlld01vZHVsZSxcbiAgICBGaWVsZHNldE1vZHVsZSxcbiAgICBNdWx0aVNlbGVjdE1vZHVsZSxcbiAgICBTa2VsZXRvbk1vZHVsZVxuXTtcblxuY29uc3QgZGVjbGFyYXRpb25zID0gW1xuICAgIC8vIGRpcmVjdGl2ZXNcbiAgICBNbmdDb21wb25lbnREaXJlY3RpdmUsXG4gICAgTW5nVGVtcGxhdGVEaXJlY3RpdmUsXG5cbiAgICAvLyBwaXBlc1xuICAgIE1uZ1Byb3BlcnR5UGF0aFBpcGUsXG4gICAgTW5nRW51bVBpcGUsXG4gICAgTW5nQm9vbGVhblBpcGUsXG4gICAgTW5nSTE4blByb3BlcnR5UGlwZSxcblxuICAgIC8vIGxheW91dCBjb21wb25lbnRzXG4gICAgTW5nQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBNbmdGb290ZXJDb21wb25lbnQsXG4gICAgTW5nTWFpbkxheW91dENvbXBvbmVudCxcbiAgICBNbmdNZW51Q29tcG9uZW50LFxuICAgIE1uZ01lbnVJdGVtQ29tcG9uZW50LFxuICAgIE1uZ1RvcGJhckNvbXBvbmVudCxcblxuICAgIC8vIG1uZyBmaWVsZHNcbiAgICBNbmdBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgTW5nRHJvcGRvd25Db21wb25lbnQsXG5cbiAgICAvLyBmb3JtbHkgd3JhcHBlcnNcbiAgICBNbmdGb3JtbHlGaWVsZFdyYXBwZXJDb21wb25lbnQsXG4gICAgTW5nRm9ybWx5VGFibGVXcmFwcGVyQ29tcG9uZW50LFxuXG4gICAgLy8gZm9ybWx5IGZpZWxkc1xuICAgIE1uZ0Zvcm1seUZpZWxkSW5wdXRDb21wb25lbnQsXG4gICAgTW5nRm9ybWx5RmllbGREcm9wZG93bkNvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZExvb2t1cERpYWxvZ0NvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZFRhYmxlRGlhbG9nTXVsdGlzZWxlY3RDb21wb25lbnQsXG4gICAgTW5nRm9ybWx5RmllbGRUYWJsZURpYWxvZ0Zvcm1Db21wb25lbnQsXG4gICAgTW5nRm9ybWx5RmllbGRUYWJzQ29tcG9uZW50LFxuICAgIE1uZ0Zvcm1seUZpZWxkRmllbGRzZXRDb21wb25lbnQsXG5cbiAgICAvLyB0YWJsZSBjb21wb25lbnRzXG4gICAgTW5nVGFibGVDb21wb25lbnQsXG4gICAgTW5nVGFibGV2aWV3Q29tcG9uZW50LFxuICAgIE1uZ1RhYmxlQ29sdW1uVmFsdWVDb21wb25lbnQsXG4gICAgTW5nVGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnQsXG4gICAgTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQsXG5cbiAgICAvLyBlZGl0b3IgY29tcG9uZW50c1xuICAgIE1uZ0Zvcm1FZGl0b3JDb21wb25lbnQsXG4gICAgTW5nQWN0aW9uQ29tcG9uZW50LFxuICAgIE1uZ0FjdGlvbkVkaXRvckNvbXBvbmVudCxcbiAgICBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIGFuZ3VsYXIgbW9kdWxlc1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcblxuICAgICAgICAvLyBvdGhlciBtb2R1bGVzXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCh7XG4gICAgICAgICAgICBleHRlbmQ6IHRydWVcbiAgICAgICAgfSksXG4gICAgICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgICAgICAuLi5wcmltZU5nTW9kdWxlc1xuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbLi4uZGVjbGFyYXRpb25zXSxcbiAgICBleHBvcnRzOiBbLi4ucHJpbWVOZ01vZHVsZXMsIC4uLmRlY2xhcmF0aW9uc11cbn0pXG5leHBvcnQgY2xhc3MgTW5nQ29tbW9uc01vZHVsZSB7XG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBNbmdNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE1uZ0NvbW1vbnNNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBNbmdDb21tb25zTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgLy8gcHJpbWVuZyBzZXJ2aWNlc1xuICAgICAgICAgICAgICAgIERpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQ29uZmlybWF0aW9uU2VydmljZSxcblxuICAgICAgICAgICAgICAgIE1uZ0FjdGlvbkV4ZWN1dG9yU2VydmljZSxcbiAgICAgICAgICAgICAgICBNbmdOYXZpZ2F0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBNbmdDb21tb25zU2VydmljZSxcblxuICAgICAgICAgICAgICAgIC8vIGNvbXBvbmVudCBzZXJ2aWNlXG4gICAgICAgICAgICAgICAgTW5nTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgTW5nVmlld0NvbnRhaW5lckNvbXBvbmVudFNlcnZpY2UsXG5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE1OR19NT0RVTEVfQ09ORklHX0lULFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE9iamVjdFNlcmlhbGl6ZXIsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTW5nQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IG1uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBNTkdfTU9EVUxFX0NPTkZJR19JVF1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBtbmdDb25maWdKc29uQXBwSW5pdGlhbGl6ZXJQcm92aWRlcixcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW01uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlLCBNTkdfTU9EVUxFX0NPTkZJR19JVF0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogbW5nQ29tbW9uc0luaXRpYWxpemVyUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtNbmdDb21tb25zU2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEZPUk1MWV9DT05GSUcsXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBtbmdGb3JtbHlDb25maWdQcm92aWRlcixcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW1RyYW5zbGF0ZVNlcnZpY2UsIE1OR19NT0RVTEVfQ09ORklHX0lUXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBQ1RJT05fRURJVE9SX0RJQUxPR19DT01QT05FTlRfU0VUVElORyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IE1uZ0FjdGlvbkVkaXRvckNvbXBvbmVudFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
418
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW5nLWNvbW1vbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tbmctY29tbW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZUFBZSxFQUF1QixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBQyxrQkFB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Q25CLGtCQUFrQjtRQUNsQixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsV0FBVztRQUNYLFNBQVM7UUFDVCxXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixhQUFhO1FBQ2IsY0FBYztRQUNkLHFCQUFxQjtRQUNyQixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixjQUFjOzJGQXdFTCxnQkFBZ0I7a0JBbEI1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFFbkIsZ0JBQWdCO3dCQUNoQixlQUFlLENBQUMsUUFBUSxDQUFDOzRCQUNyQixNQUFNLEVBQUUsSUFBSTt5QkFDZixDQUFDO3dCQUNGLFlBQVksQ0FBQyxRQUFRLEVBQUU7d0JBQ3ZCLEdBQUcsY0FBYztxQkFDcEI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLEdBQUcsY0FBYyxFQUFFLEdBQUcsWUFBWSxDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwQ2xpZW50TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0FQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtGT1JNTFlfQ09ORklHLCBGb3JtbHlNb2R1bGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtBdXRvQ29tcGxldGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7QnJlYWRjcnVtYk1vZHVsZX0gZnJvbSAncHJpbWVuZy9icmVhZGNydW1iJztcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQge0NhbGVuZGFyTW9kdWxlfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7Q2FyZE1vZHVsZX0gZnJvbSAncHJpbWVuZy9jYXJkJztcbmltcG9ydCB7Q2hlY2tib3hNb2R1bGV9IGZyb20gJ3ByaW1lbmcvY2hlY2tib3gnO1xuaW1wb3J0IHtDaGlwTW9kdWxlfSBmcm9tICdwcmltZW5nL2NoaXAnO1xuaW1wb3J0IHtDb25maXJtRGlhbG9nTW9kdWxlfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuaW1wb3J0IHtDb25maXJtUG9wdXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvY29uZmlybXBvcHVwJztcbmltcG9ydCB7RGlhbG9nTW9kdWxlfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQge0Ryb3Bkb3duTW9kdWxlfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7RGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ01vZHVsZX0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7RmllbGRzZXRNb2R1bGV9IGZyb20gJ3ByaW1lbmcvZmllbGRzZXQnO1xuaW1wb3J0IHtGaWxlVXBsb2FkTW9kdWxlfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xuaW1wb3J0IHtJbnB1dE1hc2tNb2R1bGV9IGZyb20gJ3ByaW1lbmcvaW5wdXRtYXNrJztcbmltcG9ydCB7SW5wdXROdW1iZXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvaW5wdXRudW1iZXInO1xuaW1wb3J0IHtJbnB1dFN3aXRjaE1vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dHN3aXRjaCc7XG5pbXBvcnQge0lucHV0VGV4dE1vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHtJbnB1dFRleHRhcmVhTW9kdWxlfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dGFyZWEnO1xuaW1wb3J0IHtNZXNzYWdlc01vZHVsZX0gZnJvbSAncHJpbWVuZy9tZXNzYWdlcyc7XG5pbXBvcnQge011bHRpU2VsZWN0TW9kdWxlfSBmcm9tICdwcmltZW5nL211bHRpc2VsZWN0JztcbmltcG9ydCB7UGFnaW5hdG9yTW9kdWxlfSBmcm9tICdwcmltZW5nL3BhZ2luYXRvcic7XG5pbXBvcnQge1Byb2dyZXNzU3Bpbm5lck1vZHVsZX0gZnJvbSAncHJpbWVuZy9wcm9ncmVzc3NwaW5uZXInO1xuaW1wb3J0IHtSYWRpb0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9yYWRpb2J1dHRvbic7XG5pbXBvcnQge1JpcHBsZU1vZHVsZX0gZnJvbSAncHJpbWVuZy9yaXBwbGUnO1xuaW1wb3J0IHtTZWxlY3RCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvc2VsZWN0YnV0dG9uJztcbmltcG9ydCB7U2tlbGV0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvc2tlbGV0b24nO1xuaW1wb3J0IHtUYWJsZU1vZHVsZX0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQge1RhYlZpZXdNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdGFidmlldyc7XG5pbXBvcnQge1RhZ01vZHVsZX0gZnJvbSAncHJpbWVuZy90YWcnO1xuaW1wb3J0IHtUb2FzdE1vZHVsZX0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQge1RvZ2dsZUJ1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy90b2dnbGVidXR0b24nO1xuaW1wb3J0IHtUb29sYmFyTW9kdWxlfSBmcm9tICdwcmltZW5nL3Rvb2xiYXInO1xuaW1wb3J0IHtUb29sdGlwTW9kdWxlfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuXG5pbXBvcnQge09iamVjdFNlcmlhbGl6ZXJ9IGZyb20gJy4vYXBpL3V0aWxzJztcbmltcG9ydCB7TW5nQWN0aW9uQ29tcG9uZW50LCBNbmdBY3Rpb25FZGl0b3JDb21wb25lbnQsIE1uZ0FjdGlvblJvdXRlQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvYWN0aW9uJztcbmltcG9ydCB7TW5nQXV0b2NvbXBsZXRlQ29tcG9uZW50LCBNbmdEcm9wZG93bkNvbXBvbmVudCwgTW5nRm9ybUVkaXRvckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHtcbiAgICBNbmdGb3JtbHlGaWVsZEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZERyb3Bkb3duQ29tcG9uZW50LFxuICAgIE1uZ0Zvcm1seUZpZWxkRmllbGRzZXRDb21wb25lbnQsXG4gICAgTW5nRm9ybWx5RmllbGRJbnB1dENvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZExvb2t1cERpYWxvZ0NvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZFRhYmxlRGlhbG9nRm9ybUNvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZFRhYmxlRGlhbG9nTXVsdGlzZWxlY3RDb21wb25lbnQsXG4gICAgTW5nRm9ybWx5RmllbGRUYWJzQ29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy9mb3JtL2Zvcm1seS9maWVsZHMnO1xuaW1wb3J0IHtNbmdGb3JtbHlGaWVsZFdyYXBwZXJDb21wb25lbnQsIE1uZ0Zvcm1seVRhYmxlV3JhcHBlckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L3dyYXBwZXJzJztcbmltcG9ydCB7TW5nQnJlYWRjcnVtYkNvbXBvbmVudCwgTW5nRm9vdGVyQ29tcG9uZW50LCBNbmdNYWluTGF5b3V0Q29tcG9uZW50LCBNbmdNZW51Q29tcG9uZW50LCBNbmdNZW51SXRlbUNvbXBvbmVudCwgTW5nVG9wYmFyQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0JztcbmltcG9ydCB7TW5nTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4vY29tcG9uZW50cy9sYXlvdXQvc2VydmljZXMnO1xuaW1wb3J0IHtNbmdUYWJsZUNvbHVtbkZpbHRlckNvbXBvbmVudCwgTW5nVGFibGVDb2x1bW5WYWx1ZUNvbXBvbmVudCwgTW5nVGFibGVDb21wb25lbnQsIE1uZ1RhYmxldmlld0NvbXBvbmVudCwgTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZXZpZXcnO1xuaW1wb3J0IHtNbmdNb2R1bGVDb25maWd9IGZyb20gJy4vY29uZmlnL21vZGVscyc7XG5pbXBvcnQge01uZ0NvbXBvbmVudERpcmVjdGl2ZSwgTW5nVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQge01uZ0Jvb2xlYW5QaXBlLCBNbmdFbnVtUGlwZSwgTW5nSTE4blByb3BlcnR5UGlwZSwgTW5nUHJvcGVydHlQYXRoUGlwZX0gZnJvbSAnLi9waXBlcyc7XG5pbXBvcnQge1xuICAgIERlZmF1bHRNbmdFcnJvck1hcHBlclNlcnZpY2UsXG4gICAgTW5nQWN0aW9uRXhlY3V0b3JTZXJ2aWNlLFxuICAgIE1uZ0NvbW1vbnNTZXJ2aWNlLFxuICAgIE1uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIE1uZ0Vycm9yTWFwcGVyU2VydmljZSxcbiAgICBNbmdOYXZpZ2F0aW9uU2VydmljZSxcbiAgICBNbmdWaWV3Q29udGFpbmVyQ29tcG9uZW50U2VydmljZVxufSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7bW5nQ29tbW9uc0luaXRpYWxpemVyUHJvdmlkZXIsIG1uZ0NvbmZpZ0pzb25BcHBJbml0aWFsaXplclByb3ZpZGVyLCBtbmdDb25maWd1cmF0aW9uU2VydmljZVByb3ZpZGVyLCBtbmdGb3JtbHlDb25maWdQcm92aWRlcn0gZnJvbSAnLi9zZXJ2aWNlcy9wcm92aWRlcnMnO1xuaW1wb3J0IHtBQ1RJT05fRURJVE9SX0RJQUxPR19DT01QT05FTlRfU0VUVElORywgTU5HX01PRFVMRV9DT05GSUdfSVR9IGZyb20gJy4vc2VydmljZXMvdG9rZW5zJztcblxuLy8gcHJpbWVuZyBtb2R1bGVzXG5leHBvcnQgY29uc3QgcHJpbWVOZ01vZHVsZXMgPSBbXG4gICAgQXV0b0NvbXBsZXRlTW9kdWxlLFxuICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIENhbGVuZGFyTW9kdWxlLFxuICAgIENhcmRNb2R1bGUsXG4gICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgQ2hpcE1vZHVsZSxcbiAgICBDb25maXJtRGlhbG9nTW9kdWxlLFxuICAgIENvbmZpcm1Qb3B1cE1vZHVsZSxcbiAgICBEaWFsb2dNb2R1bGUsXG4gICAgRHluYW1pY0RpYWxvZ01vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBGaWxlVXBsb2FkTW9kdWxlLFxuICAgIElucHV0TnVtYmVyTW9kdWxlLFxuICAgIElucHV0TWFza01vZHVsZSxcbiAgICBJbnB1dFN3aXRjaE1vZHVsZSxcbiAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgSW5wdXRUZXh0YXJlYU1vZHVsZSxcbiAgICBQYWdpbmF0b3JNb2R1bGUsXG4gICAgUmFkaW9CdXR0b25Nb2R1bGUsXG4gICAgUmlwcGxlTW9kdWxlLFxuICAgIFNlbGVjdEJ1dHRvbk1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBUYWdNb2R1bGUsXG4gICAgVG9hc3RNb2R1bGUsXG4gICAgVG9nZ2xlQnV0dG9uTW9kdWxlLFxuICAgIFRvb2xiYXJNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBNZXNzYWdlc01vZHVsZSxcbiAgICBQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgVGFiVmlld01vZHVsZSxcbiAgICBGaWVsZHNldE1vZHVsZSxcbiAgICBNdWx0aVNlbGVjdE1vZHVsZSxcbiAgICBTa2VsZXRvbk1vZHVsZVxuXTtcblxuY29uc3QgZGVjbGFyYXRpb25zID0gW1xuICAgIC8vIGRpcmVjdGl2ZXNcbiAgICBNbmdDb21wb25lbnREaXJlY3RpdmUsXG4gICAgTW5nVGVtcGxhdGVEaXJlY3RpdmUsXG5cbiAgICAvLyBwaXBlc1xuICAgIE1uZ1Byb3BlcnR5UGF0aFBpcGUsXG4gICAgTW5nRW51bVBpcGUsXG4gICAgTW5nQm9vbGVhblBpcGUsXG4gICAgTW5nSTE4blByb3BlcnR5UGlwZSxcblxuICAgIC8vIGxheW91dCBjb21wb25lbnRzXG4gICAgTW5nQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBNbmdGb290ZXJDb21wb25lbnQsXG4gICAgTW5nTWFpbkxheW91dENvbXBvbmVudCxcbiAgICBNbmdNZW51Q29tcG9uZW50LFxuICAgIE1uZ01lbnVJdGVtQ29tcG9uZW50LFxuICAgIE1uZ1RvcGJhckNvbXBvbmVudCxcblxuICAgIC8vIG1uZyBmaWVsZHNcbiAgICBNbmdBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgTW5nRHJvcGRvd25Db21wb25lbnQsXG5cbiAgICAvLyBmb3JtbHkgd3JhcHBlcnNcbiAgICBNbmdGb3JtbHlGaWVsZFdyYXBwZXJDb21wb25lbnQsXG4gICAgTW5nRm9ybWx5VGFibGVXcmFwcGVyQ29tcG9uZW50LFxuXG4gICAgLy8gZm9ybWx5IGZpZWxkc1xuICAgIE1uZ0Zvcm1seUZpZWxkSW5wdXRDb21wb25lbnQsXG4gICAgTW5nRm9ybWx5RmllbGREcm9wZG93bkNvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZExvb2t1cERpYWxvZ0NvbXBvbmVudCxcbiAgICBNbmdGb3JtbHlGaWVsZFRhYmxlRGlhbG9nTXVsdGlzZWxlY3RDb21wb25lbnQsXG4gICAgTW5nRm9ybWx5RmllbGRUYWJsZURpYWxvZ0Zvcm1Db21wb25lbnQsXG4gICAgTW5nRm9ybWx5RmllbGRUYWJzQ29tcG9uZW50LFxuICAgIE1uZ0Zvcm1seUZpZWxkRmllbGRzZXRDb21wb25lbnQsXG5cbiAgICAvLyB0YWJsZSBjb21wb25lbnRzXG4gICAgTW5nVGFibGVDb21wb25lbnQsXG4gICAgTW5nVGFibGV2aWV3Q29tcG9uZW50LFxuICAgIE1uZ1RhYmxlQ29sdW1uVmFsdWVDb21wb25lbnQsXG4gICAgTW5nVGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnQsXG4gICAgTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQsXG5cbiAgICAvLyBlZGl0b3IgY29tcG9uZW50c1xuICAgIE1uZ0Zvcm1FZGl0b3JDb21wb25lbnQsXG4gICAgTW5nQWN0aW9uQ29tcG9uZW50LFxuICAgIE1uZ0FjdGlvbkVkaXRvckNvbXBvbmVudCxcbiAgICBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIGFuZ3VsYXIgbW9kdWxlc1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcblxuICAgICAgICAvLyBvdGhlciBtb2R1bGVzXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCh7XG4gICAgICAgICAgICBleHRlbmQ6IHRydWVcbiAgICAgICAgfSksXG4gICAgICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgICAgICAuLi5wcmltZU5nTW9kdWxlc1xuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbLi4uZGVjbGFyYXRpb25zXSxcbiAgICBleHBvcnRzOiBbLi4ucHJpbWVOZ01vZHVsZXMsIC4uLmRlY2xhcmF0aW9uc11cbn0pXG5leHBvcnQgY2xhc3MgTW5nQ29tbW9uc01vZHVsZSB7XG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBNbmdNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE1uZ0NvbW1vbnNNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBNbmdDb21tb25zTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgLy8gcHJpbWVuZyBzZXJ2aWNlc1xuICAgICAgICAgICAgICAgIERpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQ29uZmlybWF0aW9uU2VydmljZSxcblxuICAgICAgICAgICAgICAgIE1uZ0FjdGlvbkV4ZWN1dG9yU2VydmljZSxcbiAgICAgICAgICAgICAgICBNbmdOYXZpZ2F0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBNbmdDb21tb25zU2VydmljZSxcblxuICAgICAgICAgICAgICAgIC8vIGNvbXBvbmVudCBzZXJ2aWNlXG4gICAgICAgICAgICAgICAgTW5nTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgTW5nVmlld0NvbnRhaW5lckNvbXBvbmVudFNlcnZpY2UsXG5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE1OR19NT0RVTEVfQ09ORklHX0lULFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE9iamVjdFNlcmlhbGl6ZXIsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTW5nQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IG1uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBNTkdfTU9EVUxFX0NPTkZJR19JVF1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBtbmdDb25maWdKc29uQXBwSW5pdGlhbGl6ZXJQcm92aWRlcixcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW01uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlLCBNTkdfTU9EVUxFX0NPTkZJR19JVF0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogbW5nQ29tbW9uc0luaXRpYWxpemVyUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtNbmdDb21tb25zU2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEZPUk1MWV9DT05GSUcsXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBtbmdGb3JtbHlDb25maWdQcm92aWRlcixcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW1RyYW5zbGF0ZVNlcnZpY2UsIE1OR19NT0RVTEVfQ09ORklHX0lUXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBQ1RJT05fRURJVE9SX0RJQUxPR19DT01QT05FTlRfU0VUVElORyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IE1uZ0FjdGlvbkVkaXRvckNvbXBvbmVudFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBNbmdFcnJvck1hcHBlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBEZWZhdWx0TW5nRXJyb3JNYXBwZXJTZXJ2aWNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL2VudW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRW51bVZhbHVlPFQ+IHtcbiAgICBuYW1lPzogc3RyaW5nOyAvLyB1c2VkIHRvIHN0b3JlIG9yaWdpbmFsIGVudW0gb3B0aW9uIG5hbWUgZm9yIHZhbHVlXG4gICAgdmFsdWU6IFQ7XG4gICAgdGl0bGU6IHN0cmluZztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL2VudW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRW51bVZhbHVlPFQ+IHtcbiAgICBuYW1lPzogc3RyaW5nOyAvLyB1c2VkIHRvIHN0b3JlIG9yaWdpbmFsIGVudW0gb3B0aW9uIG5hbWUgZm9yIHZhbHVlXG4gICAgdmFsdWU6IFQ7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9lcnJvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJZFR5cGV9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBNbmdFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBpZD86IElkVHlwZTtcbiAgICBtZXNzYWdlQ29kZT86IG51bWJlciB8IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgZGV0YWlscz86IGFueTtcbiAgICBzdGF0dXM/OiBudW1iZXI7XG4gICAgc3RhdHVzRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgc3RhY2s/OiBzdHJpbmc7XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIGNhdXNlPzogRXJyb3I7XG59XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  export * from './enum.model';
2
+ export * from './error.model';
2
3
  export * from './menu.model';
3
4
  export * from './user.model';
4
5
  export * from './view-container.model';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnVtLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbWVudS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3LWNvbnRhaW5lci5tb2RlbCc7XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnVtLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3IubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZXctY29udGFpbmVyLm1vZGVsJztcbiJdfQ==