@wavemaker/app-ng-runtime 11.4.0-next.141707 → 11.4.0-next.1417071

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 (105) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +2 -2
  2. app-ng-runtime/build-task/bundles/index.umd.js.map +1 -1
  3. app-ng-runtime/build-task/esm2015/data/form/form-field/form-field.build.js +3 -3
  4. app-ng-runtime/build-task/fesm2015/index.js +2 -2
  5. app-ng-runtime/build-task/fesm2015/index.js.map +1 -1
  6. app-ng-runtime/components/base/bundles/index.umd.js +23 -1
  7. app-ng-runtime/components/base/bundles/index.umd.js.map +1 -1
  8. app-ng-runtime/components/base/esm2015/public_api.js +2 -2
  9. app-ng-runtime/components/base/esm2015/utils/widget-utils.js +16 -1
  10. app-ng-runtime/components/base/esm2015/widgets/common/base/base-field-validations.js +3 -2
  11. app-ng-runtime/components/base/esm2015/widgets/common/dialog/dialog.service.js +7 -1
  12. app-ng-runtime/components/base/fesm2015/index.js +23 -2
  13. app-ng-runtime/components/base/fesm2015/index.js.map +1 -1
  14. app-ng-runtime/components/base/index.metadata.json +1 -1
  15. app-ng-runtime/components/base/public_api.d.ts +1 -1
  16. app-ng-runtime/components/base/utils/widget-utils.d.ts +7 -0
  17. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -2
  18. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js.map +1 -1
  19. app-ng-runtime/components/basic/rich-text-editor/esm2015/rich-text-editor.component.js +3 -3
  20. app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.js +2 -2
  21. app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.js.map +1 -1
  22. app-ng-runtime/components/data/form/bundles/index.umd.js +37 -13
  23. app-ng-runtime/components/data/form/bundles/index.umd.js.map +1 -1
  24. app-ng-runtime/components/data/form/esm2015/form-field/form-field.directive.js +26 -7
  25. app-ng-runtime/components/data/form/esm2015/form.component.js +10 -5
  26. app-ng-runtime/components/data/form/fesm2015/index.js +34 -10
  27. app-ng-runtime/components/data/form/fesm2015/index.js.map +1 -1
  28. app-ng-runtime/components/data/form/index.metadata.json +1 -1
  29. app-ng-runtime/components/data/list/bundles/index.umd.js +13 -7
  30. app-ng-runtime/components/data/list/bundles/index.umd.js.map +1 -1
  31. app-ng-runtime/components/data/list/esm2015/list.component.js +12 -6
  32. app-ng-runtime/components/data/list/fesm2015/index.js +11 -5
  33. app-ng-runtime/components/data/list/fesm2015/index.js.map +1 -1
  34. app-ng-runtime/components/data/list/index.metadata.json +1 -1
  35. app-ng-runtime/components/data/list/list.component.d.ts +1 -1
  36. app-ng-runtime/components/data/pagination/bundles/index.umd.js +1 -1
  37. app-ng-runtime/components/data/pagination/bundles/index.umd.js.map +1 -1
  38. app-ng-runtime/components/data/pagination/esm2015/pagination.component.js +2 -2
  39. app-ng-runtime/components/data/pagination/fesm2015/index.js +1 -1
  40. app-ng-runtime/components/data/pagination/fesm2015/index.js.map +1 -1
  41. app-ng-runtime/components/data/table/bundles/index.umd.js +48 -9
  42. app-ng-runtime/components/data/table/bundles/index.umd.js.map +1 -1
  43. app-ng-runtime/components/data/table/esm2015/table-filter.directive.js +3 -2
  44. app-ng-runtime/components/data/table/esm2015/table.component.js +45 -9
  45. app-ng-runtime/components/data/table/esm2015/table.props.js +3 -1
  46. app-ng-runtime/components/data/table/fesm2015/index.js +48 -9
  47. app-ng-runtime/components/data/table/fesm2015/index.js.map +1 -1
  48. app-ng-runtime/components/data/table/index.metadata.json +1 -1
  49. app-ng-runtime/components/data/table/table.component.d.ts +9 -0
  50. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +5 -0
  51. app-ng-runtime/components/dialogs/default/bundles/index.umd.js.map +1 -1
  52. app-ng-runtime/components/dialogs/default/esm2015/base-dialog.js +7 -2
  53. app-ng-runtime/components/dialogs/default/fesm2015/index.js +6 -1
  54. app-ng-runtime/components/dialogs/default/fesm2015/index.js.map +1 -1
  55. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +5 -0
  56. app-ng-runtime/components/input/epoch/bundles/index.umd.js +32 -4
  57. app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
  58. app-ng-runtime/components/input/epoch/esm2015/base-date-time.component.js +32 -3
  59. app-ng-runtime/components/input/epoch/esm2015/date/date.component.js +2 -3
  60. app-ng-runtime/components/input/epoch/fesm2015/index.js +32 -4
  61. app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
  62. app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
  63. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +25 -19
  64. app-ng-runtime/components/navigation/menu/bundles/index.umd.js.map +1 -1
  65. app-ng-runtime/components/navigation/menu/esm2015/menu-dropdown-item/menu-dropdown-item.component.js +15 -5
  66. app-ng-runtime/components/navigation/menu/esm2015/menu.component.js +14 -19
  67. app-ng-runtime/components/navigation/menu/fesm2015/index.js +25 -20
  68. app-ng-runtime/components/navigation/menu/fesm2015/index.js.map +1 -1
  69. app-ng-runtime/components/navigation/menu/index.metadata.json +1 -1
  70. app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +7 -4
  71. app-ng-runtime/components/navigation/menu/menu.component.d.ts +3 -7
  72. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +3 -0
  73. app-ng-runtime/components/navigation/popover/bundles/index.umd.js.map +1 -1
  74. app-ng-runtime/components/navigation/popover/esm2015/popover.component.js +4 -1
  75. app-ng-runtime/components/navigation/popover/fesm2015/index.js +3 -0
  76. app-ng-runtime/components/navigation/popover/fesm2015/index.js.map +1 -1
  77. app-ng-runtime/core/bundles/index.umd.js +7 -1
  78. app-ng-runtime/core/bundles/index.umd.js.map +1 -1
  79. app-ng-runtime/core/esm2015/services/pagination.service.js +8 -2
  80. app-ng-runtime/core/fesm2015/index.js +7 -1
  81. app-ng-runtime/core/fesm2015/index.js.map +1 -1
  82. app-ng-runtime/mobile/core/bundles/index.umd.js +2 -1
  83. app-ng-runtime/mobile/core/bundles/index.umd.js.map +1 -1
  84. app-ng-runtime/mobile/core/esm2015/services/device.service.js +3 -2
  85. app-ng-runtime/mobile/core/fesm2015/index.js +2 -1
  86. app-ng-runtime/mobile/core/fesm2015/index.js.map +1 -1
  87. app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +3 -2
  88. app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js.map +1 -1
  89. app-ng-runtime/mobile/runtime-dynamic/esm2015/services/live-sync.service.js +4 -3
  90. app-ng-runtime/mobile/runtime-dynamic/fesm2015/index.js +3 -2
  91. app-ng-runtime/mobile/runtime-dynamic/fesm2015/index.js.map +1 -1
  92. app-ng-runtime/package.json +1 -1
  93. app-ng-runtime/runtime/base/bundles/index.umd.js +1 -0
  94. app-ng-runtime/runtime/base/bundles/index.umd.js.map +1 -1
  95. app-ng-runtime/runtime/base/esm2015/services/prefab-manager.service.js +2 -1
  96. app-ng-runtime/runtime/base/fesm2015/index.js +1 -0
  97. app-ng-runtime/runtime/base/fesm2015/index.js.map +1 -1
  98. app-ng-runtime/scripts/datatable/datatable.js +94 -25
  99. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +3 -3
  100. app-ng-runtime/variables/bundles/index.umd.js +5 -12
  101. app-ng-runtime/variables/bundles/index.umd.js.map +1 -1
  102. app-ng-runtime/variables/esm2015/constants/variables.constants.js +3 -9
  103. app-ng-runtime/variables/fesm2015/index.js +2 -9
  104. app-ng-runtime/variables/fesm2015/index.js.map +1 -1
  105. app-ng-runtime/variables/index.metadata.json +1 -1
@@ -119,7 +119,7 @@ const registerFormField = (isFormField) => {
119
119
  const eventsTmpl = widgetType === FormWidgetType.UPLOAD ? '' : getEventsTemplate(attrs);
120
120
  const controlLayout = isMobileApp() ? 'col-xs-12' : 'col-sm-12';
121
121
  const isInList = pCounter === (parentList && parentList.get('parent_form_reference'));
122
- attrs.set('__errormsg', formFieldErrorMsgId);
122
+ attrs.set('__validationId', formFieldErrorMsgId);
123
123
  attrs.set('__widgetType', widgetType);
124
124
  attrs.delete('widget');
125
125
  shared.set('counter', counter);
@@ -136,7 +136,7 @@ const registerFormField = (isFormField) => {
136
136
  [ngStyle]="{width: ${pCounter}.captionsize}" [ngClass]="{'text-danger': ${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode,
137
137
  required: ${pCounter}.isUpdateMode && ${counter}.required}" [textContent]="${counter}.displayname"> </label>
138
138
  <div [ngClass]="${counter}.displayname ? ${pCounter}._widgetClass : '${controlLayout}'">
139
- <label class="form-control-static app-label" *ngIf="!(${pCounter}.isUpdateMode || ${counter}.viewmodewidget === 'default' || ${counter}.widgettype === 'upload')"
139
+ <label class="form-control-static app-label"
140
140
  [hidden]="${pCounter}.isUpdateMode || ${counter}.viewmodewidget === 'default' || ${counter}.widgettype === 'upload'" [innerHTML]="${getCaptionByWidget(attrs, widgetType, counter)}"></label>
141
141
  ${getTemplate(attrs, widgetType, eventsTmpl, counter, pCounter, isInList)}
142
142
  <span aria-hidden="true" *ngIf="${counter}.showPendingSpinner" class="form-field-spinner fa fa-circle-o-notch fa-spin form-control-feedback"></span>
@@ -164,4 +164,4 @@ register('wm-form-field', registerFormField.bind(this, true));
164
164
  register('wm-filter-field', registerFormField.bind(this, false));
165
165
  export default () => { };
166
166
  export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5 };
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvdHJhbnNwaWxlL3NyYy9kYXRhL2Zvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUU1QyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUMzQixLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUNoQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzFCLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQy9CO0lBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMxQixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxHQUFHLEtBQUssYUFBYSxF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dkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsS0FBMEIsRUFBWSxFQUFFO1lBQzlDLE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzdGLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDN0IsT0FBTyxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2QyxDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQzs7QUFFRixRQUFRLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5RCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRWpFLGVBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Rm9ybU1hcmt1cEF0dHIsIElCdWlsZFRhc2tEZWYsIEltcG9ydERlZiwgcmVnaXN0ZXIgfSBmcm9tICdAd20vdHJhbnNwaWxlcic7XG5pbXBvcnQgeyBGb3JtV2lkZ2V0VHlwZSwgZ2V0Rm9ybVdpZGdldFRlbXBsYXRlLCBJREdlbmVyYXRvciwgaXNNb2JpbGVBcHAsIGdldFJlcXVpcmVkRm9ybVdpZGdldCwgZ2VuZXJhdGVHVUlkIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBBTExGSUVMRFMsIGlzRGF0YVNldFdpZGdldCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWxzJztcblxuY29uc3QgdGFnTmFtZSA9ICdkaXYnO1xuY29uc3QgaWRHZW4gPSBuZXcgSURHZW5lcmF0b3IoJ2Zvcm1maWVsZF8nKTtcblxuY29uc3QgZ2V0RXZlbnRzVGVtcGxhdGUgPSAoYXR0cnMpID0+IHtcbiAgICBjb25zdCBldmVudEF0dHJzID0gbmV3IE1hcCgpO1xuICAgIGlmICghYXR0cnMuaGFzKCdmb2N1cy5ldmVudCcpKSB7XG4gICAgICAgIGF0dHJzLnNldCgnZm9jdXMuZXZlbnQnLCAnJyk7XG4gICAgfVxuICAgIGlmICghYXR0cnMuaGFzKCdibHVyLmV2ZW50JykpIHtcbiAgICAgICAgYXR0cnMuc2V0KCdibHVyLmV2ZW50JywgJycpO1xuICAgIH1cbiAgICBhdHRycy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgaWYgKGtleS5lbmRzV2l0aCgnLmV2ZW50JykpIHtcbiAgICAgICAgICAgaWYgKGtleSA9PT0gJ2ZvY3VzLmV2ZW50Jykge1xuICAgICAgICAgICAgICAgdmFsdWUgPSBgX29uRm9jdXNGaWVsZCgkZXZlbnQpOyR7dmFsdWV9YDtcbiAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdibHVyLmV2ZW50Jykge1xuICAgICAgICAgICAgICAgdmFsdWUgPSBgX29uQmx1ckZpZWxkKCRldmVudCk7JHt2YWx1ZX1gO1xuICAgICAgICAgICB9XG4gICAgICAgICAgIGV2ZW50QXR0cnMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICBhdHRycy5kZWxldGUoa2V5KTtcbiAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGdldEZvcm1NYXJrdXBBdHRyKGV2ZW50QXR0cnMpO1xufTtcblxuY29uc3QgREVGQVVMVF9QTEFDRUhPTERFUlMgPSBuZXcgTWFwKFtcbiAgICBbRm9ybVdpZGdldFR5cGUuU0VMRUNULCBbJ1NlbGVjdCBNaW4gdmFsdWUnLCAnU2VsZWN0IE1heCB2YWx1ZScsICdTZWxlY3QgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkRBVEVUSU1FLCBbJ1NlbGVjdCBNaW4gZGF0ZSB0aW1lJywgJ1NlbGVjdCBNYXggZGF0ZSB0aW1lJywgJ1NlbGVjdCBkYXRlIHRpbWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlRJTUUsIFsnU2VsZWN0IE1pbiB0aW1lJywgJ1NlbGVjdCBNYXggdGltZScsICdTZWxlY3QgdGltZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuREFURSwgWydTZWxlY3QgTWluIGRhdGUnLCAnU2VsZWN0IE1heCBkYXRlJywgJ1NlbGVjdCBkYXRlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5URVhUQVJFQSwgWycnLCAnJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5SSUNIVEVYVCwgWycnLCAnJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5DT0xPUlBJQ0tFUiwgWydTZWxlY3QgQ29sb3InLCAnU2VsZWN0IENvbG9yJywgJ1NlbGVjdCBDb2xvciddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuQ0hJUFMsIFsnJywgJycsICdUeXBlIGhlcmUuLi4nXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlBBU1NXT1JELCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLk5VTUJFUiwgWydFbnRlciBNaW4gdmFsdWUnLCAnRW50ZXIgTWF4IHZhbHVlJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5URVhULCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkNVUlJFTkNZLCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURSwgWycnLCAnJywgJ1NlYXJjaCddXSxcbl0pO1xuXG5jb25zdCBzZXREZWZhdWx0UGxhY2Vob2xkZXIgPSAoYXR0cnMsIHdpZGdldFR5cGUsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgcHJvcCA9IGluZGV4ID09PSAxID8gJ21heHBsYWNlaG9sZGVyJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgbGV0IHBsYWNlaG9sZGVyID0gYXR0cnMuZ2V0KHByb3ApO1xuICAgIGlmIChwbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlciA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwbGFjZWhvbGRlciA9IERFRkFVTFRfUExBQ0VIT0xERVJTLmdldCh3aWRnZXRUeXBlKSAmJiBERUZBVUxUX1BMQUNFSE9MREVSUy5nZXQod2lkZ2V0VHlwZSlbaW5kZXhdO1xuICAgIGlmIChwbGFjZWhvbGRlcikge1xuICAgICAgICBhdHRycy5zZXQocHJvcCwgcGxhY2Vob2xkZXIpO1xuICAgIH1cbn07XG5cbmNvbnN0IGdldFdpZGdldFRlbXBsYXRlID0gKGF0dHJzLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGF0dHJzLmdldCgnbmFtZScpO1xuICAgIGNvbnN0IGZpZWxkTmFtZSA9IChhdHRycy5nZXQoJ2tleScpIHx8IG5hbWUgfHwgJycpLnRyaW0oKTtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IG9wdGlvbnMuaXNNYXhXaWRnZXQgPyBgZm9ybUNvbnRyb2xOYW1lPVwiJHtmaWVsZE5hbWV9X21heFwiYCA6IChvcHRpb25zLmlzSW5MaXN0ID8gYFtmb3JtQ29udHJvbE5hbWVdPVwiJHtvcHRpb25zLmNvdW50ZXJ9Ll9maWVsZE5hbWVcImAgOiBgZm9ybUNvbnRyb2xOYW1lPVwiJHtmaWVsZE5hbWV9XCJgKTtcbiAgICBjb25zdCB0bXBsUmVmID0gb3B0aW9ucy5pc01heFdpZGdldCA/IGAjZm9ybVdpZGdldE1heGAgOiBgI2Zvcm1XaWRnZXRgO1xuICAgIGNvbnN0IHdpZGdldE5hbWUgPSBuYW1lID8gKG9wdGlvbnMuaXNNYXhXaWRnZXQgPyBgbmFtZT1cIiR7bmFtZX1fZm9ybVdpZGdldE1heFwiYCA6IGBuYW1lPVwiJHtuYW1lfV9mb3JtV2lkZ2V0XCJgKSA6ICcnO1xuICAgIGNvbnN0IGNvbmRpdGlvbmFsQ2xhc3MgPSBgW25nQ2xhc3NdPVwiJHthdHRycy5nZXQoJ25nY2xhc3MnKX1cImA7XG4gICAgY29uc3QgZGVmYXVsdFRtcGwgPSBgW2NsYXNzLmhpZGRlbl09XCIhJHtvcHRpb25zLnBDb3VudGVyfS5pc1VwZGF0ZU1vZGUgJiYgJHtvcHRpb25zLmNvdW50ZXJ9LnZpZXdtb2Rld2lkZ2V0ICE9PSAnZGVmYXVsdCdcIiAke2Zvcm1Db250cm9sfSAke29wdGlvbnMuZXZlbnRzVG1wbH0gJHtjb25kaXRpb25hbENsYXNzfSAke3RtcGxSZWZ9ICR7d2lkZ2V0TmFtZX1gO1xuICAgIHJldHVybiBnZXRGb3JtV2lkZ2V0VGVtcGxhdGUob3B0aW9ucy53aWRnZXRUeXBlLCBkZWZhdWx0VG1wbCwgYXR0cnMsIHtjb3VudGVyOiBvcHRpb25zLmNvdW50ZXIsIHBDb3VudGVyOiBvcHRpb25zLnBDb3VudGVyfSk7XG59O1xuXG5cbmNvbnN0IGdldFRlbXBsYXRlID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3QpID0+IHtcbiAgICBjb25zdCBpc1JhbmdlID0gYXR0cnMuZ2V0KCdpcy1yYW5nZScpID09PSAndHJ1ZSc7XG4gICAgaWYgKCFpc1JhbmdlKSB7XG4gICAgICAgIHJldHVybiBnZXRXaWRnZXRUZW1wbGF0ZShhdHRycywge3dpZGdldFR5cGUsIGV2ZW50c1RtcGwsIGNvdW50ZXIsIHBDb3VudGVyLCBpc0luTGlzdH0pO1xuICAgIH1cbiAgICBjb25zdCBsYXlvdXRDbGFzcyA9IGlzTW9iaWxlQXBwKCkgPyAnY29sLXhzLTYnIDogJ2NvbC1zbS02JztcbiAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCIke2xheW91dENsYXNzfVwiPiR7Z2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlcn0pfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2xheW91dENsYXNzfVwiPiR7Z2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNNYXhXaWRnZXQ6IHRydWV9KX08L2Rpdj5gO1xufTtcblxuY29uc3QgZ2V0Q2FwdGlvbkJ5V2lkZ2V0ID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBjb3VudGVyKSA9PiB7XG4gICAgaWYgKGF0dHJzLmdldCgnaXMtcmVsYXRlZCcpID09PSAndHJ1ZScpIHtcbiAgICAgICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldERpc3BsYXlFeHByKClgO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuUEFTU1dPUkQpIHtcbiAgICAgICAgcmV0dXJuICdcXCcqKioqKioqKlxcJyc7XG4gICAgfVxuICAgIGxldCBjYXB0aW9uID0gYCR7Y291bnRlcn0udmFsdWVgO1xuICAgIGlmICh3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRSB8fCB3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5USU1FU1RBTVApIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC5kYXRlcGF0dGVybiB8fCAneXl5eS1NTS1kZCBoaDptbTpzcyBhJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVElNRSkge1xuICAgICAgICBjYXB0aW9uICs9IGAgfCB0b0RhdGU6JHtjb3VudGVyfS5mb3JtV2lkZ2V0LnRpbWVwYXR0ZXJuIHx8ICdoaDptbSBhJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuREFURSkge1xuICAgICAgICBjYXB0aW9uICs9IGAgfCB0b0RhdGU6JHtjb3VudGVyfS5mb3JtV2lkZ2V0LmRhdGVwYXR0ZXJuIHx8ICAneXl5eS1NTU0tZGQnYDtcbiAgICAgICAgcmV0dXJuIGNhcHRpb247XG4gICAgfVxuICAgIGlmICh3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5SQVRJTkcgfHwgd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKGlzRGF0YVNldFdpZGdldCh3aWRnZXRUeXBlKSAmJiBhdHRycy5nZXQoJ2RhdGFmaWVsZCcpID09PSBBTExGSUVMRFMpIHtcbiAgICAgICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldERpc3BsYXlFeHByKClgO1xuICAgIH1cbiAgICByZXR1cm4gYCR7Y291bnRlcn0uZ2V0Q2FwdGlvbigpYDtcbn07XG5cbmNvbnN0IHJlZ2lzdGVyRm9ybUZpZWxkID0gKGlzRm9ybUZpZWxkKTogSUJ1aWxkVGFza0RlZiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZXM6IFsnd20tZm9ybScsICd3bS1saXZlZm9ybScsICd3bS1saXZlZmlsdGVyJywgJ3dtLWxpc3QnXSxcbiAgICAgICAgcHJlOiAoYXR0cnMsIHNoYXJlZCwgcGFyZW50Rm9ybSwgcGFyZW50TGl2ZUZvcm0sIHBhcmVudEZpbHRlciwgcGFyZW50TGlzdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IGlkR2VuLm5leHRVaWQoKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudEZvcm0gfHwgcGFyZW50TGl2ZUZvcm0gfHwgcGFyZW50RmlsdGVyO1xuICAgICAgICAgICAgY29uc3QgcENvdW50ZXIgPSAocGFyZW50ICYmIHBhcmVudC5nZXQoJ2Zvcm1fcmVmZXJlbmNlJykpIHx8ICdmb3JtJztcbiAgICAgICAgICAgIGNvbnN0IHdpZGdldFR5cGUgPSBhdHRycy5nZXQoJ3dpZGdldCcpIHx8IEZvcm1XaWRnZXRUeXBlLlRFWFQ7XG4gICAgICAgICAgICBjb25zdCBkYXRhUm9sZSA9IGlzRm9ybUZpZWxkID8gJ2Zvcm0tZmllbGQnIDogJ2ZpbHRlci1maWVsZCc7XG4gICAgICAgICAgICBjb25zdCBmb3JtRmllbGRFcnJvck1zZ0lkID0gJ3dtZm9ybS1maWVsZC1lcnJvci0nICsgZ2VuZXJhdGVHVUlkKCk7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uTXNnID0gaXNGb3JtRmllbGQgPyBgPHAgKm5nSWY9XCIke2NvdW50ZXJ9Ll9jb250cm9sPy5pbnZhbGlkICYmICR7Y291bnRlcn0uX2NvbnRyb2w/LnRvdWNoZWQgJiYgJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrIHRleHQtZGFuZ2VyXCIgYXJpYS1oaWRkZW49XCJmYWxzZVwiIHJvbGU9XCJhbGVydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJHtjb3VudGVyfS52YWxpZGF0aW9ubWVzc2FnZVwiIGlkPVwiJHtmb3JtRmllbGRFcnJvck1zZ0lkfVwiPjxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFt0ZXh0Q29udGVudF09XCIke2NvdW50ZXJ9LnZhbGlkYXRpb25tZXNzYWdlXCI+PC9zcGFuPjwvcD5gIDogJyc7XG4gICAgICAgICAgICBjb25zdCBldmVudHNUbXBsID0gd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEID8gJycgOiBnZXRFdmVudHNUZW1wbGF0ZShhdHRycyk7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sTGF5b3V0ID0gaXNNb2JpbGVBcHAoKSA/ICdjb2wteHMtMTInIDogJ2NvbC1zbS0xMic7XG4gICAgICAgICAgICBjb25zdCBpc0luTGlzdCA9IHBDb3VudGVyID09PSAocGFyZW50TGlzdCAmJiBwYXJlbnRMaXN0LmdldCgncGFyZW50X2Zvcm1fcmVmZXJlbmNlJykpO1xuICAgICAgICAgICAgYXR0cnMuc2V0KCdfX2Vycm9ybXNnJywgZm9ybUZpZWxkRXJyb3JNc2dJZCk7XG4gICAgICAgICAgICBhdHRycy5zZXQoJ19fd2lkZ2V0VHlwZScsIHdpZGdldFR5cGUpO1xuICAgICAgICAgICAgYXR0cnMuZGVsZXRlKCd3aWRnZXQnKTtcbiAgICAgICAgICAgIHNoYXJlZC5zZXQoJ2NvdW50ZXInLCBjb3VudGVyKTtcblxuICAgICAgICAgICAgaWYgKGF0dHJzLmdldCgnaXMtcmFuZ2UnKSA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBsYWNlaG9sZGVyKGF0dHJzLCB3aWRnZXRUeXBlLCAwKTtcbiAgICAgICAgICAgICAgICBzZXREZWZhdWx0UGxhY2Vob2xkZXIoYXR0cnMsIHdpZGdldFR5cGUsIDEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXREZWZhdWx0UGxhY2Vob2xkZXIoYXR0cnMsIHdpZGdldFR5cGUsIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYDwke3RhZ05hbWV9IGRhdGEtcm9sZT1cIiR7ZGF0YVJvbGV9XCIgW2Zvcm1Hcm91cF09XCIke3BDb3VudGVyfS5uZ2Zvcm1cIiB3bUZvcm1GaWVsZCBjYXB0aW9uUG9zaXRpb24gIyR7Y291bnRlcn09XCJ3bUZvcm1GaWVsZFwiIHdpZGdldHR5cGU9XCIke3dpZGdldFR5cGV9XCIgJHtnZXRGb3JtTWFya3VwQXR0cihhdHRycyl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpdmUtZmllbGQgZm9ybS1ncm91cCBhcHAtY29tcG9zaXRlLXdpZGdldCBjbGVhcmZpeCBjYXB0aW9uLXt7JHtwQ291bnRlcn0uY2FwdGlvbnBvc2l0aW9ufX1cIiB3aWRnZXQ9XCIke3dpZGdldFR5cGV9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtoaWRkZW5dPVwiISR7Y291bnRlcn0uZGlzcGxheW5hbWVcIiBjbGFzcz1cImFwcC1sYWJlbCBjb250cm9sLWxhYmVsIGZvcm1maWVsZC1sYWJlbCB7eyR7cENvdW50ZXJ9Ll9jYXB0aW9uQ2xhc3N9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie3dpZHRoOiAke3BDb3VudGVyfS5jYXB0aW9uc2l6ZX1cIiBbbmdDbGFzc109XCJ7J3RleHQtZGFuZ2VyJzogJHtjb3VudGVyfS5fY29udHJvbD8uaW52YWxpZCAmJiAke2NvdW50ZXJ9Ll9jb250cm9sPy50b3VjaGVkICYmICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZSAmJiAke2NvdW50ZXJ9LnJlcXVpcmVkfVwiIFt0ZXh0Q29udGVudF09XCIke2NvdW50ZXJ9LmRpc3BsYXluYW1lXCI+IDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCIke2NvdW50ZXJ9LmRpc3BsYXluYW1lID8gJHtwQ291bnRlcn0uX3dpZGdldENsYXNzIDogJyR7Y29udHJvbExheW91dH0nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljIGFwcC1sYWJlbFwiICpuZ0lmPVwiISgke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUgfHwgJHtjb3VudGVyfS52aWV3bW9kZXdpZGdldCA9PT0gJ2RlZmF1bHQnIHx8ICR7Y291bnRlcn0ud2lkZ2V0dHlwZSA9PT0gJ3VwbG9hZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlIHx8ICR7Y291bnRlcn0udmlld21vZGV3aWRnZXQgPT09ICdkZWZhdWx0JyB8fCAke2NvdW50ZXJ9LndpZGdldHR5cGUgPT09ICd1cGxvYWQnXCIgW2lubmVySFRNTF09XCIke2dldENhcHRpb25CeVdpZGdldChhdHRycywgd2lkZ2V0VHlwZSwgY291bnRlcil9XCI+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtnZXRUZW1wbGF0ZShhdHRycywgd2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXIsIGlzSW5MaXN0KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgKm5nSWY9XCIke2NvdW50ZXJ9LnNob3dQZW5kaW5nU3Bpbm5lclwiIGNsYXNzPVwiZm9ybS1maWVsZC1zcGlubmVyIGZhIGZhLWNpcmNsZS1vLW5vdGNoIGZhLXNwaW4gZm9ybS1jb250cm9sLWZlZWRiYWNrXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiEoJHtjb3VudGVyfS5fY29udHJvbD8uaW52YWxpZCAmJiAke2NvdW50ZXJ9Ll9jb250cm9sPy50b3VjaGVkKSAmJiAke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlbHAtYmxvY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIiByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBbdGV4dENvbnRlbnRdPVwiJHtjb3VudGVyfS5oaW50XCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3ZhbGlkYXRpb25Nc2d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0OiAoKSA9PiBgPC8ke3RhZ05hbWV9PmAsXG4gICAgICAgIHByb3ZpZGU6IChhdHRycywgc2hhcmVkKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm92aWRlciA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIHByb3ZpZGVyLnNldCgnZm9ybV9yZWZlcmVuY2UnLCBzaGFyZWQuZ2V0KCdjb3VudGVyJykpO1xuICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBpbXBvcnRzOiAoYXR0cnM6IE1hcDxTdHJpbmcsIFN0cmluZz4pOiBzdHJpbmdbXSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXF1aXJlZFdpZGdldCA9IGdldFJlcXVpcmVkRm9ybVdpZGdldChhdHRycy5nZXQoJ19fd2lkZ2V0VHlwZScpIHx8IGF0dHJzLmdldCgndHlwZScpKTtcbiAgICAgICAgICAgIGF0dHJzLmRlbGV0ZSgnX193aWRnZXRUeXBlJyk7XG4gICAgICAgICAgICByZXR1cm4gW3JlcXVpcmVkV2lkZ2V0LCAnd20tZm9ybSddO1xuICAgICAgICB9XG4gICAgfTtcbn07XG5cbnJlZ2lzdGVyKCd3bS1mb3JtLWZpZWxkJywgcmVnaXN0ZXJGb3JtRmllbGQuYmluZCh0aGlzLCB0cnVlKSk7XG5yZWdpc3Rlcignd20tZmlsdGVyLWZpZWxkJywgcmVnaXN0ZXJGb3JtRmllbGQuYmluZCh0aGlzLCBmYWxzZSkpO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7fTtcbiJdfQ==
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvdHJhbnNwaWxlL3NyYy9kYXRhL2Zvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUU1QyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUMzQixLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUNoQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzFCLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQy9CO0lBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMxQixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxHQUFHLEtBQUssYUFBYSxF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Q0FBQztZQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsS0FBMEIsRUFBWSxFQUFFO1lBQzlDLE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzdGLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDN0IsT0FBTyxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2QyxDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQzs7QUFFRixRQUFRLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5RCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRWpFLGVBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Rm9ybU1hcmt1cEF0dHIsIElCdWlsZFRhc2tEZWYsIEltcG9ydERlZiwgcmVnaXN0ZXIgfSBmcm9tICdAd20vdHJhbnNwaWxlcic7XG5pbXBvcnQgeyBGb3JtV2lkZ2V0VHlwZSwgZ2V0Rm9ybVdpZGdldFRlbXBsYXRlLCBJREdlbmVyYXRvciwgaXNNb2JpbGVBcHAsIGdldFJlcXVpcmVkRm9ybVdpZGdldCwgZ2VuZXJhdGVHVUlkIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBBTExGSUVMRFMsIGlzRGF0YVNldFdpZGdldCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWxzJztcblxuY29uc3QgdGFnTmFtZSA9ICdkaXYnO1xuY29uc3QgaWRHZW4gPSBuZXcgSURHZW5lcmF0b3IoJ2Zvcm1maWVsZF8nKTtcblxuY29uc3QgZ2V0RXZlbnRzVGVtcGxhdGUgPSAoYXR0cnMpID0+IHtcbiAgICBjb25zdCBldmVudEF0dHJzID0gbmV3IE1hcCgpO1xuICAgIGlmICghYXR0cnMuaGFzKCdmb2N1cy5ldmVudCcpKSB7XG4gICAgICAgIGF0dHJzLnNldCgnZm9jdXMuZXZlbnQnLCAnJyk7XG4gICAgfVxuICAgIGlmICghYXR0cnMuaGFzKCdibHVyLmV2ZW50JykpIHtcbiAgICAgICAgYXR0cnMuc2V0KCdibHVyLmV2ZW50JywgJycpO1xuICAgIH1cbiAgICBhdHRycy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgaWYgKGtleS5lbmRzV2l0aCgnLmV2ZW50JykpIHtcbiAgICAgICAgICAgaWYgKGtleSA9PT0gJ2ZvY3VzLmV2ZW50Jykge1xuICAgICAgICAgICAgICAgdmFsdWUgPSBgX29uRm9jdXNGaWVsZCgkZXZlbnQpOyR7dmFsdWV9YDtcbiAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdibHVyLmV2ZW50Jykge1xuICAgICAgICAgICAgICAgdmFsdWUgPSBgX29uQmx1ckZpZWxkKCRldmVudCk7JHt2YWx1ZX1gO1xuICAgICAgICAgICB9XG4gICAgICAgICAgIGV2ZW50QXR0cnMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICBhdHRycy5kZWxldGUoa2V5KTtcbiAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGdldEZvcm1NYXJrdXBBdHRyKGV2ZW50QXR0cnMpO1xufTtcblxuY29uc3QgREVGQVVMVF9QTEFDRUhPTERFUlMgPSBuZXcgTWFwKFtcbiAgICBbRm9ybVdpZGdldFR5cGUuU0VMRUNULCBbJ1NlbGVjdCBNaW4gdmFsdWUnLCAnU2VsZWN0IE1heCB2YWx1ZScsICdTZWxlY3QgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkRBVEVUSU1FLCBbJ1NlbGVjdCBNaW4gZGF0ZSB0aW1lJywgJ1NlbGVjdCBNYXggZGF0ZSB0aW1lJywgJ1NlbGVjdCBkYXRlIHRpbWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlRJTUUsIFsnU2VsZWN0IE1pbiB0aW1lJywgJ1NlbGVjdCBNYXggdGltZScsICdTZWxlY3QgdGltZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuREFURSwgWydTZWxlY3QgTWluIGRhdGUnLCAnU2VsZWN0IE1heCBkYXRlJywgJ1NlbGVjdCBkYXRlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5URVhUQVJFQSwgWycnLCAnJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5SSUNIVEVYVCwgWycnLCAnJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5DT0xPUlBJQ0tFUiwgWydTZWxlY3QgQ29sb3InLCAnU2VsZWN0IENvbG9yJywgJ1NlbGVjdCBDb2xvciddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuQ0hJUFMsIFsnJywgJycsICdUeXBlIGhlcmUuLi4nXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlBBU1NXT1JELCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLk5VTUJFUiwgWydFbnRlciBNaW4gdmFsdWUnLCAnRW50ZXIgTWF4IHZhbHVlJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5URVhULCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkNVUlJFTkNZLCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURSwgWycnLCAnJywgJ1NlYXJjaCddXSxcbl0pO1xuXG5jb25zdCBzZXREZWZhdWx0UGxhY2Vob2xkZXIgPSAoYXR0cnMsIHdpZGdldFR5cGUsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgcHJvcCA9IGluZGV4ID09PSAxID8gJ21heHBsYWNlaG9sZGVyJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgbGV0IHBsYWNlaG9sZGVyID0gYXR0cnMuZ2V0KHByb3ApO1xuICAgIGlmIChwbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlciA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwbGFjZWhvbGRlciA9IERFRkFVTFRfUExBQ0VIT0xERVJTLmdldCh3aWRnZXRUeXBlKSAmJiBERUZBVUxUX1BMQUNFSE9MREVSUy5nZXQod2lkZ2V0VHlwZSlbaW5kZXhdO1xuICAgIGlmIChwbGFjZWhvbGRlcikge1xuICAgICAgICBhdHRycy5zZXQocHJvcCwgcGxhY2Vob2xkZXIpO1xuICAgIH1cbn07XG5cbmNvbnN0IGdldFdpZGdldFRlbXBsYXRlID0gKGF0dHJzLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGF0dHJzLmdldCgnbmFtZScpO1xuICAgIGNvbnN0IGZpZWxkTmFtZSA9IChhdHRycy5nZXQoJ2tleScpIHx8IG5hbWUgfHwgJycpLnRyaW0oKTtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IG9wdGlvbnMuaXNNYXhXaWRnZXQgPyBgZm9ybUNvbnRyb2xOYW1lPVwiJHtmaWVsZE5hbWV9X21heFwiYCA6IChvcHRpb25zLmlzSW5MaXN0ID8gYFtmb3JtQ29udHJvbE5hbWVdPVwiJHtvcHRpb25zLmNvdW50ZXJ9Ll9maWVsZE5hbWVcImAgOiBgZm9ybUNvbnRyb2xOYW1lPVwiJHtmaWVsZE5hbWV9XCJgKTtcbiAgICBjb25zdCB0bXBsUmVmID0gb3B0aW9ucy5pc01heFdpZGdldCA/IGAjZm9ybVdpZGdldE1heGAgOiBgI2Zvcm1XaWRnZXRgO1xuICAgIGNvbnN0IHdpZGdldE5hbWUgPSBuYW1lID8gKG9wdGlvbnMuaXNNYXhXaWRnZXQgPyBgbmFtZT1cIiR7bmFtZX1fZm9ybVdpZGdldE1heFwiYCA6IGBuYW1lPVwiJHtuYW1lfV9mb3JtV2lkZ2V0XCJgKSA6ICcnO1xuICAgIGNvbnN0IGNvbmRpdGlvbmFsQ2xhc3MgPSBgW25nQ2xhc3NdPVwiJHthdHRycy5nZXQoJ25nY2xhc3MnKX1cImA7XG4gICAgY29uc3QgZGVmYXVsdFRtcGwgPSBgW2NsYXNzLmhpZGRlbl09XCIhJHtvcHRpb25zLnBDb3VudGVyfS5pc1VwZGF0ZU1vZGUgJiYgJHtvcHRpb25zLmNvdW50ZXJ9LnZpZXdtb2Rld2lkZ2V0ICE9PSAnZGVmYXVsdCdcIiAke2Zvcm1Db250cm9sfSAke29wdGlvbnMuZXZlbnRzVG1wbH0gJHtjb25kaXRpb25hbENsYXNzfSAke3RtcGxSZWZ9ICR7d2lkZ2V0TmFtZX1gO1xuICAgIHJldHVybiBnZXRGb3JtV2lkZ2V0VGVtcGxhdGUob3B0aW9ucy53aWRnZXRUeXBlLCBkZWZhdWx0VG1wbCwgYXR0cnMsIHtjb3VudGVyOiBvcHRpb25zLmNvdW50ZXIsIHBDb3VudGVyOiBvcHRpb25zLnBDb3VudGVyfSk7XG59O1xuXG5cbmNvbnN0IGdldFRlbXBsYXRlID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3QpID0+IHtcbiAgICBjb25zdCBpc1JhbmdlID0gYXR0cnMuZ2V0KCdpcy1yYW5nZScpID09PSAndHJ1ZSc7XG4gICAgaWYgKCFpc1JhbmdlKSB7XG4gICAgICAgIHJldHVybiBnZXRXaWRnZXRUZW1wbGF0ZShhdHRycywge3dpZGdldFR5cGUsIGV2ZW50c1RtcGwsIGNvdW50ZXIsIHBDb3VudGVyLCBpc0luTGlzdH0pO1xuICAgIH1cbiAgICBjb25zdCBsYXlvdXRDbGFzcyA9IGlzTW9iaWxlQXBwKCkgPyAnY29sLXhzLTYnIDogJ2NvbC1zbS02JztcbiAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCIke2xheW91dENsYXNzfVwiPiR7Z2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlcn0pfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2xheW91dENsYXNzfVwiPiR7Z2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNNYXhXaWRnZXQ6IHRydWV9KX08L2Rpdj5gO1xufTtcblxuY29uc3QgZ2V0Q2FwdGlvbkJ5V2lkZ2V0ID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBjb3VudGVyKSA9PiB7XG4gICAgaWYgKGF0dHJzLmdldCgnaXMtcmVsYXRlZCcpID09PSAndHJ1ZScpIHtcbiAgICAgICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldERpc3BsYXlFeHByKClgO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuUEFTU1dPUkQpIHtcbiAgICAgICAgcmV0dXJuICdcXCcqKioqKioqKlxcJyc7XG4gICAgfVxuICAgIGxldCBjYXB0aW9uID0gYCR7Y291bnRlcn0udmFsdWVgO1xuICAgIGlmICh3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRSB8fCB3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5USU1FU1RBTVApIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC5kYXRlcGF0dGVybiB8fCAneXl5eS1NTS1kZCBoaDptbTpzcyBhJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVElNRSkge1xuICAgICAgICBjYXB0aW9uICs9IGAgfCB0b0RhdGU6JHtjb3VudGVyfS5mb3JtV2lkZ2V0LnRpbWVwYXR0ZXJuIHx8ICdoaDptbSBhJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuREFURSkge1xuICAgICAgICBjYXB0aW9uICs9IGAgfCB0b0RhdGU6JHtjb3VudGVyfS5mb3JtV2lkZ2V0LmRhdGVwYXR0ZXJuIHx8ICAneXl5eS1NTU0tZGQnYDtcbiAgICAgICAgcmV0dXJuIGNhcHRpb247XG4gICAgfVxuICAgIGlmICh3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5SQVRJTkcgfHwgd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKGlzRGF0YVNldFdpZGdldCh3aWRnZXRUeXBlKSAmJiBhdHRycy5nZXQoJ2RhdGFmaWVsZCcpID09PSBBTExGSUVMRFMpIHtcbiAgICAgICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldERpc3BsYXlFeHByKClgO1xuICAgIH1cbiAgICByZXR1cm4gYCR7Y291bnRlcn0uZ2V0Q2FwdGlvbigpYDtcbn07XG5cbmNvbnN0IHJlZ2lzdGVyRm9ybUZpZWxkID0gKGlzRm9ybUZpZWxkKTogSUJ1aWxkVGFza0RlZiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZXM6IFsnd20tZm9ybScsICd3bS1saXZlZm9ybScsICd3bS1saXZlZmlsdGVyJywgJ3dtLWxpc3QnXSxcbiAgICAgICAgcHJlOiAoYXR0cnMsIHNoYXJlZCwgcGFyZW50Rm9ybSwgcGFyZW50TGl2ZUZvcm0sIHBhcmVudEZpbHRlciwgcGFyZW50TGlzdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IGlkR2VuLm5leHRVaWQoKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudEZvcm0gfHwgcGFyZW50TGl2ZUZvcm0gfHwgcGFyZW50RmlsdGVyO1xuICAgICAgICAgICAgY29uc3QgcENvdW50ZXIgPSAocGFyZW50ICYmIHBhcmVudC5nZXQoJ2Zvcm1fcmVmZXJlbmNlJykpIHx8ICdmb3JtJztcbiAgICAgICAgICAgIGNvbnN0IHdpZGdldFR5cGUgPSBhdHRycy5nZXQoJ3dpZGdldCcpIHx8IEZvcm1XaWRnZXRUeXBlLlRFWFQ7XG4gICAgICAgICAgICBjb25zdCBkYXRhUm9sZSA9IGlzRm9ybUZpZWxkID8gJ2Zvcm0tZmllbGQnIDogJ2ZpbHRlci1maWVsZCc7XG4gICAgICAgICAgICBjb25zdCBmb3JtRmllbGRFcnJvck1zZ0lkID0gJ3dtZm9ybS1maWVsZC1lcnJvci0nICsgZ2VuZXJhdGVHVUlkKCk7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uTXNnID0gaXNGb3JtRmllbGQgPyBgPHAgKm5nSWY9XCIke2NvdW50ZXJ9Ll9jb250cm9sPy5pbnZhbGlkICYmICR7Y291bnRlcn0uX2NvbnRyb2w/LnRvdWNoZWQgJiYgJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrIHRleHQtZGFuZ2VyXCIgYXJpYS1oaWRkZW49XCJmYWxzZVwiIHJvbGU9XCJhbGVydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJHtjb3VudGVyfS52YWxpZGF0aW9ubWVzc2FnZVwiIGlkPVwiJHtmb3JtRmllbGRFcnJvck1zZ0lkfVwiPjxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFt0ZXh0Q29udGVudF09XCIke2NvdW50ZXJ9LnZhbGlkYXRpb25tZXNzYWdlXCI+PC9zcGFuPjwvcD5gIDogJyc7XG4gICAgICAgICAgICBjb25zdCBldmVudHNUbXBsID0gd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEID8gJycgOiBnZXRFdmVudHNUZW1wbGF0ZShhdHRycyk7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sTGF5b3V0ID0gaXNNb2JpbGVBcHAoKSA/ICdjb2wteHMtMTInIDogJ2NvbC1zbS0xMic7XG4gICAgICAgICAgICBjb25zdCBpc0luTGlzdCA9IHBDb3VudGVyID09PSAocGFyZW50TGlzdCAmJiBwYXJlbnRMaXN0LmdldCgncGFyZW50X2Zvcm1fcmVmZXJlbmNlJykpO1xuICAgICAgICAgICAgYXR0cnMuc2V0KCdfX3ZhbGlkYXRpb25JZCcsIGZvcm1GaWVsZEVycm9yTXNnSWQpO1xuICAgICAgICAgICAgYXR0cnMuc2V0KCdfX3dpZGdldFR5cGUnLCB3aWRnZXRUeXBlKTtcbiAgICAgICAgICAgIGF0dHJzLmRlbGV0ZSgnd2lkZ2V0Jyk7XG4gICAgICAgICAgICBzaGFyZWQuc2V0KCdjb3VudGVyJywgY291bnRlcik7XG5cbiAgICAgICAgICAgIGlmIChhdHRycy5nZXQoJ2lzLXJhbmdlJykgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQbGFjZWhvbGRlcihhdHRycywgd2lkZ2V0VHlwZSwgMCk7XG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBsYWNlaG9sZGVyKGF0dHJzLCB3aWRnZXRUeXBlLCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBsYWNlaG9sZGVyKGF0dHJzLCB3aWRnZXRUeXBlLCAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGA8JHt0YWdOYW1lfSBkYXRhLXJvbGU9XCIke2RhdGFSb2xlfVwiIFtmb3JtR3JvdXBdPVwiJHtwQ291bnRlcn0ubmdmb3JtXCIgd21Gb3JtRmllbGQgY2FwdGlvblBvc2l0aW9uICMke2NvdW50ZXJ9PVwid21Gb3JtRmllbGRcIiB3aWRnZXR0eXBlPVwiJHt3aWRnZXRUeXBlfVwiICR7Z2V0Rm9ybU1hcmt1cEF0dHIoYXR0cnMpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXZlLWZpZWxkIGZvcm0tZ3JvdXAgYXBwLWNvbXBvc2l0ZS13aWRnZXQgY2xlYXJmaXggY2FwdGlvbi17eyR7cENvdW50ZXJ9LmNhcHRpb25wb3NpdGlvbn19XCIgd2lkZ2V0PVwiJHt3aWRnZXRUeXBlfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbaGlkZGVuXT1cIiEke2NvdW50ZXJ9LmRpc3BsYXluYW1lXCIgY2xhc3M9XCJhcHAtbGFiZWwgY29udHJvbC1sYWJlbCBmb3JtZmllbGQtbGFiZWwge3ske3BDb3VudGVyfS5fY2FwdGlvbkNsYXNzfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInt3aWR0aDogJHtwQ291bnRlcn0uY2FwdGlvbnNpemV9XCIgW25nQ2xhc3NdPVwieyd0ZXh0LWRhbmdlcic6ICR7Y291bnRlcn0uX2NvbnRyb2w/LmludmFsaWQgJiYgJHtjb3VudGVyfS5fY29udHJvbD8udG91Y2hlZCAmJiAke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUgJiYgJHtjb3VudGVyfS5yZXF1aXJlZH1cIiBbdGV4dENvbnRlbnRdPVwiJHtjb3VudGVyfS5kaXNwbGF5bmFtZVwiPiA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiJHtjb3VudGVyfS5kaXNwbGF5bmFtZSA/ICR7cENvdW50ZXJ9Ll93aWRnZXRDbGFzcyA6ICcke2NvbnRyb2xMYXlvdXR9J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpYyBhcHAtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUgfHwgJHtjb3VudGVyfS52aWV3bW9kZXdpZGdldCA9PT0gJ2RlZmF1bHQnIHx8ICR7Y291bnRlcn0ud2lkZ2V0dHlwZSA9PT0gJ3VwbG9hZCdcIiBbaW5uZXJIVE1MXT1cIiR7Z2V0Q2FwdGlvbkJ5V2lkZ2V0KGF0dHJzLCB3aWRnZXRUeXBlLCBjb3VudGVyKX1cIj48L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2dldFRlbXBsYXRlKGF0dHJzLCB3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3QpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiAqbmdJZj1cIiR7Y291bnRlcn0uc2hvd1BlbmRpbmdTcGlubmVyXCIgY2xhc3M9XCJmb3JtLWZpZWxkLXNwaW5uZXIgZmEgZmEtY2lyY2xlLW8tbm90Y2ggZmEtc3BpbiBmb3JtLWNvbnRyb2wtZmVlZGJhY2tcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiISgke2NvdW50ZXJ9Ll9jb250cm9sPy5pbnZhbGlkICYmICR7Y291bnRlcn0uX2NvbnRyb2w/LnRvdWNoZWQpICYmICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9ja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIFt0ZXh0Q29udGVudF09XCIke2NvdW50ZXJ9LmhpbnRcIj48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsaWRhdGlvbk1zZ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Q6ICgpID0+IGA8LyR7dGFnTmFtZX0+YCxcbiAgICAgICAgcHJvdmlkZTogKGF0dHJzLCBzaGFyZWQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgcHJvdmlkZXIuc2V0KCdmb3JtX3JlZmVyZW5jZScsIHNoYXJlZC5nZXQoJ2NvdW50ZXInKSk7XG4gICAgICAgICAgICByZXR1cm4gcHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGltcG9ydHM6IChhdHRyczogTWFwPFN0cmluZywgU3RyaW5nPik6IHN0cmluZ1tdID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVpcmVkV2lkZ2V0ID0gZ2V0UmVxdWlyZWRGb3JtV2lkZ2V0KGF0dHJzLmdldCgnX193aWRnZXRUeXBlJykgfHwgYXR0cnMuZ2V0KCd0eXBlJykpO1xuICAgICAgICAgICAgYXR0cnMuZGVsZXRlKCdfX3dpZGdldFR5cGUnKTtcbiAgICAgICAgICAgIHJldHVybiBbcmVxdWlyZWRXaWRnZXQsICd3bS1mb3JtJ107XG4gICAgICAgIH1cbiAgICB9O1xufTtcblxucmVnaXN0ZXIoJ3dtLWZvcm0tZmllbGQnLCByZWdpc3RlckZvcm1GaWVsZC5iaW5kKHRoaXMsIHRydWUpKTtcbnJlZ2lzdGVyKCd3bS1maWx0ZXItZmllbGQnLCByZWdpc3RlckZvcm1GaWVsZC5iaW5kKHRoaXMsIGZhbHNlKSk7XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHt9O1xuIl19
@@ -1078,7 +1078,7 @@ const registerFormField = (isFormField) => {
1078
1078
  const eventsTmpl = widgetType === FormWidgetType.UPLOAD ? '' : getEventsTemplate(attrs);
1079
1079
  const controlLayout = isMobileApp() ? 'col-xs-12' : 'col-sm-12';
1080
1080
  const isInList = pCounter === (parentList && parentList.get('parent_form_reference'));
1081
- attrs.set('__errormsg', formFieldErrorMsgId);
1081
+ attrs.set('__validationId', formFieldErrorMsgId);
1082
1082
  attrs.set('__widgetType', widgetType);
1083
1083
  attrs.delete('widget');
1084
1084
  shared.set('counter', counter);
@@ -1095,7 +1095,7 @@ const registerFormField = (isFormField) => {
1095
1095
  [ngStyle]="{width: ${pCounter}.captionsize}" [ngClass]="{'text-danger': ${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode,
1096
1096
  required: ${pCounter}.isUpdateMode && ${counter}.required}" [textContent]="${counter}.displayname"> </label>
1097
1097
  <div [ngClass]="${counter}.displayname ? ${pCounter}._widgetClass : '${controlLayout}'">
1098
- <label class="form-control-static app-label" *ngIf="!(${pCounter}.isUpdateMode || ${counter}.viewmodewidget === 'default' || ${counter}.widgettype === 'upload')"
1098
+ <label class="form-control-static app-label"
1099
1099
  [hidden]="${pCounter}.isUpdateMode || ${counter}.viewmodewidget === 'default' || ${counter}.widgettype === 'upload'" [innerHTML]="${getCaptionByWidget(attrs, widgetType, counter)}"></label>
1100
1100
  ${getTemplate(attrs, widgetType, eventsTmpl, counter, pCounter, isInList)}
1101
1101
  <span aria-hidden="true" *ngIf="${counter}.showPendingSpinner" class="form-field-spinner fa fa-circle-o-notch fa-spin form-control-feedback"></span>