@mediusinc/mng-commons 5.2.0 → 5.3.0-rc.1

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 (102) hide show
  1. package/core/components/pages/error/error.page.component.d.ts +3 -0
  2. package/core/components/pages/not-found/not-found.page.component.d.ts +3 -0
  3. package/core/descriptors/model.descriptor.d.ts +3 -0
  4. package/core/enum/enum-helpers.d.ts +5 -0
  5. package/core/helpers/route.d.ts +3 -4
  6. package/core/index.d.ts +1 -1
  7. package/core/models/menu.model.d.ts +14 -2
  8. package/core/services/{local-storage-config.service.d.ts → commons-storage.service.d.ts} +4 -3
  9. package/core/services/commons.service.d.ts +24 -0
  10. package/core/services/tokens/module-config.token.d.ts +23 -2
  11. package/esm2022/core/components/pages/error/error.page.component.mjs +4 -1
  12. package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +4 -1
  13. package/esm2022/core/data-list/data-list-params-helpers.mjs +7 -4
  14. package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
  15. package/esm2022/core/enum/enum-helpers.mjs +10 -1
  16. package/esm2022/core/helpers/route.mjs +1 -1
  17. package/esm2022/core/index.mjs +2 -2
  18. package/esm2022/core/models/menu.model.mjs +1 -1
  19. package/esm2022/core/pipes/enum.pipe.mjs +16 -5
  20. package/esm2022/core/provide.mjs +3 -3
  21. package/esm2022/core/router/route-builder.mjs +8 -1
  22. package/esm2022/core/security/permission.guard.mjs +2 -2
  23. package/esm2022/core/security/permission.service.mjs +2 -2
  24. package/esm2022/core/services/commons-storage.service.mjs +31 -0
  25. package/esm2022/core/services/commons.service.mjs +25 -1
  26. package/esm2022/core/services/tokens/module-config.token.mjs +1 -1
  27. package/esm2022/form/components/autocomplete/autocomplete.component.mjs +5 -15
  28. package/esm2022/model/descriptors/model.descriptor.mjs +10 -5
  29. package/esm2022/table/api/descriptors/column.descriptor.mjs +1 -1
  30. package/esm2022/table/api/models/table.model.mjs +2 -3
  31. package/esm2022/table/components/table/table.component.mjs +14 -42
  32. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +18 -4
  33. package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +12 -13
  34. package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +2 -2
  35. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +16 -24
  36. package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +4 -8
  37. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +5 -12
  38. package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +13 -19
  39. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +7 -7
  40. package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +7 -7
  41. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +8 -4
  42. package/esm2022/tableview/api/editor/models/field.model.mjs +4 -3
  43. package/esm2022/tableview/api/editor/models/formly-field.model.mjs +1 -1
  44. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +3 -3
  45. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +3 -3
  46. package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +2 -2
  47. package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +12 -5
  48. package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +6 -4
  49. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +8 -7
  50. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +4 -3
  51. package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +13 -4
  52. package/esm2022/tableview/editor/components/formly/fields/formly-field-type.abstract.component.mjs +7 -1
  53. package/esm2022/tableview/editor/components/formly/pipes/formly-field-label.pipe.mjs +19 -0
  54. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +33 -17
  55. package/esm2022/tableview/editor/helpers/editor-field.mjs +39 -0
  56. package/esm2022/tableview/editor/helpers/editor-formly.mjs +21 -15
  57. package/esm2022/tableview/editor/helpers/formly-config.mjs +13 -17
  58. package/esm2022/tableview/index.mjs +2 -1
  59. package/fesm2022/mediusinc-mng-commons-core.mjs +78 -17
  60. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  61. package/fesm2022/mediusinc-mng-commons-form.mjs +4 -14
  62. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  63. package/fesm2022/mediusinc-mng-commons-model.mjs +9 -4
  64. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  65. package/fesm2022/mediusinc-mng-commons-table-api.mjs +1 -2
  66. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  67. package/fesm2022/mediusinc-mng-commons-table.mjs +13 -41
  68. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  69. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +72 -92
  70. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  71. package/fesm2022/mediusinc-mng-commons-tableview.mjs +171 -69
  72. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  73. package/form/components/autocomplete/autocomplete.component.d.ts +1 -2
  74. package/i18n/en.json +21 -0
  75. package/i18n/sl.json +21 -0
  76. package/model/descriptors/model.descriptor.d.ts +4 -2
  77. package/package.json +1 -1
  78. package/table/api/descriptors/column.descriptor.d.ts +2 -5
  79. package/table/api/models/table.model.d.ts +1 -2
  80. package/table/components/table/table.component.d.ts +4 -12
  81. package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +2 -0
  82. package/tableview/api/action/descriptors/action.descriptor.d.ts +3 -4
  83. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +8 -8
  84. package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +3 -4
  85. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +11 -13
  86. package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +14 -17
  87. package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +5 -5
  88. package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +4 -4
  89. package/tableview/api/editor/descriptors/field.descriptor.d.ts +4 -3
  90. package/tableview/api/editor/models/field.model.d.ts +3 -2
  91. package/tableview/api/editor/models/formly-field.model.d.ts +2 -0
  92. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +8 -8
  93. package/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +5 -2
  94. package/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +5 -1
  95. package/tableview/editor/components/formly/fields/formly-field-type.abstract.component.d.ts +2 -1
  96. package/tableview/editor/components/formly/pipes/formly-field-label.pipe.d.ts +8 -0
  97. package/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +7 -3
  98. package/tableview/editor/helpers/editor-field.d.ts +2 -0
  99. package/tableview/editor/helpers/editor-formly.d.ts +4 -4
  100. package/tableview/index.d.ts +1 -0
  101. package/version-info.json +6 -6
  102. package/esm2022/core/services/local-storage-config.service.mjs +0 -29
@@ -4,7 +4,6 @@ import { TypeDescriptor } from './type.descriptor';
4
4
  export class ModelDescriptor {
5
5
  constructor(type, idProperty, titleProperty, i18nBaseKey) {
6
6
  this._type = type;
7
- this._typeName = findReflectTypeName(type) ?? undefined;
8
7
  this._idProperty = idProperty;
9
8
  this._titleProperty = titleProperty;
10
9
  if (!this._idProperty && type) {
@@ -13,7 +12,10 @@ export class ModelDescriptor {
13
12
  if (!this._titleProperty && type) {
14
13
  this._titleProperty = findClassTitleAttribute(type) ?? undefined;
15
14
  }
16
- this._i18nBaseKey = (typeof i18nBaseKey === 'string' || typeof i18nBaseKey === 'undefined' ? i18nBaseKey : findReflectTypeName(i18nBaseKey)) ?? this._typeName ?? '';
15
+ this._i18nBaseKey =
16
+ (typeof i18nBaseKey === 'string' || typeof i18nBaseKey === 'undefined' ? i18nBaseKey : findReflectTypeName(i18nBaseKey)) ??
17
+ findReflectTypeName(type) ??
18
+ '';
17
19
  }
18
20
  /**
19
21
  * @deprecated Use standalone {model()} instead.
@@ -30,8 +32,11 @@ export class ModelDescriptor {
30
32
  get type() {
31
33
  return this._type;
32
34
  }
35
+ /**
36
+ * @deprecated Use `i18nBaseKey` instead.
37
+ */
33
38
  get typeName() {
34
- return this._typeName;
39
+ return this.i18nBaseKey;
35
40
  }
36
41
  get i18nBaseKey() {
37
42
  return this._i18nBaseKey;
@@ -62,7 +67,7 @@ export class ModelDescriptor {
62
67
  if (typeof base !== 'string') {
63
68
  const typeName = findReflectTypeName(base);
64
69
  if (!typeName) {
65
- throw new CommonsInternalError(`Could not find define i18nBaseKey for ${base} on model ${this.typeName}`);
70
+ throw new CommonsInternalError(`Could not find define i18nBaseKey for ${base} on model ${this.i18nBaseKey}`);
66
71
  }
67
72
  base = typeName;
68
73
  }
@@ -88,4 +93,4 @@ export function model(typeOrClassOrOpts, opts) {
88
93
  return new ModelDescriptor(undefined, typeOrClassAsOpts?.id, typeOrClassAsOpts?.title, typeOrClassAsOpts?.i18nBase);
89
94
  }
90
95
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZGVsL3NyYy9kZXNjcmlwdG9ycy9tb2RlbC5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMEIsb0JBQW9CLEVBQW9CLG1CQUFtQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFakksT0FBTyxFQUFDLG9CQUFvQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE1BQU0sT0FBTyxlQUFlO0lBT3hCLFlBQW1CLElBQWdCLEVBQUUsVUFBbUIsRUFBRSxhQUFrRCxFQUFFLFdBQXFDO1FBQy9JLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBd0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM1RSxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLG9CQUFvQixDQUFDLElBQW1DLENBQUMsSUFBSSxTQUFTLENBQUM7UUFDOUYsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsdUJBQXVCLENBQUMsSUFBbUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUNwRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxPQUFPLFdBQVcsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FB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QUFJLE9BQU8saUJBQWlCLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDakQsT0FBTyxJQUFJLGVBQWUsQ0FBMEIsaUJBQXFDLEVBQUUsSUFBSSxFQUFFLEVBQVksRUFBRSxJQUFJLEVBQUUsS0FBZSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxSixDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0saUJBQWlCLEdBQUcsaUJBQXFELENBQUM7UUFDaEYsT0FBTyxJQUFJLGVBQWUsQ0FBbUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEVBQVksRUFBRSxpQkFBaUIsRUFBRSxLQUFlLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUosQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzT3B0VHlwZSwgQ2xhc3NUeXBlLCBDb21tb25zSW50ZXJuYWxFcnJvciwgSU1vZGVsRGVzY3JpcHRvciwgZmluZFJlZmxlY3RUeXBlTmFtZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtmaW5kQ2xhc3NJZEF0dHJpYnV0ZSwgZmluZENsYXNzVGl0bGVBdHRyaWJ1dGV9IGZyb20gJy4uL2hlbHBlcnMvbW9kZWwnO1xuaW1wb3J0IHtUeXBlRGVzY3JpcHRvcn0gZnJvbSAnLi90eXBlLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgY2xhc3MgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzID0gQ2xhc3NPcHRUeXBlPE1vZGVsPj4gaW1wbGVtZW50cyBJTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdHlwZTogTW9kZWxDbGFzcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90eXBlTmFtZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9pMThuQmFzZUtleTogc3RyaW5nO1xuICAgIHByaXZhdGUgX2lkUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfdGl0bGVQcm9wZXJ0eT86IHN0cmluZyB8ICgoaXRlbTogTW9kZWwpID0+IHN0cmluZyk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogTW9kZWxDbGFzcywgaWRQcm9wZXJ0eT86IHN0cmluZywgdGl0bGVQcm9wZXJ0eT86IHN0cmluZyB8ICgoaXRlbTogTW9kZWwpID0+IHN0cmluZyksIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gICAgICAgIHRoaXMuX3R5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZSh0eXBlIGFzIENsYXNzVHlwZTxNb2RlbD4pID8/IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5faWRQcm9wZXJ0eSA9IGlkUHJvcGVydHk7XG4gICAgICAgIHRoaXMuX3RpdGxlUHJvcGVydHkgPSB0aXRsZVByb3BlcnR5O1xuICAgICAgICBpZiAoIXRoaXMuX2lkUHJvcGVydHkgJiYgdHlwZSkge1xuICAgICAgICAgICAgdGhpcy5faWRQcm9wZXJ0eSA9IGZpbmRDbGFzc0lkQXR0cmlidXRlKHR5cGUgYXMgdW5rbm93biBhcyBDbGFzc1R5cGU8TW9kZWw+KSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl90aXRsZVByb3BlcnR5ICYmIHR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpdGxlUHJvcGVydHkgPSBmaW5kQ2xhc3NUaXRsZUF0dHJpYnV0ZSh0eXBlIGFzIHVua25vd24gYXMgQ2xhc3NUeXBlPE1vZGVsPikgPz8gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2kxOG5CYXNlS2V5ID0gKHR5cGVvZiBpMThuQmFzZUtleSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGkxOG5CYXNlS2V5ID09PSAndW5kZWZpbmVkJyA/IGkxOG5CYXNlS2V5IDogZmluZFJlZmxlY3RUeXBlTmFtZShpMThuQmFzZUtleSkpID8/IHRoaXMuX3R5cGVOYW1lID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBzdGFuZGFsb25lIHttb2RlbCgpfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPE1vZGVsPihpZFByb3BlcnR5Pzoga2V5b2YgTW9kZWwsIHRpdGxlUHJvcGVydHk/OiBrZXlvZiBNb2RlbCwgaTE4bkJhc2VLZXk/OiBzdHJpbmcgfCBDbGFzc1R5cGU8dW5rbm93bj4pOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsRGVzY3JpcHRvcih1bmRlZmluZWQsIGlkUHJvcGVydHkgYXMgc3RyaW5nLCB0aXRsZVByb3BlcnR5IGFzIHN0cmluZywgaTE4bkJhc2VLZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBzdGFuZGFsb25lIHttb2RlbCgpfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNsYXNzPE1vZGVsPihcbiAgICAgICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICAgICAgaWRQcm9wZXJ0eT86IGtleW9mIE1vZGVsLFxuICAgICAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgTW9kZWwsXG4gICAgICAgIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPHVua25vd24+XG4gICAgKTogTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBDbGFzc1R5cGU8TW9kZWw+PiB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yKHR5cGUsIGlkUHJvcGVydHkgYXMgc3RyaW5nLCB0aXRsZVByb3BlcnR5IGFzIHN0cmluZywgaTE4bkJhc2VLZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0eXBlTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGVOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaTE4bkJhc2VLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pMThuQmFzZUtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlkUHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pZFByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGl0bGVQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlUHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJZFByb3BlcnR5KHByb3BlcnR5OiBrZXlvZiBNb2RlbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pZFByb3BlcnR5ID0gcHJvcGVydHkgYXMgc3RyaW5nO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aElkUHJvcGVydHlVbnNhZmUocHJvcGVydHk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pZFByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGl0bGVQcm9wZXJ0eShwcm9wZXJ0eToga2V5b2YgTW9kZWwpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGVQcm9wZXJ0eSA9IHByb3BlcnR5IGFzIHN0cmluZztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUaXRsZVByb3BlcnR5VW5zYWZlKHByb3BlcnR5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGVQcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEkxOG5CYXNlKGJhc2U6IENsYXNzVHlwZTxhbnk+IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIGlmICh0eXBlb2YgYmFzZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShiYXNlKTtcbiAgICAgICAgICAgIGlmICghdHlwZU5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRlZmluZSBpMThuQmFzZUtleSBmb3IgJHtiYXNlfSBvbiBtb2RlbCAke3RoaXMudHlwZU5hbWV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiYXNlID0gdHlwZU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faTE4bkJhc2VLZXkgPSBiYXNlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIE1vZGVsQ2xhc3M+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIE1vZGVsQ2xhc3M+KHRoaXMuX3R5cGUsIHRoaXMuX2lkUHJvcGVydHksIHRoaXMuX3RpdGxlUHJvcGVydHksIHRoaXMuX2kxOG5CYXNlS2V5KTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8TW9kZWw+ID0ge1xuICAgIGlkPzoga2V5b2YgTW9kZWw7XG4gICAgdGl0bGU/OiBrZXlvZiBNb2RlbCB8ICgoaXRlbTogTW9kZWwpID0+IHN0cmluZyk7XG4gICAgaTE4bkJhc2U/OiBzdHJpbmcgfCBDbGFzc1R5cGU8YW55Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbDxNb2RlbD4oKTogTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsPE1vZGVsPihvcHRzOiBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPik6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBtb2RlbDxNb2RlbD4odHlwZTogVHlwZURlc2NyaXB0b3I8TW9kZWw+LCBvcHRzPzogTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD4pOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gbW9kZWw8TW9kZWw+KGNsYXp6OiBDbGFzc1R5cGU8TW9kZWw+LCBvcHRzPzogTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD4pOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIENsYXNzVHlwZTxNb2RlbD4+O1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsPE1vZGVsPih0eXBlT3JDbGFzc09yT3B0cz86IENsYXNzVHlwZTxNb2RlbD4gfCBUeXBlRGVzY3JpcHRvcjxNb2RlbD4gfCBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPiwgb3B0cz86IE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8TW9kZWw+KSB7XG4gICAgaWYgKHR5cGVPckNsYXNzT3JPcHRzID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVPckNsYXNzT3JPcHRzIGluc3RhbmNlb2YgVHlwZURlc2NyaXB0b3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD4odW5kZWZpbmVkLCBvcHRzPy5pZCBhcyBzdHJpbmcsIG9wdHM/LnRpdGxlIGFzIHN0cmluZywgb3B0cz8uaTE4bkJhc2UpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHR5cGVPckNsYXNzT3JPcHRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBDbGFzc1R5cGU8TW9kZWw+Pih0eXBlT3JDbGFzc09yT3B0cyBhcyBDbGFzc1R5cGU8TW9kZWw+LCBvcHRzPy5pZCBhcyBzdHJpbmcsIG9wdHM/LnRpdGxlIGFzIHN0cmluZywgb3B0cz8uaTE4bkJhc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVPckNsYXNzQXNPcHRzID0gdHlwZU9yQ2xhc3NPck9wdHMgYXMgTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD47XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgdHlwZU9yQ2xhc3NBc09wdHM/LmlkIGFzIHN0cmluZywgdHlwZU9yQ2xhc3NBc09wdHM/LnRpdGxlIGFzIHN0cmluZywgdHlwZU9yQ2xhc3NBc09wdHM/LmkxOG5CYXNlKTtcbiAgICB9XG59XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZGVsL3NyYy9kZXNjcmlwdG9ycy9tb2RlbC5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMEIsb0JBQW9CLEVBQW9CLG1CQUFtQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFakksT0FBTyxFQUFDLG9CQUFvQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE1BQU0sT0FBTyxlQUFlO0lBTXhCLFlBQW1CLElBQWdCLEVBQUUsVUFBbUIsRUFBRSxhQUFrRCxFQUFFLFdBQXFDO1FBQy9JLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsSUFBbUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM5RixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFtQyxDQUFDLElBQUksU0FBUyxDQUFDO1FBQ3BHLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWTtZQUNiLENBQUMsT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLE9BQU8sV0FBVyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEgsbUJBQW1CLENBQUMsSUFBd0Is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T0FBTyxJQUFJLGVBQWUsQ0FBMEIsaUJBQXFDLEVBQUUsSUFBSSxFQUFFLEVBQVksRUFBRSxJQUFJLEVBQUUsS0FBZSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxSixDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0saUJBQWlCLEdBQUcsaUJBQXFELENBQUM7UUFDaEYsT0FBTyxJQUFJLGVBQWUsQ0FBbUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEVBQVksRUFBRSxpQkFBaUIsRUFBRSxLQUFlLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUosQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzT3B0VHlwZSwgQ2xhc3NUeXBlLCBDb21tb25zSW50ZXJuYWxFcnJvciwgSU1vZGVsRGVzY3JpcHRvciwgZmluZFJlZmxlY3RUeXBlTmFtZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtmaW5kQ2xhc3NJZEF0dHJpYnV0ZSwgZmluZENsYXNzVGl0bGVBdHRyaWJ1dGV9IGZyb20gJy4uL2hlbHBlcnMvbW9kZWwnO1xuaW1wb3J0IHtUeXBlRGVzY3JpcHRvcn0gZnJvbSAnLi90eXBlLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgY2xhc3MgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzID0gQ2xhc3NPcHRUeXBlPE1vZGVsPj4gaW1wbGVtZW50cyBJTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdHlwZTogTW9kZWxDbGFzcztcbiAgICBwcml2YXRlIF9pMThuQmFzZUtleTogc3RyaW5nO1xuICAgIHByaXZhdGUgX2lkUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfdGl0bGVQcm9wZXJ0eT86IHN0cmluZyB8ICgoaXRlbTogTW9kZWwpID0+IHN0cmluZyk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogTW9kZWxDbGFzcywgaWRQcm9wZXJ0eT86IHN0cmluZywgdGl0bGVQcm9wZXJ0eT86IHN0cmluZyB8ICgoaXRlbTogTW9kZWwpID0+IHN0cmluZyksIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gICAgICAgIHRoaXMuX2lkUHJvcGVydHkgPSBpZFByb3BlcnR5O1xuICAgICAgICB0aGlzLl90aXRsZVByb3BlcnR5ID0gdGl0bGVQcm9wZXJ0eTtcbiAgICAgICAgaWYgKCF0aGlzLl9pZFByb3BlcnR5ICYmIHR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2lkUHJvcGVydHkgPSBmaW5kQ2xhc3NJZEF0dHJpYnV0ZSh0eXBlIGFzIHVua25vd24gYXMgQ2xhc3NUeXBlPE1vZGVsPikgPz8gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fdGl0bGVQcm9wZXJ0eSAmJiB0eXBlKSB7XG4gICAgICAgICAgICB0aGlzLl90aXRsZVByb3BlcnR5ID0gZmluZENsYXNzVGl0bGVBdHRyaWJ1dGUodHlwZSBhcyB1bmtub3duIGFzIENsYXNzVHlwZTxNb2RlbD4pID8/IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pMThuQmFzZUtleSA9XG4gICAgICAgICAgICAodHlwZW9mIGkxOG5CYXNlS2V5ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgaTE4bkJhc2VLZXkgPT09ICd1bmRlZmluZWQnID8gaTE4bkJhc2VLZXkgOiBmaW5kUmVmbGVjdFR5cGVOYW1lKGkxOG5CYXNlS2V5KSkgPz9cbiAgICAgICAgICAgIGZpbmRSZWZsZWN0VHlwZU5hbWUodHlwZSBhcyBDbGFzc1R5cGU8TW9kZWw+KSA/P1xuICAgICAgICAgICAgJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIHN0YW5kYWxvbmUge21vZGVsKCl9IGluc3RlYWQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KGlkUHJvcGVydHk/OiBrZXlvZiBNb2RlbCwgdGl0bGVQcm9wZXJ0eT86IGtleW9mIE1vZGVsLCBpMThuQmFzZUtleT86IHN0cmluZyB8IENsYXNzVHlwZTx1bmtub3duPik6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbCwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yKHVuZGVmaW5lZCwgaWRQcm9wZXJ0eSBhcyBzdHJpbmcsIHRpdGxlUHJvcGVydHkgYXMgc3RyaW5nLCBpMThuQmFzZUtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIHN0YW5kYWxvbmUge21vZGVsKCl9IGluc3RlYWQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmcm9tQ2xhc3M8TW9kZWw+KFxuICAgICAgICB0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LFxuICAgICAgICBpZFByb3BlcnR5Pzoga2V5b2YgTW9kZWwsXG4gICAgICAgIHRpdGxlUHJvcGVydHk/OiBrZXlvZiBNb2RlbCxcbiAgICAgICAgaTE4bkJhc2VLZXk/OiBzdHJpbmcgfCBDbGFzc1R5cGU8dW5rbm93bj5cbiAgICApOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIENsYXNzVHlwZTxNb2RlbD4+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3IodHlwZSwgaWRQcm9wZXJ0eSBhcyBzdHJpbmcsIHRpdGxlUHJvcGVydHkgYXMgc3RyaW5nLCBpMThuQmFzZUtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0eXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYGkxOG5CYXNlS2V5YCBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdHlwZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmkxOG5CYXNlS2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaTE4bkJhc2VLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pMThuQmFzZUtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlkUHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pZFByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGl0bGVQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlUHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJZFByb3BlcnR5KHByb3BlcnR5OiBrZXlvZiBNb2RlbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pZFByb3BlcnR5ID0gcHJvcGVydHkgYXMgc3RyaW5nO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aElkUHJvcGVydHlVbnNhZmUocHJvcGVydHk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pZFByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGl0bGVQcm9wZXJ0eShwcm9wZXJ0eToga2V5b2YgTW9kZWwpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGVQcm9wZXJ0eSA9IHByb3BlcnR5IGFzIHN0cmluZztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUaXRsZVByb3BlcnR5VW5zYWZlKHByb3BlcnR5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGVQcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEkxOG5CYXNlKGJhc2U6IENsYXNzVHlwZTxhbnk+IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIGlmICh0eXBlb2YgYmFzZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShiYXNlKTtcbiAgICAgICAgICAgIGlmICghdHlwZU5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRlZmluZSBpMThuQmFzZUtleSBmb3IgJHtiYXNlfSBvbiBtb2RlbCAke3RoaXMuaTE4bkJhc2VLZXl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiYXNlID0gdHlwZU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faTE4bkJhc2VLZXkgPSBiYXNlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIE1vZGVsQ2xhc3M+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIE1vZGVsQ2xhc3M+KHRoaXMuX3R5cGUsIHRoaXMuX2lkUHJvcGVydHksIHRoaXMuX3RpdGxlUHJvcGVydHksIHRoaXMuX2kxOG5CYXNlS2V5KTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8TW9kZWw+ID0ge1xuICAgIGlkPzoga2V5b2YgTW9kZWw7XG4gICAgdGl0bGU/OiBrZXlvZiBNb2RlbCB8ICgoaXRlbTogTW9kZWwpID0+IHN0cmluZyk7XG4gICAgaTE4bkJhc2U/OiBzdHJpbmcgfCBDbGFzc1R5cGU8YW55Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbDxNb2RlbD4oKTogTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsPE1vZGVsPihvcHRzOiBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPik6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBtb2RlbDxNb2RlbD4odHlwZTogVHlwZURlc2NyaXB0b3I8TW9kZWw+LCBvcHRzPzogTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD4pOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gbW9kZWw8TW9kZWw+KGNsYXp6OiBDbGFzc1R5cGU8TW9kZWw+LCBvcHRzPzogTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD4pOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIENsYXNzVHlwZTxNb2RlbD4+O1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsPE1vZGVsPih0eXBlT3JDbGFzc09yT3B0cz86IENsYXNzVHlwZTxNb2RlbD4gfCBUeXBlRGVzY3JpcHRvcjxNb2RlbD4gfCBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPiwgb3B0cz86IE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8TW9kZWw+KSB7XG4gICAgaWYgKHR5cGVPckNsYXNzT3JPcHRzID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVPckNsYXNzT3JPcHRzIGluc3RhbmNlb2YgVHlwZURlc2NyaXB0b3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD4odW5kZWZpbmVkLCBvcHRzPy5pZCBhcyBzdHJpbmcsIG9wdHM/LnRpdGxlIGFzIHN0cmluZywgb3B0cz8uaTE4bkJhc2UpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHR5cGVPckNsYXNzT3JPcHRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBDbGFzc1R5cGU8TW9kZWw+Pih0eXBlT3JDbGFzc09yT3B0cyBhcyBDbGFzc1R5cGU8TW9kZWw+LCBvcHRzPy5pZCBhcyBzdHJpbmcsIG9wdHM/LnRpdGxlIGFzIHN0cmluZywgb3B0cz8uaTE4bkJhc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVPckNsYXNzQXNPcHRzID0gdHlwZU9yQ2xhc3NPck9wdHMgYXMgTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD47XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgdHlwZU9yQ2xhc3NBc09wdHM/LmlkIGFzIHN0cmluZywgdHlwZU9yQ2xhc3NBc09wdHM/LnRpdGxlIGFzIHN0cmluZywgdHlwZU9yQ2xhc3NBc09wdHM/LmkxOG5CYXNlKTtcbiAgICB9XG59XG4iXX0=
@@ -345,4 +345,4 @@ export class ColumnDynamicDescriptor extends ColumnDescriptor {
345
345
  return descriptor;
346
346
  }
347
347
  }
348
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90YWJsZS9hcGkvc3JjL2Rlc2NyaXB0b3JzL2NvbHVtbi5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRWpGLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQTBCN0UsTUFBTSxPQUFPLGdCQUFnQjtJQStDekIsWUFBWSxRQUFnQjtRQTdDcEIsZ0JBQVcsR0FBbUIsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUNwRCx1QkFBa0IsR0FBMEIscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBTXpFLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRTFCLFVBQVU7UUFDRixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxjQUFTLEdBQWtCLElBQUksQ0FBQztRQUt4QyxvQkFBb0I7UUFDWixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQVkvQixVQUFVO1FBQ0Ysd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBR3BDLGVBQWU7UUFDUCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUl6QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQWtCLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLG9CQUFvQjtRQUMzQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLDBCQUEwQjtRQUNqQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBb0IsRUFBRSxXQUFtQyxFQUFFLEdBQUcsSUFBVztRQUNuRixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ1gsS0FBSyxjQUFjLENBQUMsTUFBTTtnQkFDdEIsT0FBTyxXQUFXLEtBQUsscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM5RyxLQUFLLGNBQWMsQ0FBQyxPQUFPO2dCQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNuQyxLQUFLLGNBQWMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxLQUFLLGNBQWMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBd0IsQ0FBQyxDQUFDO1lBQzdELEtBQUssY0FBYyxDQUFDLE1BQU07Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLEtBQUssY0FBYyxDQUFDLE1BQU0sQ0FBQztZQUMzQjtnQkFDSSxPQUFPLElBQUksQ0FBQztRQUNwQixDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUEyQjtRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztRQUN2RCxJQUFJLENBQUMsY0FBYztZQUNmLElBQUksRUFBRSxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsaUJBQWlCLElBQUksSUFBSSxFQUFFLGlCQUFpQjtnQkFDeEUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLGdCQUFnQixJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsaUJBQWlCLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxpQkFBaUIsSUFBSSxJQUFJLEVBQUUsaUJBQWlCLElBQUksQ0FBQyxFQUFFO2dCQUM3SCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sVUFBVSxDQUFDLElBQStDO1FBQzdELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQ3pCLEdBQUcsSUFBSTtZQUNQLGdCQUFnQixFQUFFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGdCQUEyQixDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUE2QjtRQUNqRCxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztRQUN6RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksRUFBRSxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksRUFBRSxnQkFBZ0IsQ0FBQztRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxFQUFFLGVBQWUsQ0FBQztRQUM5QyxJQUFJLENBQUMsY0FBYztZQUNmLElBQUksRUFBRSxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsaUJBQWlCLElBQUksSUFBSSxFQUFFLGlCQUFpQjtnQkFDeEUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLGdCQUFnQixJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsaUJBQWlCLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxpQkFBaUIsSUFBSSxJQUFJLEVBQUUsaUJBQWlCLElBQUksQ0FBQyxFQUFFO2dCQUM3SCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWEsR0FBRyxZQUFZO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDO1FBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBWSxFQUFFLEVBQVcsRUFBRSxNQUFNLEdBQUcsS0FBSztRQUN0RCxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDMUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztRQUN4RCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sWUFBWSxDQUFDLFFBQTZCO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxtQkFBc0Y7UUFDM0csSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7UUFDMUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sYUFBYSxDQUFDLFNBQWtCLEVBQUUsZUFBd0IsRUFBRSxjQUFrRTtRQUNqSSxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsSUFBSSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFjLEVBQUUsUUFBaUIsRUFBRSxRQUFpQjtRQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLGtCQUFrQixHQUFHLElBQUksRUFBRSxvQkFBd0Q7UUFDMUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDO1FBRTlDLElBQUksb0JBQW9CLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMscUJBQXFCLEdBQUcsb0JBQW9CLENBQUM7UUFDdEQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxZQUFZLENBQUMsUUFBZ0I7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUEwQztRQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxjQUFjLEdBQUcsSUFBSTtRQUMzQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsY0FBYyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxlQUFlLENBQUMsYUFBYSxHQUFHLElBQUk7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxFQUFFLFNBQVMsR0FBRyxJQUFJO1FBQ3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxTQUFTLENBQUMsY0FBdUI7UUFDcEMsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsMkJBQTJCLEdBQUcsY0FBYyxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLDJCQUEyQixHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sSUFBSTtRQUNQLE1BQU0sVUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQXVDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxZQUFZLENBQUMsR0FBMkQ7UUFDOUUsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNuQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ2pELEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN2QixHQUFHLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDekMsR0FBRyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ25DLEdBQUcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDM0IsR0FBRyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDN0MsR0FBRyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUMvQyxHQUFHLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDekMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3QyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDakMsR0FBRyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzNDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN6QixHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQy9CLEdBQUcsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDckQsR0FBRyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUNuRCxHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzNCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNyQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ2pELEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN6QyxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkMsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNyQyxHQUFHLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDO0lBQ3ZFLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxnQkFBMEI7SUFJbkUseUJBQXlCO0lBRXpCLFlBQVksUUFBZ0I7UUFDeEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBTkQsV0FBTSxHQUF1QixTQUFTLENBQUM7UUFDbEQsZ0JBQVcsR0FBRyxJQUFJLENBQUM7SUFNM0IsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDYSxTQUFTLENBQUMsS0FBYSxFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQ3JELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxpQkFBaUIsQ0FBQyxLQUFhO1FBQ2xDLDJCQUEyQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYyxDQUFDLFVBQW1CO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNhLElBQUk7UUFDaEIsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEMsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFDLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsTUFBTSxVQUFVLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0dldHRlckZufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtFbnVtRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7Y29sdW1uVG9EYXRlTnVtYmVyT3JCb29sZWFufSBmcm9tICcuLi9oZWxwZXJzL2NsYXNzLWF0dHJpYnV0ZS1jb252ZXJ0ZXInO1xuaW1wb3J0IHtJQ29sdW1uVmFsdWVDb21wb25lbnR9IGZyb20gJy4uL21vZGVscy9jb2x1bW4tdmFsdWUubW9kZWwnO1xuaW1wb3J0IHtDb2x1bW5EaXNwbGF5VHlwZUVudW0sIENvbHVtblR5cGVFbnVtfSBmcm9tICcuLi9tb2RlbHMvY29sdW1uLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgQ29sdW1uQ3VycmVuY3lPcHRzVHlwZTxQcm9wZXJ0eSA9IHN0cmluZz4gPSB7XG4gICAgY3VycmVuY3lQcm9wZXJ0eT86IFByb3BlcnR5O1xuICAgIGN1cnJlbmN5Pzogc3RyaW5nO1xuICAgIGN1cnJlbmN5RGlzcGxheT86ICdzeW1ib2wnIHwgJ2NvZGUnIHwgJ25hbWUnO1xufSAmIENvbHVtbk51bWJlckdyb3VwaW5nT3B0c1R5cGUgJlxuICAgIENvbHVtbk51bWJlckZyYWN0aW9uT3B0c1R5cGUgJlxuICAgIENvbHVtbkxvY2FsZU9wdHNUeXBlO1xuXG5leHBvcnQgdHlwZSBDb2x1bW5OdW1iZXJPcHRzVHlwZSA9IENvbHVtbk51bWJlckdyb3VwaW5nT3B0c1R5cGUgJiBDb2x1bW5OdW1iZXJGcmFjdGlvbk9wdHNUeXBlICYgQ29sdW1uTG9jYWxlT3B0c1R5cGU7XG5cbmV4cG9ydCB0eXBlIENvbHVtbk51bWJlckdyb3VwaW5nT3B0c1R5cGUgPSB7XG4gICAgZ3JvdXBTZXBhcmF0b3I/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ29sdW1uTnVtYmVyRnJhY3Rpb25PcHRzVHlwZSA9IHtcbiAgICBtaW5JbnRlZ2VyRGlnaXRzPzogbnVtYmVyO1xuICAgIG1pbkZyYWN0aW9uRGlnaXRzPzogbnVtYmVyO1xuICAgIG1heEZyYWN0aW9uRGlnaXRzPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ29sdW1uTG9jYWxlT3B0c1R5cGUgPSB7XG4gICAgbG9jYWxlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNsYXNzIENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIENvbHVtblZhbHVlID0gQ29sdW1uTW9kZWw+IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3Byb3BlcnR5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfY29sdW1uVHlwZTogQ29sdW1uVHlwZUVudW0gPSBDb2x1bW5UeXBlRW51bS5TdHJpbmc7XG4gICAgcHJpdmF0ZSBfY29sdW1uRGlzcGxheVR5cGU6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5TdHJpbmc7XG4gICAgcHJvdGVjdGVkIF90aXRsZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9kaXNwbGF5Rm9ybWF0Pzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2xvY2FsZT86IHN0cmluZztcbiAgICBwcml2YXRlIF90ZW1wbGF0ZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9nZXR0ZXI/OiBHZXR0ZXJGbjxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbD47XG4gICAgcHJpdmF0ZSBfaXNNdWx0aWxpbmUgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9oYXNWYWx1ZUFzVG9vbHRpcCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzUmVvcmRlcmFibGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc1RvZ2dsZWFibGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc1Zpc2libGUgPSB0cnVlO1xuXG4gICAgLy8gc3R5bGluZ1xuICAgIHByaXZhdGUgX2hlYWRlckNsYXNzTmFtZSA9ICcnO1xuICAgIHByaXZhdGUgX2NsYXNzTmFtZSA9ICcnO1xuICAgIHByaXZhdGUgX2NsYXNzTmFtZU1hcEZuPzogKGNsYXNzTmFtZT86IHN0cmluZywgaXRlbT86IFRhYmxlTW9kZWwpID0+IHN0cmluZztcbiAgICBwcml2YXRlIF93aWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfbWluV2lkdGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX21heFdpZHRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIGVudW0gc3BlY2lmaWNzXG4gICAgcHJpdmF0ZSBfZW51bT86IEVudW1EZXNjcmlwdG9yPGFueT47XG5cbiAgICAvLyBib29sZWFuIHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2Jvb2xlYW5Bc0ljb24gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9ib29sZWFuWWVzPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2Jvb2xlYW5Obz86IHN0cmluZztcblxuICAgIC8vIGN1cnJlbmN5IHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2N1cnJlbmN5Q29kZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9jdXJyZW5jeVByb3BlcnR5Pzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2N1cnJlbmN5RGlzcGxheT86ICdzeW1ib2wnIHwgJ2NvZGUnIHwgJ25hbWUnO1xuXG4gICAgLy8gY3VzdG9tIHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2N1c3RvbUNvbXBvbmVudFR5cGU/OiBUeXBlPElDb2x1bW5WYWx1ZUNvbXBvbmVudDxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbCwgQ29sdW1uTW9kZWw+PjtcblxuICAgIC8vIGhlbHBlcnNcbiAgICBwcml2YXRlIF9oYXNDb3B5VG9DbGlwYm9hcmQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9jbGlwYm9hcmRWYWx1ZUdldHRlcj86IEdldHRlckZuPENvbHVtblZhbHVlLCBUYWJsZU1vZGVsPjtcblxuICAgIC8vIGxvY2FsaXphdGlvblxuICAgIHByaXZhdGUgX2lzTG9jYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHk/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3Byb3BlcnR5ID0gcHJvcGVydHkgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29sdW1uVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtblR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5EaXNwbGF5VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpc3BsYXlGb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5Rm9ybWF0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhlYWRlckNsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlckNsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsYXNzTmFtZU1hcEZuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xhc3NOYW1lTWFwRm47XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB3aWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWluV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9taW5XaWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1heFdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4V2lkdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlbnVtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW51bTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJvb2xlYW5Bc0ljb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ib29sZWFuQXNJY29uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYm9vbGVhblllcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jvb2xlYW5ZZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBib29sZWFuTm8oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ib29sZWFuTm87XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjdXN0b21Db21wb25lbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VzdG9tQ29tcG9uZW50VHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbmN5Q29kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbmN5Q29kZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbmN5RGlzcGxheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbmN5RGlzcGxheTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbmN5UHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW5jeVByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzQ29weVRvQ2xpcGJvYXJkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzQ29weVRvQ2xpcGJvYXJkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xpcGJvYXJkVmFsdWVHZXR0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGlwYm9hcmRWYWx1ZUdldHRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRlbXBsYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBnZXR0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXR0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc011bHRpbGluZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTXVsdGlsaW5lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzVmFsdWVBc1Rvb2x0aXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNWYWx1ZUFzVG9vbHRpcDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzUmVvcmRlcmFibGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Jlb3JkZXJhYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNUb2dnbGVhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNUb2dnbGVhYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNWaXNpYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaXNpYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNMb2NhbGl6ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0xvY2FsaXplZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgY29sdW1uIHRvIGdpdmVuIHR5cGUgd2l0aCBhZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIEBwYXJhbSB0eXBlIGNvbHVtbiB0eXBlIGVudW1cbiAgICAgKiBAcGFyYW0gZGlzcGxheVR5cGUgY29sdW1uIGRpc3BsYXkgdHlwZVxuICAgICAqIEBwYXJhbSBhcmdzIGFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBmb3IgY29sdW1uIChvcHRpb25hbClcbiAgICAgKi9cbiAgICBwdWJsaWMgYXNUeXBlKHR5cGU6IENvbHVtblR5cGVFbnVtLCBkaXNwbGF5VHlwZT86IENvbHVtbkRpc3BsYXlUeXBlRW51bSwgLi4uYXJnczogYW55W10pOiB0aGlzIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlzcGxheVR5cGUgPT09IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeSA/IHRoaXMuYXNDdXJyZW5jeSguLi5hcmdzKSA6IHRoaXMuYXNOdW1iZXIoLi4uYXJncyk7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkJvb2xlYW46XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXNCb29sZWFuKC4uLmFyZ3MpO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5EYXRlOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFzRGF0ZSguLi5hcmdzKTtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uRW51bTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hc0VudW1VbnNhZmUoYXJnc1swXSBhcyBFbnVtRGVzY3JpcHRvcjxhbnk+KTtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uQ3VzdG9tOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFzQ3VzdG9tQ29tcG9uZW50KGFyZ3NbMF0pO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5TdHJpbmc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzTnVtYmVyKG9wdHM/OiBDb2x1bW5OdW1iZXJPcHRzVHlwZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uTnVtYmVyO1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5OdW1iZXI7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlGb3JtYXQgPVxuICAgICAgICAgICAgb3B0cz8ubWluSW50ZWdlckRpZ2l0cyB8fCBvcHRzPy5taW5GcmFjdGlvbkRpZ2l0cyB8fCBvcHRzPy5tYXhGcmFjdGlvbkRpZ2l0c1xuICAgICAgICAgICAgICAgID8gYCR7b3B0cz8ubWluSW50ZWdlckRpZ2l0cyA/PyAwfS4ke29wdHM/Lm1pbkZyYWN0aW9uRGlnaXRzID8/IDB9LSR7b3B0cz8ubWF4RnJhY3Rpb25EaWdpdHMgPz8gb3B0cz8ubWluRnJhY3Rpb25EaWdpdHMgPz8gMH1gXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IG9wdHM/LmxvY2FsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzQ3VycmVuY3kob3B0cz86IENvbHVtbkN1cnJlbmN5T3B0c1R5cGU8a2V5b2YgVGFibGVNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNDdXJyZW5jeVVuc2FmZSh7XG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICAgICAgY3VycmVuY3lQcm9wZXJ0eTogb3B0cz8uY3VycmVuY3lQcm9wZXJ0eSA/IChvcHRzLmN1cnJlbmN5UHJvcGVydHkgYXMgc3RyaW5nKSA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXNDdXJyZW5jeVVuc2FmZShvcHRzPzogQ29sdW1uQ3VycmVuY3lPcHRzVHlwZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uTnVtYmVyO1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeTtcbiAgICAgICAgdGhpcy5fY3VycmVuY3lDb2RlID0gb3B0cz8uY3VycmVuY3k7XG4gICAgICAgIHRoaXMuX2N1cnJlbmN5UHJvcGVydHkgPSBvcHRzPy5jdXJyZW5jeVByb3BlcnR5O1xuICAgICAgICB0aGlzLl9jdXJyZW5jeURpc3BsYXkgPSBvcHRzPy5jdXJyZW5jeURpc3BsYXk7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlGb3JtYXQgPVxuICAgICAgICAgICAgb3B0cz8ubWluSW50ZWdlckRpZ2l0cyB8fCBvcHRzPy5taW5GcmFjdGlvbkRpZ2l0cyB8fCBvcHRzPy5tYXhGcmFjdGlvbkRpZ2l0c1xuICAgICAgICAgICAgICAgID8gYCR7b3B0cz8ubWluSW50ZWdlckRpZ2l0cyA/PyAwfS4ke29wdHM/Lm1pbkZyYWN0aW9uRGlnaXRzID8/IDB9LSR7b3B0cz8ubWF4RnJhY3Rpb25EaWdpdHMgPz8gb3B0cz8ubWluRnJhY3Rpb25EaWdpdHMgPz8gMH1gXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IG9wdHM/LmxvY2FsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzRGF0ZShkaXNwbGF5Rm9ybWF0ID0gJ2RkLk1NLnl5eXknKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtblR5cGUgPSBDb2x1bW5UeXBlRW51bS5EYXRlO1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5EYXRlO1xuICAgICAgICB0aGlzLl9kaXNwbGF5Rm9ybWF0ID0gZGlzcGxheUZvcm1hdDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzQm9vbGVhbih5ZXM/OiBzdHJpbmcsIG5vPzogc3RyaW5nLCBhc0ljb24gPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uQm9vbGVhbjtcbiAgICAgICAgdGhpcy5fY29sdW1uRGlzcGxheVR5cGUgPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQm9vbGVhbjtcbiAgICAgICAgdGhpcy5fYm9vbGVhbkFzSWNvbiA9IGFzSWNvbjtcbiAgICAgICAgdGhpcy5fYm9vbGVhblllcyA9IHllcztcbiAgICAgICAgdGhpcy5fYm9vbGVhbk5vID0gbm87XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc0VudW1VbnNhZmUoZW51bURlc2M6IEVudW1EZXNjcmlwdG9yPGFueT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uVHlwZSA9IENvbHVtblR5cGVFbnVtLkVudW07XG4gICAgICAgIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkVudW07XG4gICAgICAgIHRoaXMuX2VudW0gPSBlbnVtRGVzYztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzQ3VzdG9tQ29tcG9uZW50KGN1c3RvbUNvbXBvbmVudFR5cGU6IFR5cGU8SUNvbHVtblZhbHVlQ29tcG9uZW50PENvbHVtblZhbHVlLCBUYWJsZU1vZGVsLCBDb2x1bW5Nb2RlbD4+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtblR5cGUgPSBDb2x1bW5UeXBlRW51bS5DdXN0b207XG4gICAgICAgIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5fY3VzdG9tQ29tcG9uZW50VHlwZSA9IGN1c3RvbUNvbXBvbmVudFR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc0h0bWwoKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkh0bWw7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQ2xhc3NOYW1lKGNsYXNzTmFtZT86IHN0cmluZywgaGVhZGVyQ2xhc3NOYW1lPzogc3RyaW5nLCBjbGFzc05hbWVNYXBGbj86IChjbGFzc05hbWU/OiBzdHJpbmcsIGl0ZW0/OiBUYWJsZU1vZGVsKSA9PiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY2xhc3NOYW1lID0gY2xhc3NOYW1lID8/ICcnO1xuICAgICAgICB0aGlzLl9oZWFkZXJDbGFzc05hbWUgPSBoZWFkZXJDbGFzc05hbWUgPz8gJyc7XG4gICAgICAgIHRoaXMuX2NsYXNzTmFtZU1hcEZuID0gY2xhc3NOYW1lTWFwRm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoV2lkdGgod2lkdGg/OiBudW1iZXIsIG1pbldpZHRoPzogbnVtYmVyLCBtYXhXaWR0aD86IG51bWJlcik6IHRoaXMge1xuICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoID8/IG51bGw7XG4gICAgICAgIHRoaXMuX21pbldpZHRoID0gbWluV2lkdGggPz8gbnVsbDtcbiAgICAgICAgdGhpcy5fbWF4V2lkdGggPSBtYXhXaWR0aCA/PyBudWxsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRpdGxlKHRpdGxlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDb3B5VG9DbGlwYm9hcmQoaGFzQ29weVRvQ2xpcGJvYXJkID0gdHJ1ZSwgY2xpcGJvYXJkVmFsdWVHZXR0ZXI/OiBHZXR0ZXJGbjxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzQ29weVRvQ2xpcGJvYXJkID0gaGFzQ29weVRvQ2xpcGJvYXJkO1xuXG4gICAgICAgIGlmIChjbGlwYm9hcmRWYWx1ZUdldHRlcikge1xuICAgICAgICAgICAgdGhpcy5fY2xpcGJvYXJkVmFsdWVHZXR0ZXIgPSBjbGlwYm9hcmRWYWx1ZUdldHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGVtcGxhdGUodGVtcGxhdGU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl90ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEdldHRlcihnZXR0ZXI/OiBHZXR0ZXJGbjxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZ2V0dGVyID0gZ2V0dGVyO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE11bHRpbGluZShpc011bHRpbGluZSA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNNdWx0aWxpbmUgPSBpc011bHRpbGluZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhWYWx1ZUFzVG9vbHRpcCh2YWx1ZUFzVG9vbHRpcCA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzVmFsdWVBc1Rvb2x0aXAgPSB2YWx1ZUFzVG9vbHRpcDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSZW9yZGVyYWJsZShpc1Jlb3JkZXJhYmxlID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pc1Jlb3JkZXJhYmxlID0gaXNSZW9yZGVyYWJsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUb2dnbGVhYmxlKGlzVG9nZ2xlYWJsZSA9IHRydWUsIGlzVmlzaWJsZSA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNUb2dnbGVhYmxlID0gaXNUb2dnbGVhYmxlO1xuICAgICAgICB0aGlzLl9pc1Zpc2libGUgPSBpc1Zpc2libGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2NhbGl6ZWQoZXhpc3RzUHJvcGVydHk/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgaWYgKGV4aXN0c1Byb3BlcnR5KSB7XG4gICAgICAgICAgICB0aGlzLl9sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eSA9IGV4aXN0c1Byb3BlcnR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHkgPSBgJHt0aGlzLl9wcm9wZXJ0eX1Mb2NhbGl6ZWRgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5KCk6IENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIENvbHVtblZhbHVlPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgQ29sdW1uRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbCwgQ29sdW1uVmFsdWU+KHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb3B5RmllbGRzVG8ob2JqOiBDb2x1bW5EZXNjcmlwdG9yPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsLCBDb2x1bW5WYWx1ZT4pIHtcbiAgICAgICAgb2JqLl90aXRsZSA9IHRoaXMuX3RpdGxlO1xuICAgICAgICBvYmouX2NvbHVtblR5cGUgPSB0aGlzLl9jb2x1bW5UeXBlO1xuICAgICAgICBvYmouX2NvbHVtbkRpc3BsYXlUeXBlID0gdGhpcy5fY29sdW1uRGlzcGxheVR5cGU7XG4gICAgICAgIG9iai5fZW51bSA9IHRoaXMuX2VudW07XG4gICAgICAgIG9iai5fYm9vbGVhbkFzSWNvbiA9IHRoaXMuX2Jvb2xlYW5Bc0ljb247XG4gICAgICAgIG9iai5fYm9vbGVhblllcyA9IHRoaXMuX2Jvb2xlYW5ZZXM7XG4gICAgICAgIG9iai5fYm9vbGVhbk5vID0gdGhpcy5fYm9vbGVhbk5vO1xuICAgICAgICBvYmouX2xvY2FsZSA9IHRoaXMuX2xvY2FsZTtcbiAgICAgICAgb2JqLl9jdXJyZW5jeUNvZGUgPSB0aGlzLl9jdXJyZW5jeUNvZGU7XG4gICAgICAgIG9iai5fY3VycmVuY3lEaXNwbGF5ID0gdGhpcy5fY3VycmVuY3lEaXNwbGF5O1xuICAgICAgICBvYmouX2N1cnJlbmN5UHJvcGVydHkgPSB0aGlzLl9jdXJyZW5jeVByb3BlcnR5O1xuICAgICAgICBvYmouX2Rpc3BsYXlGb3JtYXQgPSB0aGlzLl9kaXNwbGF5Rm9ybWF0O1xuICAgICAgICBvYmouX2hlYWRlckNsYXNzTmFtZSA9IHRoaXMuX2hlYWRlckNsYXNzTmFtZTtcbiAgICAgICAgb2JqLl9jbGFzc05hbWUgPSB0aGlzLl9jbGFzc05hbWU7XG4gICAgICAgIG9iai5fY2xhc3NOYW1lTWFwRm4gPSB0aGlzLl9jbGFzc05hbWVNYXBGbjtcbiAgICAgICAgb2JqLl93aWR0aCA9IHRoaXMuX3dpZHRoO1xuICAgICAgICBvYmouX21pbldpZHRoID0gdGhpcy5fbWluV2lkdGg7XG4gICAgICAgIG9iai5fbWF4V2lkdGggPSB0aGlzLl9tYXhXaWR0aDtcbiAgICAgICAgb2JqLl9jdXN0b21Db21wb25lbnRUeXBlID0gdGhpcy5fY3VzdG9tQ29tcG9uZW50VHlwZTtcbiAgICAgICAgb2JqLl9oYXNDb3B5VG9DbGlwYm9hcmQgPSB0aGlzLl9oYXNDb3B5VG9DbGlwYm9hcmQ7XG4gICAgICAgIG9iai5fdGVtcGxhdGUgPSB0aGlzLl90ZW1wbGF0ZTtcbiAgICAgICAgb2JqLl9nZXR0ZXIgPSB0aGlzLl9nZXR0ZXI7XG4gICAgICAgIG9iai5faXNNdWx0aWxpbmUgPSB0aGlzLl9pc011bHRpbGluZTtcbiAgICAgICAgb2JqLl9oYXNWYWx1ZUFzVG9vbHRpcCA9IHRoaXMuX2hhc1ZhbHVlQXNUb29sdGlwO1xuICAgICAgICBvYmouX2lzUmVvcmRlcmFibGUgPSB0aGlzLl9pc1Jlb3JkZXJhYmxlO1xuICAgICAgICBvYmouX2lzVG9nZ2xlYWJsZSA9IHRoaXMuX2lzVG9nZ2xlYWJsZTtcbiAgICAgICAgb2JqLl9pc1Zpc2libGUgPSB0aGlzLl9pc1Zpc2libGU7XG4gICAgICAgIG9iai5faXNMb2NhbGl6ZWQgPSB0aGlzLl9pc0xvY2FsaXplZDtcbiAgICAgICAgb2JqLl9sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eSA9IHRoaXMuX2xvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtbkR5bmFtaWNEZXNjcmlwdG9yIGV4dGVuZHMgQ29sdW1uRGVzY3JpcHRvcjxhbnksIGFueT4ge1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIF92aXNpYmlsaXR5ID0gdHJ1ZTtcblxuICAgIC8vIHByaXZhdGUgX2ZpbHRlclN0YXR1cztcblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocHJvcGVydHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdmlzaWJpbGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2liaWxpdHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyBjb2x1bW4ncyB0aXRsZSBhbmQgcmV0dXJucyB0aGlzIGNvbHVtblxuICAgICAqIEBwYXJhbSB0aXRsZSB0aXRsZSB0byBiZSBzZXRcbiAgICAgKiBAcGFyYW0gb3ZlcnJpZGUgc2hvdWxkIGNvbHVtbiB0aXRsZSBpZiBhbGwgcmVhZHkgc2V0P1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSB3aXRoVGl0bGUodGl0bGU6IHN0cmluZywgb3ZlcnJpZGUgPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICBpZiAodGhpcy5fdGl0bGUgPT0gbnVsbCB8fCBvdmVycmlkZSkge1xuICAgICAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIGF1dG9tYXRpYyB0eXBlIGFuZCByZXR1cm5zIHRoaXMgY29sdW1uXG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICovXG4gICAgcHVibGljIHdpdGhBdXRvbWF0aWNUeXBlKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgY29sdW1uVG9EYXRlTnVtYmVyT3JCb29sZWFuKHRoaXMsIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyB2aXNpYmlsaXR5IHN0YXRlIGZvciBjb2x1bW4gYW5kIHJldHVybnMgdGhpcyBjb2x1bW5cbiAgICAgKiBAcGFyYW0gdmlzaWJpbGl0eVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoVmlzaWJpbGl0eSh2aXNpYmlsaXR5OiBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3Zpc2liaWxpdHkgPSB2aXNpYmlsaXR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGRlZXAgY29weSBvZiBjb2x1bW4gZHluYW1pYyBkZXNjcmlwdG9yXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGNvcHkoKTogQ29sdW1uRHluYW1pY0Rlc2NyaXB0b3Ige1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IENvbHVtbkR5bmFtaWNEZXNjcmlwdG9yKHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIGRlc2NyaXB0b3IuX3RpdGxlID0gdGhpcy5fdGl0bGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Zpc2liaWxpdHkgPSB0aGlzLl92aXNpYmlsaXR5O1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9Db2x1bW5EZXNjcmlwdG9yKCk6IENvbHVtbkRlc2NyaXB0b3I8YW55LCBhbnk+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBDb2x1bW5EZXNjcmlwdG9yKHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbn1cbiJdfQ==
348
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90YWJsZS9hcGkvc3JjL2Rlc2NyaXB0b3JzL2NvbHVtbi5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRWpGLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQXFCN0UsTUFBTSxPQUFPLGdCQUFnQjtJQStDekIsWUFBWSxRQUFnQjtRQTdDcEIsZ0JBQVcsR0FBbUIsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUNwRCx1QkFBa0IsR0FBMEIscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBTXpFLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRTFCLFVBQVU7UUFDRixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxjQUFTLEdBQWtCLElBQUksQ0FBQztRQUt4QyxvQkFBb0I7UUFDWixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQVkvQixVQUFVO1FBQ0Ysd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBR3BDLGVBQWU7UUFDUCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUl6QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQWtCLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQ3hC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RUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYyxDQUFDLFVBQW1CO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNhLElBQUk7UUFDaEIsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEMsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFDLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsTUFBTSxVQUFVLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0dldHRlckZufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtFbnVtRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7Y29sdW1uVG9EYXRlTnVtYmVyT3JCb29sZWFufSBmcm9tICcuLi9oZWxwZXJzL2NsYXNzLWF0dHJpYnV0ZS1jb252ZXJ0ZXInO1xuaW1wb3J0IHtJQ29sdW1uVmFsdWVDb21wb25lbnR9IGZyb20gJy4uL21vZGVscy9jb2x1bW4tdmFsdWUubW9kZWwnO1xuaW1wb3J0IHtDb2x1bW5EaXNwbGF5VHlwZUVudW0sIENvbHVtblR5cGVFbnVtfSBmcm9tICcuLi9tb2RlbHMvY29sdW1uLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgQ29sdW1uQ3VycmVuY3lPcHRzVHlwZTxQcm9wZXJ0eSA9IHN0cmluZz4gPSB7XG4gICAgY3VycmVuY3lQcm9wZXJ0eT86IFByb3BlcnR5O1xuICAgIGN1cnJlbmN5Pzogc3RyaW5nO1xuICAgIGN1cnJlbmN5RGlzcGxheT86ICdzeW1ib2wnIHwgJ2NvZGUnIHwgJ25hbWUnO1xufSAmIENvbHVtbk51bWJlckZyYWN0aW9uT3B0c1R5cGUgJlxuICAgIENvbHVtbkxvY2FsZU9wdHNUeXBlO1xuXG5leHBvcnQgdHlwZSBDb2x1bW5OdW1iZXJPcHRzVHlwZSA9IENvbHVtbk51bWJlckZyYWN0aW9uT3B0c1R5cGUgJiBDb2x1bW5Mb2NhbGVPcHRzVHlwZTtcblxuZXhwb3J0IHR5cGUgQ29sdW1uTnVtYmVyRnJhY3Rpb25PcHRzVHlwZSA9IHtcbiAgICBtaW5JbnRlZ2VyRGlnaXRzPzogbnVtYmVyO1xuICAgIG1pbkZyYWN0aW9uRGlnaXRzPzogbnVtYmVyO1xuICAgIG1heEZyYWN0aW9uRGlnaXRzPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ29sdW1uTG9jYWxlT3B0c1R5cGUgPSB7XG4gICAgbG9jYWxlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNsYXNzIENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIENvbHVtblZhbHVlID0gQ29sdW1uTW9kZWw+IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3Byb3BlcnR5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfY29sdW1uVHlwZTogQ29sdW1uVHlwZUVudW0gPSBDb2x1bW5UeXBlRW51bS5TdHJpbmc7XG4gICAgcHJpdmF0ZSBfY29sdW1uRGlzcGxheVR5cGU6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5TdHJpbmc7XG4gICAgcHJvdGVjdGVkIF90aXRsZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9kaXNwbGF5Rm9ybWF0Pzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2xvY2FsZT86IHN0cmluZztcbiAgICBwcml2YXRlIF90ZW1wbGF0ZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9nZXR0ZXI/OiBHZXR0ZXJGbjxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbD47XG4gICAgcHJpdmF0ZSBfaXNNdWx0aWxpbmUgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9oYXNWYWx1ZUFzVG9vbHRpcCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzUmVvcmRlcmFibGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc1RvZ2dsZWFibGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc1Zpc2libGUgPSB0cnVlO1xuXG4gICAgLy8gc3R5bGluZ1xuICAgIHByaXZhdGUgX2hlYWRlckNsYXNzTmFtZSA9ICcnO1xuICAgIHByaXZhdGUgX2NsYXNzTmFtZSA9ICcnO1xuICAgIHByaXZhdGUgX2NsYXNzTmFtZU1hcEZuPzogKGNsYXNzTmFtZT86IHN0cmluZywgaXRlbT86IFRhYmxlTW9kZWwpID0+IHN0cmluZztcbiAgICBwcml2YXRlIF93aWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfbWluV2lkdGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX21heFdpZHRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIGVudW0gc3BlY2lmaWNzXG4gICAgcHJpdmF0ZSBfZW51bT86IEVudW1EZXNjcmlwdG9yPGFueT47XG5cbiAgICAvLyBib29sZWFuIHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2Jvb2xlYW5Bc0ljb24gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9ib29sZWFuWWVzPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2Jvb2xlYW5Obz86IHN0cmluZztcblxuICAgIC8vIGN1cnJlbmN5IHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2N1cnJlbmN5Q29kZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9jdXJyZW5jeVByb3BlcnR5Pzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2N1cnJlbmN5RGlzcGxheT86ICdzeW1ib2wnIHwgJ2NvZGUnIHwgJ25hbWUnO1xuXG4gICAgLy8gY3VzdG9tIHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2N1c3RvbUNvbXBvbmVudFR5cGU/OiBUeXBlPElDb2x1bW5WYWx1ZUNvbXBvbmVudDxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbCwgQ29sdW1uTW9kZWw+PjtcblxuICAgIC8vIGhlbHBlcnNcbiAgICBwcml2YXRlIF9oYXNDb3B5VG9DbGlwYm9hcmQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9jbGlwYm9hcmRWYWx1ZUdldHRlcj86IEdldHRlckZuPENvbHVtblZhbHVlLCBUYWJsZU1vZGVsPjtcblxuICAgIC8vIGxvY2FsaXphdGlvblxuICAgIHByaXZhdGUgX2lzTG9jYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHk/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3Byb3BlcnR5ID0gcHJvcGVydHkgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29sdW1uVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtblR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5EaXNwbGF5VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpc3BsYXlGb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5Rm9ybWF0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhlYWRlckNsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlckNsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsYXNzTmFtZU1hcEZuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xhc3NOYW1lTWFwRm47XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB3aWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWluV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9taW5XaWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1heFdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4V2lkdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlbnVtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW51bTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJvb2xlYW5Bc0ljb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ib29sZWFuQXNJY29uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYm9vbGVhblllcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jvb2xlYW5ZZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBib29sZWFuTm8oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ib29sZWFuTm87XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjdXN0b21Db21wb25lbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VzdG9tQ29tcG9uZW50VHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbmN5Q29kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbmN5Q29kZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbmN5RGlzcGxheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbmN5RGlzcGxheTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbmN5UHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW5jeVByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzQ29weVRvQ2xpcGJvYXJkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzQ29weVRvQ2xpcGJvYXJkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xpcGJvYXJkVmFsdWVHZXR0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGlwYm9hcmRWYWx1ZUdldHRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRlbXBsYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBnZXR0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXR0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc011bHRpbGluZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTXVsdGlsaW5lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzVmFsdWVBc1Rvb2x0aXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNWYWx1ZUFzVG9vbHRpcDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzUmVvcmRlcmFibGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Jlb3JkZXJhYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNUb2dnbGVhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNUb2dnbGVhYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNWaXNpYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaXNpYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNMb2NhbGl6ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0xvY2FsaXplZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgY29sdW1uIHRvIGdpdmVuIHR5cGUgd2l0aCBhZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIEBwYXJhbSB0eXBlIGNvbHVtbiB0eXBlIGVudW1cbiAgICAgKiBAcGFyYW0gZGlzcGxheVR5cGUgY29sdW1uIGRpc3BsYXkgdHlwZVxuICAgICAqIEBwYXJhbSBhcmdzIGFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBmb3IgY29sdW1uIChvcHRpb25hbClcbiAgICAgKi9cbiAgICBwdWJsaWMgYXNUeXBlKHR5cGU6IENvbHVtblR5cGVFbnVtLCBkaXNwbGF5VHlwZT86IENvbHVtbkRpc3BsYXlUeXBlRW51bSwgLi4uYXJnczogYW55W10pOiB0aGlzIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlzcGxheVR5cGUgPT09IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeSA/IHRoaXMuYXNDdXJyZW5jeSguLi5hcmdzKSA6IHRoaXMuYXNOdW1iZXIoLi4uYXJncyk7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkJvb2xlYW46XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXNCb29sZWFuKC4uLmFyZ3MpO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5EYXRlOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFzRGF0ZSguLi5hcmdzKTtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uRW51bTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hc0VudW1VbnNhZmUoYXJnc1swXSBhcyBFbnVtRGVzY3JpcHRvcjxhbnk+KTtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uQ3VzdG9tOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFzQ3VzdG9tQ29tcG9uZW50KGFyZ3NbMF0pO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5TdHJpbmc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzTnVtYmVyKG9wdHM/OiBDb2x1bW5OdW1iZXJPcHRzVHlwZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uTnVtYmVyO1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5OdW1iZXI7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlGb3JtYXQgPVxuICAgICAgICAgICAgb3B0cz8ubWluSW50ZWdlckRpZ2l0cyB8fCBvcHRzPy5taW5GcmFjdGlvbkRpZ2l0cyB8fCBvcHRzPy5tYXhGcmFjdGlvbkRpZ2l0c1xuICAgICAgICAgICAgICAgID8gYCR7b3B0cz8ubWluSW50ZWdlckRpZ2l0cyA/PyAwfS4ke29wdHM/Lm1pbkZyYWN0aW9uRGlnaXRzID8/IDB9LSR7b3B0cz8ubWF4RnJhY3Rpb25EaWdpdHMgPz8gb3B0cz8ubWluRnJhY3Rpb25EaWdpdHMgPz8gMH1gXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IG9wdHM/LmxvY2FsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzQ3VycmVuY3kob3B0cz86IENvbHVtbkN1cnJlbmN5T3B0c1R5cGU8a2V5b2YgVGFibGVNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNDdXJyZW5jeVVuc2FmZSh7XG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICAgICAgY3VycmVuY3lQcm9wZXJ0eTogb3B0cz8uY3VycmVuY3lQcm9wZXJ0eSA/IChvcHRzLmN1cnJlbmN5UHJvcGVydHkgYXMgc3RyaW5nKSA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXNDdXJyZW5jeVVuc2FmZShvcHRzPzogQ29sdW1uQ3VycmVuY3lPcHRzVHlwZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uTnVtYmVyO1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeTtcbiAgICAgICAgdGhpcy5fY3VycmVuY3lDb2RlID0gb3B0cz8uY3VycmVuY3k7XG4gICAgICAgIHRoaXMuX2N1cnJlbmN5UHJvcGVydHkgPSBvcHRzPy5jdXJyZW5jeVByb3BlcnR5O1xuICAgICAgICB0aGlzLl9jdXJyZW5jeURpc3BsYXkgPSBvcHRzPy5jdXJyZW5jeURpc3BsYXk7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlGb3JtYXQgPVxuICAgICAgICAgICAgb3B0cz8ubWluSW50ZWdlckRpZ2l0cyB8fCBvcHRzPy5taW5GcmFjdGlvbkRpZ2l0cyB8fCBvcHRzPy5tYXhGcmFjdGlvbkRpZ2l0c1xuICAgICAgICAgICAgICAgID8gYCR7b3B0cz8ubWluSW50ZWdlckRpZ2l0cyA/PyAwfS4ke29wdHM/Lm1pbkZyYWN0aW9uRGlnaXRzID8/IDB9LSR7b3B0cz8ubWF4RnJhY3Rpb25EaWdpdHMgPz8gb3B0cz8ubWluRnJhY3Rpb25EaWdpdHMgPz8gMH1gXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IG9wdHM/LmxvY2FsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzRGF0ZShkaXNwbGF5Rm9ybWF0ID0gJ2RkLk1NLnl5eXknKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtblR5cGUgPSBDb2x1bW5UeXBlRW51bS5EYXRlO1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5EYXRlO1xuICAgICAgICB0aGlzLl9kaXNwbGF5Rm9ybWF0ID0gZGlzcGxheUZvcm1hdDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzQm9vbGVhbih5ZXM/OiBzdHJpbmcsIG5vPzogc3RyaW5nLCBhc0ljb24gPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uQm9vbGVhbjtcbiAgICAgICAgdGhpcy5fY29sdW1uRGlzcGxheVR5cGUgPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQm9vbGVhbjtcbiAgICAgICAgdGhpcy5fYm9vbGVhbkFzSWNvbiA9IGFzSWNvbjtcbiAgICAgICAgdGhpcy5fYm9vbGVhblllcyA9IHllcztcbiAgICAgICAgdGhpcy5fYm9vbGVhbk5vID0gbm87XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc0VudW1VbnNhZmUoZW51bURlc2M6IEVudW1EZXNjcmlwdG9yPGFueT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uVHlwZSA9IENvbHVtblR5cGVFbnVtLkVudW07XG4gICAgICAgIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkVudW07XG4gICAgICAgIHRoaXMuX2VudW0gPSBlbnVtRGVzYztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzQ3VzdG9tQ29tcG9uZW50KGN1c3RvbUNvbXBvbmVudFR5cGU6IFR5cGU8SUNvbHVtblZhbHVlQ29tcG9uZW50PENvbHVtblZhbHVlLCBUYWJsZU1vZGVsLCBDb2x1bW5Nb2RlbD4+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtblR5cGUgPSBDb2x1bW5UeXBlRW51bS5DdXN0b207XG4gICAgICAgIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5fY3VzdG9tQ29tcG9uZW50VHlwZSA9IGN1c3RvbUNvbXBvbmVudFR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc0h0bWwoKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkh0bWw7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQ2xhc3NOYW1lKGNsYXNzTmFtZT86IHN0cmluZywgaGVhZGVyQ2xhc3NOYW1lPzogc3RyaW5nLCBjbGFzc05hbWVNYXBGbj86IChjbGFzc05hbWU/OiBzdHJpbmcsIGl0ZW0/OiBUYWJsZU1vZGVsKSA9PiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY2xhc3NOYW1lID0gY2xhc3NOYW1lID8/ICcnO1xuICAgICAgICB0aGlzLl9oZWFkZXJDbGFzc05hbWUgPSBoZWFkZXJDbGFzc05hbWUgPz8gJyc7XG4gICAgICAgIHRoaXMuX2NsYXNzTmFtZU1hcEZuID0gY2xhc3NOYW1lTWFwRm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoV2lkdGgod2lkdGg/OiBudW1iZXIsIG1pbldpZHRoPzogbnVtYmVyLCBtYXhXaWR0aD86IG51bWJlcik6IHRoaXMge1xuICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoID8/IG51bGw7XG4gICAgICAgIHRoaXMuX21pbldpZHRoID0gbWluV2lkdGggPz8gbnVsbDtcbiAgICAgICAgdGhpcy5fbWF4V2lkdGggPSBtYXhXaWR0aCA/PyBudWxsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRpdGxlKHRpdGxlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDb3B5VG9DbGlwYm9hcmQoaGFzQ29weVRvQ2xpcGJvYXJkID0gdHJ1ZSwgY2xpcGJvYXJkVmFsdWVHZXR0ZXI/OiBHZXR0ZXJGbjxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzQ29weVRvQ2xpcGJvYXJkID0gaGFzQ29weVRvQ2xpcGJvYXJkO1xuXG4gICAgICAgIGlmIChjbGlwYm9hcmRWYWx1ZUdldHRlcikge1xuICAgICAgICAgICAgdGhpcy5fY2xpcGJvYXJkVmFsdWVHZXR0ZXIgPSBjbGlwYm9hcmRWYWx1ZUdldHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGVtcGxhdGUodGVtcGxhdGU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl90ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEdldHRlcihnZXR0ZXI/OiBHZXR0ZXJGbjxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZ2V0dGVyID0gZ2V0dGVyO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE11bHRpbGluZShpc011bHRpbGluZSA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNNdWx0aWxpbmUgPSBpc011bHRpbGluZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhWYWx1ZUFzVG9vbHRpcCh2YWx1ZUFzVG9vbHRpcCA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzVmFsdWVBc1Rvb2x0aXAgPSB2YWx1ZUFzVG9vbHRpcDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSZW9yZGVyYWJsZShpc1Jlb3JkZXJhYmxlID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pc1Jlb3JkZXJhYmxlID0gaXNSZW9yZGVyYWJsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUb2dnbGVhYmxlKGlzVG9nZ2xlYWJsZSA9IHRydWUsIGlzVmlzaWJsZSA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNUb2dnbGVhYmxlID0gaXNUb2dnbGVhYmxlO1xuICAgICAgICB0aGlzLl9pc1Zpc2libGUgPSBpc1Zpc2libGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2NhbGl6ZWQoZXhpc3RzUHJvcGVydHk/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgaWYgKGV4aXN0c1Byb3BlcnR5KSB7XG4gICAgICAgICAgICB0aGlzLl9sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eSA9IGV4aXN0c1Byb3BlcnR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHkgPSBgJHt0aGlzLl9wcm9wZXJ0eX1Mb2NhbGl6ZWRgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5KCk6IENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIENvbHVtblZhbHVlPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgQ29sdW1uRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbCwgQ29sdW1uVmFsdWU+KHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb3B5RmllbGRzVG8ob2JqOiBDb2x1bW5EZXNjcmlwdG9yPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsLCBDb2x1bW5WYWx1ZT4pIHtcbiAgICAgICAgb2JqLl90aXRsZSA9IHRoaXMuX3RpdGxlO1xuICAgICAgICBvYmouX2NvbHVtblR5cGUgPSB0aGlzLl9jb2x1bW5UeXBlO1xuICAgICAgICBvYmouX2NvbHVtbkRpc3BsYXlUeXBlID0gdGhpcy5fY29sdW1uRGlzcGxheVR5cGU7XG4gICAgICAgIG9iai5fZW51bSA9IHRoaXMuX2VudW07XG4gICAgICAgIG9iai5fYm9vbGVhbkFzSWNvbiA9IHRoaXMuX2Jvb2xlYW5Bc0ljb247XG4gICAgICAgIG9iai5fYm9vbGVhblllcyA9IHRoaXMuX2Jvb2xlYW5ZZXM7XG4gICAgICAgIG9iai5fYm9vbGVhbk5vID0gdGhpcy5fYm9vbGVhbk5vO1xuICAgICAgICBvYmouX2xvY2FsZSA9IHRoaXMuX2xvY2FsZTtcbiAgICAgICAgb2JqLl9jdXJyZW5jeUNvZGUgPSB0aGlzLl9jdXJyZW5jeUNvZGU7XG4gICAgICAgIG9iai5fY3VycmVuY3lEaXNwbGF5ID0gdGhpcy5fY3VycmVuY3lEaXNwbGF5O1xuICAgICAgICBvYmouX2N1cnJlbmN5UHJvcGVydHkgPSB0aGlzLl9jdXJyZW5jeVByb3BlcnR5O1xuICAgICAgICBvYmouX2Rpc3BsYXlGb3JtYXQgPSB0aGlzLl9kaXNwbGF5Rm9ybWF0O1xuICAgICAgICBvYmouX2hlYWRlckNsYXNzTmFtZSA9IHRoaXMuX2hlYWRlckNsYXNzTmFtZTtcbiAgICAgICAgb2JqLl9jbGFzc05hbWUgPSB0aGlzLl9jbGFzc05hbWU7XG4gICAgICAgIG9iai5fY2xhc3NOYW1lTWFwRm4gPSB0aGlzLl9jbGFzc05hbWVNYXBGbjtcbiAgICAgICAgb2JqLl93aWR0aCA9IHRoaXMuX3dpZHRoO1xuICAgICAgICBvYmouX21pbldpZHRoID0gdGhpcy5fbWluV2lkdGg7XG4gICAgICAgIG9iai5fbWF4V2lkdGggPSB0aGlzLl9tYXhXaWR0aDtcbiAgICAgICAgb2JqLl9jdXN0b21Db21wb25lbnRUeXBlID0gdGhpcy5fY3VzdG9tQ29tcG9uZW50VHlwZTtcbiAgICAgICAgb2JqLl9oYXNDb3B5VG9DbGlwYm9hcmQgPSB0aGlzLl9oYXNDb3B5VG9DbGlwYm9hcmQ7XG4gICAgICAgIG9iai5fdGVtcGxhdGUgPSB0aGlzLl90ZW1wbGF0ZTtcbiAgICAgICAgb2JqLl9nZXR0ZXIgPSB0aGlzLl9nZXR0ZXI7XG4gICAgICAgIG9iai5faXNNdWx0aWxpbmUgPSB0aGlzLl9pc011bHRpbGluZTtcbiAgICAgICAgb2JqLl9oYXNWYWx1ZUFzVG9vbHRpcCA9IHRoaXMuX2hhc1ZhbHVlQXNUb29sdGlwO1xuICAgICAgICBvYmouX2lzUmVvcmRlcmFibGUgPSB0aGlzLl9pc1Jlb3JkZXJhYmxlO1xuICAgICAgICBvYmouX2lzVG9nZ2xlYWJsZSA9IHRoaXMuX2lzVG9nZ2xlYWJsZTtcbiAgICAgICAgb2JqLl9pc1Zpc2libGUgPSB0aGlzLl9pc1Zpc2libGU7XG4gICAgICAgIG9iai5faXNMb2NhbGl6ZWQgPSB0aGlzLl9pc0xvY2FsaXplZDtcbiAgICAgICAgb2JqLl9sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eSA9IHRoaXMuX2xvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtbkR5bmFtaWNEZXNjcmlwdG9yIGV4dGVuZHMgQ29sdW1uRGVzY3JpcHRvcjxhbnksIGFueT4ge1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIF92aXNpYmlsaXR5ID0gdHJ1ZTtcblxuICAgIC8vIHByaXZhdGUgX2ZpbHRlclN0YXR1cztcblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocHJvcGVydHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdmlzaWJpbGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2liaWxpdHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyBjb2x1bW4ncyB0aXRsZSBhbmQgcmV0dXJucyB0aGlzIGNvbHVtblxuICAgICAqIEBwYXJhbSB0aXRsZSB0aXRsZSB0byBiZSBzZXRcbiAgICAgKiBAcGFyYW0gb3ZlcnJpZGUgc2hvdWxkIGNvbHVtbiB0aXRsZSBpZiBhbGwgcmVhZHkgc2V0P1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSB3aXRoVGl0bGUodGl0bGU6IHN0cmluZywgb3ZlcnJpZGUgPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICBpZiAodGhpcy5fdGl0bGUgPT0gbnVsbCB8fCBvdmVycmlkZSkge1xuICAgICAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIGF1dG9tYXRpYyB0eXBlIGFuZCByZXR1cm5zIHRoaXMgY29sdW1uXG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICovXG4gICAgcHVibGljIHdpdGhBdXRvbWF0aWNUeXBlKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgY29sdW1uVG9EYXRlTnVtYmVyT3JCb29sZWFuKHRoaXMsIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyB2aXNpYmlsaXR5IHN0YXRlIGZvciBjb2x1bW4gYW5kIHJldHVybnMgdGhpcyBjb2x1bW5cbiAgICAgKiBAcGFyYW0gdmlzaWJpbGl0eVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoVmlzaWJpbGl0eSh2aXNpYmlsaXR5OiBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3Zpc2liaWxpdHkgPSB2aXNpYmlsaXR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGRlZXAgY29weSBvZiBjb2x1bW4gZHluYW1pYyBkZXNjcmlwdG9yXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGNvcHkoKTogQ29sdW1uRHluYW1pY0Rlc2NyaXB0b3Ige1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IENvbHVtbkR5bmFtaWNEZXNjcmlwdG9yKHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIGRlc2NyaXB0b3IuX3RpdGxlID0gdGhpcy5fdGl0bGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Zpc2liaWxpdHkgPSB0aGlzLl92aXNpYmlsaXR5O1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9Db2x1bW5EZXNjcmlwdG9yKCk6IENvbHVtbkRlc2NyaXB0b3I8YW55LCBhbnk+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBDb2x1bW5EZXNjcmlwdG9yKHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,8 +1,7 @@
1
1
  export var TablePaginationModeEnum;
2
2
  (function (TablePaginationModeEnum) {
3
3
  TablePaginationModeEnum[TablePaginationModeEnum["Pagination"] = 0] = "Pagination";
4
- TablePaginationModeEnum[TablePaginationModeEnum["InfiniteScroll"] = 1] = "InfiniteScroll";
5
- TablePaginationModeEnum[TablePaginationModeEnum["None"] = 2] = "None";
4
+ TablePaginationModeEnum[TablePaginationModeEnum["None"] = 1] = "None";
6
5
  })(TablePaginationModeEnum || (TablePaginationModeEnum = {}));
7
6
  export var TableSizeEnum;
8
7
  (function (TableSizeEnum) {
@@ -19,4 +18,4 @@ export var TableDynamicColumnsModeEnum;
19
18
  TableDynamicColumnsModeEnum[TableDynamicColumnsModeEnum["EXCLUDE"] = 0] = "EXCLUDE";
20
19
  TableDynamicColumnsModeEnum[TableDynamicColumnsModeEnum["INCLUDE_ONLY"] = 1] = "INCLUDE_ONLY";
21
20
  })(TableDynamicColumnsModeEnum || (TableDynamicColumnsModeEnum = {}));
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90YWJsZS9hcGkvc3JjL21vZGVscy90YWJsZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLENBQU4sSUFBWSx1QkFJWDtBQUpELFdBQVksdUJBQXVCO0lBQy9CLGlGQUFVLENBQUE7SUFDVix5RkFBYyxDQUFBO0lBQ2QscUVBQUksQ0FBQTtBQUNSLENBQUMsRUFKVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBSWxDO0FBRUQsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUNyQixtREFBSyxDQUFBO0lBQ0wscURBQU0sQ0FBQTtJQUNOLG1EQUFLLENBQUE7QUFDVCxDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSwyQkFHWDtBQUhELFdBQVksMkJBQTJCO0lBQ25DLG1GQUFPLENBQUE7SUFDUCw2RkFBWSxDQUFBO0FBQ2hCLENBQUMsRUFIVywyQkFBMkIsS0FBM0IsMkJBQTJCLFFBR3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGaWx0ZXJEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2ZpbHRlcic7XG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7Q29sdW1uRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvY29sdW1uLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgZW51bSBUYWJsZVBhZ2luYXRpb25Nb2RlRW51bSB7XG4gICAgUGFnaW5hdGlvbixcbiAgICBJbmZpbml0ZVNjcm9sbCxcbiAgICBOb25lXG59XG5cbmV4cG9ydCBlbnVtIFRhYmxlU2l6ZUVudW0ge1xuICAgIFNtYWxsLFxuICAgIE5vcm1hbCxcbiAgICBMYXJnZVxufVxuXG4vKipcbiAqIEVYQ0xVREUgZGVmYXVsdCwgYWxsIGNvbHVtbnMgaGFzIHNvcnQgYW5kIGZpbHRlciBvbiBieSBkZWZhdWx0LCBkZXZlbG9wZXIgRVhDTFVERVMgcHJvcGVydGllcyBmcm9tIHNvcnQvZmlsdGVyXG4gKiBJTkNMVURFX09OTFkgb25seSBzZWxlY3RlZCBjb2x1bW5zIGhhdmUgc29ydC9maWx0ZXIsIGRldmVsb3BlcnMgSU5DTFVERVMgcHJvcGVydGllc1xuICovXG5leHBvcnQgZW51bSBUYWJsZUR5bmFtaWNDb2x1bW5zTW9kZUVudW0ge1xuICAgIEVYQ0xVREUsXG4gICAgSU5DTFVERV9PTkxZXG59XG5cbi8qKlxuICogVGhpcyBvbmUgaXMgaW50ZXJuYWwgb25seSB0byBwcmV2ZW50IGNpcmN1bGFyIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGVkaXRvciBhbmQgZmllbGRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZURlc2NyaXB0b3JJbnRlcm5hbDxUYWJsZU1vZGVsPiB7XG4gICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxUYWJsZU1vZGVsPjtcblxuICAgIHdpdGhEZWZhdWx0U29ydFVuc2FmZShwcm9wZXJ0eTogc3RyaW5nLCBhc2NlbmRpbmc/OiBib29sZWFuLCBvcmRlcj86IG51bWJlciwgZW5hYmxlZD86IGJvb2xlYW4pOiB0aGlzO1xuXG4gICAgd2l0aFNvcnRVbnNhZmUocHJvcGVydHk6IHN0cmluZywgaXNEZWZhdWx0OiBib29sZWFuLCBhc2NlbmRpbmc/OiBib29sZWFuKTogdGhpcztcblxuICAgIGFkZEZpbHRlckZyb21Db2x1bW5EZXNjcmlwdG9yVW5zYWZlPENvbHVtbk1vZGVsLCBDb2x1bW5WYWx1ZT4oXG4gICAgICAgIGNvbHVtbjogQ29sdW1uRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbCwgQ29sdW1uVmFsdWU+LFxuICAgICAgICBmb3JjZVNpbXBsZTogYm9vbGVhblxuICAgICk6IEZpbHRlckRlc2NyaXB0b3I8YW55LCBUYWJsZU1vZGVsPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUxheW91dFByZWZlcmVuY2VzIHtcbiAgICBjb2x1bW5XaWR0aHM/OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICAgIGNvbHVtbk9yZGVyPzogc3RyaW5nW107XG4gICAgY29sdW1uSGlkZGVuPzogc3RyaW5nW107XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90YWJsZS9hcGkvc3JjL21vZGVscy90YWJsZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLENBQU4sSUFBWSx1QkFHWDtBQUhELFdBQVksdUJBQXVCO0lBQy9CLGlGQUFVLENBQUE7SUFDVixxRUFBSSxDQUFBO0FBQ1IsQ0FBQyxFQUhXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFHbEM7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3JCLG1EQUFLLENBQUE7SUFDTCxxREFBTSxDQUFBO0lBQ04sbURBQUssQ0FBQTtBQUNULENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QjtBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBTixJQUFZLDJCQUdYO0FBSEQsV0FBWSwyQkFBMkI7SUFDbkMsbUZBQU8sQ0FBQTtJQUNQLDZGQUFZLENBQUE7QUFDaEIsQ0FBQyxFQUhXLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFHdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZpbHRlckRlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZmlsdGVyJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtDb2x1bW5EZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycy9jb2x1bW4uZGVzY3JpcHRvcic7XG5cbmV4cG9ydCBlbnVtIFRhYmxlUGFnaW5hdGlvbk1vZGVFbnVtIHtcbiAgICBQYWdpbmF0aW9uLFxuICAgIE5vbmVcbn1cblxuZXhwb3J0IGVudW0gVGFibGVTaXplRW51bSB7XG4gICAgU21hbGwsXG4gICAgTm9ybWFsLFxuICAgIExhcmdlXG59XG5cbi8qKlxuICogRVhDTFVERSBkZWZhdWx0LCBhbGwgY29sdW1ucyBoYXMgc29ydCBhbmQgZmlsdGVyIG9uIGJ5IGRlZmF1bHQsIGRldmVsb3BlciBFWENMVURFUyBwcm9wZXJ0aWVzIGZyb20gc29ydC9maWx0ZXJcbiAqIElOQ0xVREVfT05MWSBvbmx5IHNlbGVjdGVkIGNvbHVtbnMgaGF2ZSBzb3J0L2ZpbHRlciwgZGV2ZWxvcGVycyBJTkNMVURFUyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBlbnVtIFRhYmxlRHluYW1pY0NvbHVtbnNNb2RlRW51bSB7XG4gICAgRVhDTFVERSxcbiAgICBJTkNMVURFX09OTFlcbn1cblxuLyoqXG4gKiBUaGlzIG9uZSBpcyBpbnRlcm5hbCBvbmx5IHRvIHByZXZlbnQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIGJldHdlZW4gZWRpdG9yIGFuZCBmaWVsZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlRGVzY3JpcHRvckludGVybmFsPFRhYmxlTW9kZWw+IHtcbiAgICBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPFRhYmxlTW9kZWw+O1xuXG4gICAgd2l0aERlZmF1bHRTb3J0VW5zYWZlKHByb3BlcnR5OiBzdHJpbmcsIGFzY2VuZGluZz86IGJvb2xlYW4sIG9yZGVyPzogbnVtYmVyLCBlbmFibGVkPzogYm9vbGVhbik6IHRoaXM7XG5cbiAgICB3aXRoU29ydFVuc2FmZShwcm9wZXJ0eTogc3RyaW5nLCBpc0RlZmF1bHQ6IGJvb2xlYW4sIGFzY2VuZGluZz86IGJvb2xlYW4pOiB0aGlzO1xuXG4gICAgYWRkRmlsdGVyRnJvbUNvbHVtbkRlc2NyaXB0b3JVbnNhZmU8Q29sdW1uTW9kZWwsIENvbHVtblZhbHVlPihcbiAgICAgICAgY29sdW1uOiBDb2x1bW5EZXNjcmlwdG9yPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsLCBDb2x1bW5WYWx1ZT4sXG4gICAgICAgIGZvcmNlU2ltcGxlOiBib29sZWFuXG4gICAgKTogRmlsdGVyRGVzY3JpcHRvcjxhbnksIFRhYmxlTW9kZWw+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlTGF5b3V0UHJlZmVyZW5jZXMge1xuICAgIGNvbHVtbldpZHRocz86IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gICAgY29sdW1uT3JkZXI/OiBzdHJpbmdbXTtcbiAgICBjb2x1bW5IaWRkZW4/OiBzdHJpbmdbXTtcbn1cbiJdfQ==